结对测试(pairwise testing)

介绍

我还是那个不怎么会带娃的测试工程师。

原理

所有测试数据两两配对,每一对数据至少出现一次

特点

结对测试能发现所有单个因素输入和一对因素输入的bug,而程序中最常见的bug就是由单个因素输入或者一对因素输入触发。三个相关因素或更多的因素触发的bug会越来越罕见

  • AT&T在对其局域网邮件系统中,应用结对测试得到1000个用例比其原有的1500个用例多发现20%的缺陷,而测试工作了却减少了50%
  • NIST在一项医疗设备测试所进行的15年追踪中发现,98%的软件缺陷可以用过结对测试发现
  • Mozilla浏览器中76%的缺陷可以通过结对测试发现

关于结对测试的提出是有专门的牛人做过跟踪和统计的,并输出有相应文献

手动筛选的方法

  1. 正交矩阵法
  2. All-pairs筛选法

针对上面的两种方法,有一个非常大的缺点,就是耗时

使用PICT自动筛选的用例

下面的地址中可以找到很多工具,这里都是一个名叫Jacek Czerwonka的微软工作者收集的一些关于pairwise testing的资料和tool集合
地址:http://www.pairwise.org/tools.asp

我们这里需要使用的是一款微软也在使用的自动化筛选工具:PICT ,支持系统:Windows,如果需要在其他的系统上使用点击这里

安装PICT在windows上

  1. 下载:进入上面的连接地址,找到名字为PICT的软件进行下载,是一个msi文件,我们点击安装就可以了(还不足1M)
  2. 点击msi文件进行安装
  3. 安装成功后,打开cmd,输入pict,有返回数据,说明安装成功
  4. 进入PICT的安装目录,可以找到一份名字叫PICTHelp.htm的帮助文档

使用PICT

  • 准备用于生产用例的文件
    1. .txt格式的文件
    2. 放在pict的任意目录下
    3. 支持中文但不支持中文标点符号
  • 在txt文件所在的路径使用命令行工具执行: pict test.txt>test.xls

txt文件的格式如下

目的地:canada,usa,mexico
舱位:经济舱,商务舱,头等舱
座位偏好:靠过道,靠窗

导出的格式如下所示:(这里补充一张图片)

PICT高级使用:编写限制条件

  • 表示注释

  • 条件语句的结束符为分号
  • =,<>,>,>=,<,<=,LIKE
  • IF-THEN-ELSE
  • IN
  • NOT,AND,OR
  • 大小写不区分
  • ()表示优先执行,[] ,in 的集合存放在“{}”中
#demo1: IF-THEN-ELSE IN
用户:教师,学生
功能:创建班级,选择已有班级,加入班级,选择已加入班级

IF [用户] = "教师" THEN [功能] in {"创建班级","选择已有班级"};
IF [用户] = "学生" THEN [功能] in {"加入班级","选择已加入班级"};

总结

  • PICT在减少测试用例的数据的同事能保证测试覆盖率,但是如果业务逻辑复杂,需要在参数文件中编写大量的条件判断语句(比如日历测试中需要考虑的闰年,2月等等)
  • 我们应该在实际情况中综合判断,有需要的可以使用这个工具,不要为了使用而使用。不过这个工具确实是非常不错的东西。

你可能感兴趣的:(结对测试(pairwise testing))