Localizing and fixing software faults is an important maintenance task. In a dynamic Web application, localizing the faults is challenging due to its dynamic nature and the interactions between the application and databases. The faults could occur in the statements in the host program or inside the queries that are sent from the application to be executed in the database engines. This paper presents SQLook, a novel database- aware fault localization method that is able to locate output faults in PHP statements of a dynamic Web application as well as in SQL queries. In SQLook, a PHP interpreter is instrumented to execute an SQL query and to monitor the evaluation of those SQL predicates to determine if they affect the output process of individual data records. It performs row-based slicing across PHP statements and SQL queries to record the entities that are involved in the output of each data row. Our empirical evaluation shows that SQLook can achieve higher accuracy than the state- of-the-art database-aware fault localization approach.
[1]
Shmuel Sagiv,et al.
Customization change impact analysis for erp professionals via program slicing
,
2008,
ISSTA '08.
[2]
A.J.C. van Gemund,et al.
On the Accuracy of Spectrum-based Fault Localization
,
2007,
Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).
[3]
Mary Jean Harrold,et al.
Empirical evaluation of the tarantula automatic fault-localization technique
,
2005,
ASE.
[4]
Michael I. Jordan,et al.
Scalable statistical bug isolation
,
2005,
PLDI '05.
[5]
Mangala Gowri Nanda,et al.
Fault localization for data-centric programs
,
2011,
ESEC/FSE '11.
[6]
Gregory M. Kapfhammer,et al.
Localizing SQL faults in database applications
,
2011,
2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).