前文提到,测试用例代表了软件测试的工具方面,是它的核心之一。那么什么是测试用例,它又有哪些要点需要我们去掌握?
1.4.1 什么是测试用例
软件测试的核心行为就是针对要测试的软件设置测试用例。所谓测试用例,英文名为Test Case,是一个与程序部分行为以及输入、输出相关的描述或者标识。
【测试用例的IEEE定义】
美国电气与电子工程师协会(IEEE,The Institute of Electrical and Electronics Engineers),它出台了一个标准的测试用例定义,即"测试用例是描述输入实际值和预期输出行为或者结果的文档,它同时也标识了测试过程结果与约束。"
在实际工作中,花费测试工程师大部分时间的,都是与测试用例相关的。
1.4.2 测试用例的几大要素
一般来说,测试用例应该清楚地描述出对被测试软件发出什么数据或者条件,以及该输入所期望的结果。在小白这样的商业网站,测试部门规定测试用例应该具备如下几个要素。
1.标识符
这一点虽然和测试用例的内容没有关系,但却是测试过程中不可缺少的。比如,小白所在的部门每周都要开一次例会,向经理或者开发部门的同事说明当前整个产品的测试状态,有时候需要特别指出某个测试用例的内容,那么用一个简单的代号来代表这一测试用例是非常适合的,这个代号一般情况下都是一个正整数,比如1、88、437等这样。在小白所在的公司,测试用例是存放在一个数据库中的,代号也就自然地采用了数据库系统中的标识符字段类型。如果采用其他的方式存储测试用例,可以人工指定,只要保证标识符不重复就可以了。
如图1-6显示了应用于真实测试场景的某测试用例文档,它实际上是一个Office Word文件,测试工程师(即编写者)在文件内容中手工指定了各个测试用例的标识符。
图1-6 测试用例的标识符
2.测试的内容
测试内容可以说是测试用例最重要的部分,它一般指明了当前测试用例的运行目的,比如测试网页是否可以打开、单击按钮后是否能够显示正确的计算结果等。在很多情况下,测试内容与下个要点:输入的条件区别并不是很清楚。
3.输入的条件
输入条件可以是操作步骤,也可以是输入的数据,还可以是系统运行环境的需求(比如处于某种特别的操作系统环境内这一条件)。图1-6中的各个测试用例,都详细地写明了每一步骤的具体操作。
【复现步骤】
对于被测试软件而言,不同的输入条件会导致不同的输出预期,因而可能出现的Bug表现并不一定相同。如果重复某些输入条件,总会导致某个Bug的出现,那么就把这些输入条件称为Bug的复现步骤(Repro Step)。