之前看到的 bdd 方法论 outside-in 都是 cucumber 配合 rspec 不知为何现在大家的项目好像都不用 cucumber 了 不知为何?想请教一下? 还有?是否都坚持测试驱动代码开发吗?
不用 Cucumber 也可以做验收测试,用 capybara 之类的工具整合 rspec 等测试框架就行了。
Cucumber 写出来的东西如果没有非程序员来阅读,感觉就没必要专门引入这个东西了。不过我必须承认自己没用过 Cucumber,不是特别清楚这玩意的优势何在(除了普通人可读的 Gherkin)。
#5 楼 有道理, 但我主要是觉得在开始构思一个系统是,主要都是一些概念,某些比较虚,这个时候就写一些 model 的测试根本不可能,只能借助于黄瓜逐步建立起一个完整的需求文档
测试太重,功能就很难改动,开发人员会有惰性。
Kent Beck 最近说了
I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence
http://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests
当然这有很多种理解,不愿写测试的人可能欢呼「测试无用」,我的理解是测试的分量应该能「夹住」易错的地方,但是不要给功能修改带来负担。
在我看来 写测试是需要的.... 至于你是不是一定要 TDD 我觉得看情况的... 按我们的案例来讲 40% 左右是测试先行的.... 其余的是测试后行....
Cucumber 用不用看你的喜好.... 我个人不算喜欢...当然你喜欢要用问题也不大....
TDD 最大的优势还是在 model....我建议从 model 开始入手学习 TDD/BDD...
api,构架,命名等有太多未知,可以在完成一个模块代码,并准备开始新的模块开发时,考虑引入测试,不过这个 TDD 更多地是保证新的模块代码不会影响到已经完成的模块
Don’t use Cucumber unless you live in the magic kingdom of non-programmers-writing-tests (and send me a bottle of fairy dust if you’re there!)
http://37signals.com/svn/posts/3159-testing-like-the-tsa
我感觉 cucumber 让开发人员来写太啰哩啰唆,曾经用过一段 cucumber,真是煎熬,换回 rspec request+capybara 感觉顺手很多。 如果没人强迫你用 cucumber,就让 rspec 搞定所有测试吧。
我认为最好是有 BA 来写这些 cucumber 的需求,然后开发或者测试来写测试的实现。这样 cucumber 写出来的 spec 方便维护,同时也是链接 BA 和开发沟通的桥梁。
我是测试人员 粗体,从我的角度我看到 cucumber 的好处有以下几点:1 建立起来 DSL 领域语言(适合任何领域),是项目中各种角色的桥梁 2 可以用来做测试用例文档 3 可以用作需求文档 4 项目种各种角色如果来了新人都可以看的学习文档 5 测试引导开发的各种好处都有 6 可以做回归测试
从业了 5,6 年测试,感觉一个项目中每个人对同样一个需求有不同的理解,导致需求实现到最后变了形,如果这个时候再从头改,很多开发就不愿意了。如果在需求的最前面用人类语言写的文档作为前期的沟通,那么前面说的这个风险就会降低
不论开发用什么工具顺手,你做的再快,如果你做出来的东西已经背离了需求的本意,做的快了又有什么意义那?
不要相信人的记忆,久了总会遗忘,还是有个文档最好