敏捷测试 - 工具



在敏捷项目中,测试人员负责以下日常任务:

  • 支持开发人员进行编码,并澄清系统预期行为。

  • 帮助开发人员创建有效且高效的单元测试。

  • 开发自动化脚本。

  • 将自动化测试工具/脚本与持续集成集成,以进行回归测试。

为了有效且快速地执行这些任务,大多数敏捷项目都使用支持代码和测试组件持续集成的持续集成 (CI) 系统。

敏捷项目中的测试人员和开发人员可以利用各种工具来管理测试会话以及创建和提交缺陷报告。除了专门用于敏捷测试的工具外,敏捷团队还可以从测试自动化和测试管理工具中受益。

注意 - 录制和回放、测试后、重量级和测试自动化解决方案不是敏捷的,因为:

  • 此类工具鼓励的测试后工作流不适用于敏捷团队。

  • 使用此类工具创建的难以维护的脚本成为变更的障碍。

  • 此类专用工具需要测试自动化专家,从而导致形成孤岛。

广泛使用的工具包括:

序号 工具及用途
1

Hudson

CI 框架

2

Selenium

功能测试 - 与 Hudson 集成

3

CruiseControl

CI 框架

4

Junit

Java 单元测试

5

Nunit

.Net 单元测试

6

Cobertura / JavaCodeCoverage / JFeature / JCover /

Java 测试覆盖率

7

Jester

Java - 变异测试/自动错误注入

8

Gretel

Java 测试覆盖率监控工具

9

TestCocoon

C/C++ 或 C# - 通过查找冗余测试并查找死代码来减少测试量

10

JAZZ

Java - 分支、节点和覆盖范围,并实现 GUI、测试计划器、动态检测和测试分析器

11

Ant

Java – 自动化构建

12

Nant

.Net - 自动化构建

13

Bonfire

JIRA 的敏捷测试插件

敏捷测试自动化工具

有效的敏捷测试自动化工具支持:

  • 使用测试优先方法进行早期测试自动化。

  • 使用真实的语言、领域特定语言编写测试自动化代码。

  • 专注于系统的预期行为。

  • 将测试的本质与实现细节分离,从而使其独立于技术。

  • 促进协作。

自动化单元测试(使用 Junit 或 NUnit)支持代码的测试优先方法。这些是白盒测试,确保设计合理且没有缺陷。此类测试由开发人员在测试人员的支持下构建,并且可以独立于所需的功能。这导致交付的产品可能不满足客户需求,因此没有业务价值。

通过自动化验收测试来解决此问题,这些测试是在客户、其他利益相关者、测试人员和开发人员的协作下编写的。自动化验收测试由客户或产品负责人/业务分析师编写,反映了产品的预期行为。开发人员的参与确保根据需求生成代码。但是,如果测试仅侧重于验收,则生成的代码可能仍然无法扩展。

因此,自动化单元测试和自动化验收测试是互补的,敏捷开发都需要两者。

支持自动化验收测试的敏捷工具和框架包括:

  • Fit
  • Fitnesse
  • Concordion
  • Ruby
  • Cucumber

Fit

Ward Cunningham 开发了 Fit 工具,可用于验收测试自动化。Fit 允许:

  • 客户或产品负责人使用 Microsoft Word 和 Microsoft Excel 提供产品行为示例。

  • 程序员可以轻松地将这些示例转换为自动化测试。

Fit 1.1 支持 Java 和 .NET。

FitNesse

FitNesse 是一种 Wiki,它是一种 Web 服务器样式,允许任何访问者进行任何编辑,包括更改现有页面和创建新页面。一个简单的标记语言可以让您轻松创建标题、使文本加粗、下划线和斜体、创建项目符号列表以及执行其他各种简单的格式化操作。

在 FitNesse 中,验收测试自动化如下:

  • 将测试表示为输入数据和预期输出数据的表格。

  • 使用 FitNesse 将测试表放在您可以编辑的页面上。

    • 或者,将测试表放在 Microsoft Excel 中,复制到剪贴板,然后使用电子表格到 FitNesse 命令让 FitNesse 正确格式化您的表格。

  • 运行测试。

  • 您可以通过测试表中单元格的颜色编码获取测试结果。

    • 绿色单元格表示获得了预期值。

    • 红色单元格表示获得的值与预期值不同。

    • 黄色单元格表示抛出了异常。

Cucumber

Cucumber 是一种基于行为驱动开发 (BDD) 框架的工具。主要功能包括:

  • 用于编写 Web 应用程序的验收测试。

  • 允许以易于阅读和理解的格式(如纯英语)自动化功能验证。

  • 在 Ruby 中实现,然后扩展到 Java 框架。两者都支持 Junit。

  • 支持其他语言,如 Perl、PHP、Python、.Net 等。

  • 可以与 Selenium、Watir、Capybara 等一起使用。

广告