状态转换图的组成:
创新互联专注网站设计,以设计驱动企业价值的持续增长,网站,看似简单却每一个企业都需要——设计,看似简洁却是每一位设计师的心血 十余年来,我们只专注做网站。认真对待每一个客户,我们不用口头的语言来吹擂我们的优秀,成百上千的成功案例见证着我们的成长。
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。但是,需要注意的是,测试强度的增加,是以指数形式增加测试用例为代价的。这两者之间的平衡,是测试人员采用什么样的测试强度的时候必须考虑的。