上篇文章介绍了测试常用的测试方法,今天就趁热打铁说说如何编写测试用例。https://zhuanlan.zhihu.com/p/69208341
写用例其实很简单,一个需要会测试方法,另一个就是需要明白测试逻辑。
一、什么是测试逻辑
比如我写这篇文章的逻辑是先讲明写用例需要用到的测试方法和逻辑的重要性,然后通过举例子编写王者荣耀每日任务这个小功能来用excel表讲解如何一步一步地实现一条条用例,接着是讲述用思维导图来编写这个功能的用例,然后做个总结。
这是我行文的逻辑:目的、准备、实例(两种方法)。
有人说,文科生和理科生最大的区别在于思维方式不同。文科生感性,想象力丰富,做事灵活;理科生理性,逻辑性强,做事严谨。
我是一个汉语言文学专业的文科生,一开始我也是不理解逻辑这个东西的,直到现在做了测试,我才有感于文理之间确实存在逻辑这个差别。当然,这仅仅只对于我而言。
对测试逻辑的定义见仁见智。
在我的理解中,逻辑这个东西就是为了对一个功能进行测试时要把这个功能的所有东西有次序的列出来,可以是时间逻辑、空间逻辑等等,不管你用什么逻辑来测试这个功能,重点是考虑完整,不遗漏。
二、为什么要写测试用例?
前leader是这么对我解释的,我已经忘记了每一句话是怎样的,大概意思是:小功能不需要写测试用例,写写测试点就行。只有大功能,因为它的规模比较大,功能又复杂,所以就需要我们通过编写测试用例来理清测试点并形成一个个具体的用例,一个是 为了后期维护,或者说存档备份,另一个是为了过用例评审时使用,并且能够很好地去执行。
当然,写用例的本质还是要想清楚所有的测试点,不要任何遗漏,尽可能多的去发现bug。
在这里要特别提醒,每一条用例都是可以的,虽然他有可能是无效的,但是他依旧是一条用例。当然,我们尽量不要去编写无效的测试用例。
三、用excel写测试用例
在用excel写测试用例前,我需要介绍一下用例规范,可能每个公司会有区别,所以我只说我在写的用例规范。
用例设计总共分为几个部分:测试模块、子模块、前置条件、操作步骤与描述、预期结果,再加一个可有可无的备注。
测试模块:就是你需要写的用例模块
子模块:表示按照自己的思维将测试模块分割成一个个小的模块
前置条件:表示你这条用例写出来时需要有一个前置条件,有时候前置条件可以为空
操作步骤与描述:顾名思义,表示你用例要进行的操作步骤
预期结果:表示你这条用例的预期结果是什么,如果测试时发现不符合预期结果,说明就是bug
备注:自己给当时的用例添加的备注,偶尔有用
好,解释完名词,那我们就直接实战一波。
还是拿王者荣耀每日任务这个小模块来练习。
首先,测试模块我们可以将之合并成一个单元格,写上:每日任务。
接着,子模块区分。按照我的理解,可以将其分为:今日活跃度、具体任务内容和本周活跃度。
然后尝试具体到每一条用例。
既然是用例,说白了就是死扣字眼。
先拿今日活跃度这个子模块来说,测试部分包括活跃度的数值、领取宝箱和凌晨五点重置。下面直接用例伺候,但是,为了能看懂,在这里先说明一下格式:前置条件,逗号隔开;操作步骤,逗号隔开,然后是预期结果。
上篇文章写了测试方法,如果有新童鞋没看的话可以去看看。https://zhuanlan.zhihu.com/p/69208341
按活跃度的数值直接来写用例:
1.今日活跃度为0(前置条件),尝试领取宝箱奖励(操作步骤),不可领取(预期结果)
2.今日活跃度29,尝试领取宝箱,不可领取
3.今日活跃度30,尝试领取宝箱,只可领取30活跃度宝箱(备注:背包中增加该宝箱的道具,且宝箱晃动,外部有小红点提示)
注意:无论是道具、货币奖励,都要进行前后端验证。如何验证?最简单的方法就是重新登录。重登后,道具还在,说明前后端都已经发放了。
4.今日活跃度59,尝试领取宝箱,不可领取
5.今日活跃度60,尝试领取宝箱,只可领取60活跃度宝箱。(备注:90、120、150活跃度同理,因为宝箱只是一个边界值得测试,操作步骤差不多,所以此时直接用同理代替。虽然用例中可以不写,但是在实际测试中是不能忽视的。)
可能有些小伙伴会问,这些活跃度怎么精确到1的?很简单,直接改数据库里面的活跃度数据,活跃度想多少,直接改就行。
6.今日活跃度60,时间为凌晨4点59分59秒,一秒钟后重登游戏,今日活跃度变为0 (备注,此条用例是为了测试活跃度重置的问题。)
下一个是任务的具体信息。
为了文章的篇幅,也想偷个懒,所以就只拿截图的第一个任务做用例。
任务:每日登陆游戏,获得奖励是经验值50,xx5(emmm,我居然忘记了这蓝色球代表的是什么)
1.登陆游戏,查看任务完成情况,任务完成、按钮变成领取
2.今日内再次登陆游戏,查看任务完成情况,只可领取一次奖励
3.今日已登陆,第二天登陆,查看任务情况,可再次领取
4.当前经验值100,蓝色球0;领取奖励,经验值变成150,蓝色球变成5,活跃度不变,按钮变成已领取(备注:前后端对应)
以下任务同理。
最后一个是本周活跃度。
1.本周活跃度为0,尝试领取活跃礼包,不可领取
2.本周活跃度为499,尝试领取礼包,不可领取
3.本周活跃度为500,尝试领取礼包,只可领取500活跃度礼包
4.本周活跃度为999,尝试领取礼包,不可领取
5.本周活跃度为1000,尝试领取礼包,可领取
6.本周活跃度为1,周一0点0分0秒,一秒后查看活跃度,活跃度变成0
好了,今天就写到这吧。
本来还想用思维导图也来一遍的,但是写着写着就不想写了,因为不想再去写第二遍,都是重复的内容,具体用例也一样,感兴趣的小伙伴可以自己去尝试一下。
注:编写此任务功能还有其他的一些测试点,包括入口、UI、交互、异常点等,但是此文只是针对新人如何编写测试用例,所以写的不是很详细,只是写一个大概的、最主要的功能测试流程。