测试用例一直是作为一个测试工程师必备的技能。就像游泳运动员要会游泳、老婆饼要有饼、鱼香肉丝要有肉丝一样,测试要会写测试用例。
一、含义与优点
1、什么是测试用例
百度百科里给的解释是: 测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
-
换句话说测试用例其实是测试方案、方法、策略的书面化体现, -
所以当我们在讨论测试用例的设计方法时,其实是在讨论测试方案、方法、策略的设计方法。 -
这意味着即使平时可能因为种种原因,导致工作中没有编写测试用例,但其实只要还有在从事软件测试的工作,就已经在进行用例设计。
2、为什么要写测试用例
-
测试用例的优点可太多了,在《软件测试》这本书中,对测试用例的描述是“对鹅是个好东西,对鸭也是个好东西” -
具体有什么好处可以从以下几个方面体现: 1、想出测试方案之后,只是把它放在脑子里,有被忘掉的风险,好记性不如烂笔头,所以把它写入用例吧 2、一个项目,可能存在多个测试人员,写测试用例可以便于测试项目小组成员审查和使用 3、需求文案内不会包含所有情况下的表现,而代码可能不会记录对应的业务逻辑,可以说测试用例可以很好的解决这两个问题,特别是大型的、持续迭代版本的项目每个版本,对每种情况的记录就尤为重要。 (每次对功能由疑问的时候,往往都是在测试用例里找到答案。产品需求文案经常不及时更新,程序代码经常没有写备注。还是自己的测试用例靠谱啊) 4、测试工作存在一定的重复性,往往需要多次执行相同的测试,这个时候有测试用例就非常方便啦。 5、测试工作量的体现,测试用例能将测试的工作量直观的展现出来。 6、跟踪、记录测试工作。多少个用例通过、多少个用例失败、多少个用例被忽略,如果没有测试用例,就没有办法回答这些问题。
三、核心组成部分:用例标题,前置条件,测试步骤和预期结果
1、用例标题:用简洁、概况性的语言体现此条用例的关注点和出发点。
- 用例标题可以让使用用例的人或是评审用例的人快速了解此条用例的意图。也因为用例标题是测试点的概况,可以快速判断出用例内覆盖的测试点是否有遗漏。所以测试标题在多人合作的大型项目尤为重要。
那么测试用例标题该如何编写?
- 用例标题可以是测试点,也可以是此条用例结果的提取。下面提供三种测试标题的示例供参考:
1. 功能点,例如:网络正常时点击购买按钮弹出支付弹框 2. 功能-流程,例如:会员购买页面-成功购买流程 3. 某种状态或条件-结果,例如:无网状态-点击购买-提示无网
- 这三种标题的编写方式,也可以与模块名结合。将模块名和测试标题合在一起表示的是在“测试标题”情况下测试“模块名”,例如:
- 标题定下之后,也就定下了这条用例的中心点,接下来的前置条件,测试步骤和预期结果都将围绕这个中心点展开。
2、前置条件:执行当前用例所要满足的条件或需要准备的相关操作
- 前置条件可以是准备测试数据、角色的权限、或者是进入某个页面、展示某个弹框,但前置条件首先要满足下面两个原则:
1.前置条件本身一定是成立的 2.在这个前置条件下,后续的用例步骤一定能成立
而对于一条用例来说,前置条件有很多选择,如何制定前置条件,才能达到最好的效果?
前置条件主要的使用场景有下面几种:
- 让用例的执行者明确待测项目处于什么状态。 例如:会员成功购买流程的前提条件是用户已登录账号。
- 控制变量。 例如:登录弹框在手机号码为空的时候,点击登录会提示“请填写手机号”,那么这条用例的前置条件就是除了手机号码未填写,其他输入框已填写。
- 需要准备的数据,或已进入的页面、展示某个弹框。例如:测试列表分页的情况,当前页面最大显示10条数据时展示下一页按钮,那么想要测试下一页按钮,前置条件就是准备11条数据。或是要测试登录弹框内的某个控件,那么前置条件就是登录弹框已展示。
- 用例与用例之间关联性,有时一个用例能够执行的先决条件是另一个用例成功执行。那么后置用例的前置条件就可以使用另一个用例的预期结果。
最后确定好前置条件的内容后,将条件归纳总结为一个简洁的结果。
3、测试步骤:验证用例测试点所需要执行的操作。
测试步骤比较好理解,就是该如何执行用例。对于操作步骤有以下几点要求:
-
用例的步骤是线性的,先做什么后做什么。 -
需要清晰、准确的描述操作步骤,不能出现假设性的词语。如:进入页面,这个页面的名称,或点击按钮这个按钮的名称或位置都应该准确描述。 -
正如上文所说,操作步骤需要围绕着测试标题展开,如果有多余的步骤建议归纳到前置条件里。 -
操作步骤不应该出现“和”、“或”、“且”等这样的连词,如果有这种情况,应该拆分成多个步骤,或者拆分成单独的用例。 -
测试步骤内不能出现预期结果的内容。(分清什么是预期,什么是步骤,也是写好测试用例的关键点)
4、预期结果:完成操作步骤后程序的表现,这些表现也是用例检查点。
- 预期结果与学生时代写作文时的景物描写类似,以前的作文是“通过对景物的描写表现作者的情感”,而预期结果是“通过对检查点的描写验证用例的测试点”。比如:验证购买按钮样式的预期结果就是——购买按钮展示在页面右下角、按钮形状为椭圆形,文案为“购买”。
预期结果的编写要求:
- 同测试步骤一样,预期的测试点也要围绕着测试标题或此条用例的测试点描述。
- 尽量不要有多余的检查点,更不要遗漏测试点
- 预期结果中不能含有测试步骤(分清预期和步骤这很重要)
- 每条用例都需要有至少一个预期结果
- 检查点不仅仅只是界面上的表现,也可以是数据库的数据、保存下来的文件、或是其他可以验证测试点的表现。
五、书写要求中最重要的一点
六、示例:注册弹框-手机号码输入框测试用例
- 以下面需求中的手机号输入框为例,简单列几条测试用例示例:
- 以下测试用例只能做格式参考,作为手机号输入框测试用例来说并不完整
用例标题 | 前置条件 | 测试步骤 | 预期结果 |
---|
手机号输入框默认占位字符为“请输入手机号” | 注册弹框已展示,且手机号输入框未输入数据 | 查看手机号码输入框 | 显示默认展示字符“请输入手机号” | 手机号输入框只能输入数字 | 注册弹框已展示,且手机号输入框未输入数据 | 步骤1:在手机号输入框输入数字 | 预期1:可正常输入 | - | - | 步骤2:在手机号输入框输入非数字 | 预期:不可输入 | 手机号输入框只能输入11位字符 | 注册弹框已展示 | 步骤1:在手机号输入框输入11位 | 预期1:可正常输入 | - | - | 步骤2:在手机号输入框输入12位字符 | 预期:超过11位时不可再输入字符 |
- 思维导图的形式:
|