测试用例设计方法之状态迁徙图法
 

2009-07-23 作者:xuhongge 来源:xuhongge的博客

 

在遇到有事务流或由于某种条件成立导致状态改变的软件项目时,如何进行测试用例的设计就比较麻烦。以前所讲的各种方法,每个被测对象之间是没有相互的关联或数据流向发生,遇到这样的事务流软件就要考虑用其他方法进行用例的设计了。

以前在讲操作系统原理时,曾经提到过进程的状态转换。我们看以下图形:

当进程从就绪队列中被进程调度算法选中的时候,它就被调进CPU里执行,这个时候进程的状态由就绪状态变换到执行状态;而当该进程执行完毕的时候,是由于所分配的时间片用完,进程调度算法又回到就绪队列里重新提取。当进程执行到一定阶段时,由于发生I/O事件,例如:外部数据的输入或运行的中间数据的输出,这时候CPU必须进行中断处理,那么该进程就由执行状态转变成阻塞状态,等待事件的完成;当事件完成后,进程从阻塞状态就转换成就绪状态,等待进程调度算法的再一次选中。

以上是操作系统中进程的状态迁徙过程。

我们以QQ登录界面为例子,用来讲解状态图法设计测试用例。

(一)通过对QQ登录界面的分析,我们看到有4个输入项:

ip1:输入帐号

ip2:输入密码

ip3:点击“登录”按钮

ip4:点击“关闭”按钮

(二)那么从QQ启动界面开始,进行状态迁徙分析:

第1轮状态图:

      

第2轮状态图:

第3轮状态图:

(三)从最后的状态图中可以看出QQ登录界面最后的状态有7种,那么从这7种状态中构造出状态类表:

状态/用例 用例1 用例2 用例3 用例4 用例5 用例6 用例7 用例8
QQ启动 1 1 1 1 1 1  3 1 1
帐号已输入   2   2  4     3  
密码已输入     2   2  4      
“登录”按钮已点击       3 3 2 2  
帐号/密码已输入   3 3 5 5   4 2
QQ主界面   4 4 6 6   5  
退出 2         4   3

(四)有一些用例没有列出,望大家自己思考,最后所有的测试用例都省略


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织