Database applications are becoming increasingly complex. They are composed of many components and stacked in several layers. Furthermore, most database applications are subject to constant change; for instance, business processes are re-engineered, authorization rules are changed, components are replaced by other more powerful components, or optimizations are added in order to achieve better performance for a growing number of users and data. The more complex an application becomes, the more frequently the application and its configuration must be changed.
The SIKOSA project is a joint research project of several universities in Western Europe. One goal of the SIKOSA project is to develop new techniques and tools in order to automate the testing and quality assurance of database applications. The goal is to reduce the burden of programmers and engineers (i.e., people) to guarantee the quality of a database application and to provide a (computer-based) infrastructure that automatically checks diverse quality metrics. This project has several apparent results: (a) the quality of the database applications can be dramatically increased – obvious errors which might slip a human’s attention can be detected; (b) the cost of testing can be reduced; (c) the time to market of a computer system can be reduced; (d) new computer technology (e.g., fast hardware) can be leveraged in order to achieve even
higher quality and reduced costs in the long run.
As part of this project, a suite of tools for testing database applications has been developed: HTDGen, HTTrace, and HTPar. First, HTDGen is a tool for generating a test database such that we could use that to test a database application thoroughly. Second, HTTrace is a tool to run regression tests on database applications. It “learns” during each test and devises a new test run execution schedule after each test. The next test will then be executed according to the new devised schedule so as to minimize the testing time. Third, HTPar is an extension of HTTrace. It is used to execute test runs in parallel on a single or several machines. Its goal is to exploit the available resources (e.g., machine) as well as possible and/or achieve linear speed up in testing.



Follow us