TY - GEN
T1 - Predicting method crashes with bytecode operations
AU - Kim, Sunghun
AU - Zimmermann, Thomas
AU - Premraj, Rahul
AU - Bettenburg, Nicolas
AU - Shivaji, Shivkumar
PY - 2013
Y1 - 2013
N2 - Software monitoring systems have high performance overhead because they typically monitor all processes of the running program. For example, to capture and replay crashes, most current systems monitor all methods; thus yielding a significant performance overhead. Lowering the number of methods being monitored to a smaller subset can dramatically reduce this overhead. We present an approach that can help arrive at such a subset by reliably identifying methods that are the most likely candidates to crash in a future execution of the software. Our approach involves learning patterns from features of methods that previously crashed to classify new methods as crash-prone or non-crash-prone. An evaluation of our approach on two large open source projects, ASPECTJ and ECLIPSE, shows that we can correctly classify crash-prone methods with an accuracy of 80-86%. Notably, we found that the classification models can also be used for cross-project prediction with virtually no loss in classification accuracy. In a further experiment, we demonstrate how a monitoring tool, RECRASH could take advantage of only monitoring crash-prone methods and thereby, reduce its performance overhead and maintain its ability to perform its intended tasks.
AB - Software monitoring systems have high performance overhead because they typically monitor all processes of the running program. For example, to capture and replay crashes, most current systems monitor all methods; thus yielding a significant performance overhead. Lowering the number of methods being monitored to a smaller subset can dramatically reduce this overhead. We present an approach that can help arrive at such a subset by reliably identifying methods that are the most likely candidates to crash in a future execution of the software. Our approach involves learning patterns from features of methods that previously crashed to classify new methods as crash-prone or non-crash-prone. An evaluation of our approach on two large open source projects, ASPECTJ and ECLIPSE, shows that we can correctly classify crash-prone methods with an accuracy of 80-86%. Notably, we found that the classification models can also be used for cross-project prediction with virtually no loss in classification accuracy. In a further experiment, we demonstrate how a monitoring tool, RECRASH could take advantage of only monitoring crash-prone methods and thereby, reduce its performance overhead and maintain its ability to perform its intended tasks.
KW - Experimentation
KW - Measurement
KW - Reliability
UR - https://www.scopus.com/pages/publications/84874862896
U2 - 10.1145/2442754.2442756
DO - 10.1145/2442754.2442756
M3 - Conference Paper published in a book
AN - SCOPUS:84874862896
SN - 9781450319874
T3 - ACM International Conference Proceeding Series
SP - 3
EP - 12
BT - Proceedings of the 6th India Software Engineering Conference 2013, ISEC 2013
T2 - 6th India Software Engineering Conference, ISEC 2013
Y2 - 21 February 2013 through 23 February 2013
ER -