汇编语言程序的路径覆盖率

时间:2014-03-05 06:27:32

标签: testing assembly x86 automated-tests

我有很多汇编代码,我想自动测试它们。必须在所有程序路径中进行测试。是否有自动测试x86汇编语言程序的工具或程序?

1 个答案:

答案 0 :(得分:0)

没有“自动测试程序”的工具。

首先,有人必须指定要测试的内容(通常是程序功能,有时是程序的性能)。

然后需要构建一些测试框架,以便能够以执行测试和收集测试结果的方式运行目标软件。

最后,需要使用框架对一些特定测试(所需输入,预期输出)进行编码。

在您的情况下,您坚持执行“通过代码的所有路径”。

首先,在任何实际应用中,这都是很多路径。它可能很多,你无法枚举它们,更不用说为每条路径构建测试了。实际上,进行路径测试的人找到了消除许多路径的方法(例如,如果存在DO循环,则仅检查循环的零和一个转换的路径。)

其次,只是在汇编程序中找到路径可能非常困难。 JMP间接去哪儿了? (这意味着任何路径分析都可能需要点分析来支持它)。更糟糕的是,如果将某些代码制作成缓冲区并执行,它会在何处进行? [事实上,有时在汇编程序中,你无法真正说出什么是指令而不是数据是什么。)

第三,你需要一些可以识别这些路径的工具,这样你就可以验证你的测试。据我所知,这些工具非常罕见。我认为几乎没有什么可用于汇编程序。

因此,如果您认真对待“所有路径”测试,那么您可能不得不计划为此构建自己的工具。这将是昂贵且耗时的。根据您的交付要求,可能需要这样做。