Faults and Failures in SQL-based Data Manipulation Programming - Leitão Júnior, Plínio de Sá; Vilela, Plínio Robert Souza; Jino, Mario (INFOCOMP Journal of Computer Science, 2007)
Database applications, including SQL-based applications, have received little attention directed towards improving the knowledge of their possible faults. This paper deals with issues related to software faults and failures aiming at understanding what types of faults occur in SQL manipulation commands, and how they are propagated to the output of command execution. SQL manipulation commands are studied and their structure is organized into structural items, a step towards understanding and grouping fault types. A list of manipulation fault types is determined and presented with SQL command examples. Failure dimensions are discussed along with query and state changing operations. An experiment to abstract the types of manipulation faults for SQL was carried out and the results are presented. The experiment built databases and faulty commands to promote failure in command execution. A database was built and a set of faulty SQL commands used to map fault types and failure dimensions. The analysis of data mapping indicates: i) there is a many-to-many mapping between faults and failures; ii) failure dimensions are dependent on fault type, faulty command, and the database itself; and iii) manipulation fault knowledge is crucial for SQL programming and testing of database applications. This work represents an initial step for testing SQL programming.