使用行为动因开发可以实现完整的回归测试。 (Jbehave / Cucmber)

时间:2015-10-06 07:21:45

标签: cucumber bdd jbehave

我们可以使用JBehave / Cucumber实现BDD的回归测试覆盖吗? 请分享您的输入,即使用行为动因开发可以实现完整的回归测试。 (Jbehave / Cucmber)。

1 个答案:

答案 0 :(得分:2)

除了最琐碎的产品之外,不可能进行完整的回归测试。

考虑这些验收标准:

  

可以更换或退款。

这导致两种情况;我们退还物品的地方,还有退货的地方。现在让我们再添加一点:

  

退回或退款时,物品会有库存,除非有问题。

现在我们有四种情景:

  • 我们更换物品并且有问题的那个
  • 我们退还商品并且错误的
  • 我们更换商品并将其重新库存的商品
  • 我们退还商品并将其重新库存的商品。

现在让我们添加收据必须符合日期的条件。我们需要检查退款和更换是否被拒绝,但是该物品不会意外地重新库存,也不会打印出任何故障标签。所以现在我们有八个场景。

现在让我们考虑一下我们有折扣的情况,以及我们无法扫描条形码的情况,所以我们手动输入数字,以及客户丢失收据的那些,所以我们必须查找使用他的会员卡,以及他用礼券支付的那些......

如果代码设计不当,每个场景都会影响其他场景。潜在组合的数量变得呈指数级,非常快。

我们希望代码设计良好,并且行为的不同方面都得到了很好的封装。我们希望已经考虑了所有场景。但是,如果是这种情况,我们不会意外地改变我们不想要的行为,我们根本不需要回归测试。所以我们知道,至少在某些时候,在大多数团队中,对一个场景的更改会影响另一个场景的更改。

考虑每一段代码的责任可以帮助减少这一点,这就是为什么大多数团队同时练习BDD和TDD(或类级别的BDD)的原因。

此外,不可能确保每个场景都被预先考虑,特别是因为每个软件项目都涉及到新的(或者你不会这样做)。

我们唯一能做的就是获得代码有效的置信度

BDD非常善于给予我们信心。它不仅可以帮助人们理解代码的作用 - 因此他们不太可能犯错误并编写错误 - 但它也有助于自动化方案,因此测试人员的工作量减少,他们可以更专注于寻找对于没有人想到的情景(探索性测试)。

因此,BDD绝对可以帮助进行回归测试......但是,甚至BDD都无法执行完整的回归测试覆盖。