常用测试用例设计方法论(二)
正交实验设计方法
正交试验设计,是指研究多因素多水平的一种试验设计方法。根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备均匀分散,齐整可比的特点.
正交试验分析法包括以下常用术语:
(1)指标:通常把判断试验结果优劣的标准叫做试验的指标。
(2)因子:是指所有影响试验指标的条件。
(3)因子的状态:是指影响试验因子的因素,也称之为因子的水平
- 正交表
正交表是一整套规则的设计表格,用 L为正交表的代号,n为试验的次数,t为水平数,c为列数,也就是可能安排最多的因素个数。例如L9(3^4)它表示需作9次实验,最多可观察4个因素,每个因素均为3水平。一个正交表中也可以各列的水平数不相等,我们称它为混合型正交表,如L8(41×24),此表的5列中,有1列是为4水平,4列为2水平。
正交表具有两条性质:
- 每一列中各数字出现的次数都一样多。
- 任何两列所构成的各有序数对出现的次数都一样多。
所以称之谓正交表。
- 设计过程
1)确定试验因素及水平数;
2)选用合适的正交表;
3)列出试验方案及试验结果;
4)对正交试验设计结果进行分析,包括极差分析和方差分析;
5)确定最优或较优因素水平组合
- 注意点
- 选择正交表时,因子的数量对应正交表的咧数,正交表的行数是因子水平的倍数。例如,一个3因子3水平的场景,可以选择一个3列9行的正交表。
- 被测对象的因子与正交表中的列数不同时,选择正交表中因子稍大于被测对象的因字数,且实验次数最少的,多余的因子弃用。
- 被测对象水平与正交表中的水平不同时,可以根据实际情况进行合并,然后拆分。
- 因子,水平都不相同时,选择因子,水平稍大于被测对象的,且实验次数最少的。
总之,正交表的选择,要追寻正交表因子和水平稍大于被测对象的因子和水平,做好必要分析,舍弃影响小的因子和水平,保证实验次数最少。
- 案例
一个网站登录页面,有登录名,密码,验证码三个因子,
- 分析被测对象,设计因子状态图:
2)对因子-状态表进行加权筛选(本例不做筛选),转化为正交表如下:
3)根据正交表,转化为实际用例。
4)根据实际需要,可以添加实验数据
功能图分析方法
- 简介
功能图分析法是一种灰盒测试(兼有白盒测试和黑盒测试)用例设计方法;通常情况一个程序的功能说明由动态说明和静态说明组成。
动态说明描述了输入数据的次序或转移次序。
静态说明描述了输入条件与输出条件之间的对应关系。用功能图可以形象的表示程序的功能说明,并机械的生成功能图测试用例。
对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的测试用例往往是不够的,必须用动态说明来补充。
- 构成
功能图方法是功能图形式化的表示程序的功能说明,并机械地生成测试用例。功能图模型由状态迁移图和逻辑功能模型组成。
状态迁移图用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。
逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。逻辑功能模型只适用于描述静态说明,输出数据仅由输入数据决定。
测试用例是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。
- 测试用例生成方法
如何从状态迁移图中选取测试用例?
若用节点代替状态,用弧线代替迁移,则状态迁移图就可以转化成一个程序的控制流程图形式,问题就转化为程序的路径的测试问题了。
- 测试用例生成规则
为了把状态迁移(测试路径)的测试与逻辑模型(局部测试用例)的测试结合起来,从功能图生成实用的测试用例,需要定义下面的规则。
在一个结构化的状态迁移中,定义三种形式的循环:顺序,选择和重复。
- 测试用例生成过程
- 生成局部测试用例
在每个状态中,从因果图生成局部测试用例,局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。
- 测试路径生成
利用上面的规则(3种)生成从初始状态到最后状态的测试路径。
- 测试用例合成
合成测试路径与功能图中每个状态的局部测试用例。结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。
- 状态迁移图法
状态迁移图的简介
- 许多需求用状态机的方式描述,状态机的测试主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过验证其在给定的条件内是否能产生需要的状态变化,有没有不可达的状态和非法状态,可会不会产生非法的状态转移等。
- 通过构造能导致状态迁移的时间来测试状态之间的转换,常用于协议测试。
- 用这种方法可以设计逆向的测试用例,如状态和时间的非法组合。
状态迁移图的步骤
- 画出状态迁移图
- 列出状态-事件表
- 得到状态转换树
- 推出测试路径
- 根据测试路径编写测试用例
- 实例
参考文献: