Comparing developer-provided to user-provided tests for fault localization and automated program repair

René Just, Chris Parnin, Ian Drosos, Michael D. Ernst
{"title":"Comparing developer-provided to user-provided tests for fault localization and automated program repair","authors":"René Just, Chris Parnin, Ian Drosos, Michael D. Ernst","doi":"10.1145/3213846.3213870","DOIUrl":null,"url":null,"abstract":"To realistically evaluate a software testing or debugging technique, it must be run on defects and tests that are characteristic of those a developer would encounter in practice. For example, to determine the utility of a fault localization or automated program repair technique, it could be run on real defects from a bug tracking system, using real tests that are committed to the version control repository along with the fixes. Although such a methodology uses real tests, it may not use tests that are characteristic of the information a developer or tool would have in practice. The tests that a developer commits after fixing a defect may encode more information than was available to the developer when initially diagnosing the defect. This paper compares, both quantitatively and qualitatively, the developer-provided tests committed along with fixes (as found in the version control repository) versus the user-provided tests extracted from bug reports (as found in the issue tracker). It provides evidence that developer-provided tests are more targeted toward the defect and encode more information than user-provided tests. For fault localization, developer-provided tests overestimate a technique’s ability to rank a defective statement in the list of the top-n most suspicious statements. For automated program repair, developer-provided tests overestimate a technique’s ability to (efficiently) generate correct patches—user-provided tests lead to fewer correct patches and increased repair time. This paper also provides suggestions for improving the design and evaluation of fault localization and automated program repair techniques.","PeriodicalId":20542,"journal":{"name":"Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2018-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"26","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3213846.3213870","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 26

Abstract

To realistically evaluate a software testing or debugging technique, it must be run on defects and tests that are characteristic of those a developer would encounter in practice. For example, to determine the utility of a fault localization or automated program repair technique, it could be run on real defects from a bug tracking system, using real tests that are committed to the version control repository along with the fixes. Although such a methodology uses real tests, it may not use tests that are characteristic of the information a developer or tool would have in practice. The tests that a developer commits after fixing a defect may encode more information than was available to the developer when initially diagnosing the defect. This paper compares, both quantitatively and qualitatively, the developer-provided tests committed along with fixes (as found in the version control repository) versus the user-provided tests extracted from bug reports (as found in the issue tracker). It provides evidence that developer-provided tests are more targeted toward the defect and encode more information than user-provided tests. For fault localization, developer-provided tests overestimate a technique’s ability to rank a defective statement in the list of the top-n most suspicious statements. For automated program repair, developer-provided tests overestimate a technique’s ability to (efficiently) generate correct patches—user-provided tests lead to fewer correct patches and increased repair time. This paper also provides suggestions for improving the design and evaluation of fault localization and automated program repair techniques.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
比较开发人员提供的测试和用户提供的测试,以进行故障定位和自动程序修复
要实际地评估软件测试或调试技术,它必须在缺陷和测试上运行,这些缺陷和测试是开发人员在实践中可能遇到的特征。例如,为了确定故障定位或自动程序修复技术的实用性,可以在bug跟踪系统中的实际缺陷上运行,使用与修复一起提交到版本控制存储库的实际测试。尽管这样的方法使用真实的测试,但它可能不会使用具有开发人员或工具在实践中所拥有的信息特征的测试。开发人员在修复缺陷后提交的测试可能编码了比最初诊断缺陷时开发人员可用的更多的信息。本文从数量和质量上比较了开发人员提供的测试和修复(在版本控制存储库中找到),以及从bug报告中提取的用户提供的测试(在问题跟踪器中找到)。它提供了证据,证明开发人员提供的测试比用户提供的测试更有针对性,并且编码了更多的信息。对于故障定位,开发人员提供的测试高估了一种技术在最可疑语句列表中排有缺陷语句的能力。对于自动程序修复,开发人员提供的测试高估了一种技术(有效地)生成正确补丁的能力——用户提供的测试导致更少的正确补丁,并增加了修复时间。本文还提出了改进故障定位和自动程序修复技术的设计和评估的建议。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
LAND: a user-friendly and customizable test generation tool for Android apps Bench4BL: reproducibility study on the performance of IR-based bug localization Search-based detection of deviation failures in the migration of legacy spreadsheet applications Identifying implementation bugs in machine learning based image classifiers using metamorphic testing Tests from traces: automated unit test extraction for R
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1