TY - JOUR
T1 - A large-scale empirical study of just-in-time quality assurance
AU - Kamei, Yasutaka
AU - Shihab, Emad
AU - Adams, Bram
AU - Hassan, Ahmed E.
AU - Mockus, Audris
AU - Sinha, Anand
AU - Ubayashi, Naoyasu
N1 - Copyright:
Copyright 2013 Elsevier B.V., All rights reserved.
PY - 2013
Y1 - 2013
N2 - Defect prediction models are a well-known technique for identifying defect-prone files or packages such that practitioners can allocate their quality assurance efforts (e.g., testing and code reviews). However, once the critical files or packages have been identified, developers still need to spend considerable time drilling down to the functions or even code snippets that should be reviewed or tested. This makes the approach too time consuming and impractical for large software systems. Instead, we consider defect prediction models that focus on identifying defect-prone (& risky&) software changes instead of files or packages. We refer to this type of quality assurance activity as & Just-In-Time Quality Assurance,& because developers can review and test these risky changes while they are still fresh in their minds (i.e., at check-in time). To build a change risk model, we use a wide range of factors based on the characteristics of a software change, such as the number of added lines, and developer experience. A large-scale study of six open source and five commercial projects from multiple domains shows that our models can predict whether or not a change will lead to a defect with an average accuracy of 68 percent and an average recall of 64 percent. Furthermore, when considering the effort needed to review changes, we find that using only 20 percent of the effort it would take to inspect all changes, we can identify 35 percent of all defect-inducing changes. Our findings indicate that & Just-In-Time Quality Assurance& may provide an effort-reducing way to focus on the most risky changes and thus reduce the costs of developing high-quality software.
AB - Defect prediction models are a well-known technique for identifying defect-prone files or packages such that practitioners can allocate their quality assurance efforts (e.g., testing and code reviews). However, once the critical files or packages have been identified, developers still need to spend considerable time drilling down to the functions or even code snippets that should be reviewed or tested. This makes the approach too time consuming and impractical for large software systems. Instead, we consider defect prediction models that focus on identifying defect-prone (& risky&) software changes instead of files or packages. We refer to this type of quality assurance activity as & Just-In-Time Quality Assurance,& because developers can review and test these risky changes while they are still fresh in their minds (i.e., at check-in time). To build a change risk model, we use a wide range of factors based on the characteristics of a software change, such as the number of added lines, and developer experience. A large-scale study of six open source and five commercial projects from multiple domains shows that our models can predict whether or not a change will lead to a defect with an average accuracy of 68 percent and an average recall of 64 percent. Furthermore, when considering the effort needed to review changes, we find that using only 20 percent of the effort it would take to inspect all changes, we can identify 35 percent of all defect-inducing changes. Our findings indicate that & Just-In-Time Quality Assurance& may provide an effort-reducing way to focus on the most risky changes and thus reduce the costs of developing high-quality software.
UR - http://www.scopus.com/inward/record.url?scp=84878433190&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84878433190&partnerID=8YFLogxK
U2 - 10.1109/TSE.2012.70
DO - 10.1109/TSE.2012.70
M3 - Article
AN - SCOPUS:84878433190
SN - 0098-5589
VL - 39
SP - 757
EP - 773
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 6
M1 - 6341763
ER -