黑盒测试之状态转换测试法

  

状态转换图的组成:

1,状态:以圆圈表示,开始和结束是特殊状态;

2,转换:由于事件的驱动,系统从一个状态到另一个状态;

3,事件:以系统的相关接口触发,和特定的转换关联;

4,活动:以“/北硎?活动由状态转换触发;

5条件:以“[]”表示,说明状态转换只有在满足这个条件后进行。


<人力资源/>

<强>状态转换测试:是根据状态转换来设计测试用例的一种方法。一个系统或组件的两个允许状态之间的切换。

基于状态转换的测试方法是探测Web程序动态行为异常的有效途了对径Web这类程序状态的变迁由链接序列和提交数据共同构成的导航场景决定。本文用活动页   面导航图(APND)来描述页面间的链接转换行为,用状态变量的组合对象状态图(COSD)来刻画由提交数据导致的系统状态变量改变,再将两者统一成一个   较为全面的动态行为模型网络程序状态转换图(WSTD)。最后,采用线索k叉树并加以改进来自动生成测试用例。


<人力资源/>

状态转换图- - - - -→状态转换树

1,将开始状态作为状态转换树的根;

2,从左到右检查当前层次的节点,将该节点对应的所有下一个可能状态作为其子节点;

3,重复第二部的动作,直到遇到前面层次的节点,则该节点为最终节点,最终到结束节点。


<人力资源/> <人力资源/>

循环转换机——祝辞n-switch

n-switch是由广口盅周星驰在1978年提出的,他将n-switch定义为程序图中长度为n + 1的连续的边或弧线(通常在状态图中表示循环)的序列。所以单独的一条边(或者转换)就是一个0-Switch,两条连续的边的序列就是1-Switch。

下面以图1所示的状态机分别说明0-Switch和1-Switch的概念和区别。图1所示的状态机示例,其中圆圈表示状态,带箭头的边表示转换,同时为每个转换定义了一个英文字母的标识。

黑盒测试之状态转换测试法

图1状态机示例图


<人力资源/>

<强> 1)0-Switch

针对0-Switch,状态转换图转化为状态转换树的基本规则或者步骤如下:

●步骤1:将初始状态或者开始状态作为状态转换树的根,根在整个状态转换树中的层次是1 .

●步骤2:假设当前生成状态转换树的层次为k,那么从左到右检查所有层次为k上的节点;将该节点对应的所有下一个可能的状态作为它的子节点,状态之间的转换作为两个状态的边。

●步骤3:重复步骤,直到一个位于层次k上的节点出现在层次J上,且J小于等于k,那么这个节点就成为最终的叶节点,而无需继续生成其子节点,或者节点的状态是结束状态,也不需要针对该节点继续进行状态转换。

根据0-Switch的定义,该状态机对应的所有的0-Switch为:a, b, c, d, e, f。同时根据上面0-Switch状态转换树生成规则,生成的状态图如图2所示。

黑盒测试之状态转换测试法

图2 0-Switch状态转换图示例


<人力资源/>

<强> 2)n-switch

  再来看一下1-Switch。根据1-Switch的定义,该状态机对应的所有1-Switch为:ab, ac, bb,公元前,cd, ce、dd,德,   ea, ef、fd fe.1-Switch状态转换树的生成规则是在0-Switch状态转换树基础上,再增加一个层次,即针对0-Switch状态转换   树的所有叶节点,把每个叶节点可能的下一个状态作为该节点的子节点。这里需要注意的是,只需要增加一个层次既可。生成后的1-Switch的状态转换图如   图3所示。

黑盒测试之状态转换测试法

图3 1-Switch状态转换图示例

假如1-Switch还是无法满足测试的强度,那么,可以根据上面的思路,继续增加一个层次,使之达到2开关。但是,需要注意的是,测试强度的增加,是以指数形式增加测试用例为代价的。这两者之间的平衡,是测试人员采用什么样的测试强度的时候必须考虑的。


黑盒测试之状态转换测试法