2011-12-14 57 views
2

我的软件公司以前从未做过BDD甚至TDD。之前的测试意味着在部署前几天尝试新软件。是否有可能将BDD纳入几乎完成的项目?

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

我试过Selenium 2和RSpec。两者都很有前途,但如何追上几个月的发展?进一步的问题是:

  • 新的语言
  • 从来没有自己写过一行代码
  • 巨大的部分是由自由职业者书面
  • 很多花哨的黑客
  • 没有文档都除了一些源代码注释和流程图

我所能做的就是用Selenium覆盖整个过程。这似乎是相当痛苦的(但仍然有可能),因为这个软件从未打算用这种方式进行测试。我们有很多动态生成的id,花哨的jQuery等等。甚至不知道如何开始使用RSpec。

那么,这个项目是否仍然可以应用BDD?或者我应该跑远,不再回来?

+0

BDD表示您先写测试。你可以为新代码做到这一点,但根据定义,你不能为已经存在的代码。 – 2011-12-14 17:54:15

回答

5

在你开始之前 - 你问过你的老板他从测试中看到什么?我会先与你的老板澄清一下。系统级BDD的主要优点在于编写代码之前与业务涉众之间的对话。如果你正在做的是包装现有的代码,你将无法得到这个。在单元层面上,主要好处在于质疑班级及其行为的责任,而这又一次,你将无法得到。不过,它可能对帮助您理解应用程序的价值和每个代码级别有用。

如果你的老板只是想尝试BDD或TDD,那么启动一个新项目或者从其他人那里抓取一个现有的项目来包装一些测试可能会更简单。如果他真的想用BDD对旧版代码进行试验,那么可能值得坚持一下 - 艾斯科的书籍建议。对现有功能进行更高级别的系统测试可以帮助您避免在重构较低级别的代码时发生破坏(如果要将测试置于适当位置,则需要这样做)。我还建议Martin Fowler's "Refactoring"

RSpec最适合在单元级应用BDD,作为TDD的一个变体。如果您想要在整个环境中进行自动化测试,请查看Cucumber。它使重用步骤简单得多。然后,您可以直接从您的步骤调用Selenium。

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

+0

谢谢,非常有帮助。 – SDD64 2011-12-19 08:36:58

相关问题