状态转换测试的灵魂:N-Switch

发表于:2011-4-28 10:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:郑文强    来源:51Testing软件测试网采编

  根据状态转换树设计测试用例,首先需要将状态转换图转化为状态转换树,将可能具有无限多状态循环的状态转换图转化为不含循环的相应数目状态的状态转换树。在转换过程中,需要覆盖所有的状态,并且需要包含状态转换图中的所有转换。根据测试强度的不同,除了0-Switch之外,有时候还需要满足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。但是,需要注意的是,测试强度的增加,是以指数形式增加测试用例为代价的。这两者之间的平衡,是测试人员采用什么样的测试强度的时候必须考虑的。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号