Conference Paper

DFL: Dual-Service Fault Localization.

Chung Man Tang, Jacky W. Keung, Yuen-Tak Yu, W. K. Chan

Abstract

In engineering a service, software developers often construct and deploy a newer (forthcoming) version of the service to replace the current version. A forthcoming version is often placed online for users to consume and report feedback. In the case of observed failures, the forthcoming version should be debugged and further evolved. In this paper, we propose the model of dual-service fault localization (DFL) to aid this evolution process. Many prior research studies on spectrumbased fault localization (SBFL) consider each version separately. The DFL model correlates the dynamic execution spectra of the current and the forthcoming versions of the same service placed for live test of the forthcoming version, and dynamically generates an adaptive fault localization formula to estimate the code regions in the forthcoming service responsible for the observed failures. We report an experiment in which we initialized the DFL model into six instances, each using an ensemble technique dynamically composed from 11 existing SBFL formulas, and applied the model to four benchmarks. The results show that DFL is feasible and multiple instances are statistically more effective than, if not as effective as, the best of these individual SBFL formulas on each benchmark. Keywords-debugging; spectrum-based fault localization; ensemble techniques; dual-service fault localization I. INTRODUCTION Over the last decades, the advent of the Internet motivates companies to turn their legacy offline programs into online services. It not only enables the execution of their programs to be accessible to users outside the companies, but also supports software deployment and upgrades centralized at the backend side of these services. The time-to-market pressure may further motivate companies to place some beta version of their services (that is, trial services) online for collecting feedback from users who trial use (or test) the beta service. In many cases, these trial services are less qualified than the deployed service for production. Nonetheless, many developers use the execution statistics of these trial services to help improve the quality of the production version of the same service

Keywords