Invariant detection meets Random test case generation
Tiago Alves Veloso · Portuguese National Funding Agency for Science, Research and Technology (RCAAP Project by FCT) · 2011
Full fledged verification of software ensures correction to a level that no other technique can reach. However it requires precise and unambiguous specifications of requirements, functionality and technical aspects of the software to be verified. Furthermore, it requires that these specifications together with the produced models and code be checked for conformity. This represents beyond doubt an investment that most developers and companies are neither able nor willing to make. Although testing can not reach the same level of assurance as full fledged verification, it is the most widely accepted and used technique to validate expectations about software products. Testing is the most natural way of checking that a piece of software is doing what the developers expect it to do. Improvements to test case generation have the potential to produce a great impact in the state of the art of software engineering, by putting Software Testing closer to Formal Software Verification. This is an exploratory project, aimed at surveying the current state of the art in the field of test case generation and related techniques for the Java language, eventually suggesting possible advancements in the field.