状态转移图法剖析需求问题

发表于:2010-11-30 11:06

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

 作者:mengdie    来源:TaoBao QA Team

  状态转移图法指的是通过识别系统中的各种状态(如打开、关闭),所有引起状态转变的事件(如:取钱,关闭一个文件等),相关的状态转变(转变并不一定是改变不同的状态,也可以是保持在同一个状态),状态转变导致的动作(如一个错误消息),从而来发掘需求文档中未定义的场景组合情况(如通过无效状态、事件的组合,确保系统不会去执行状态之间的无效路径,发生错误的动作或者是错误的状态)。状态转移图法要求确保每个状态之间的转变过程至少被执行过一次,一般用于检测需求中涉及的状态变化比较多的系统。

  业务场景中的单个步骤通常可以被转成一个状态或转移点,所有的步骤都是与状态或转移点相匹配的,这样在罗列的过程中,如果需求中存在被遗漏的状态或转移点,就可以在整理的过程中进行补充了,主要可以发现的问题罗列如下:

  1.把结构化的文本场景转化为半正式的状态图,检查状态图的完整性和一致性,是否所有的状态都已经被定义?

  2.是否所有的状态都已经联系起来了?状态和事件名表达上是否都一致?

  3.检查是否所有相关的事件都已经被处理?

  4. 做交叉检查,是否相同的状态,转移,事件出现在2个场景里?

  状态转移图法的具体操作步骤如下:

  step1.列出起始状态,终止状态,输入(事件),输出(动作)

  step2.构建状态转移图

  step3.从状态转移图中导出测试用例

  下面以网站在线购物的例子进行详细的说明:

  从购物者的角度出发,交易起始于浏览网站,可以通过点检链接以及浏览类目的方式,这个是浏览的状态,增加物品到购物车是一个事件,系统将显示一个选择对话框,要求顾客告诉系统要购买几件物品,以及其他购物车所需的信息。接着是选择物品的状态,完成后,顾客告诉系统继续进行购物,系统又显示购物主页,然后又回归到浏览网站的状态。再接着是用户选择确认购买,进入登陆的状态,确认购买,并最终完成购物…….

  step1:从这个例子中,我们可以看出总共有6种状态:浏览网站、选择物品、登陆、购买、确认、离开

  事件/动作包括:点击链接,增加到购物车,继续购物,立刻购买,登陆失败,登陆成功,购买失败,购买成功,放弃,重新进行购物

  step2:构建状态转移图如下:

  简化版如下:

  step3:构建测试用例:

  参考的角度:1.以路径的方式进行覆盖(对于循环的,请关注死锁或者是内存泄漏) 2.以每个状态点被访问一次进行覆盖 3.所有的状态转移进行至少被覆盖一次

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号