正交表方法在创建测试套件上应用

来源:互联网 发布:淘宝金枪鱼专门店 编辑:程序博客网 时间:2024/05/06 02:25

         Zee的专栏里有篇文章 OATS正交表法用于测试用例设计 介绍正交表的应用。实际上,它还可以用在优化Test Suite (测试套件、测试用例组),作用更大。

         在测试中,特别是互联网应用,我们无法规定用户的环境(在一个单位局域网内,可以要求使用某种特定的操作系统、浏览器等),分布在世界各地的用户,其使用的环境是各种各样的。例如:

  • 操作系统:Windows Vista, Windows XP Home, Windows XP professional, Windows 2000 pro, Windows 2000 server, Windows NT, Windows 98, Linux, Solaris 9, Solaris 10, Mac OS 9, Mac OS X
  • 浏览器:IE 6.0, IE 7.0, FireFox 1.5, FireFox 2.0, Mozilla1.7, Mozilla1.4, Safari 1.3, Safari 2.0, NS 8.1
  • 代理服务器/防火墙: ISA 2000, ISA 2004, Blue Coast, Cisco PIX, Linux squid,  Checkpoint, ...
  • 防火墙验证方式:无口令, 口令,Script, ...
  • 传输协议: TCP, HTTP, SSL
除此之外,如果测试的对象是应用系统的服务器端软件平台, 可能还涉及产品的客户端不同的版本、第3方产品的集成,以及本地化语言版本等兼容性测试:

  • 客户端不同的版本: 1.0, 2.0, 3.0  <用户可能没升级,如MSN , Yahoo IM等客户端不同版本是同时存在的>
  • 第3方产品集成,如和OutLook/Lotus Notes的邮件/日历的集成,以Lotus Notes为例,就可能包括Notes 6.5.2, Notes 6.5.3, Notes 6.5.4, Notes 6.5.5, Notes 7.0, Notes 7.0.1
  • 本地化语言:英文(EL)、中文简体(GB)/中文繁体(B5)、日文(JP)、德文(GE)、...
如果用一个完全的组合,将是爆炸性的组合,测试工作量将非常大。比如产品的功能测试用例为1000个,其完全组合数是


         12 x 9 x 6 x 3 x 3 x 3 x 6 x 4 = 419904  (40多万)
  • 操作系统 - 12
  • 浏览器 - 9
  • 代理服务器/防火墙 - 6
  • 防火墙验证方式 - 3
  • 传输协议 - 3
  • 客户端版本 -3
  • 第3方产品集成,Lotus Notes - 6
  • 本地化语言 - 选 4 种:英文(EL)、中文繁体(B5)、日文(JP)、德文(GE)                                           
           本地化语言 <也可以用一种伪代码方式 pseudocode>

要执行的测试用例数就从1000猛增到 419904000 (4亿) 假定每人每天(man-day)完成的测试用例数是50,原来1000个测试用例,需要20 man-day,即一个人一个月内可以完成。而 4亿个测试用例,需要8400000 manday,  也就是3万多人干一年。
    
进一步简化:
 
  • 操作系统 - 考虑Windows系统的兼容性, Windows只选 Windows Vista, Windows 2000, 其它系统(Mac, Solaris, Linux)各选一种,共 5
  • 浏览器 - 各选一种,4
  • 代理服务器/防火墙 - 3
  • 防火墙验证方式 - 2
  • 传输协议 - 1 (web 方式,只选HTTP+SSL)
  • 客户端版本 -3
  • 第3方产品集成 -3,选Lotus Notes - 6.5.3, 6..5.5, 7.0.1
  • 本地化语言 - 选 2 种:英文(EL)、日文(JP)
 则组合减少到 5 x 4 x 3 x 2 x 1 x 3 x 3 x 2 = 2160,是原来的二百分之一的工作量(2160/419904) 但工作量依然很大,170人干一年。但同时有带来比较大的风险,因为有许多环境,一点也没进行测试。

如果用正交表法,工作量可进一步大大降低,相对后一种优化风险还处在较低的水平(前一种完全测试,没有风险,也不需要动脑筋)。预知如何具体解决,请听下回 正交表方法在创建测试套件(2) 分解。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1329087