|
The importance of testing in the software development process is recognized as a matter of fact nowadays. However, practice shows that, in spite of on-going research in the field, testing methodologies and tools have not yet managed to provide software developers with adequate support for testing activities.
In this project, we suggest a different approach to testing: the testing process is fully automatic. Our methodology is based on Design by Contract (TM). Contracts are a valuable source of information regarding the intended semantics of the software. The information that contracts (preconditions, postconditions, class invariants, loop variants and invariants, and check instructions) provide can be used to check whether the software fulfills its intended purpose. By checking that the software respects its contracts, we can ascertain its validity. Therefore, contracts provide the basis for automation of the testing process.
The goal of this project was to develop an environment for automatic generation of tests, which we call TestStudio. It allows the user to generate, compile and run tests on the push of a button. It also allows fine tuning of the testing process and offers all the benefits of a friendly user interface.
TestStudio is a proof of concept for push-button testing. It shows that, in the presence of contracts, a fully automatic testing process is possible. In fact, it is not only possible, but also effective and efficient. By using TestStudio, we discovered several bugs in Eiffel libraries, bugs that had escaped thorough manual testing performed by library developers.
|
|
|