GGrantIndex
← Search

SHF: Small: Automatically Localizing Functional Faults In Deployed Software Applications

$350,896FY2016CSENSF

University Of Illinois At Chicago, Chicago IL

Investigators

Abstract

Even though most software applications are tested before they are released to customers, these applications still contain production (or field) functional faults that result in field failures, which have costly consequences and are expensive to fix. Due to their limitations, existing automatic debugging approaches do not adequately isolate and identify production faults for field failures. Prior interviews of test managers and studies of bug repositories revealed that programmers spent close to 50% of their time on average to localize production faults, which is a major factor in software system and software project failures. The educational innovation of this project is in developing an integrated approach to teaching by applying probabilistic graphical models to software engineering problems. The goal of this proposal is to create a novel theoretical foundation that allows stakeholders to predict and localize functional faults for field failures automatically with a high degree of precision using symptoms only (e.g., the sign of the output value is incorrect) and without instrumenting deployed applications to collect runtime data, thus avoiding the deployment runtime overhead, and without having any tests with oracles to uncover the fault, without performing contrasting successful and failed runs, and without collecting runtime data from field failures. With this theoretical foundation, researchers can collaborate more closely in planning the future of fault localization by expanding each other's results based on probabilistic graphical models as common abstractions. Based only on failure symptoms occurring during deployment of a given application, the location of faults in the source code will be determined, as well as navigation paths from likely faults to the code that can fix these faults. The project will create, evaluate and deploy: (1) new theories, algorithms and techniques for automatically obtaining probabilistic graphical models that approximate specific fault models for software applications; (2) a novel way in which model-based differential diagnoses are used to perform abductive reasoning to localize production faults given symptoms for field failures, and (3) a comprehensive experimentation framework for evaluating the effectiveness of the algorithms for localizing production faults. In addition to localizing production functional faults, the implementation can be used as a broad experimental platform for creating and testing hypotheses for various software debugging and testing ideas, e.g., for guiding test selection and prioritization.

View original record on NSF Award Search →