任务:实施开发人员测试
此任务描述了在对组件执行更正式的测试之前,如何创建用于验证组件是否正常工作的一组测试。
用途
  • 实施一个或多个测试,这些测试通过实际执行来验证单独的软件组件
  • 开发可与其他测试(作为更大型测试基础结构的一部分)联合执行的测试
关系
角色主要: 其他: 辅助:
输入必需: 可选: 外部:
输出
步骤
优化范围和确定测试
目的: 确定被测试组件并定义一组在当前迭代中最有益的测试

在正式环境中,需要开发的组件和测试在测试设计工件中指定,这使此步骤变为可选的。 还有其他情况,在这些情况下开发人员测试是由以下因素驱动的:变更请求、错误修正、需要验证的实施决策和只将设计模型作为输入的子系统测试。对于这些情况中的每一个:

  • 定义目标:子系统/组件接口验证、实施验证,重现缺陷
  • 定义范围:子系统、组件、组件组
  • 定义测试类型和详细信息:黑匣、白匣、前置条件、后置条件、不变量、输入/输出和执行条件、观测/控制点、清除操作
  • 确定什么是测试的生命周期范围;例如,特别为修正缺陷而建立的测试可能是废弃型的测试,而使用外部接口的测试将与被测试的组件具有相同的生命周期
选择合适的实施技术
目的: 确定合适的技术来实施测试

存在各种技术可用于实施测试,但可按照两个常规类别来考虑它们:手动测试和自动测试。大多数开发人员测试是使用自动测试技术实施的:

  • 已编程的测试,使用与被测试组件相同的软件编程技术和环境,或使用简单些的编程语言和工具(如,脚本语言:tcl、基于 shell 等等)。
  • 已记录或捕获的测试,通过使用测试自动化工具构造,这些工具捕获被测试组件与系统其余部分的交互并生成基本测试
  • 已生成的测试:测试的某些方面(过程或是测试数据)可使用更复杂的测试自动化工具自动生成
虽然最常用的方法是“已编程的测试”,例如在某些情况下是 GUI 相关测试,但进行测试的最高效的方法是按照以文本描述形式捕获的一系列指示信息手动进行。
实施测试
目的: 实施在定义步骤或任务中确定的测试

实施在第一步中定义的所有元素。详述并明确指定测试环境前置条件以及使被测试组件处于可执行测试的状态的步骤。确定要遵循的清除步骤,以便将环境恢复到初始状态。特别注意观测/控制点的实施,因为这些方面可能需要必须在被测试组件中实施的特殊支持。

建立外部数据集
目的: 创建和维护存储在测试外部并由测试在执行期间使用的数据

在大多数情况下,将测试数据从测试中分离出来会使解决方案更可维护。如果测试的生命周期范围很短,对测试内的数据进行硬编码会更高效,但如果需要在多个测试执行周期中使用不同的数据集,那么最简单的方法是将数据集存储在外部。 如果将测试数据从测试中分离出来,还有一些其他好处:

  • 多个测试可使用同一个数据集
  • 易于修改和/或增加
  • 可用于控制测试内的条件转移逻辑
验证测试实施
目的: 验证测试工作方式正确

测试该测试。检查环境设置和清除指令。运行测试,观察行为并修正测试缺陷。如果测试是长期的,则让具有较少内部知识的人员来运行测试,并检查是否存在足够的支持信息。与开发团队中的其他人和其他相关各方一起复审测试。

维护可跟踪性关系
目的: 允许在被跟踪项上执行影响分析和评估报告

根据正式程度,可能需要也可能不需要维护可跟踪性关系。如果需要,使用测试计划中概述的可跟踪性需求来按要求更新可跟踪性关系。


属性
多次出现
事件驱动
正在进行
可选
已计划
可重复
更多信息