敏捷测试 - 技术
传统测试中的测试技术也可用于敏捷测试。除此之外,敏捷项目还使用敏捷特定的测试技术和术语。
测试基础
在敏捷项目中,产品待办事项取代了需求规范文档。产品待办事项的内容通常是用户故事。非功能性需求也在用户故事中得到处理。因此,敏捷项目中的测试基础是用户故事。
为了确保质量测试,以下内容也可以作为测试基础 −
- 来自同一项目或过去项目的先前迭代的经验。
- 系统的现有功能、架构、设计、代码和质量特征。
- 来自当前和过去项目的缺陷数据。
- 客户反馈。
- 用户文档。
完成的定义
完成的定义 (DoD) 是敏捷项目中用于确保完成 Sprint 待办事项中的活动的标准。 DoD 可能因 Scrum 团队而异,但在同一团队内应保持一致。
DoD 是必要活动的清单,用于确保用户故事中的功能和特性的实现以及用户故事中的非功能性要求。在完成 DoD 清单中的所有项目后,用户故事将进入完成阶段。 DoD 在团队中共享。
用户故事的典型 DoD 可以包含 −
- 详细的可测试验收标准
- 确保用户故事与迭代中其他故事一致性的标准
- 与产品相关的特定标准
- 功能行为方面
- 非功能特性
- 接口
- 测试数据要求
- 测试覆盖率
- 重构
- 审查和批准要求
除了用户故事的 DoD 之外,DoD 也是必需的 −
- 在每个测试级别
- 针对每个功能
- 针对每个迭代
- 发布
测试信息
测试人员需要具备以下测试信息 −
- 需要测试的用户故事
- 相关验收标准
- 系统接口
- 系统预期工作的环境
- 工具可用性
- 测试覆盖率
- DoD
在敏捷项目中,由于测试不是连续的活动,并且测试人员应该以协作模式工作,因此测试人员有责任 −
- 持续获取必要的测试信息。
- 确定影响测试的信息差距。
- 与其他团队成员协作解决差距。
- 决定何时达到测试级别。
- 确保在相关时间执行适当的测试。
功能和非功能测试设计
在敏捷项目中,可以使用传统的测试技术,但重点是早期测试。测试用例需要在实施开始前准备好。
对于功能测试设计,测试人员和开发人员可以使用传统的黑盒测试设计技术,例如−
- 等价划分
- 边界值分析
- 决策表
- 状态转换
- 类树
对于非功能测试设计,由于非功能需求也是每个用户故事的一部分,因此只能使用黑盒测试设计技术来设计相关的测试用例。
探索性测试
在敏捷项目中,时间通常是测试分析和测试设计的限制因素。在这种情况下,探索性测试技术可以与传统测试技术相结合。
探索性测试 (ET) 被定义为同时进行学习、测试设计和测试执行。在探索性测试中,测试人员在测试执行时主动控制测试设计,并使用测试过程中获得的信息来设计新的、更好的测试。
探索性测试可以方便地适应敏捷项目中的变化。
基于风险的测试
基于风险的测试是基于失败风险的测试,并使用测试设计技术来降低风险。
产品质量风险可以定义为产品质量的潜在问题。产品质量风险包括−
- 功能风险
- 非功能性性能风险
- 非功能性可用性风险
需要进行风险分析以评估每种风险的概率(可能性)和影响。然后,对风险进行优先排序 −
- 高风险需要进行大量测试
- 低风险仅需要进行粗略测试
根据每种风险的风险级别和风险特征,使用适当的测试技术设计测试。然后执行测试以减轻风险。
适合度测试
适合度测试是自动化验收测试。工具 Fit 和 FitNesse 可用于自动化验收测试。
FIT 使用 JUnit,但扩展了测试功能。HTML 表用于显示测试用例。Fixture 是 HTML 表后面的 Java 类。Fixture 获取 HTML 表的内容并在被测试的项目上运行测试用例。