大家觉得这个流程的用例怎么设计才好呢?
某OA系统的假期申请流程,假期分年假和病假两类。年假审批流程:
① 若连续休假不超过3天,则审批流程为:本人提出申请→直接上级审批;
② 若连续休假超过3天(包括3天),则审批流程为:本人提出申请→直接上级审批→部门总监审批;
病假审批流程:
① 若连续休假不超过3天,则审批流程为:本人提出申请→人力中心→直接上级审批;
② 若连续休假超过3天(包括3天),则审批流程为:本人提出申请→人力中心→直接上级审批→部门总监审批;
若申请人是主管或总监,则省去部门总监审批环节。
我想到用正交助手设计,但出来的结果中出现人力审批不通过,直接上级通过等不可能出现的情况。而且占很大一部分,不能简单删除。
请问这种情况应当如何设计流程的用例才合理呀? 换一个思路,如果正交复杂,那么可以考虑其他方法。
请假系统的流程比较简单,可以考虑使用流程图来做,如下(在不清楚主管和总监是否等价的情况下,做分别处理):
1、根据末端结点,可以得到8个基本用例;
2、(边界值法)针对请假天数,边界值元素有:1、3、N天(如果支持负数或其他字符,还需要加入新的用例),那么就把“>=3”天的用例数*3
3、(等价法)针对请假天数,当“<3”天时,“一般员工”、“主管”、“总监”由于流程相同,做等价处理,所以“<3”天的用例数为2个。(其实“>=3”天的18个用例也可以用等价法减少一些)
4、一些特殊结点有至少2个状态“接受”“拒绝”,而“本人申请”可能存在3个状态“提交”“再提交”“接受”,那么假设从图中至上而下是1~8号流程,在不考虑“本人申请”这个节点的情况下;1号流程有1*2个用例;2号流程有1*3*2*2个用例;3、4各有1*3*2个用例;5号流程有1*2*2个用例;6号流程有1*3*2*2*2个用例;7、8各有1*3*2*2个用例,其中4和8号流程可以用等价法去掉大部分用例,留下1个基本用例。
总共用例有(1*2+1*3*2*2+1*3*2+1*2*2+1*3*2*2*2+1*3*2*2+2)*3个,最后一个*3是“本人申请”的结点。
故,最后得到的用例数为64*3个.(其中还是有一部分用例可以用等价去掉的,比如最后的*3,可以删减为64+8(每一个基本流程跑一次),这就需要看对用例粒度的把握了)
[ 本帖最后由 Jackc 于 2010-5-20 11:42 编辑 ] 流程图法有一些固有缺陷,比如容易进入定向思维,不容易发现“错误推断”的用例,又比如容易忽视界面上的测试点等等:L
[ 本帖最后由 Jackc 于 2010-5-20 11:44 编辑 ]
回复 2# 的帖子
首先谢谢恁这么仔细又清晰的回帖:lol再试试用这种方法来写。:loveliness:
原来写用例时也是想用流程图法,但后来需求细化后觉得不可行。
针对你说的定向思维,不易错误推断及忽视界面测试,我觉得可用流程测试与具体各节点测试点分开来的方式来避免。 确实,把各个节点的属性再设计一套用例,能使整个用例的框架更加完整。
最近研究了一下NOKIA的用例,它们在用例的整体框架搭建的时候也是用了相同的原理来规范用例的。
不过有个偷懒的方法,就是同行评审,呵呵:) 很好.学习了! 二楼写的很详细~:lol 恭喜jackc成为实习版主!:victory: 谢谢~
主要还是大家一起学习:$ 原帖由 Jackc 于 2010-5-21 16:18 发表 http://bbs.51testing.com/images/common/back.gif
谢谢~
主要还是大家一起学习:$
:handshake 值得借鉴 挺好 学习了 JACkC一直是那么的出色~~~学习了 回复 2# Jackc
分析的很细致,但是有些地方还是值得推敲的。
1.“针对请假天数,当“<3”天时,“一般员工”、“主管”、“总监”由于流程相同,做等价处理,所以“<3”天的用例数为2个”——其实这里不能划分为同一个等价类,从输入来说,这里有两个输入值,相当于:
1)““<3”天 and 员工=“一般员工””,
2)““<3”天 and 员工=“主管””,
3)““<3”天 and 员工=“总监””
流程处理上,是否真的一样,恰恰是我们要测试的内容
2.对于OA系统,如果想提高测试用例的命中率,一个简单的方式就是针对两两结点进行测试。例如对于第二条流程,一般员工和直接上级审批两个结点的场景,无非是:
1)提交->通过
2)提交->不通过->终止
3)提交->不通过->再提交->通过
4)提交->不通过->再提交->不通过->终止
对于下一个两两结点来说,仅仅关注“通过”这个状态本身,所以并不需要再3×2×2了,8个就可以了。如果要考虑错误推测,就反复提交和拒绝,算是增补的一个。
其实这个case根据业务再分解一下,用路径分支覆盖或者圈复杂度计算一下,会更准确一些。
另外,这个例子也说明系统测试效率是很低的,设计评审和代码评审会是更有效的手段。 第一次接触,有的地方还是不懂.. 学习~ 学习了,谢谢,写的比较经典 精彩! 学习了 !!!!!可以
页:
[1]
2