[发明专利]二进制翻译中间表示正确性测试方法及装置有效
申请号: | 201811570147.9 | 申请日: | 2018-12-21 |
公开(公告)号: | CN109634869B | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | 岳峰;庞建民;单征;谭捷;王军;梁光辉;李明亮 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 二进制 翻译 中间 表示 正确性 测试 方法 装置 | ||
本发明属于计算机移植技术领域,特别涉及一种二进制翻译中间表示正确性测试方法及装置,该方法包含:建立源平台指令与中间表示之间的映射规则;对中间表示进行状态初始化,并构造测试用例;针对测试用例,分别对源平台指令和中间表示独立执行,依据独立执行结果判定源平台指令和中间表示两者之间的语义是否等价。本发明能够实现与具体体系架构无关的中间代码正确性测试,结合黑盒和白盒的测试方法,能够快速、高效、准确地定位二进制翻译中间表示中存在的问题,提高其测试的准确性和效率,进而缩短软件开发测试周期,保证软件质量和可靠性,对不同平台之间的二进制翻译测试及计算机软件跨平台移植技术具有一定的指导意义。
技术领域
本发明属于计算机移植技术领域,特别涉及一种二进制翻译中间表示正确性测试方法及装置。
背景技术
二进制翻译实现计算机跨平台二进制程序的无缝移植,广泛应用在系统虚拟化、模拟器开发等领域,是一项重要的软件移植技术。二进制翻译技术的原理主要是将源平台的可执行程序解码得到汇编指令,再转换为中间表示,最后生成目标平台的指令并运行。如QEMU二进制翻译系统采用的中间表示是精简的代码生成器TCG,UQBT二进制翻译系统采用的中间表示是RTL。针对二进制翻译系统的正确性验证方法主要是采用各种测试集对翻译系统进行系统测试,如QEMU提供了linux-user-test、linux-user-busyboxes等测试集以测试翻译系统的正确性。但是针对关键的中间表示部分,却没有专门的测试方法。
二进制翻译实质是一种编译技术,扩展到编译领域,针对编译器的功能测试有很多方法, CSmith系统采用随机生成有效C程序的方法,对现代编译器GCC、LLVM进行了系统的点到点的测试,并发现了一些bug。与CSmith系统相似,一些系统也通过生成C或C++程序的方法来测试编译器。这些测试方法可分为白盒测试和黑盒测试两种。黑盒测试中如模糊测试,基于语法的模糊测试都可以应用到代码测试中;缺点是很难确保所有相关的输入数据被测试到。白盒测试的方法如符号执行,据有较高的测试覆盖率,但是状态空间通常较大,容易引起状态空间爆炸问题。这些测试都是系统测试的方法,不能够深入地分析验证独立组件的功能正确性。应用系统测试的方法会导致二进制翻译系统在中间表示中隐藏的bug很难被发现。原因主要在于:1.以SPEC2006为代表的测试集在执行时部分代码遍历不到,这导致了翻译系统功能验证的不完备性,可能存在未被测试到的中间表示;2.实际测试时测试集的输入数据覆盖面是有限的,这导致存在一些边界情况有可能在测试中不会出现,导致中间表示测试的不完整性。此外,编译器验证也是编译测试的一种理论方法,CompCert是一个代表性的形式化验证框架。但是,应用形式化验证到一个产品级的编译器如GCC仍很难实现。Hasabnis提出了测试GCC编译器代码生成规范的方法,能够构造特殊的测试用例来验证GCC编译器中间表示的功能正确性,但是,该方法无法应用到前端是机器指令的二进制翻译系统中来,进而影响软件开发测试周期和质量。
发明内容
为此,本发明提供一种二进制翻译中间表示正确性测试方法及装置,能够准确、高效地对二进制翻译中间表示语义的正确性进行测试,进而缩短软件开发测试周期,保证软件运行质量和可靠性。
按照本发明所提供的设计方案,一种二进制翻译中间表示正确性测试方法,包含如下内容:
建立源平台指令与中间表示之间的映射规则;
对中间表示进行状态初始化,并构造测试用例;
针对测试用例,分别对源平台指令和中间表示独立执行,依据独立执行结果判定源平台指令和中间表示两者之间的语义是否等价。
上述的,依据源平台指令,通过二进制翻译器获取其中间表示,并建立两者之间的映射规则。
上述的,依据源平台指令,通过二进制翻译器获取其中间表示,通过运行测试集搜集两者之间的映射规则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811570147.9/2.html,转载请声明来源钻瓜专利网。