xuben 发表于 2009-3-16 16:48:22

发散思维:四个按钮下的复杂逻辑

发散思维:四个按钮下的复杂逻辑


作者:许奔(转载请注明出处)
博客地址:http://www.cnblogs.com/xuben
邮箱:3231435@163.com
QQ:420524900


现在这个页面,简单得不能再简单:
主页面就两个按钮:新增和删除;
编辑页面也两个按钮:保存和退出;
就这样,两个页面,四个按钮,究竟能衍化出多少测试用例才能保证百分之百的测试覆盖率?
看看下面的用例设计,或许会有更多的灵感产生:

一、页面描述:
(一)主页面如下:
1、      “新建”记录按钮(点击进入新建页面);
2、      每条记录链接(点击进入该记录编辑页面);
3、      每条记录后的“删除”按钮(点击出现“是否删除”对话框):
A、“是”->删除并关闭对话框;
B、“否”->不删除并关闭对话框;

点击“新建”记录按钮:
(二)新建记录页面:
1、      “保存”按钮(点击出现是否保存对话框):
A、“是”->保存并回到主页面;
B、“否”->继续留在新建页面;
2、      “退出”按钮(点击出现是否保存退出对话框):
A、“是”->保存并回到主页面;
B、“否”->不保存并回到主页面;

在主页面点击某条记录链接:
(三)编辑该记录页面:
与新建页面同;

若某条记录被用户1编辑后直接点击浏览器“后退”按钮退出,该记录被锁定,表示该记录不允许其他人进行编辑。这时,用户2编辑此记录,进入锁定页面:
(四)锁定页面:
1、      “保存”按钮(此时该按钮失效,无法点击);
2、         “退出”按钮(点击出现是否保存退出对话框):
A、“是”->不保存并回到主页面;
B、“否”->不保存并留在锁定页面;
3、      若该记录被锁定,主页面上该记录的“删除”按钮失效,无法点击;

xuben 发表于 2009-3-16 16:51:37

发散思维:四个按钮下的复杂逻辑

二、用例设计:
(一)其它功能暂不叙述,单这四种情况,要做到完全覆盖也非常难,当时我们的用例包括如下测试点:
1、点击“新建”按钮,是否正常进入新建页面;
2、在新建页面中点击“保存”按钮,并点“是”,是否保存成功;
3、在新建页面中点击“保存”按钮,并点“是”,保存成功后是否返回主页面;
4、编辑该记录,是否正常进入编辑页面;
5、编辑页面是否可编辑;
6、编辑页面是否可保存;
7、在编辑页面中点击“保存”按钮,并点“是”,是否保存成功;
8、在编辑页面中点击“保存”按钮,并点“是”,保存成功后是否返回主页面;
9、用户1进入编辑页面后直接点击浏览器“后退”按钮,是否能正常退出;
10、
用户1点击浏览器“后退”按钮后,该记录是否被锁定;
11、
用户2编辑该记录,是否为锁定状态;
12、
用户2编辑该记录,点击“保存”按钮,是否能保存;
13、
用户2编辑该记录,点击“退出”按钮,并点“是”,是否仍然保存该记录;
14、
用户2编辑该记录,点击“退出按钮”,并点“是”,是否回到主页面;
15、
点击锁定记录“删除”按钮,能否删除该记录;

这是典型的一条龙测试用例,从头到尾将功能点过了一遍。很多测试用例就是这样完成的。
不难发现,这只覆盖了一半功能点,事实上,说它是一半都有些言过其实了。

xuben 发表于 2009-3-16 16:52:29

发散思维:四个按钮下的复杂逻辑

(二)我们至少还应该增加如下用例:
16、        在新建页面编辑后,点击“保存”按钮,并点“否”,该记录是否被保存;
17、        在新建页面编辑后,点击“保存”按钮,并点“否”,是否继续留在新建页面;
18、        在新建页面编辑后,点击“退出”按钮,并点“是”,该记录是否被保存;
19、        在新建页面编辑后,点击“退出”按钮,并点“是”,是否回到主页面;
20、        在新建页面编辑后,点击“退出”按钮,并点“否”,该记录是否被保存;
21、        在新建页面编辑后,点击“退出”按钮,并点“否”,是否回到主页面;
22、        锁定页面,用户2编辑该记录,点击“退出”按钮,并点“否”,是否仍然保存该记录;
23、        锁定页面,用户2编辑该记录,点击“退出”按钮,并点“否”,是否仍然留在锁定页面;
24、        非锁定状态下点击“删除”按钮,并点“是”,是否删除成功;
25、        非锁定状态下点击“删除”按钮,并点“是”,删除该记录后是否关闭对话框;
26、        非锁定状态下点击“删除”按钮,并点“否”,是否仍然删除该记录;
27、        非锁定状态下点击“删除”按钮,并点“否”,是否关闭对话框;

