F007: finding rediscovered faults from the field using function-level failed traces of software in the field

  • Authors:
  • Syed Shariyar Murtaza;Mechelle Gittens;Zude Li;Nazim H. Madhavji

  • Affiliations:
  • University of Western Ontario, London, Canada;University of Western Ontario, London, Canada;University of Western Ontario, London, Canada;University of Western Ontario, London, Canada

  • Venue:
  • Proceedings of the 2010 Conference of the Center for Advanced Studies on Collaborative Research
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Studies show that approximately 50% to 90% of the failures reported from the field are rediscoveries of previous faults. Also, approximately 80% of the failures originate from approximately 20% of the code. Despite this identification of the origin of the failures in system code remains an arduous activity, and consumes substantial resources. Prior fault discovery techniques for field traces either require many pass-fail traces, discover only crashing failures, or identify faulty coarse grain code such as files as the source of the fault. This paper describes a new method (F007) that focuses on identifying finer grain faulty code (faulty functions) from only failed traces of deployed software. F007 extracts patterns of function-calls from a historical collection of only function-level failed traces, and then trains decision trees on the extracted function-call patterns for each known faulty function. A ranked list of faulty functions is then predicted by F007 for a new failure trace based on the probability of fault proneness obtained via decision trees. Our case study on the Siemens suite shows that F007: (a) can identify rediscovered faulty functions (with new or old faults) with 60--86% accuracy, (b) needs to examine approximately 5--10% of the code for the Siemens suite, and (c) can discover the faulty functions in every new failed trace by using a small collection of previous failed traces. Thus, F007 can correctly identify the faulty functions for the majority (80%-90%) of (field) failures with the knowledge of a fault in a small percentage (20%) of functions.