2015-04-07 54 views

回答

0

首先,不可能在没有要求的情况下进行浪费,因此无论如何SRS是必需的。如果你的软件足够灵活,那么对SRS应用任何改变都很容易。对需求的任何改变意味着改变代码和测试。

问题的第二部分是关于设计。在敏捷开发(和TDD本身)中没有设计是常见的误解。这意味着,就像在其他类型的SE开发过程中一样,设计在实施之前完成。甚至在设计之前完成架构。

引述wikipedia's TDD design chapter:共享特性有效TDD必不可少

有效的模块化设计产量成分。
*高凝聚力确保每个单元提供一组相关功能,并使这些功能的测试更易于维护。
*低耦合允许每个单元独立进行有效测试。
*已发布的接口限制组件访问并作为测试联系点,便于创建测试并确保测试和生产单位配置之间的最高保真度。

和:

场景建模可以极大地方便了TDD试验的复杂系统的建设。

因此,系统是建模的,但考虑到可测性,我们在上面引用了这种系统的特征(高粘聚力和低耦合)。

1

很多人都在使用ATDD和TDD。业主,BA应该有要求。

大部分的要求是以故事的形式给出的。

例子: 作为(有的角色) 我想(这里的一些功能) 所以我可以(收益/特征在这里值)

开发团队测试人员和业务的人应该有会议和“谈话”关于每个要求。

然后你想出了一个完成的意思。下面是我经常使用的一个很好的语法来帮助提出良好的可测试定义。

为 “角色” 应该能看到/执行下列操作(输入测试): 鉴于(some_initial_condition(S)) 当(埃文斯(S)_occurs) 然后(ensure_some_outcome)

边缘情况(预计产生正确输出的最大或最小输入)

由此你可以有一个很好的理想,如何设置你的单元测试。

你也可能需要使用像黄瓜https://cukes.info/