我的软件公司以前从未做过BDD甚至TDD。进行测试意味着在部署前几天简单地试用新软件。

我们最近的项目已完成约70%。我们还将其用作新技术,新工具和新发展方式的游乐场。我的老板希望我切换到“测试测试”。

我试用了Selenium 2和RSpec。两者都有希望,但是如何赶上几个月的发展呢?进一步的问题是:


新语言
从来没有自己写过一行代码
很大一部分是由自由职业者撰写的
很多花式黑客
除了一些原始注释和流程图之外,根本没有任何文档


我所能做的就是用Selenium覆盖整个过程。这似乎是很痛苦的(但仍然可能),因为该软件显然绝不会以这种方式成为睾丸。我们有许多动态生成的ID,精美的jQuery等。甚至不知道如何开始使用RSpec。

因此,是否仍有可能将BDD应用于该项目?还是我应该跑得很远并且永远不要回来?

最佳答案

在开始之前-您是否问过老板,他从测试中看重什么?我先和你的老板澄清一下。系统级BDD的主要好处是在编写代码之前与业务涉众进行对话。如果您要做的只是包装现有代码,则将无法获得此代码。在单元级别,主要好处是质疑类的责任及其行为,同样,您将无法获得这些知识。但是,它可能有助于您了解应用程序的价值和每个代码级别。

如果您的老板只是想尝试BDD或TDD,则开始一个新项目甚至从其他人那里获取一个现有项目来进行一些测试可能会更简单。如果他真的想在遗留代码上尝试使用BDD,那么可能值得坚持使用您拥有的东西-@Esko的书中的建议。在现有功能周围放置较高级别的系统测试可以帮助您避免在重构较低级别的代码时造成麻烦(如果要放置测试,则需要这样做)。我还建议Martin Fowler's "Refactoring"

作为TDD的变体,RSpec最适合在单位级别应用BDD。如果您希望将自动化测试包装在整个环境中,请查看Cucumber。它使重用步骤变得更加简单。然后,您可以直接从步骤中调用Selenium。

我在BDD here上放了一个链接页面,希望它可以帮助新手更好地理解它。祝你好运。

关于testing - 是否可以将BDD纳入即将完成的项目中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8502528/

10-13 04:44