黑盒测试用例设计方法之状态迁移图的使用
什么是状态迁移法许多需求用状态机的方式来描述,状态机的测试主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法的状态转移等。对于被测系统,如果我们可以抽象出它的若干个状态、以及这些状态之间的切换条件和切换路径,那么我们可以从状态迁移路径覆盖的角度来设计用例对该系统进行测试。状态迁移法的目标是设计足够的用例达到对系统状态的覆盖、状态-条件组合的覆盖以及状态迁移路径的覆盖。
如何使用状态迁移法
本工程方法具体的实施步骤如下:
步骤1:绘制状态迁移图
1.根据特性测试需求分析和SRS等参考文档,针对每项测试子项的测试规格,分析有哪些系统状态,这些状态之间的迁移关系;
2.用圆圈代表状态、箭头代表状态迁移方向,绘制状态迁移图,在箭头旁标识该状态迁移的条件。如下图:
步骤2:定义状态-条件表
分析每个状态下,输入不同条件导致的输出和状态迁移,将其列在下表:
步骤3:根据状态迁移图推导测试路径
1.从初始状态节点(可以有多个)出发,依据广度优先原则遍历状态迁移图,遍历到结束状态节点或已遍历过的节点为一次遍历结束,得到一条测试路径。具体算法可以参考有向图的搜索算法;
2.选取需要测试的路径,达到规定的路径覆盖率。这里每条路径对应一个或几个测试用例规格。将测试用例规格填入下表:
其中“覆盖路径”指该用例覆盖的路径的分支序列;“覆盖的状态-条件组合”指该分支序列上各状态点和条件的组合(可不填)。
为了更好的进行遍历,可以借助于状态转换树。使用状态转换树首先要确定一个根节点,比如上图中的“起点停止”状态,然后从该状态往后延伸,有三个方向,可分别转换到播放状态、前进状态、录音状态。然后再分别从这三个状态往后延伸,直到所有的状态转换都包含到该状态转换树中。从根节点到最后的叶子节点就是需要测试的路径。
步骤4:选取测试数据,构造测试用例
对选定的每条需要测试的路径,结合等价类、边界值分析,确定每个状态节点的输入,沿着该路径通过表格将各种测试数据的输入输出对应起来,这样就完成了测试用例的设计。编写完全的用例填入下表:
页:
[1]