敏捷测试 - 技术


传统测试的测试技术也可以用于敏捷测试。除此之外,敏捷项目中还使用了敏捷特定的测试技术和术语。

测试依据

在敏捷项目中,产品待办事项列表取代了需求规范文档。产品待办事项列表的内容通常是用户故事。用户故事中也考虑了非功能性需求。因此,敏捷项目的测试基础是用户故事。

为了确保质量测试,还可以额外考虑以下内容作为测试依据 -

  • 来自同一项目或过去项目的先前迭代的经验。
  • 系统现有的功能、架构、设计、代码和质量特征。
  • 当前和过去项目的缺陷数据。
  • 客户的反馈意见。
  • 用户文档。

完成的定义

完成定义 (DoD) 是敏捷项目中使用的标准,用于确保 Sprint 待办事项中的活动完成。DoD 因 Scrum 团队而异,但在一个团队内应该保持一致。

DoD 是必要活动的清单,确保用户故事中的功能和特性以及作为用户故事一部分的非功能需求的实现。完成 DoD 清单中的所有项目后,用户故事就到达“完成”阶段。DoD 在团队之间共享。

用户故事的典型 DoD 可以包含 -

  • 详细的可测试验收标准
  • 确保用户故事与迭代中其他故事一致的标准
  • 与产品相关的具体标准
  • 功能Behave方面
  • 非功能性特征
  • 接口
  • 测试数据要求
  • 测试覆盖率
  • 重构
  • 审批要求

除了用户故事的 DoD 之外,还需要 DoD -

  • 在每个测试级别
  • 对于每个功能
  • 对于每个迭代
  • 待发布

测试信息

测试人员需要具有以下测试信息 -

  • 需要测试的用户故事
  • 相关验收标准
  • 系统接口
  • 系统预期工作的环境
  • 工具可用性
  • 测试覆盖率
  • 国防部

在敏捷项目中,由于测试不是一个连续的活动,并且测试人员应该以协作模式工作,因此测试人员的责任是 -

  • 持续获取必要的测试信息。
  • 确定影响测试的信息差距。
  • 与其他团队成员协作解决差距。
  • 决定何时达到测试级别。
  • 确保在相关时间执行适当的测试。

功能和非功能测试设计

在敏捷项目中,可以使用传统的测试技术,但重点是早期测试。测试用例需要在实施开始之前就位。

对于功能测试设计,测试人员和开发人员可以使用传统的黑盒测试设计技术,例如 -

  • 等价划分
  • 边值分析
  • 决策表
  • 状态转换
  • 类树

对于非功能测试设计,由于非功能需求也是每个用户故事的一部分,因此只能使用黑盒测试设计技术来设计相关的测试用例。

探索性测试

在敏捷项目中,时间往往是测试分析和测试设计的限制因素。在这种情况下,探索性测试技术可以与传统测试技术相结合。

探索性测试(ET)被定义为同时学习、测试设计和测试执行。在探索性测试中,测试人员在执行测试时主动控制测试的设计,并使用测试时获得的信息来设计新的更好的测试。

探索性测试可以方便地适应敏捷项目中的变化。

基于风险的测试

基于风险的测试是基于失败风险的测试,并使用测试设计技术减轻风险。

产品质量风险可以定义为产品质量的潜在问题。产品质量风险包括 -

  • 功能性风险
  • 非功能性绩效风险
  • 非功能性可用性风险

进行风险分析以评估每种风险的概率(可能性)和影响。然后,风险被优先考虑 -

  • 高风险需要广泛的测试
  • 低风险仅需要粗略测试

根据每个风险的风险级别和风险特征,使用适当的测试技术来设计测试。然后执行测试以降低风险。

适合度测试

适合性测试是自动化的验收测试。Fit 和 FitNesse 工具可用于自动化验收测试。

FIT 使用 JUnit,但扩展了测试功能。HTML 表格用于显示测试用例。Fixture 是 HTML 表格背后的 Java 类。该装置获取 HTML 表的内容并在正在测试的项目上运行测试用例。