A metamorphic testing approach for supporting program repair without the need for a test oracle

被引:35
作者
Jiang, Mingyue [1 ,3 ]
Chen, Tsong Yueh [1 ]
Kuo, Fei-Ching [1 ]
Towey, Dave [2 ]
Ding, Zuohua [3 ]
机构
[1] Swinburne Univ Technol, Dept Comp Sci & Software Engn, Hawthorn, Vic 3122, Australia
[2] Univ Nottingham Ningbo China, Sch Comp Sci, Ningbo 315100, Zhejiang, Peoples R China
[3] Zhejiang Sci Tech Univ, Lab Intelligent Comp & Software Engn, Hangzhou 310018, Zhejiang, Peoples R China
基金
美国国家科学基金会;
关键词
Test suite based automated program repair; Test oracle; Metamorphic testing; SOFTWARE;
D O I
10.1016/j.jss.2016.04.002
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Test suite based automated program repair (APR) relies on a test oracle to determine the execution result of individual test cases. The applicability of APR techniques, therefore, is limited by the fact that test oracles may not exist. Metamorphic Testing (MT) is a testing approach that, rather than checking the correctness of individual test outputs, checks testing results through verification of relations among multiple test cases and their outputs: MT can therefore be applied without test oracles. This paper presents an integration of MT with APR that enables application of APR without the need for a test oracle. Two important issues for this integration which have been thoroughly investigated and addressed are: (1) feasibility - which is addressed by proposing a framework to support the integration, and then presenting MT-GenProg, a tool incorporating MT with the popular APR technique GenProg; and (2) effectiveness - which is confirmed through an empirical study of GenProg and MT-GenProg on 1,143 program versions from the IntroClass benchmark suite, demonstrating MT-GenProg's comparable performance to GenProg, in terms of repair effectiveness. We conclude that the proposed integration is both practically feasible and effective, and thus successfully extends APR techniques to a broader application domain. (C) 2016 Elsevier Inc. All rights reserved.
引用
收藏
页码:127 / 140
页数:14
相关论文
共 41 条
[1]  
[Anonymous], 2014, Optimization in Microgrid Design and Energy Management
[2]   A Practical Guide for Using Statistical Tests to Assess Randomized Algorithms in Software Engineering [J].
Arcuri, Andrea ;
Briand, Lionel .
2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, :1-10
[3]   Evolutionary repair of faulty software [J].
Arcuri, Andrea .
APPLIED SOFT COMPUTING, 2011, 11 (04) :3494-3514
[4]   A Novel Co-evolutionary Approach to Automatic Software Bug Fixing [J].
Arcuri, Andrea ;
Yao, Xin .
2008 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION, VOLS 1-8, 2008, :162-168
[5]   The Oracle Problem in Software Testing: A Survey [J].
Barr, Earl T. ;
Harman, Mark ;
McMinn, Phil ;
Shahbaz, Muzammil ;
Yoo, Shin .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2015, 41 (05) :507-525
[6]  
Barus Arlinta Christy, 2010, THESIS
[7]   On the Correlation between the Effectiveness of Metamorphic Relations and Dissimilarities of Test Case Executions [J].
Cao, Yuxiang ;
Zhou, Zhi Quan ;
Chen, Tsong Yueh .
2013 13TH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC), 2013, :153-162
[8]  
Chen T. Y., 1998, HKSUSTCS9801
[9]   Semi-Proving: An Integrated Method for Program Proving, Testing, and Debugging [J].
Chen, Tsong Yueh ;
Tse, T. H. ;
Zhou, Zhi Quan .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2011, 37 (01) :109-125
[10]   An innovative approach for testing bioinformatics programs using metamorphic testing [J].
Chen, Tsong Yueh ;
Ho, Joshua W. K. ;
Liu, Huai ;
Xie, Xiaoyuan .
BMC BIOINFORMATICS, 2009, 10