是否有可能为非结构化代码编写有效的单元测试?
我正在阅读这个问题的各种答案。它解释了单元测试过程代码和OOP代码的含义,但是很少提到非结构化代码。
在我个人的经验中,我只编写了函数和类方法的单元测试。我认为测试非结构化代码确实很困难,但我也很想知道是否可能,以及单元测试这类代码的最佳实践是什么。
发布于 2015-11-06 08:17:21
不是的。除非您想认真地扭曲“单元测试”一词的含义,使其实质上成为“系统测试”的同义词,否则单元测试--一个没有单独单元可供测试的系统--是毫无意义的。
当然,您可以进行系统测试。如果代码执行多个功能,则可以进行功能测试。如果代码与其他代码集成,则可以进行集成测试。如果您有一些代码的验收标准,您可以进行验收测试。你可以做性能测试。
但是您不能进行单元测试,因为单元测试是孤立地测试单个独立单元,并且在非结构化代码中没有单独的独立单元(这就是“非结构化”的意思)。
发布于 2015-11-06 06:57:26
你说的基本上是一个很大的单位。通常,您会为小型单元编写大量的小单元测试,但在这种情况下,可能会为一个大单元编写大量复杂的测试。
在我的工作中,我们也有同样的问题。在我们的一些产品中,我们使用汤 (不明来源软件),我们必须进行“单元测试”,以遵守与我们的产品有关的规则和规则。
汤可以是库(例如蓝牙堆栈),也可以是执行框架(如QP/C )。我们编写执行API的测试,或者编写集成该汤并测试其(内部)功能的测试应用程序。
这些测试的一个重要功能是在更新汤时检测回归或不希望发生的更改。但大多数情况下,这些测试被用来验证汤是否能达到预期的效果,并且没有任何令人讨厌的意外或角落的情况。
开发一个非结构化软件的“单元”测试也是非常有用的,如果你想重组或替换它。
https://softwareengineering.stackexchange.com/questions/301875
复制相似问题