xuben 发表于 2009-3-16 16:53:10

发散思维:四个按钮下的复杂逻辑

(三)我觉得至少还有如下测试点:
1、新建页面不编辑直接点击浏览器“后退”按钮,是否保存一条锁定的空记录;
2、新建页面不编辑,直接关闭浏览器再打开,是否保存一条锁定的空记录;
3、新建页面编辑后,直接关闭浏览器再打开,是否保存该记录;
4、新建页面不编辑,直接点“保存”按钮,并点“是”,能否保存空记录;
5、新建页面不编辑,直接点“退出”按钮,并点“是”,能否保存空记录;
6、新建页面编辑后,不保存直接点浏览器“后退”按钮,能否保存记录;
7、新建页面编辑后,不保存直接点浏览器“后退”按钮,记录是否被锁定;
8、新建页面编辑后,点击“保存”按钮,直接关闭对话框,该记录是否保存;
9、新建页面编辑后,点击“保存”按钮,直接关闭对话框,是否回到主页面;
10、
新建页面编辑后,点击“退出”按钮,直接关闭对话框,该记录是否保存;
11、
新建页面编辑后,点击“退出”按钮,直接关闭对话框,是否回到主页面;
12、
锁定页面编辑后,点击“保存”按钮,直接关闭对话框,该记录是否保存;
13、
锁定页面编辑后,点击“保存”按钮,直接关闭对话框,是否回到主页面;
14、
锁定页面编辑后,点击“退出”按钮,直接关闭对话框,该记录是否保存;
锁定页面编辑后,点击“退出”按钮,直接关闭对话框,是否回到主页面;

xuben 发表于 2009-3-16 16:53:57

发散思维:四个按钮下的复杂逻辑

(四)这样算是完全覆盖吗?其实还差很远,比如说:
1、多人并发点击同一条记录,该记录是否被锁定;
2、多人并发点击同一条记录,是否有多人同时进入编辑状态;
3、若多人同时进入编辑状态,保存后该记录被谁锁定;
4、同一台电脑打开多个页面,用不同用户登录,进入同一条记录并点击浏览器“后退”按钮,页面用户是否会混乱(比如A页面用户1变成B页面的用户2,即Session问题);
5、用户混乱状态下操作是否成功,结果被谁锁定?
6、用户1将该记录锁定后,删除用户1,该记录是否解锁;
7、用户1将该记录锁定后,删除用户1,该记录是否被删除;
8、若用户1在编辑页面时,用户1能否被删除;
9、若用户1在编辑页面时被删除,该记录是否保存;
10、
若用户1在编辑页面时,对于用户2,该记录是否被锁定;
11、
若用户1编辑页面时该记录未被锁定,用户2能否删除该记录;
12、
用户2删除该记录,用户1是否被弹出;
13、
若用户2删除该记录,用户1未被弹出,用户1保存时能否成功;
若用户2删除该记录,用户1保存成功,该记录是否存在;

xuben 发表于 2009-3-16 16:54:48

发散思维:四个按钮下的复杂逻辑

真实的系统远没有这样简单,比如用户权限问题,用户1权限比用户2高,记录被用户2锁定后用户1能否解锁;
甚至有时用户权限根据时间在变化,比如在截止日期以前,用户1比用户2权限高,截止日期后,用户1比用户2权限低,这时如何处理;
截止日期可能又分为内部截止日期、外部截止日期几种,不同截止日期情况又各不相同。这时又得把日期考虑进去。

事实上,这还只是一个非常非常非常非常小的系统,真正测试时间只有不到一个月。就这样一个小系统的简化简化简化版还有很多很多诸如此类问题需要探讨,可想而知要做到完全覆盖,测试用例量得有多大。
大家不妨发散发散思维,把我没有想到的用例列出来,看看究竟能有多少?

wangfanghzau 发表于 2012-1-13 11:32:00

不错哎

pettyq 发表于 2012-1-13 14:36:50

:)

miraclej 发表于 2012-1-13 16:01:50

这是我买的第一个收费附件,研究研究。

bingorz 发表于 2012-1-13 17:44:35

本帖最后由 bingorz 于 2012-1-14 09:14 编辑

好东东一定要和大家分享的哦~:lol

bingorz 发表于 2012-1-14 09:15:34

来来来,大家都来看看咯,很不错的用例分析,个人觉得对入门者是很好的启迪!
页: [1]
查看完整版本: 发散思维:四个按钮下的复杂逻辑