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

状态转换图的组成:

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

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

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

4、活动:以“/”表示,活动由状态转换触发;

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


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

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


状态转换图—–>状态转换树

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

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

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



循环转换机–>n-switch

 N-Switch是由TSUN S. CHOW在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:重复步骤2,直到一个位于层次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、bc、cd、ce、dd、de、
ea、ef、fd、fe。1-Switch状态转换树的生成规则是在0-Switch状态转换树基础上,再增加一个层次,即针对0-Switch状态转换
树的所有叶节点,把每个叶节点可能的下一个状态作为该节点的子节点。这里需要注意的是,只需要增加一个层次既可。生成后的1-Switch的状态转换图如
图3所示。

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

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

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

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/196162.html

(0)
上一篇 2021年11月16日
下一篇 2021年11月16日

相关推荐

发表回复

登录后才能评论