敏捷测试 - 工具

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

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

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

  • 开发自动化脚本。

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

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

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

注意 − 记录和回放、测试最后、重量级和测试自动化解决方案并不像 − 那样敏捷。

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

  • 使用此类工具创建的无法维护的脚本成为变革的障碍

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

广泛使用的工具是 −

S.No. 工具 &目的
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 中,复制到剪贴板,然后使用 Spreadsheet to FitNesse 命令让 FitNesse 正确格式化您的表格

  • 运行测试

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

    • 绿色单元格代表获得预期值

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

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

Cucumber

Cucumber 是基于行为驱动开发 (BDD) 框架的工具。主要功能是 −

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

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

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

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

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