The grading system is available for download. Details are provided below.

Testing SQL Queries

Queries written in SQL are usually tested using multiple ad hoc test cases provided by the programmer or the tester. However this approach involves manual effort in terms of test case generation and also does not ensure whether all the relevant test cases have been covered or not. Formal verification techniques involve comparing a specification with an implementation. However since SQL queries are themselves specifications and do not contain the implementation, formal verification techniques cannot be applied for testing SQL queries.

A closely related problem is that of grading SQL queries. Grading SQL queries is usually done by executing the query on small datasets and/or by reading the student query and comparing those with the correct query. Manually created datasets or fixed set of datasets can be incomplete and hence are likely to miss errors in queries. Manual reading and comparing of queries is difficult since students may write queries in a variety of different ways. This grading method is prone to errors as graders are likely to miss subtle mistakes.

XData to the rescue

The XData system developed at IIT Bombay addresses the problem of generation of test data to catch errors in SQL queries. It generates multiple datasets, each designed to catch a certain class of errors (mutations). To generate a dataset, the XData system generates a set of constraints that the dataset must satisfy, and then invokes an SMT solver (currently, the CVC3 solver) to generate the dataset. As part of the XData system, we have also developed a system designed to grade student SQL queries. The grading system has a number of useful features, allowing instructors to create multiple assignments, and allowing graded as well as self-learning modes for students. The grading system supports the LTI standard allowing very easy integration into learning management systems such as Moodle, Blackboard, etc.


Grading system


XData has been developed by a number of students of the CSE Department, IIT Bombay, under the guidance of Prof. S. Sudarshan, over the course of several years.
Current Team Members: Bikash Chandra, Shreevidhya Acharya, Mathew Joseph
Alumni: Bharath Radhakrishnan, Shetal Shah, Amol Bhangdiya, K V Maheshwara Reddy, Biplab Kar, Ankit Shah, Bhupesh Chawda, Junaid Mohammed, Suhas Kajbaje, Sandeep Patidar, Bhanu Gupta, Devang Vira


The XData project has been partially funded by generous support from Tata Consultancy Services (TCS).