章晓勤
(安徽电子信息职业技术学院,安徽 蚌埠 233030)/
开发人员开发出一款新的软件,必定希望它有良好的运行效果,有广阔的市场,能带来更大的利润.而若有广阔市场,则软件必须运行在各式各样的系统之上.这里“各式各样的系统”指的是不同的硬件系统和不同的软件系统.随着计算机技术的发展,计算机硬件已经达到了相当高的水平,这里暂且不去考虑它,单只考虑新开发的软件要运行的软件系统.要使得新开发的软件能正常运行,需要考虑它和其他软件的兼容性,包括与操作系统、浏览器、杀毒软件等的兼容性.而操作系统又有很多种,很多不同的版本,浏览器和杀毒软件也存在同样的情况.如果一一去进行测试,这些组合将是一个庞大的数字,测试人员的工作量也将非常巨大.如何从这庞大的组合中挑选合适的数据?挑选多少组数据是合适的?挑选的数据具不具备代表性?这些都是需要解决的问题.
正交实验法,又称为正交设计实验法,或正交设计试验法,它产生于许多实际工作.现实当中,若有多个因素的改变影响某个事件的改变,则为了弄清多个因素中哪些因素是重要的,哪些因素是不重要的,哪几个因素搭配在一起会产生极值,需要通过实验进行验证.若因素个数比较多,同时每一个因素有多种取值,则实验量将会非常大.显然,不能对每一个数据都进行实验.正交实验法就是一种从大量的实验数据中挑选适量的、有代表性的数据进行测试的实验设计方法.
正交实验法是一种研究和处理多因素实验的科学方法[1].其实验原理是依据正交性从全面实验需要测试的所有点中挑选出一部分有代表性的点来进行实验.挑选出的这些点具备“均匀分散,齐整可比”[2]的特点.正交实验法依据正交表,科学地设计实验条件,合理安排实验.其使用过程中有几个关键属性.
(1)次数:实验次数(Runs)是指实验一共需要执行的次数,在软件测试中就是测试用例的数目.
(2)因素:因数(Factor)是指影响考核指标取值的量.
(3)水平:水平(Level)是指实验因素的取值.
(4)正交表:正交表是运用组合数学理论在正交拉丁名的基础上构造的一种规格化的表格.标记为:Ln(ji),其中:L是正交表的符号,n是正交表的行数,也就是实验次数,j是正交表中的水平数,i是正交表的列数,也就是最多可以安排的因素的个数.根据因数和水平数可以计算出实验次数:
实验次数(行数)=∑(每列水平数-1)+1正交表的重要性质:
1)齐整可比性.在正交表的每列中不同数字出现的次数是相等的.
2)均匀分散性.在正交表的任意两列中,若将同一行的两个数字看成一个有序数对,则每个数对出现的次数是相等的.
正交表的性质决定了在用它来设计测试用例时,各因素各水平值的搭配是均衡的.
兼容性测试是软件测试中的一种系统测试方法,用于验证软件与其所依赖的环境之间的依赖程度,包括对硬件、对平台软件和对其他软件的依赖程度等.兼容性测试包括硬件兼容性测试、软件兼容性测试、数据兼容性测试和平台化软件兼容性测试四种类型[3].
硬件兼容性测试需要进行的测试包括:(1)与整机的兼容性测试;(2)与板卡及配件的兼容性测试;(3)与打印机的兼容性测试.软件兼容性测试通常要考虑:(1)与操作系统的兼容性;(2)与数据库的兼容性;(3)与中间件的兼容性;(4)与浏览器的兼容性;(5)与其他软件的兼容性等.数据兼容性则包括与不同数据格式的兼容性.平台化软件是指用来构建与支撑应用软件的独立软件系统.在进行平台化软件兼容性时涉及到的内容非常多,几乎涵盖了软硬件测试的全部领域.包括:(1)不同规模硬件平台的兼容性;(2)不同操作系统的兼容性;(3)不同数据库系统的兼容性;(4)客户端的兼容性;(5)数据的兼容性.
正交实验法一般用于黑盒测试,设计测试用例需要按以下步骤进行.
(1)确定待测软件有哪些因素.
在软件测试中,因素是指软件的输入和硬件的运行环境.在测试时,若因素太多,则可以根据专业知识和工作经验去掉一些对实验结果影响不大的因素[4].
(2)确定待测软件每个因素分别有几个水平.
首先考虑待测软件每个因素的取值范围,再采用等价类划分、边界值分析等测试技术来确定因素的取值,从而确定水平个数.
(3)从标准正交表中选择一个合适的正交表.
选择正交表时要考虑因素的个数、因数的水平数和正交表的行数.可分为三种情况:
1)待测软件因素个数和水平个数与正交表相匹配.
2)待测软件因数个数与正交表因素个数不同,水平个数相同.
3)待测软件因数个数和水平个数与正交表都不相同.
一般而言,选取正交表时要求:正交表的行数与待测软件所确定的水平数相同;正交表的列数要大于或等于待测软件所确定的因素个数.即满足1)和2)两种情况.对于第3)种情况,相对而言很复杂,在正交表中查找不到,可以借助一些工具例如ALL Pairs正交表生成工具来生成正交结果[5].
(4)把待测软件各个因素的水平值映射到测试用例表中,并把每一行各因素水平值的组合作为一个测试用例.
对于一个具有n个因素的待测软件,每个因素有m1,m2,m3,…,mn个取值,完全进行兼容性测试需要进行m1×m2×m3×…×mn次测试[6].对于一般的系统而言这个组合是一个庞大的数字,测试量非常大.使用正交实验法可以从大量的数据中挑选合适的数据进行测试,大大降低了工作量.
使用正交实验法挑选出的数据有何特点?能否代表全面测试的所有数据?下面通过一个实例进行分析.
假设某兼容性测试案例中涉及A、B、C3个因素,每个因素有3个水平,分别为a1,a2,a3,b1,b2,b3,c1,c2,c3.使用全面实验法,设计测试用例如表1所示.
从表1可以看出,一共需要设计33个测试用例,进行27次测试.
使用正交实验法设计的测试用例如表2所示.
从表2中可以看出,只需要设计9个测试用例,将测试用例数减少了66.7%.那么,用这9个测试用例能否代表全面实验法设计的27个测试用例呢?下面通过图形进行分析.
全面实验法设计的测试用例如图1所示.
全面实验的27个测试用例对应着图1中的27个点.从图1可以看出在全面实验中对各因素与水平间的关系剖析得比较清楚,但是实验次数太多.特别是当因素个数比较多,每个因素的水平数目也比较多时,实验量大得惊人.
表1 3因素3水平全面实验法设计测试用例表Table 1 3 factors 3 levers Test Cast Table designed in comprehensive experiments
表2 3因素3水平正交实验法设计测试用例表Table 2 3 factors 3 levers Test Cast Table designed in orthogonal experimental method
图1 3因素3水平全面实验法兼容性测试点Fig.1 3 factors 3 levers compatibility testing point in comprehensive experiments
用正交实验法设计的测试用例如图2所示.
图2 3因素3水平正交实验法兼容性测试点Fig.2 3 factors 3 levers compatibility testing point in orthogonal experimental method
正交实验法的9个测试用例对应着图2中的9个点,从图2中可以看出选取的9个点分布在立方体的9个平面中,每个平面上都恰好有三个点,每个平面的每行每列有且仅有一个点,因此具有“均匀分散,齐整可比”的特点.这就表明,用正交实验法设计测试用例虽然不能完全代表全面实验法设计的测试用例,但无疑是最具有代表性的,测试用例数最少的一种方案.
通过以上分析得知,在兼容性测试中使用正交实验法设计测试用例,可以大大地减少测试用例的数目,减少工作量.下面以“行业信息库管理系统”的兼容性测试用例的设计过程来演示正交实验法在兼容性测试方面的应用.
“行业信息库管理系统”是作者曾经参与开发的一款基于B/S结构的某公司行业信息管理软件,在进行兼容性测试时需要着重考虑以下4个方面:
1)操作系统
本软件只考虑Windows操作系统,包括Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows 8.
2)浏览器:IE6、IE8、谷歌浏览器、360浏览器、猎豹浏览器.
3)分辨率:1024*768、1440*900、1280*800、1280*1024、800*600.
4)杀毒软件:金山毒霸、360、QQ电脑管家、瑞星、卡巴斯基.
根据正交实验法设计测试用例的步骤,进行测试用例的设计.
(1)确定待测系统有哪些因素.
根据项目要求,兼容性测试一共考虑操作系统、浏览器、分辨率、杀毒软件4个因素.
(2)确定待测系统中每个因素分别有几个水平.
本软件中,操作系统、浏览器、分辨率、杀毒软件这4个因素都要考虑5个取值,因此都是5个水平.
(3)从标准正交表中选择一个合适的正交表.
从上面分析可知,这是一个4因素5水平的案例.从标准正交表5水平的正交表中进行挑选,由于不存在L17(54)正交表,因此挑选最接近的6因素5水平的正交表L25(56).L25(56)标准正交表如表3所示.
(4)把各因素的水平值映射到测试用例表中,并把每一行各因素水平值的组合作为一个测试用例.测试用例表如表4所示.
表3 L25(56)标准正交表Table 3 L25(56) Standard Orthogonal experiment table
由于只有4因素,而L25(56)标准正交表最多可以安排6个因素,因此,在设计测试用例时第5列和第6列的数据不需要考虑.
4因素5水平的项目,在进行兼容性测试时,若进行全面实验,则需要设计54个测试用例,进行625次测试.而使用正交实验法设计测试用例时,只需要25个测试用例,将工作量降低至原来的4%.当因数个数和水平个数更多时,使用正交试验法的效果就更加明显.
表4 测试用例表Table 4 Test Cast Table
由于兼容性测试在软件兼容性测试方面涉及到的内容很多,各种软件类型多,版本多,要进行全面测试工作量大.在兼容性测试中使用正交实验法设计测试用例,能从海量的数据组合中挑选合适的、有代表性的数据,从而有效地减少工作量,节约测试成本.
致 谢
感谢在论文撰写过程中给予我建议和帮助的同事!
参考文献:
[1] 彭永利,罗灿,陈柏光 .1,3-二溴-2,2-二(溴甲基)丙烷的合成及结构表征[J].武汉工程大学学报,2013,35(7):37-42.
PENG Yong-li,LUO Can,CHEN Bai-guang.Synthesis and structure characterization of 1,3-dibromo-2,2-Bis(bromomethy1)propane[J].Journal Of WUHAN Institute Of Technology,2013,35(7):37-42. (in Chinese)
[2] 肖驰.正交设计法在软件测试中的应用[J].现代计算机,2009(6):7-9.
XIAO Chi.Application of Orthogonal Design Method in Software Testing[J].Modern Computer,2009(6):7-9. (in Chinese)
[3] 何苗,朱有德.正交试验在软件测试用例设计中的应用[J].光电技术应用,2013,28(3):77-78.
HE Miao,ZHU You-de.Application of Orthogonal Experiment in Software Test Case Design[J].Electro-Optic Texhnology Application,2013,28(3):77-78. (in Chinese)
[4] 牛胜芬,董明,张爱良,等.试验信息系统兼容性测试策略[J].飞行器测控学报,2012,31(3):17-20.
NIU Sheng-fen,DONG Ming,ZHANG Ai-liang,et al.Compatibility Test Strategy for Experiment Information Systems[J].Journal of Spacecraft TT &C Technology.2012,31(3):17-20. (in Chinese)
[5] 唐丽莉,曾定洲.正交法在GSM软件测试中的应用 [J].计算机技术与发展,2013,23(3):90-92.
TANG Li-li,ZENG Ding-zhou. Application of Intersection Method in Test for GSM Software[J].Computer Technology and Development, 2013,23(3):90-92.(in Chinese)
[6] 赵勇,张智强,严俊,等.软件兼容性测试的故障定位分析[J].计算机科学与探索,2013,7(5):406-410.
ZHAO Yong,ZHANG Zhi-qiang,YAN Jun,et al.Analysis of Fault Location in Software Compatibility Testing[J].Journal of Frontiers of Computer Science and Technology,2013,7(5):406-410.(in Chinese)