吉林大学学报(工学版) ›› 2017, Vol. 47 ›› Issue (4): 1262-1267.doi: 10.13229/j.cnki.jdxbgxb201704035

• 论文 • 上一篇    下一篇

基于ECPMR的编译器测试方法

刘磊1, 2, 刘利娟2, 吴新维1, 张鹏1   

  1. 1.吉林大学 计算机科学与技术学院,长春 130012;
    2.吉林大学 软件学院,长春 130012
  • 收稿日期:2017-05-11 出版日期:2017-07-20 发布日期:2017-07-20
  • 通讯作者: 张鹏(1986-),男,讲师,博士.研究方向:软件形式化方法.E-mail:zhangpengccst@jlu.edu.cn
  • 作者简介:刘磊(1960-),男,教授,博士生导师.研究方向:程序分析技术.E-mail:liulei@jlu.edu.cn
  • 基金资助:
    中国博士后面上基金项目(2016M591482); 吉林省自然科学基金项目(20150101054JC).

Compiler testing method based on ECP metamorphic relation

LIU Lei1, 2, LIU Li-juan2, WU Xin-wei1, ZHANG Peng1   

  1. 1.College of Computer Science and Technology, Jilin University, Changchun 130012,China;
    2.College of Software, Jilin University, Changchun 130012,China
  • Received:2017-05-11 Online:2017-07-20 Published:2017-07-20

摘要: 提出了一种通过验证程序切片是否满足ECPMR的方式来验证编译器的方法。首先,选取一些满足特定蜕变关系的正确程序作为待测编译器的输入。然后,使用这些被选程序来生成程序切片。最后,检查程序切片的输出是否满足ECPMR从而发现编译器中的错误。在SNL编译器上进行了本文方法的验证实验,结果表明该方法可有效地探测到SNL编译器中的错误。

关键词: 计算机系统结构, 蜕变关系, 蜕变测试, 编译器测试, 程序切片

Abstract: The aim of this paper is to propose a method based ECP Metamorphic Relation (ECPMR) to test compilers. First, we select some correct programs with specific metamorphic relations as inputs of the under-test compiler. Then, we use these selected programs to generate program slices. Finally, we check whether the outputs of these program slices satisfy the ECPMR to find bugs in the compiler. Our proposed method is verified through experimental study on SNL compiler and the results show that this method is effective to detect bugs in SNL compiler.

Key words: computer systems organization, metamorphic relation, metamorphic testing, compiler testing, program slice

中图分类号: 

  • TP393
