The Co-Evolution of Test Maintenance and Code Maintenance through the lens of Fine-Grained Semantic Changes

被引:22
作者
Levin, Stanislav [1 ]
Yehudai, Amiram [1 ]
机构
[1] Tel Aviv Univ, Blavatnik Sch Comp Sci, Tel Aviv, Israel
来源
2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME) | 2017年
关键词
Software Testing; Software Maintenance; Mining Software Repositories; Predictive Models; Software metrics; Human Factors; PREDICTING FAULTS; SOFTWARE CHANGES;
D O I
10.1109/ICSME.2017.9
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Automatic testing is a widely adopted technique for improving software quality. Software developers add, remove and update test methods and test classes as part of the software development process as well as during the evolution phase, following the initial release. In this work we conduct a large scale study of 61 popular open source projects and report the relationships we have established between test maintenance, production code maintenance, and semantic changes (e.g, statement added, method removed, etc.). performed in developers' commits. We build predictive models, and show that the number of tests in a software project can be well predicted by employing code maintenance profiles (i.e., how many commits were performed in each of the maintenance activities: corrective, perfective, adaptive). Our findings also reveal that more often than not, developers perform code fixes without performing complementary test maintenance in the same commit (e.g., update an existing test or add a new one). When developers do perform test maintenance, it is likely to be affected by the semantic changes they perform as part of their commit. Our work is based on studying 61 popular open source projects, comprised of over 240,000 commits consisting of over 16,000,000 semantic change type instances, performed by over 4,000 software engineers.
引用
收藏
页码:35 / 46
页数:12
相关论文
共 45 条
[1]  
[Anonymous], 2012, THESIS
[2]   CONSTRUCTING CONFIDENCE SETS USING RANK STATISTICS [J].
BAUER, DF .
JOURNAL OF THE AMERICAN STATISTICAL ASSOCIATION, 1972, 67 (339) :687-690
[3]   The limited impact of individual developer data on software defect prediction [J].
Bell, Robert M. ;
Ostrand, Thomas J. ;
Weyuker, Elaine J. .
EMPIRICAL SOFTWARE ENGINEERING, 2013, 18 (03) :478-505
[4]  
Bell Robert M., 2011, P 7 INT C PRED MOD S
[5]   When, How, and Why Developers (Do Not) Test in Their IDEs [J].
Beller, Moritz ;
Gousios, Georgios ;
Panichella, Annibale ;
Zaidman, Andy .
2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, :179-190
[6]   Random forests [J].
Breiman, L .
MACHINE LEARNING, 2001, 45 (01) :5-32
[7]   Change Analysis with Evolizer and ChangeDistiller [J].
Call, Harald C. ;
Fluri, Beat ;
Pinzger, Martin .
IEEE SOFTWARE, 2009, 26 (01) :26-33
[8]  
Chambers J.M., 1991, Statistical Models in S
[9]  
Cruz AEC, 2009, INT SYMP EMP SOFTWAR, P461
[10]  
Diebold F. X., 2012, ORIGIN S DEV TERM BI