王麻子的春天 之场景法设计测试用例
又是阳光明媚的一天,王麻子心情很好。
![](https://img.haomeiwen.com/i2468499/c426fb9bbc39a05a.jpg)
鉴于前一天早上的惨痛经历,王麻子小心翼翼走进公司,直到走到办公桌还没有发生什么异常情况。长嘘了一口气,正准备坐下。
“麻子师兄!”
穿透力极强、激动地、开心的问好声先妹子的身影一步到来。“噌”的一下站起来,王麻子发觉自己反应过于激烈了,又淡定坐下。
“麻子师兄,今天我们学什么?”
“场景法。”
“咦,场景法我在书上看过哦。”
“不错,那你说说什么是场景法?”
“ 场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。”
“说的不错,场景法的核心就是要从用户角度出发,考虑用户在使用软件时可能会遇到的各种正常或异常的情况。”
“那麻子师兄,场景法岂不是要靠我们随意想象?感觉好不靠谱的样子。”
“使用场景法确实需要有较强的发散性思维,但也并不是没有规律的。”
“麻子师兄,快给我讲讲场景法怎么使用呗!”妹子一脸期待。
“好,那我还是以微信发红包功能来举例。前两天我们使用边界值和等价类方法主要对红包金额进行测试了。那么我问你,金额有效就一定能成功发红包吗?”
“也不一定啊。要是我微信没钱了自然发不了红包。”
“没错。微信没钱、余额不足、没有绑定银行卡、没网等等,日常生活中会出现各种导致发红包失败的场景。为了验证软件在这些情况下能够给用户提供比较合理的反馈而不是直接崩溃或闪退,就需要我们在软件上线前能够考虑到这些使用场景,并且一一验证。”
“恩,麻子师兄,道理我明白了,但是常言道一百个读者就有一百个哈姆雷特,我们的软件有成千上万个用户,我们怎么可能穷尽所有的场景呢?”
“你又忘了我们软件测试的基本原则了。穷尽测试是不可能的。我们可以根据测试的风险和优先级来控制测试工作。就比如我们拿到了一个测试任务时,并不是先关注某个控件的边界值、等价类是否满足要求,而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。当业务流程测试没有问题,也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试。”
“麻子师兄,我懂了。那不同的场景优先级怎么排呢?”
“这个就要提到场景法中两个重要的概念:基本流和备选流。基本流是指按照正确的业务流程来实现的一条操作路径(也即模拟正确的操作流程);备选流是指导致程序出现错误的操作流程(也即模拟错误的操作流程)。比如说发红包就可以有以下场景:
场景一:成功发红包; ---基本流
场景二:余额不足; ---备选流1
场景三:账号没钱; ---备选流2
场景三:被删除好友; ---备选流3
场景四:网络异常; ---备选流4
......”
![](https://img.haomeiwen.com/i2468499/aa6c377362127878.png)
“麻子师兄,我明白了,基本流是优先级最高的,所以要最先测试。”妹子茅塞顿开。
“是的。找到程序的基本流和备选流的场景,每一个场景都可以写成一条测试用例。而且备选流的产生并不是天马行空胡乱想象出来的。你观察下例子中的几个备选流有什么特点?”
“嗯......麻子师兄,备选流是从基本流中产生的对吗?”妹子沉思道。
王麻子不置可否道:“说下去。”
“余额不足、账号没钱、网络异常、被删除好友这种种场景全部都是成功发红包的某一个条件不足,那我是不是可以理解为只要我找到了基本流,然后将基本流中所有的前置条件或正确操作一一违反,就产生了备选流。”妹子一脸自信。
王麻子脸上终于露出了欣慰的笑容:“不错。”
看到向来严肃的王麻子脸上欣慰的笑容,妹子开心的笑了。
欲知更多软件测试相关知识,可加关注哦,我会继续更新。以下是边界值和等价类方法,如果对你有帮助,点个赞呗。