[1] Kossatchev A S, Posypkin M A. Survey of compiler testing methods[J]. Programming & Computer Software, 2005, 31(1):10-19.
[2] Chen J, Hu W, Hao D, et al. An empirical comparison of compiler testing techniques[C]//Proceedings of the 38th International Conference on Software Engineering, ACM, 2016: 180-190.
[3] Ammann P, Offutt J. Introduction to Software Testing[M]. Oxford City: Cambridge University Press, 2016.
[4] Barr E T, Harman M, McMinn P, et al. The oracle problem in software testing: A survey[J]. IEEE transactions on software engineering, 2015, 41(5): 507-525.
[5] Chen T Y, Cheung S C, Yiu S M. Metamorphic testing: a new approach for generating next test cases[R]. Technical Report HKUST-CS98-01, 1998.
[6] Xie X, Wong W E, Chen T Y, et al. Metamorphic slice: An application in spectrum-based fault localization[J]. Information and Software Technology, 2013, 55(5): 866-879.
[7] 董国伟, 聂长海, 徐宝文. 基于程序路径分析的有效蜕变测试[J]. 计算机学报, 2009, 32(5):1002-1013.
Dong G W, Nie C H, Xu B W. Effectively metamorphic testing based on program path analysis[J]. Chinese Journal of Computer, 2009, 32(5): 1002-1013.
[8] Segura S, Fraser G, Sanchez A B, et al. A survey on metamorphic testing[J]. IEEE Transactions on Software Engineering, 2016, 42(9): 805-824.
[9] 王志文,黄小龙,王海军,等. 基于程序切片的测试用例生成系统研究与实现[J]. 计算机科学,2014,(09):71-74.
Wang Zhi-wen, Huang Xiao-long, Wang Hai-jun, et al. Program slicing-guided test case generation system[J]. Computer Science, 2014.
[10] Păsăreanu C S, Visser W. A survey of new trends in symbolic execution for software testing and analysis[J]. International Journal on Software Tools for Technology Transfer (STTT), 2009, 11(4): 339-353.
[11] Xie T, Tillmann N, de Halleux J, et al. Fitness-guided path exploration in dynamic symbolic execution[C]//2009 IEEE/IFIP International Conference on Dependable Systems & Networks(DSN'09). IEEE, 2009: 359-368.
[12] 刘磊. 编译程序的设计与实现[M]. 北京:高等教育出版社, 2004.
[1] 余宜诚, 胡亮, 迟令, 初剑峰. 一种改进的适用于多服务器架构的匿名认证协议[J]. 吉林大学学报(工学版), 2018, 48(5): 1586-1592.
[2] 董坚峰, 张玉峰, 戴志强. 改进的基于狄利克雷混合模型的推荐算法[J]. 吉林大学学报(工学版), 2018, 48(2): 596-604.
[3] 赵博, 秦贵和, 赵永哲, 杨文迪. 基于半陷门单向函数的公钥密码[J]. 吉林大学学报(工学版), 2018, 48(1): 259-267.
[4] 董立岩, 王越群, 贺嘉楠, 孙铭会, 李永丽. 基于时间衰减的协同过滤推荐算法[J]. 吉林大学学报(工学版), 2017, 47(4): 1268-1272.
[5] 于斌斌, 武欣雨, 初剑峰, 胡亮. 基于群密钥协商的无线传感器网络签名协议[J]. 吉林大学学报(工学版), 2017, 47(3): 924-929.
[6] 邓昌义, 郭锐锋, 张忆文, 王鸿亮. 基于平衡因子的动态偶发任务低功耗调度算法[J]. 吉林大学学报(工学版), 2017, 47(2): 591-600.
[7] 魏晓辉, 刘智亮, 庄园, 李洪亮, 李翔. 支持大规模流数据在线处理的自适应检查点机制[J]. 吉林大学学报(工学版), 2017, 47(1): 199-207.
[8] 郝娉婷, 胡亮, 姜婧妍, 车喜龙. 基于多管理节点的乐观锁协议[J]. 吉林大学学报(工学版), 2017, 47(1): 227-234.
[9] 魏晓辉, 李翔, 李洪亮, 李聪, 庄园, 于洪梅. 支持大规模流数据处理的弹性在线MapReduce模型及拓扑协议[J]. 吉林大学学报(工学版), 2016, 46(4): 1222-1231.
[10] 车翔玖, 梁森. 一种基于大顶堆的SPIHT改进算法[J]. 吉林大学学报(工学版), 2016, 46(3): 865-869.
[11] 董悦丽, 郭权, 孙斌, 康玲. 药物分子对接动态任务迁移优化[J]. 吉林大学学报(工学版), 2015, 45(4): 1253-1259.
[12] 匡哲君,师唯佳,胡亮. 基于无线传感器网络的角色成员关系剩余能量新算法[J]. 吉林大学学报(工学版), 2015, 45(2): 600-605.
[13] 张忆文,郭锐锋. 实时系统混合任务低功耗调度算法[J]. 吉林大学学报(工学版), 2015, 45(1): 261-266.
[14] 张忆文1, 2, 郭锐锋1. 制的容错节能调度算法[J]. 吉林大学学报(工学版), 2014, 44(4): 1112-1117.
[15] 付帅1, 马建峰1, 李洪涛1, 王长广2. 改进的基于分簇无线传感器网络的数据聚合算法[J]. 吉林大学学报(工学版), 2014, 44(4): 1118-1125.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!