一、什么是测试用例
1、测试用例的定义
设计一个情况,软件程序在这种情况下必须能够正常运行,且达到程序所设计的预期结果。
如果程序不能正常运行,且这种问题会重复发生,那表示测试人员已经测试出有缺陷,这时必须将问题标示出来并通知开发人员。
2、测试用例的模板和包含的内容
测试用例应该包含以下内容:
- 标识符(用例编号):一般编号规则:TestCase-项目名称-模块名称-功能名称-0001
- 测试项:测试用例的测试目的。一般情况下,用一句话表明目的。(表明测试模块,测试对象,测试方式、事件)
- 依赖用例:一般功能流程上,下游功能测试用例依赖于上游功能测试的用例。
- 测试步骤:用最朴实的语言,写出来软件的操作步骤,要尽量详细。
- 测试数据:单独整合测试数据,必须和测试步骤中的数据保持一致。
- 预期结果:准确(对象、内容),原则上每一个操作步骤都要有一个结果。**在重要的步骤之后设定预期结果。一般和测试目的密切相关。测试目的决定测试步骤和测试结果。**例如:在XX操作后跳转到XX页面。
- 测试结果:要求在测试执行完成后添加,没有执行保持为空。测试结果只有两个:通过(Pass)和失败(Failed)。
- 测试人:测试的执行人可以和测试用例的设计者相同也可以不同。
- 备注:为了测试用例正常执行而做的特殊准备。
3、设计测试用例的作用
有效性:测试用例是测试人员测试过程中重要的参考依据。
可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率。
易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
可管理性:测试用例也可以作为检验测试人员的进度、工作量以及跟踪/管理测试人员的工作效率的标准。
4、用例按照测试分类
- 功能(Function)
- 界面(UI)
- 性能(Performance)
- 安全(Security)
- 接口(Interface)
二、测试用例编写注意事项
- 不要设计“穷举测试用例”。
- 在详细测试用例与有效测试时间中找到平衡点。
- 好的测试用例应该多关注“反向测试问题”。
- 测试用例库应该不断更新和维护。
- 测试用例可以复用,但要注意数据有效性和环境变化。
- 测试用例是设计出来的,不是写出来的。
- 多去学习经验丰富的测试工程师所设计的测试用例。
- 针对不同的需求类型和测试对象,灵活采用不同的测试用例设计方法。
- 测试项必须是确定的,不能模棱两可。测试项一般只写一个测试目的。
- 一个无效等价类的测试数据,只能违反一个需求。
- 不能把软件的缺陷设计为测试用例。
三、黑盒测试用例设计方法
1、测试数据选择
a.等价类划分法
原理
- 把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
- 每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
- 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。
确定等价类的原则:
- 在输入条件规定的取值范围或值的个数情况下,可以确立一个有效等价类和两个无效等价类。
- 在输入条件规定“必须”情况下,可以划分一个有效类,一个无效类。
- 在规定了输入数据须遵守的规则后,可以划分一个有效类,和若干个无效类。
划分等价类和列出等价类表:
- 表格包括有效等价类及其测试数据,无效等价类及其测试数据。
确定测试用例:
- 为每个等价类规定一个唯一的编号
- 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得