[概述]
在测试过程中,测试人员经常需要将测试对象的各种输入参数进行组合之后进行测试。有时候,将各种输入参数进行组合,得到的测试用例数目将是非常庞大的。由于测试时间和成本的限制,无法对测试对象输入值的所有组合进行测试。我们应该怎么办?
[正文]
在测试过程中,测试人员经常需要将测试对象的各种输入参数进行组合之后进行测试。有时候,将各种输入参数进行组合,得到的测试用例数目将是非常庞大的。由于测试时间和成本的限制,无法对测试对象输入值的所有组合进行测试。下面是某个网站测试的要求:
------------案例描述:开始-------------
某网站需要支持
ü 不同的浏览器:IE5.0、IE5.5、IE6.0、Netscape6.0、Netscape6.1、Netscape7.0、Mozilla1.1和Opera7;
ü 不同的插件:RealPlayer、MediaPlayer或者没有任何插件None;
ü 不同的客户端操作系统:Windows95、Windows98、WindowsME、、WindowsNT、Windows2000和WindowsXP;
ü 不同的Web服务器软件:IIS、Apache和WebLogic;
ü 不同的服务器端操作系统:WindowsNT、Windows2000和Linux。
这种情况下,需要针对不同的组合进行测试:
ü 8种浏览器
ü 3种插件
ü 6种客户端操作系统
ü 3种Web服务器软件
ü 3种服务器端操作系统
如果考虑所有参数不同取值的组合,那么需要设计和执行的测试用例的数目是1296(8 x 3 x 6 x 3 x 3 = 1296)。
------------案例描述:结束-------------
在软件测试过程中,这种类型的组合是非常普遍的。每种情形都可能有庞大的组合需要进行测试,假如不对它们进行测试,可能会存在较大的风险;而如果对所有组合进行测试,测试时间和资源又不允许。测试人员在面对这种情况的时候,可以采用以下几种常用的策略:
ü 尝试测试所有输入的组合,延期项目,导致的后果可能是失去产品的市场。
ü 选择一些容易设计和执行的测试用例,而忽略其是否能够提供产品质量的信息。
ü 罗列所有的组合,并随机选择其中的子集进行测试。
ü 采取特殊的测试技术,选择能发现大部分缺陷的子集进行测试。
如果采用最后一个策略,那么使用结对测试技术是一个很好的选择。采用结对测试的技术,测试并不针对输入值的所有组合进行测试,而只是针对所有输入值的两两组合。结对测试技术可以显著地减少测试用例的数目,同时保证较高的测试质量。下面是应用结对测试技术减少测试用例数目的例子:
ü 假如软件系统有四个不同的输入参数,每个参数有3个不同的输入值,得到的完全组合数目是34即81。假如采用结对测试的技术,只需要9个测试用例即可覆盖所有参数的两两组合。
ü 假如软件系统有13个不同的输入参数,每个参数有3个不同的输入值,得到的完全组合数目是313即1594323。假如采用结对测试的技术,只需要15个测试用例即可覆盖所有参数的两两组合。
ü 假如软件系统有20个不同的输入参数,每个参数有10个不同的输入值,得到的完全组合数目是1020。假如采用结对测试的技术,只需要180个测试用例即可覆盖所有参数的两两组合。
结对测试技术能够发现所有的单模式失效(Single-mode Fault)和双模式失效(Double-mode Fault)。但是,结对测试并不一定适合于发现测试对象中的多模式失效(MultimodeFault)。
ü 单模式失效:失效是由单个参数引起的,只要针对所有独立参数进行测试,就能够发现该失效。
ü 双模式缺陷:失效是由两个参数共同引起的,必须针对所有参数的两两组合进行测试,才能够确保发现此类缺陷。
ü 多模式缺陷:失效是由三个或三个以上参数共同引起的,采用结对测试技术也可能发现多模式缺陷,但是不能保证测试的充分性。
下面的几个数据可以说明结对测试技术的有效性:
ü 根据AT&T在对其基于局域网的邮件系统进行的测试中,应用结对测试技术得到的1000条测试用例比其原有的1500条测试用例多发现了20%的缺陷,而测试工作量却减少了50%。
ü National Institute of Standards and Technology在一项对医疗设备测试所进行的15年追踪中发现,有98%的软件缺陷可以通过结对测试技术发现。
ü 根据对Mozilla网页浏览器的缺陷分析显示,76%的缺陷可以通过结对测试技术发现。
具体的结对测试,可以通过不同的测试技术来得到,包括正交矩阵(Orthogonal Arrays)的方法、James Bach提供的Allpairs方法,也可以通过分类树方法。表1得到的测试用例是通过Allpairs方法实现的,详细的内容以及其他测试技术的实现方法,可以参考《软件测试设计》原著。
表1 使用Allpairs得到的测试数据
编号ID
|
浏览器
|
插件
|
客户端操作系统
|
服务器
|
服务器端操作系统
|
1
|
IE 5.0
|
None
|
Windows 95
|
IIS
|
Windows NT
|
2
|
IE 5.0
|
RealPlayer
|
Windows 98
|
Apache
|
Windows 2000
|
3
|
IE 5.0
|
MediaPlayer
|
Windows ME
|
WebLogic
|
Linux
|
4
|
IE 5.5
|
RealPlayer
|
Windows 95
|
WebLogic
|
Windows NT
|
5
|
IE 5.5
|
None
|
Windows 98
|
IIS
|
Linux
|
6
|
IE 5.5
|
None
|
Windows ME
|
Apache
|
Windows 2000
|
7
|
IE 6.0
|
MediaPlayer
|
Windows 95
|
Apache
|
Linux
|
8
|
IE 6.0
|
RealPlayer
|
Windows 98
|
IIS
|
Windows NT
|
9
|
IE 6.0
|
None
|
Windows ME
|
WebLogic
|
Windows 2000
|
10
|
Netscape 6.0
|
RealPlayer
|
Windows ME
|
IIS
|
Linux
|
11
|
Netscape 6.0
|
MediaPlayer
|
Windows NT
|
IIS
|
Windows 2000
|
12
|
Netscape 6.0
|
None
|
Windows 2000
|
Apache
|
Windows NT
|
13
|
Netscape 6.1
|
None
|
Windows NT
|
WebLogic
|
Linux
|
14
|
Netscape 6.1
|
MediaPlayer
|
Windows 2000
|
IIS
|
Windows 2000
|
15
|
Netscape 6.1
|
RealPlayer
|
Windows XP
|
Apache
|
Windows NT
|
16
|
Netscape 7.0
|
RealPlayer
|
Windows NT
|
Apache
|
Windows NT
|
17
|
Netscape 7.0
|
MediaPlayer
|
Windows 2000
|
WebLogic
|
Linux
|
18
|
Netscape 7.0
|
MediaPlayer
|
Windows XP
|
IIS
|
Windows 2000
|
19
|
Mozilla 1.1
|
MediaPlayer
|
Windows XP
|
WebLogic
|
Windows NT
|
20
|
Mozilla 1.1
|
MediaPlayer
|
Windows 98
|
Apache
|
Linux
|
21
|
Mozilla 1.1
|
RealPlayer
|
Windows 95
|
IIS
|
Windows 2000
|
22
|
Opera 7
|
None
|
Windows XP
|
WebLogic
|
Linux
|
23
|
Opera 7
|
RealPlayer
|
Windows 98
|
WebLogic
|
Windows 2000
|
24
|
Opera 7
|
MediaPlayer
|
Windows ME
|
Apache
|
Windows NT
|
25
|
IE 5.5
|
RealPlayer
|
Windows 2000
|
~WebLogic
|
~Linux
|
26
|
IE 5.5
|
MediaPlayer
|
Windows NT
|
~IIS
|
~Windows NT
|
27
|
Netscape 6.0
|
~None
|
Windows 95
|
WebLogic
|
~Windows 2000
|
28
|
Netscape 7.0
|
None
|
Windows 95
|
~Apache
|
~Linux
|
29
|
Mozilla 1.1
|
None
|
Windows ME
|
~IIS
|
~Windows NT
|
30
|
Opera 7
|
~RealPlayer
|
Windows NT
|
IIS
|
~Linux
|
31
|
IE 5.0
|
~None
|
Windows NT
|
~Apache
|
~Windows 2000
|
32
|
IE 5.0
|
~RealPlayer
|
Windows 2000
|
~IIS
|
~Windows NT
|
33
|
IE 5.0
|
~None
|
Windows XP
|
~WebLogic
|
~Linux
|
34
|
IE 5.5
|
~RealPlayer
|
Windows XP
|
~Apache
|
~Windows 2000
|
35
|
IE 6.0
|
~None
|
Windows 2000
|
~Apache
|
~Windows 2000
|
36
|
IE 6.0
|
~RealPlayer
|
Windows NT
|
~WebLogic
|
~Windows NT
|
37
|
IE 6.0
|
~MediaPlayer
|
Windows XP
|
~IIS
|
~Linux
|
38
|
Netscape 6.0
|
~MediaPlayer
|
Windows 98
|
~WebLogic
|
~Windows NT
|
39
|
Netscape 6.0
|
~RealPlayer
|
Windows XP
|
~Apache
|
~Linux
|
40
|
Netscape 6.1
|
~MediaPlayer
|
Windows 95
|
~Apache
|
~Windows 2000
|
41
|
Netscape 6.1
|
~None
|
Windows 98
|
~IIS
|
~Windows NT
|
42
|
Netscape 6.1
|
~RealPlayer
|
Windows ME
|
~WebLogic
|
~Linux
|
43
|
Netscape 7.0
|
~None
|
Windows 98
|
~WebLogic
|
~Windows 2000
|
44
|
Netscape 7.0
|
~RealPlayer
|
Windows ME
|
~IIS
|
~Windows NT
|
45
|
Mozilla 1.1
|
~None
|
Windows NT
|
~Apache
|
~Linux
|
46
|
Mozilla 1.1
|
~RealPlayer
|
Windows 2000
|
~WebLogic
|
~Windows 2000
|
47
|
Opera 7
|
~MediaPlayer
|
Windows 95
|
~IIS
|
~Windows NT
|
48
|
Opera 7
|
~None
|
Windows 2000
|
~Apache
|
~Windows 2000
|
假如测试数据列表中的某个参数的取值以~开头,那么说明该参数取值已经有两两组合了。以~开头的参数取值,可以用该参数的任何其他取值来代替,而不会影响其两两组合的覆盖率。因此,可以将以~开头的参数取值,用更关键的或者经常使用的参数值来代替。同时,使用Allpairs得到的测试数据中,还罗列了所有的两两组合,并且统计了每个两两组合出现的次数,以及每个测试用例所包含的两两组合数。
从上面的结果可以看到:通过采用合适的测试技术,测试用例数目原来需要1296个,而目前只需要48个进行覆盖,测试用例数目减少了96%。前面已经提到了,结对测试可以发现所有的单失效模式和双失效模式的缺陷,而实践过程中,大部分的失效是单失效模式和双失效模式,多失效模式占的比例很少。因此,通过采用合适的结对测试,可以大大降低测试用例数目,减少测试工作量,同时可以实现较好的测试覆盖率,保证测试质量。
更多资料,欢迎访问:http://blog.csdn.net/wenqiang_zheng/article/details/6783608
分享到:
相关推荐
ISTQB AL-TA高级测试分析师中文大纲(2012版) 考试专用
ISTQB AL-TA(ISTQB高级测试分析员模块)主要是针对测试业务分析人员而设立的知识和实践。
ISTQB AL-TA高级测试分析师中文模拟题(2012版) 考试专用
ISTQB学习用,主要包括高级教程,含测试经理,测试分析师等几部分
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chap07.pdf 学习资料 复习资料 教学资源
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa08.pdf 学习资料 复习资料 教学资源
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa16.pdf 学习资料 复习资料 教学资源
ISTQB 2010-2012年官网资料打包下载,大多为初级资料,英文版,包含小部分高级、专家级资料。可供准备考ISTQB初级的朋友使用。
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chap08.pdf 学习资料 复习资料 教学资源
Peter Morgan, Angelina Samaroo,Brian Hambling (2010), Software Testing: An ISTQB®-ISEB Foundation Guide, British Computer Society
文档包括了人工智能介绍、AI质量特征、功能表现度量、神经网络和测试、专属质量特征、系统测试环境等内容,是开展人工智能测试的综合性文档。 第一章:人工智能介绍。 第二章:基于人工智能的系统的质量特征。 第三...
ISTQB-CTFL-简介,详细的介绍了ISTQB技术,及其适用范围
高级软件测试(卷一)测试分析师教材,英文版,CHM格式。 Publisher: Rocky Nook Number Of Pages: 486 Publication Date: 2008-10-15 ISBN-10 / ASIN: 1933952199 ISBN-13 / EAN: 9781933952192
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa04.pdf 学习资料 复习资料 教学资源
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa05.pdf 学习资料 复习资料 教学资源
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa03.pdf 学习资料 复习资料 教学资源
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa02.pdf 学习资料 复习资料 教学资源
istqb-advanced-level-test-manager-syllabus-v5-高级测试经理认证大纲chapa07.pdf 学习资料 复习资料 教学资源