Publication

ETH Zürich, Diss. Nr. 17271, January 2007
Supervised by: Prof. Gustavo Alonso
Testingis the process of checking the correctness,completeness, security,and quality of a piece of Computer Software. With the increasing importanceand prevalence of testing, many tests have to be carried throughout the whole product cycle. With possibly thousands or even millions of tests to be executed, it is necessary to devise tools or techniques to automate and optimize the testing process. This dissertation examines several issues related to testing database applications and database systems. The first issue is related to the efficiency of testing database applications. Given that testing is the most expensivepart of the Software development cycle, it is necessary to fully utilize the available resources so as to minimize the testing time. The first part of this dissertation presents a framework for efficient test execution. The second issue is related to the generation of test data to test functional features of database applications. Today, all database generators generate test data without considering the application queries; therefore, the generateddata hardly return meaningful query results which could be used to test different code paths of an application. In order to solve this problem, the second part of this dissertation presents a database generator that accepts an application query and the expected query results as input, and generates a test database that meets the test requirements as output. The last part of this dissertation focuses on testing database Systems. In order to test individual componentsof a database System (e.g., query optimizer, Operators' algorithms), it is necessaryto execute the same test query on differentdatabase instances to obtain different query results. However, it is indeed difficult to obtain differentquery results for the same test query because it requires manual tuning on the database content. To this end, this dissertation presents a query-aware database generator to automate this task.
@phdthesis{abc,
	abstract = {Testingis the process of checking the correctness,completeness, security,and quality of a piece of Computer Software. With the increasing importanceand prevalence of testing, many tests have to be carried throughout the whole product cycle. With possibly thousands or even millions of tests to be executed, it is necessary to devise tools or techniques to automate and optimize the testing process. This dissertation examines several issues related to testing database applications and database systems.
The first issue is related to the efficiency of testing database applications. Given that testing is the most expensivepart of the Software development cycle, it is necessary to fully utilize the available resources so as to minimize the testing time. The first part of this dissertation presents a framework for efficient test execution.
The second issue is related to the generation of test data to test functional features of database applications. Today, all database generators generate test data without considering the application queries; therefore, the generateddata hardly return meaningful query results which could be used to test different code paths of an application. In order to solve this problem, the second part of this dissertation presents a database generator that accepts an application query and the expected query results as input, and generates a test database that meets the test requirements as output.
The last part of this dissertation focuses on testing database Systems. In order to test individual componentsof a database System (e.g., query optimizer, Operators{\textquoteright} algorithms), it is necessaryto execute the same test query on differentdatabase instances to obtain different query results. However, it is indeed difficult to obtain differentquery results for the same test query because it requires manual tuning on the database content. To this end, this dissertation presents a query-aware database generator to automate this task.},
	author = {Eric Lo},
	school = {17271},
	title = {Test Automation for Database Management Systems and Database Applications},
	year = {2007}
}