我有很多汇编代码,我想自动测试它们。测试必须在程序的所有路径中进行。是否有自动测试x86汇编语言程序的工具或程序?
发布于 2014-03-06 01:39:22
目前还没有“自动测试程序”的工具。
首先,必须有人指定要测试的内容(通常是程序功能,有时是程序的性能)。
然后,需要构建一些测试框架,以允许以一种可以执行测试和收集测试结果的方式来执行目标软件。
最后,需要使用框架对一些特定的测试(期望的输入、期望的输出)进行编码。
在您的例子中,您坚持执行“所有通过代码的路径”。
首先,在任何实际的应用程序中,这都是很多路径。它可能非常多,以至于您无法枚举所有路径,更不用说为每条路径构建测试了。作为一个实际问题,做路径测试的人会找到一种方法来消除许多路径(例如,如果有DO循环,则只检查循环的0和1转换的路径)。
其次,仅仅是在汇编程序中查找路径就可能非常困难。JMP间接会去哪里?(这意味着任何路径分析都可能需要点对点分析来支持它)。更糟糕的是,如果一些代码被制造到缓冲区中并执行,它会做什么,它会去哪里?事实上,在汇编程序中,有时你不能真正区分什么是指令,什么是数据。
第三,您需要一些工具来识别这些路径,这样您就可以验证您的测试是否使用了这些路径。据我所知,这些工具非常罕见。我认为汇编器几乎没有可用的东西。
因此,如果您对“所有路径”测试是认真的,那么您可能必须计划为此构建自己的工具。这将是昂贵和耗时的。根据您的交付要求,这可能是必要的。
https://stackoverflow.com/questions/22190258
复制相似问题