敏捷测试 - 工具


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

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

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

  • 开发自动化脚本。

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

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

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

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

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

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

  • 这种专门的工具创造了对测试自动化专家的需求,从而形成了孤岛

广泛使用的工具是 -

编号 工具和目的
1

哈德逊

持续集成框架

2

Selenium

功能测试 – 与 Hudson 集成

3

巡航控制

持续集成框架

4

朱尼特

Java单元测试

5

努尼特

.Net单元测试

6

Cobertura / JavaCodeCoverage / JFeature / JCover /

Java 测试覆盖率

7

小丑

Java - 突变测试/自动错误播种

8

格蕾特

Java 测试覆盖率监控工具

9

测试茧

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

10

爵士乐

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

11

蚂蚁

Java – 自动化构建

12

南特

.Net - 自动化构建

13

篝火

JIRA 的敏捷测试插件

敏捷测试自动化工具

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

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

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

  • 关注系统的预期Behave。

  • 将测试的本质与实现细节分开,从而使其与技术无关。

  • 促进合作。

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

这个问题可以通过自动化验收测试来解决,这些测试是与客户、其他利益相关者、测试人员和开发人员合作编写的。自动验收测试由客户或产品所有者/业务分析师编写,反映产品的预期Behave。开发人员的参与确保了按照要求生成代码。但是,如果测试仅关注验收,则生成的代码可能仍然不可扩展。

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

支持自动化验收测试的敏捷工具和框架是 -

  • 合身
  • 健身
  • Concordion
  • Ruby
  • Cucumber

合身

Ward Cunningham 开发了可用于自动化验收测试的工具 Fit。适合允许 -

  • 客户或产品所有者使用 Microsoft Word 和 Microsoft Excel 提供产品Behave示例

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

Fit 1.1 同时支持Java 和.NET。

健身

FitNesse 是一个 wiki,它是一种网络服务器风格,允许任何访问者进行任何编辑,包括更改现有页面和创建新页面。简单的标记语言可让您轻松创建标题,将文本设置为粗体、下划线和斜体,创建项目符号列表以及执行其他类型的简单格式设置。

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

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

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

    • 或者,将测试表放入 Microsoft Excel 中,复制到剪贴板,然后使用Spreadsheet to FitNesse命令让 FitNesse 正确设置表格格式

  • 运行测试

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

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

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

    • 黄色单元格代表抛出异常

Cucumber

Cucumber 是一个基于Behave驱动开发(BDD)框架的工具。主要特点是 -

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

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

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

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

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