Exploring database-aware automated fault localization
Introduction
Ever found yourself confounded by the task of debugging a database application? In a recent research paper (Clark et al. 2011)
Contributions
The paper makes several important contributions:
Automated Technique: The introduction of the first-ever database-aware fault-localization technique, a statistical method that takes into account an application’s interactions with its database when it uses information arising from test execution to automatically rank the program and schema locations that are the likely sources for a fault.
Quantitative Results: Using three Java programs, an empirical study demonstrating that our new technique can improve the effectiveness of finding structured query language (SQL) faults by as much as 94.6% over existing techniques that do not carefully consider a program’s interactions with the database through SQL statements.
Qualitative Results: A case study that uses concrete examples from real-world programs to show that the presented technique provides additional benefits, such as a potentially more efficient debugging process, which are difficult to quantify numerically.
Future
The results of the empirical studies in this paper demonstrate that, in some cases, a statistical, statement-based approach to fault-localization is effective at locating database-related faults. However, if the application uses a database, then the statement-based approach is insufficient and fault-localization is considerably more effective with a database-aware approach.
This research opens up several exciting avenues for future work. For instance, we plan to expand the class of faults that the technique finds to include multiple-attribute faults and faults within other parts of the SQL command. Additionally, we are working on techniques that can localize data and schema faults, which are not captured by analyzing SQL commands.
If you’re interested in diving deeper into this research, I encourage you to read the full paper (Clark et al. 2011)