【发布时间】:2012-10-18 21:38:53
【问题描述】:
我需要 BDD/ATTD/规范方面的专家的建议,例如。 (不好意思写了长篇,不知道怎么用更少的词来表达问题)
问题描述
我们在一个中型项目上工作了大约 1 年。 团队正在使用由验收测试驱动的基于流程的流程(以详细的测试用例的形式编写)。
现在,随着需求的发展,我们开始遇到这些测试的可维护性问题。
- 它们(非常)难以阅读,绝对不能用作产品 规范
- 需求的微小变化会导致很多天 重构,因为测试与实现细节过于耦合
我们认为它是如何解决的
为了解决这个问题,我们将把我们的测试转换成可执行的规范。 我读过的所有书籍/文章(例如 Gojko Adzic 的规范示例)都建议我们不要使用低层次的细节来重载规范,而这些细节告诉我们如何产品应该实施而不是产品应该做什么来满足业务期望。
这似乎是合理的,因为规范可能更具可读性和可维护性,并且在没有过度指定的情况下反映业务目标而不是软件设计。 然而,这些低级别的细节不能被丢弃——尽管业务用户没有明确要求它们,但它们仍然是预期的。例如,如果用户按下“处理按钮”,最好禁用它并启用“取消按钮”,直到处理完成。这样的细节在规范中似乎是不必要的,但应用程序要被客户接受是必需的。
我们在每个级别都使用 (A)TDD,并且习惯于编写代码只是为了通过测试。现在,我们将拥有更多抽象的可执行规范,而不是详细的测试,并且根本不知道将这些低级细节放在哪里。
问题
那么,有人可以提出一个管理无法符合规范的低级别需求的良好做法吗?
【问题讨论】:
标签: bdd acceptance-testing specifications