Cucumber 框架:什么是 Cucumber?

⚡ 智能摘要

Cucumber 是一款支持行为驱动开发 (BDD) 的测试工具,任何人都可以阅读测试用例,无需任何技术知识。本资源解释了 BDD 如何通过 Given-When-Then 步骤工作,以及 BDD 的优势。 Cucumber以及它与……的比较 Selenium 以及 HP ALM。

  • 🥒 核心定义: Cucumber 是一个行为驱动开发工具,它编写技术和非技术利益相关者都能理解的简单语言测试。
  • 🗣️ BDD Foundation: 业务分析师和产品负责人会在开发人员编写代码之前描述系统行为,从而增进彼此的理解。
  • 📝 Given-When-Then: 所有的 Cucumber 场景遵循易于理解的 Given-When-Then 结构,同时也可作为动态文档。
  • 主要优势: 快速设置、代码重用、以最终用户为中心,以及非编码业务利益相关者的轻松参与。
  • 工具对比: Cucumber 它是免费的,并且基于 BDD,而 HP ALM 是付费的,并且 Selenium 目标是进行功能和性能测试。

Cucumber 骨架

什么是 Cucumber?

Cucumber 是一款支持行为驱动开发 (BDD) 的测试工具。它提供了一种编写任何人都能理解的测试的方法,无论其技术知识水平如何。在 BDD 中,用户(业务分析师、产品负责人)首先编写场景或验收测试,从客户的角度描述系统的行为,供产品负责人审核和签字确认,然后开发人员才能编写代码。 Cucumber 框架使用 Ruby 编程语言.

Cucumber 骨架
Cucumber 骨架

BDD 的工作原理 Cucumber 自动化?

假设你被指派在网银应用程序中创建一个资金转账模块。

有多种方法可以测试它。 Cucumber 测试框架:

  1. 如果汇款账户余额充足,则可以进行资金转账。
  2. 如果收款账户信息正确,资金转账即可进行。
  3. 如果用户输入的交易密码/RSA码/安全认证信息正确,则资金转账应进行。
  4. 即使是银行假日,资金转账也应该进行。
  5. 资金转账应在账户持有人设定的未来日期进行。

测试场景 随着我们考虑诸如在 Y 天/月的时间间隔内转账金额 X、当总金额达到 Z 时停止预定转账等附加功能,情况会变得更加复杂。

开发人员的普遍倾向是先开发功能,然后再编写测试代码。正如上述案例所示, 测试用例 针对这种情况的开发很复杂,开发人员会推迟开发。 测试与验证 直到正式发布,届时他们会进行快速但无效的测试。

为了解决这个问题, Cucumber BDD(行为驱动开发) 它的构想是这样的:它让开发人员的整个测试过程变得轻松便捷。

In Cucumber BDD,无论你写什么都必须进入 给定-何时-然后 步骤。让我们用 BDD 来考虑上面的例子:

Given that a fund transfer module in net banking application has been developed
And I am accessing it with proper authentication
When I shall transfer with enough balance in my source account
Or I shall transfer on a Bank Holiday
Or I shall transfer on a future date
And destination a/c details are correct
And transaction password/RSA code/security authentication for the transaction is correct
And press or click send button
Then amount must be transferred
And the event will be logged in log file

它是不是很容易编写、阅读和理解?它涵盖了资金转账模块所有可​​能的测试用例,并且可以轻松修改以适应更多用例。它也更像是为资金转账模块编写的文档。

的优点 Cucumber 软件

  1. 让那些不易阅读代码的业务利益相关者参与进来是有帮助的。
  2. Cucumber 测试工具 注重终端用户体验。
  3. 这种编写测试的方法便于在测试中重复使用代码。
  4. 快速简便的设置和执行。
  5. 此 Cucumber 测试工具是一种有效的工具 测试.

Cucumber vs Selenium 与 ALM

在本节中,我们将研究 Cucumber, Selenium以及 ALM。

Cucumber HP 应用生命周期管理 (QTP) Selenium
Cucumber 软件是免费的。 QTP 价格昂贵。 这是免费的。
Cucumber 软件是一种行为驱动的开发工具。 它是一款功能自动化工具。 它具有功能性和性能(Selenium 网格)测试工具。
插件在 Cucumber 测试工具运行速度更快。 插件相比之下速度较慢。 Cucumber 和 Selenium. 插件比……慢 Cucumber.
Cucumber 除了 Ruby 之外,该框架还支持其他语言,例如 Java,Scala, Groovy等等。 QTP 仅支持VB脚本。 Selenium 支持 Java.Net 以及许多其他语言。
编写自动化测试步骤是测试人员和开发人员的共同努力。 In QTP只有测试人员编写自动化步骤。 喜欢 Cucumber编写自动化步骤是测试人员和开发人员的共同努力。
此 Cucumber 测试工具仅支持 Web 环境。 支持网页、桌面和任何客户端-服务器应用程序。 仅支持网页环境。

还检查: - UFT vs Selenium: 之间的区别 Selenium 和 HP UFT

常见问题

是的。AI 工具可以直接根据书面需求生成 Gherkin 场景和步骤定义。但是,测试人员在使用之前应该审查生成的场景,确保其准确性、涵盖边界情况并具有完整的覆盖范围。

不。人工智能可以加快场景编写和步骤生成速度,但人类测试人员仍然需要定义预期行为、验证业务逻辑并与利益相关者保持协作,这仍然是行为驱动开发的核心。

Gherkin 是一种纯文本语言 Cucumber 用于编写测试场景。它遵循 Given-When-Then 结构,使测试用例既易于业务利益相关者和开发人员阅读,又能执行。

Cucumber 是一种 BDD 工具。它侧重于从用户的角度描述系统行为,这与 TDD 不同,TDD 侧重于在实现每个小功能之前编写单元级代码测试。

总结一下这篇文章: