在遇到有事务流或由于某种条件成立导致状态改变的软件项目时,如何进行测试用例的设计就比较麻烦。以前所讲的各种方法,每个被测对象之间是没有相互的关联或数据流向发生,遇到这样的事务流软件就要考虑用其他方法进行用例的设计了。 以前在讲操作系统原理时,曾经提到过进程的状态转换。我们看以下图形: 当进程从就绪队列中被进程调度算法选中的时候,它就被调进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 |
(四)有一些用例没有列出,望大家自己思考,最后所有的测试用例都省略
|