任务:实现开发人员测试
实现一个或多个测试以验证某个实现元素。
规程:开发
用途

通过单元测试做好验证某个实现元素(如一个操作、一个类、一个存储过程)的准备。其结果是一个或多个新的开发人员测试。

关系
角色主执行者: 其他执行者:
输入必需:
    可选:
      输出
        主要描述

        开发人员测试是与其他测试形式不同的测试,它基于代码单元的预期行为,而不是直接基于系统需求。

        使用它的最好方式是在每个迭代过程中由开发人员在某个远小于完整代码的代码库上进行编写。这可能是一个操作、为某个接口增加一个域、一个存储过程。当代码库随着构建而增长时,将编写新的测试,并将重新访问已有的测试来测试添加的行为。

        步骤
        细化范围并识别测试

        选择待测试的工作增量,并识别开发人员测试以验证软件已实现行为的正确性。实现元素预期行为的其中一个来源是软件设计。

        在识别这些测试或此任务的其它部分时,考虑与某位熟悉测试问题的团队成员合作。

        编写测试准备(setup)

        为了成功运行某个测试,系统必须处在某个已知的状态,才能定义正确的行为。实现测试准备,这必须是执行开发人员测试的一部分。

        定义预期结果

        定义每个测试的预期结果,从而能够进行验证。

        在运行测试后,你需要能够对运行的结果和预期结果进行比较。当实际结果和预期结果匹配时,测试成功。

        编写测试逻辑

        编写实际测试的执行步骤。

        定义测试响应

        定义测试必须产生的指示成功或失败的信息。考虑仅有True或者False的响应是否足够,或者是否需要记录更详细的信息。

        编写清除代码(clean-up)

        为每个测试识别并实现其执行后恢复环境到原始状态需要的步骤。目的是保证对运行的测试没有其它影响。

        测试这些测试

        验证每个开发人员测试工作的正确性:

        • 运行这些测试,观察它们的行为,并修正测试中的缺陷。
        • 确保正确的定义了预期结果,并且正确的检查了这些结果。
        • 为每个测试检查清除逻辑
        • 确保每个开发人员测试都在你的测试套件框架中。
        关键注意事项
        1. 通过单元进度测试工具(如xUnit)进行的自动化测试可以使开发人员在任何代码变更时运行这些测试。
        2. 测试实现元素的风险。例如,元素有多重要,那么彻底的测试它就会更重要。
        3. 在此任务的每个步骤中拥有测试技能的团队成员结对能够更深入的考虑测试和质量

        在实现此任务的过程中隐含的使用了[项目工作]包来管理将在代码中实现的需求或变更请求。

        替代方案

        依靠验收测试来验证你的软件。这可能会浪费时间,并且效果不比不上开发人员测试,要在晚期才能识别并定位缺陷。

        更多信息