设计的可测试性

时间:2011-07-01 05:16:50

标签: testing

关于代码测试已经写了很多。但是,我们如何确保我们的设计首先在功能上是正确的?正如我们有用于测试Java代码的JUnit一样,是否有一些工具可用于测试基于UML的设计,其中测试以功能需求的形式表示?

这些是一些模糊的想法,但想知道是否有一种有条不紊,可自动化的方法来首先测试设计。换句话说,我们还可以进行“测试驱动设计”吗?

2 个答案:

答案 0 :(得分:2)

  

是否有一些工具可用于测试基于UML的设计,其中测试以功能要求 的形式表示?

您无法根据功能要求测试设计,因为功能要求的满足取决于实施,而不是设计。

换句话说,您可以遵循错误的设计(任何一种无限可能的设计),如果您实施所需的行为,仍然可以满足这组功能要求

答案 1 :(得分:1)

有趣的话题!

首先,我的个人网络中没有软件架构师使用UML作为设计系统的唯一方法,而且我也知道没有软件架构师在执行机械测试所需的详细程度上创建UML。

其次,我个人非常不喜欢UML建模工具。如果实施这样的形式验证方法,它很可能就像Rational Rose一样 - 我很久以前发誓我再也不会去那里了。

然而,尽管如此 - 在正式的软件商店中,通常需要具有需求可追踪性,通常实现为在一个轴上显示业务需求的矩阵,另一个是设计工件。这样,您可以查看是否有任何需求与相应的解决方案不匹配,或者解决方案中是否存在不符合特定业务需求的元素。

保持此矩阵更新是一件痛苦的事情,因此它不常用于敏捷团队,但如果您正在为银行或航天飞机构建软件,那么这是一项有价值的技术。

这告诉你你的设计是否完整 - 尽管不是它是否“正确”。

我无法知道设计是否“正确”而无需构建和测试,或依赖于人类的经验和知识。