鉴源实验室·测试设计方法-正交实验法
上篇文章我们介绍了因果图法结合判定表(测试设计方法-因果图),来对复杂逻辑关系的需求进行分析和测试设计。本章我们介绍正交实验法,另外一种对复杂的输入条件进行分析和设计的测试方法。
01
开始之前
上篇介绍中我们说明了因果图法在需求中输入和输出以及中间过程有复杂逻辑约束关系时使用,可以通过因果图轻松梳理整个过程。同样的当输入条件多,且相互之间有逻辑关联,加上多个中间过程状态的选择,最终可能生成的测试用例数量多的惊人,如上一篇举例中我们输入条件1个,中间状态2个,输出结果3种,共设计了12条测试用例。如果条件更多时,测试用例的数量可能要翻倍。
使用正交实验法进行测试的分析和设计这时候可以有效的减少客观上不合理或者自相矛盾的测试用例,从而提高测试效率。
正交实验法特别适用于多个输入条件之间存在逻辑关系的情况,但是跟因果图法的输入条件间逻辑关系不一样。因果图法的输入条件间的互斥、唯一等逻辑关系是多个条件可能不能同时存在的关系,而正交实验法的输入条件通常是可以同时存在,但各个条件因自身状态或取值不同,形成的多条件组合会因相互作用的关系产生不同的结果。
02
正交实验法的使用步骤
使用正交实验法进行测试分析和设计通常步骤如下:
1. 确定正交实验中的条件因子。首先需要根据功能的需求描述,对影响结果的所有输入条件进行提取,转化为实验中的实验因子。当需求说明中描述繁多,条件之间影响逻辑复杂时,需要使用前文介绍的需求分析通用方法,对需求先进行层层分解,从而全面的确定实验因子,防止因子遗漏。
2. 逐个确定每个因子的实验中状态或取值。因子的实验取值可以是数值型定量的,也可以是状态值定性的。
3. 对确定好的因子及因子实验数据进行正交,生成正交表。正交表通常使用“L”表示。如有3个输入条件的实验因子,每个因子分别取4个实验值进行组合实验,则各因子完全正交做全面实验法,会有4的3次方种实验组合。随着因子和实验取值的增加,完全实验法时的实验组合会呈指数增长。
4. 正交实验法特别适用于实验结果情况未确定的探索性测试,针对全面实验法的海量测试组合,实际种操作时通常会采用简单对比法来缩小测试的组合选择。
5. 简单对比法在日常的测试设计中也会用到,多个输入因子中,只变化1个因子做测试实验,其余因子均固定不变,如A1B1C1、A2B1C1、A3B1C1,在测试结果中选择该变化因子导致结果最好的实验取值,假设A1对结果促进最好。然后换1个因子变化,固定其余测试因子,已测试实验确定最优取值的取最优值,接下来实验为A1B2C1、A1B3C1,因为A1B1C1在上轮中已完成测试,所以此轮不重复,假设得出B3的结果组合是最好的,那固定下轮实验的有2个因子,即A1B3。最后观察剩余1个因子的组合变化即得出最佳组合,A1B3C2、 A1B3C3,同样A1B3C1上轮中已测试,最终实际执行的测试组合数量远小于完全测试法。
6. 在结果确定的测试中,不能使用对比法,反而必须进行完全测试以防止测试设计遗漏。
03
正交实验法的示例
本篇我们继续使用空调的案例在描述的基础上改动进行分析,本案例跟实际情况有所出入,仅限于本文列举示范使用。
需求规格说明要求:自动空调在多种情况下要求自动启动工作,1.在车内温度超过25摄氏度时,空调自动启动工作,风扇启动,空调压缩机启动。在车内温度低于15摄氏度时,空调自动启动工作,风扇启动,空调压缩机不启动。温度在15摄氏度至25摄氏度之间时,空调不启动,风扇不启动,空调压缩机不启动。2.空气湿度超过50%时,空调自动启动工作, 风扇启动,空调压缩机启动。
分析上段的需求说明我们可以得出:决定空调启动的不同条件有2个,1个是温度,1个是湿度。
绘制实验正交表
在实验输入条件因子较少时,也可以通过作图法画出因子实验组合的坐标系(类似于数学坐标系),每一个数轴代表1个输入条件,数轴上分别标记每个条件的取值,然后在坐标系中取因子交叉点的坐标作为实验点。
当输入条件较多时,如4个不同输入条件,使用作图法就需要画出4坐标系,此时实验点的选取反而不直观,通常就会使用正交表来代替。
关于正交组合最小取值的计算,本文不做介绍。在结果确定的符合性测试设计中,通常要求测试分析阶段尽量考虑所有测试组合情况,然后根据实际情况对组合做筛选,正交法的测试组合优化筛选此时对输入条件组合删减不是很合适。
本例中输入因子温度可以考虑取值:A1-10℃、A2-20℃、A3-30℃。湿度因子可以考虑取值:B1-30%、B2-50%、B3-80%。
得出的正交表如下:
生成实验方案
根据正交表的所有因子取值的组合,我们可以得出实验方案表如下:
通过上面的分析,我们可以看到测试设计覆盖了两个决定空调开启状态条件的所有组合,因为不同状态下的空调开启风扇和压缩机启动状态不一样,所以通过这种分析方法我们就可以把所有可能全部做覆盖测试,不会造成场景遗漏测试的情况。
我们在实际测试中经常会遇到多个测试输入条件,且或每个测试条件均有几个可选值的情况,遇到这类的测试时,就可能会因为测试条件选取的组合设计遗漏,导致某些场景未测试覆盖到而造成故障未发现。建议遇到这类测试场景时使用正交分析法,哪怕不按步骤画出正交表和实验表,简单的使用输入条件正交组合也能达到设计不遗漏的效果。
04
测试小结
在使用正交实验法时有如下建议:
1. 在面对多个测试输入条件(3个以上),且每个条件可以有多个不同取值,并且条件间组合的不同会直接影响输出结果时,非常有必要使用正交实验法来分析得出所有的测试组合,从而考虑所有场景实现的正确性。
2. 在执行具有多个测试输入条件的探索性测试设计时,使用正交实验法简单对比筛选实验组合,可以极大的提高测试效率。
3. 即使不严格安装正交实验法的步骤来测试设计,仅使用正交组合也可以提升测试设计质量。
参考文献:
1. 全国计算机技术与软件专业技术资格考试指定用书 – 软件评测师教程.