吉林大学学报(工学版) ›› 2020, Vol. 50 ›› Issue (1): 262-267.doi: 10.13229/j.cnki.jdxbgxb20181246
• 计算机科学与技术 • 上一篇
Lei LIU(),Jie WENG,De-gui GUO()
摘要:
在编译器测试中,基于部分求值技术的编译器测试方法在部分求值阶段时,必须由测试人员对具体的测试用例进行分析,然后手动指定程序中的一些变量作为静态输入,这种依赖人工手动指定的策略具有一定的盲目性,而且无法使测试过程自动化进行。为了解决这一问题,提出了一种基于变量依赖关系的源程序静态输入及其取值的确定方法,使基于部分求值技术的编译器测试框架的测试过程得以自动化进行,从而提高了测试效率。实验结果证明了本文方法的可行性。
中图分类号:
1 | Regehr J, Chen Y, Cuoq P, et al. Test-case reduction for C compiler bugs[C]∥Proceedings of the 33rd ACM Sigplan Conference on Programming Language Design and Implementation, Beijing, China, 2012: 335-346. |
2 | Le V, Afshari M, Su Z. Compiler validation via equivalence modulo inputs[C]∥Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, Edinburgh, United Kingdom, 2014: 216-226. |
3 | Chen T Y. Metamorphic testing: a simple method for alleviating the test oracle problem[C]∥Proceedings of the 10th International Workshop on Automation of Software Test, Florence, Italy, 2015: 53-54. |
4 | Tao Q, Wu W, Zhao C, et al. An automatic testing approach for compiler based on metamorphic testing technique[C]∥Asia Pacific Software Engineering Conference, Sydney, 2010: 270-279. |
5 | 郭德贵, 王冠成, 吕帅, 等. peC语言的部分求值器及在编译器测试中的应用[J]. 软件学报, 2017, 28(5): 1221-1232. |
Guo De-gui,Wang Guan-cheng,Lv Shuai,et al. Partial evaluator for pec and its application to compiler validation[J]. Journal of Software, 2017, 28(5): 1221-1232. | |
6 | Beckman L, Haraldson A, Ö Oskarsson. et al. A partial evaluator, and its use as a programming tool[J]. Artificial Intelligence, 1976, 7(4): 319-357. |
7 | Jones N D. An introduction to partial evaluation[J]. ACM Computing Surveys, 1996, 28(3): 480–503. |
8 | The Clang Team. Clang documentation: LibTooling[DB/OL].[2018-09-24]. http:∥clang.llvm.org/docs/LibTooling.html. |
9 | Aho A V, Lam M S, Sethi R, et al. Compilers: Principles, Techniques, and Tools[M]. 2nd ed. Boston: Addison-Wesley Longman Publishing Co., Inc., 2006. |
10 | Le V, Sun C, Su Z. Randomized stress-testing of link-time optimizers[C]∥Proceedings of the International Symposium on Software Testing and Analysis, Beijing, China, 2015: 327-337. |
11 | Sun C, Le V, Zhang Q, et al. Toward understanding compiler bugs in GCC and LLVM[C]∥Proceedings of the 25th International Symposium on Software Testing and Analysis, Washington,USA, 2016: 294‒305. |
12 | Cuoq P, Monate B, Pacalet A, et al. Testing static analyzers with randomly generated programs[C]∥Proceedings of the 4th International Conference on NASA Formal Methods, Norfolk, VA, USA, 2012: 120‒125. |
13 | Yang X, Chen Y, Eide E, et al. Finding and understanding bugs in C compilers[J]. ACM Sigplan Notices, 2011, 46(6): 283‒294. |
[1] | 马健, 樊建平, 刘峰, 李红辉. 面向对象软件系统演化模型[J]. 吉林大学学报(工学版), 2018, 48(2): 545-550. |
[2] | 罗养霞, 郭晔. 基于数据依赖特征的软件识别[J]. 吉林大学学报(工学版), 2017, 47(6): 1894-1902. |
[3] | 刘磊, 刘利娟, 吴新维, 张鹏. 基于ECPMR的编译器测试方法[J]. 吉林大学学报(工学版), 2017, 47(4): 1262-1267. |
[4] | 应欢, 王东辉, 武成岗, 王喆, 唐博文, 李建军. 适用于商用系统环境的低开销确定性重放技术[J]. 吉林大学学报(工学版), 2017, 47(1): 208-217. |
[5] | 李勇, 黄志球, 王勇, 房丙午. 基于多源数据的跨项目软件缺陷预测[J]. 吉林大学学报(工学版), 2016, 46(6): 2034-2041. |
[6] | 王念滨, 祝官文, 周连科, 王红卫. 支持高效路径查询的数据空间索引方法[J]. 吉林大学学报(工学版), 2016, 46(3): 911-916. |
[7] | 陈鹏飞, 田地, 杨光. 基于MVC架构的LIBS软件设计与实现[J]. 吉林大学学报(工学版), 2016, 46(1): 242-245. |
[8] | 康辉, 王家琦, 梅芳. 基于Pi演算的并行编程语言[J]. 吉林大学学报(工学版), 2016, 46(1): 235-241. |
[9] | 特日跟, 江晟, 李雄飞, 李军. 基于整数数据的文档压缩编码方案[J]. 吉林大学学报(工学版), 2016, 46(1): 228-234. |
[10] | 冯晓宁, 王卓, 张旭. 基于L-π演算的WSN路由协议形式化方法[J]. 吉林大学学报(工学版), 2015, 45(5): 1565-1571. |
[11] | 刘磊, 王燕燕, 申春, 李玉祥, 刘雷. Bellman-Ford算法性能可移植的GPU并行优化[J]. 吉林大学学报(工学版), 2015, 45(5): 1559-1564. |
[12] | 李明哲, 王劲林, 陈晓, 陈君. 基于网络处理器的流媒体应用架构模型(VPL)[J]. 吉林大学学报(工学版), 2015, 45(5): 1572-1580. |
[13] | 王克朝, 王甜甜, 苏小红, 马培军. 基于频繁闭合序列模式挖掘的学生程序雷同检测[J]. 吉林大学学报(工学版), 2015, 45(4): 1260-1265. |
[14] | 黄宏涛,王静,叶海智,黄少滨. 基于惰性切片的线性时态逻辑性质验证[J]. 吉林大学学报(工学版), 2015, 45(1): 245-251. |
[15] | 贺秦禄1, 李战怀1, 王乐晓1, 王瑞2. 云存储系统聚合带宽测试技术[J]. 吉林大学学报(工学版), 2014, 44(4): 1104-1111. |
|