题名 | Understanding and Facilitating the Co-Evolution of Production and Test Code |
作者 | |
通讯作者 | Liu,Yepang |
DOI | |
发表日期 | 2021-03-01
|
会议名称 | 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)
|
ISSN | 1534-5351
|
ISBN | 978-1-7281-9631-2
|
会议录名称 | |
页码 | 272-283
|
会议日期 | 9-12 March 2021
|
会议地点 | Honolulu, HI, USA
|
摘要 | Software products frequently evolve. When the production code undergoes major changes such as feature addition or removal, the corresponding test code typically should co-evolve. Otherwise, the outdated test may be ineffective in revealing faults or cause spurious test failures, which could confuse developers and waste QA resources. Despite its importance, maintaining such co-evolution can be time- and resource-consuming. Existing work has disclosed that, in practice, test code often fails to co-evolve with the production code. To facilitate the co-evolution of production and test code, this work explores how to automatically identify outdated tests. To gain insights into the problem, we conducted an empirical study on 975 open-source Java projects. By manually analyzing and comparing the positive cases, where the test code co-evolves with the production code, and the negative cases, where the co-evolution is not observed, we found that various factors (e.g., the different language constructs modified in the production code) can determine whether the test code should be updated. Guided by the empirical findings, we proposed a machine-learning based approach, SITAR, that holistically considers different factors to predict test changes. We evaluated SITAR on 20 popular Java projects. These results show that SITAR, under the within-project setting, can reach an average precision and recall of 81.4% and 76.1%, respectively, for identifying test code that requires update, which significantly outperforms rule-based baseline methods. SITAR can also achieve promising results under the cross-project setting and multiclass prediction, which predicts the exact change types of test code. |
关键词 | |
学校署名 | 第一
; 通讯
|
语种 | 英语
|
相关链接 | [Scopus记录] |
收录类别 | |
WOS记录号 | WOS:000675825200024
|
EI入藏号 | 20212210433696
|
EI主题词 | Java programming language
; Open source software
; Reengineering
; Turing machines
|
EI分类号 | Computer Theory, Includes Formal Logic, Automata Theory, Switching Theory, Programming Theory:721.1
; Computer Software, Data Handling and Applications:723
; Computer Programming Languages:723.1.1
; Quality Assurance and Control:913.3
|
Scopus记录号 | 2-s2.0-85106656597
|
来源库 | Scopus
|
全文链接 | https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9425945 |
引用统计 |
被引频次[WOS]:9
|
成果类型 | 会议论文 |
条目标识符 | http://sustech.caswiz.com/handle/2SGJ60CL/229607 |
专题 | 工学院_计算机科学与工程系 |
作者单位 | 1.Southern University of Science and Technology,Guangdong Provincial Key Laboratory of Brain-inspired Intelligent Computation,Department of Computer Science and Engineering,Shenzhen,China 2.Huazhong University of Science and Technology,School of Cyber Science and Engineering,Wuhan,China 3.Northeastern University,Software College,Shenyang,China 4.Xiamen University,School of Informatics,Xiamen,China |
第一作者单位 | 计算机科学与工程系 |
通讯作者单位 | 计算机科学与工程系 |
第一作者的第一单位 | 计算机科学与工程系 |
推荐引用方式 GB/T 7714 |
Wang,Sinan,Wen,Ming,Liu,Yepang,et al. Understanding and Facilitating the Co-Evolution of Production and Test Code[C],2021:272-283.
|
条目包含的文件 | ||||||
文件名称/大小 | 文献类型 | 版本类型 | 开放类型 | 使用许可 | 操作 | |
Understanding_and_Fa(1915KB) | -- | -- | 限制开放 | -- |
|
除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。
修改评论