调试
计算机科学
软件错误
背景(考古学)
秩(图论)
源代码
编码(集合论)
支持向量机
断层(地质)
遗传程序设计
数据挖掘
人工智能
软件
机器学习
程序设计语言
数学
地质学
古生物学
组合数学
地震学
集合(抽象数据类型)
生物
标识
DOI:10.1145/3092703.3092717
摘要
Fault localization aims to support the debugging activities of human developers by highlighting the program elements that are suspected to be responsible for the observed failure. Spectrum Based Fault Localization (SBFL), an existing localization technique that only relies on the coverage and pass/fail results of executed test cases, has been widely studied but also criticized for the lack of precision and limited effort reduction. To overcome restrictions of techniques based purely on coverage, we extend SBFL with code and change metrics that have been studied in the context of defect prediction, such as size, age and code churn. Using suspiciousness values from existing SBFL formulas and these source code metrics as features, we apply two learn-to-rank techniques, Genetic Programming (GP) and linear rank Support Vector Machines (SVMs). We evaluate our approach with a ten-fold cross validation of method level fault localization, using 210 real world faults from the Defects4J repository. GP with additional source code metrics ranks the faulty method at the top for 106 faults, and within the top five for 173 faults. This is a significant improvement over the state-of-the-art SBFL formulas, the best of which can rank 49 and 127 faults at the top and within the top five, respectively.
科研通智能强力驱动
Strongly Powered by AbleSci AI