测试用例设计
测试用例的基本概念
测试用例是测试执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果。
- 测试用例的作用
(1)有效性:测试用例可以有效地节省时间和资源、提高测试效率。
(2) 避免测试的盲目性
(3) 可维护性:在软件版本更新后只需修正少部分的测试用例便可开展测试工作,降低工作强度,缩短项目周期。
(4)可复用性:良好的测试用例具有重复使用的性能,使得测试过程事半功倍,并随着测试用例的不断精化,使得测试效率也不断提高。
(5)可评估性:测试用例的通过率是检验程序代码质量的标准。
(6)可管理性:测试用例是测试人员在测试过程中的重要参考依据,也可以作为检验测试进度、测试工作量以及测试人员工作效率的参考因素,可便于对测试工作进行有效的管理。
测试用例的设计
- 测试设计说明
测试设计说明书,定义软件具体的测试方法,包括被测特性、测试所用的方法、测试准则等。测试设计说明的目的是组织和描述针对具体特性需要进行的测试,但并不给出具体的测试用例或者执行测试的步骤。
测试设计说明内容:(1) 标识符:用于引用和定位测试设计说明的唯一标识符。该说明应该引用整个测试计划,还应该包含任何其他计划或者说明的引用。(2)被测试的特性:指明所有要被测试的软件特性及其组合,指明与每个特性或特性组合有关的测试设计说明。(3) 方法:描述测试的总体方法,规定测试指定特性组所需的主要活动、技术和工具。如果方法在测试计划中列出,就应该在此详细描述要使用的技术,并给出如何验证测试结果的方法。(4)测试用例信息:在这部分不定义实际测试用例,主要用于描述测试用例的相关信息。(5)通过/失败规则:规定各测试项通过测试的标准,即描述用来判定某项特性的测试结果是通过还是失败的准则。 - 测试用例的编写标准
试用例应该包含以下要素:
(1)用例的编号(ID):由测试引用的唯一标识符。
(2)测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。
(3)测试项:测试用例应该准确、具体地描述所测试项及其详细特征,应该比测试设计说明中所列的特性更加具体。
(4)测试环境要求:该测试用例执行所需的外部条件,包括软、硬件具体指标以及测试工具等。
(5) 特殊要求:对环境的特殊需求,如所需的特殊设备、特殊设置(例如对防火墙设置有特殊要求)等。
(6) 测试技术:对测试所采用的测试技术和方法的描述和说明。
(7) 测试输入说明:提供测试执行中的各种输入条件。
(8)操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
(9) 预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得到。
(10) 测试用例之间的关联:用来标识该测试用例与其他测试用例之间的依赖关系。
(11)测试用例设计人员和测试人员。
(12)测试日期。 - 测试用例设计的基本原则
(1)用成熟测试用例设计方法来指导设计
(2)测试用例的正确性:包括数据的正确性和操作的正确性。
(3) 测试用例的代表性:能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的数据以及极限的输入数据、操作和环境设置等。
(4) 测试结果的可判定性:即测试执行结果的正确性是可判定的。
(5)测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。
(6) 足够详细、准确和清晰的步骤。 - 测试用例的分类
(1)白盒测试用例:白盒测试用例主要有逻辑覆盖法和基本路径测试法设计的测试用例,设计的基本思路是使用程序设计的控制结构导出测试用例。
(2)软件各项功能的测试用例:例如,文字编辑器中的新建文档功能、打开文档功能、保存文档功能、打印功能、编辑功能等。功能测试用例的设计一般采用等价类划分法、边界值分析法、错误推测法、因果图法等设计测试用例,这些都属于黑盒测试用例设计技术。
(3)用户界面测试用例:例如,用户界面窗口里的所有菜单、每个命令按钮、每个输入框、列表框、每个工具栏、状态栏的测试用例等。
(4)软件的各项非功能测试用例:这里又可以分成许多类型,包括性能测试用例、强度测试用例、接口测试用例、兼容性测试用例、可靠性测试用例、安全测试用例、安装/反安装测试用例、容量测试用例、故障修复测试用例等。
(5)对软件缺陷修正所确认的测试用例。 - 测试用例管理
测试用例的管理包括以下阶段:编写用例、用例评审、用例修改、用例执行、用例升级/维护。