【问题标题】:Using SpecFlow for End-to-End Regression Testing使用 SpecFlow 进行端到端回归测试
【发布时间】:2012-01-19 08:01:07
【问题描述】:

我们正在使用 BDD 并使用 SpecFlow 来推动我们的开发 (ATDD)。

我们的 QA 团队希望定义他们自己的“端到端回归测试(在 Gherkin/SpecFlow 中)并重新使用我们已经定义的步骤。

(请注意 - 我知道这不是一个很好的例子,但它应该提供足够的细节)

测试可能包括..

  1. 登录
  2. 搜索产品
  3. 选择要购买的产品
  4. 创建订单
  5. 选择交付选项。
  6. 提交订单。
  7. 取消订单。

这将暗示一个类似的场景..

鉴于我已登录
当我搜索产品时
我选择要购买的产品
我创建了一个订单
我选择送货选项
然后我提交订单
我取消了订单
那么??!!

这显然是错误的,因为我们没有在每一步检查输出。

所以这个可能被解析为一系列场景:

场景 1:
鉴于我已登录
当我搜索产品时
然后我看到一个产品列表

场景 2:
当我选择要购买的产品时
然后我可以创建一个订单

场景 3:
当我创建订单时
我选择送货选项
然后我可以提交订单

等等等等

这样做的主要问题是似乎无法指定场景运行的顺序/顺序(nUnit 的特性?)。因为场景之间存在依赖关系(它们没有设置为已知的起点),所以它们必须按顺序运行。

我的问题是:

a) 我们是否要在圆孔中安装方形钉?!

b) 有谁知道是否有办法以这种方式使用 SpecFlow/Gherkin?

c) 或者有人知道有什么替代品吗?

非常感谢!

【问题讨论】:

    标签: automated-tests bdd specflow acceptance-testing gherkin


    【解决方案1】:

    我会说您在错误的抽象级别上编写场景。但这取决于您想将它们用于什么;

    如果您想编写测试脚本,那么您就走在了正确的轨道上......但是维护它将是一场噩梦,在第一种情况下(长脚本)将非常脆弱,而在第二种情况下(几个场景)需要保证一定的执行顺序。他们都被劝阻并被认为是反模式。

    我建议您合并您正在编写的 ATDD 测试,并与测试部门交谈,了解他们对此事的看法,并包括他们需要的测试用例,以确保系统经过全面测试。谁知道?你们甚至可以互相学习:P

    当您编写这些“规范”(我宁愿称之为)时,您会将它们写在更高的层次上。所以不要写:

    Given I am logged in
    When I Search for a product
      And I Select a product to buy
      And I Create an order
      And I Select delivery option
      And I Submit the order
    

    你写了类似的东西

    When I submit an order for product 'Canned beans'
    

    在该步骤后面的步骤定义中,您执行所有自动化操作(登录、浏览产品页面、选择交付选项、提交订单)。

    所有这些都可以在这些关于如何编写可维护的 UI 自动化测试的精彩文章中阅读:

    希望对你有帮助

    【讨论】:

    • 非常感谢您的回答 Marcus 和您列出的文章 - 非常有帮助!我现在对测试的问题更加清楚了。那就是“我们是否有能力将已经编写的场景链接在一起以按顺序运行以执行端到端系统测试?”例如登录然后浏览产品然后提交订单然后注册帐户然后编辑帐户然后搜索订单然后查看订单然后取消订单然后等等等等。因此能够将场景链接为当然后当然后当然后......不幸的是有似乎不是一种按特定顺序运行场景的方法。
    • 更新:如果场景被命名为“001 执行此操作”、“002 执行此操作”等,那么它们将按该顺序运行。感觉有点老套,但为了我们的目的,这将一直持续到找到更好的解决方案为止。
    • 我强烈建议不要编写依赖于顺序的场景。这将很难维护......
    • 我想知道您为什么要使用 BDD 进行回归测试。如官方文档所说,应该用于验收测试。
    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多