比方说,您必须测试一种从软件中获取两个数字之和的新方法,并且必须测试该功能并进行BDD自动化。 从下面两个方面,什么是更好的自动化方法(也是为什么)?
1)使用固定输入并期望相同的输出。例如:输入-> 3,5输出-> 8
OR
2)每次运行都使用随机的两个数字,并根据常规总和对其进行验证。
答案 0 :(得分:1)
第一个。
BDD与测试无关。这是关于使用示例来说明所需的行为。我们使用的示例是“示例”。专为该插图选择的。
在您的情况下,总和是一个非常琐碎的问题。但是,当我们处理更复杂的业务行为时,我们会问:“您能给我一个例子吗?”接下来的对话是BDD最重要的部分。由此,我们得到了将要处理的输入的现实示例,不仅是预期的输出,而且还有该输出的值以及对谁有价值的人。
一旦我们实现了方案的自动化,它们就可以作为很好的副产品提供测试,但这并不是他们要做的全部。他们也是现场文件。商界人士可以阅读它们以了解系统的功能,而团队成员可以使用它们来了解已经具备的功能。
如果场景是通用的(“随机数”,“另一个随机数”和“结果”)而不是特定的场景(“ 2”,“ 3”和“ 5”),则要困难得多。
答案 1 :(得分:0)
我喜欢Lunivore的回答,这很有趣。希望该线程在15分钟内被禁止! :)
您没有在做的事情中解释商业价值。琐碎地讲,使用随机输入要比固定输入复杂,因此,可能会出现更多错误,从而使情况更糟。但是也许您想测试随机输入?也许有某种价值,但是您没有提供足够的信息?
我想说的是,您是在先驱,然后从初级TDD程序员的角度而不是从高级BDD开发人员的角度来看。 “商业价值”通常高于某人的特定薪水。但这就是BDD的起点,而不是终点。
我会问你,“能够对这些数字求和的感知价值是什么?你是一个疯子吗?你为什么要和顾问谈这件事?”