trjianjianjiao 发表于 2011-12-19 16:21:35

关于自动化单元测试技术的一些疑问

本帖最后由 trjianjianjiao 于 2011-12-19 16:30 编辑

我现在在做的一个项目让我有一些苦恼的地方。项目的方向是针对C语言的自动化单元测试框架,那它的核心有两个,一个是单元测试,一个是测试用例的自动生成。有两点是我想得很绕线的。我们项目的核心,即测试用例自动生成(完全的自动生成,输入是被测函数,输出是测试用例和覆盖率),有没必要?目前我知道的单元测试框架都是提供自动化的测试执行框架,程序员自己添加测试用例、进行程序验证,然后系统会给出覆盖率等等信息。第二个问题是,既然项目是要做测试用例的自动生成,那可行性怎么样?因为属于偏研究型的项目,我看过一些论文,很多论文专门针对指针、循环,我也有在书上看到说,符号分析的难点在于指针的别名和数组的引用,ms很多问题也没有很好的解决方案,大多是能解决某些问题。而且也没找到有哪个项目说做到了完全的测试用例自动生成。之前有看CUTE,静态分析与符号执行相结合的测试用例生成,也只是对指针支持的比较好。而我现在的项目大boss的要求是一个完整的产品,我疑惑的是,能做到吗?
   总结来说,就是完备的测试用例的自动生成1程序员需要吗,有意义吗?2可行吗?
   第一次发帖,对整个论坛还不熟悉,如果帖子没发对地方,还希望告知一声。真心希望大家能帮我解解惑。谢谢。

VisualUnit 发表于 2011-12-23 10:25:22

关于用例的自动生成,关键不是技术,而是价值。例如:

int func(int a, int b)
{
    return a-b;
}

这是一个加法函数,把加号写成了减号,这种最简单代码中的最简单错误,你自动生成一亿个用例也是测不出来的,实现了百分之一亿的覆盖又有什么用?

一句话,工具不可能自动了解代码的功能,因此,自动用例的价值是极有限的,只能发现崩溃,超时之类的极端错误。
页: [1]
查看完整版本: 关于自动化单元测试技术的一些疑问