Testing 设计的可测试性

Testing 设计的可测试性,testing,Testing,关于代码测试的文章已经很多了。但是,我们首先如何确保我们的设计在功能上是正确的呢?正如我们有用于测试Java代码的JUnit一样,是否有一些工具可以用来测试基于UML的设计,其中测试以功能需求的形式表示 这些都是一些模糊的想法,但我想知道是否有一种系统化、自动化的方法来首先测试设计。换句话说,我们是否也可以进行“测试驱动设计” 是否有一些工具可用于测试基于UML的设计,其中测试以功能需求的形式表达 不能基于功能需求测试设计,因为功能需求的满足取决于实现,而不是设计 换句话说,如果您实现了所需的行

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

这些都是一些模糊的想法,但我想知道是否有一种系统化、自动化的方法来首先测试设计。换句话说,我们是否也可以进行“测试驱动设计”

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

不能基于功能需求测试设计,因为功能需求的满足取决于实现,而不是设计

换句话说,如果您实现了所需的行为,您可以遵循一个糟糕的设计(任何一个无限可能的设计),并且仍然满足该组功能需求。

有趣的话题

首先,在我的个人网络中,没有软件架构师使用UML作为设计他们的系统的唯一方法,我也知道没有软件架构师在执行机械测试所需的细节级别创建UML

其次,我个人非常不喜欢UML建模工具。如果实现了这样一种正式的验证方法,它很可能会出现在类似RationalRose的东西中——我很久以前就发誓我再也不会接近它了

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

保持这个矩阵的更新是一件痛苦的事情,所以它在敏捷团队中并不经常使用,但是如果你正在为银行或航天飞机构建软件,这是一项很有价值的技术

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


据我所知,如果不进行构建和测试,或者依靠人类的经验和知识,就无法判断设计是否“正确”

我认为“正式验证”是你想要的。是的,但要以一种更“可编程”和“自动化”的方式。因此,我想知道我们是否可以想出类似“UMLUnit”的东西来允许编写和执行UML设计的测试。为什么验证不能编程和自动化?我并不是说它不能。我要找的是让它这样发生的方法。