第二步,使用第3节介绍的方法通过遍历顺序图中的事件序列从而找出所有的场景。在图5中,消息4和消息7、消息10和消息12分别构成了分支,处理分支时,可以为顺序图构造多个DAG图,每个图包含其中一条分支。这样就将复杂顺序图化简成多个简单的顺序图来进行处理,遍历每个DAG图就可以得到所有场景。图5中,得到3个场景如下:
A: 1, 2, 3, 4, 5
B: 1, 2, 3, 6, 7, 8, 9, 10
C: 1, 2, 3, 6, 7, 8, 11, 12
第三步,选定一个场景,根据其消息序列在顺序图中遍历该场景,记录场景的输入和最终输出。以场景B为例:
输入:用户调用connect操作。
预期输出:返回“nak”消息,表示申请IP不成功。
第四步,确定每个场景的环境条件。首先从顺序图中找出所有的测试单元,在顺序图中,每一个交互的对象就是一个测试单元。本例中的DHCP_Client和DHCP_Server就是两个测试单元;其次对每一个测试单元,从类图中导出相应的环境设置(包括对象属性、操作和消息中的参数)。结果如表1所示。
表1:DHCP的测试单元与环境
测试单元 DHCP-Server DHCP-Client
Offer:Boolean
环境设置 hasFreeIP:Boolean 无
找出环境设置之后,再为每一个场景找出相应的选择,从而确定其环境条件,如场景B中,Offer=true,hasFreeIP =false。
第五步,测试用例生成 一个测试用例包括4个部分:环境条件、输入、方法调用序列、预期输出。对于场景B,所有这些信息已从前面的四步中生成,只要将它们组合在一起就可以了。场景B的测试用例为:
环境条件:DHCP-Server:offer=true,hasFreeIP=false
文章来源于领测软件测试网 https://www.ltesting.net/