Software quality has evolved to an important factor when developing software systems. Especially for commercial systems, quality assurance of the software is necessary to provide a reliable and pleasing product. Testing is a crucial step in the software development life cycle and should be of every software engineer’s concern. Testing frameworks and tools such as JUnit or PHPUnit have made their way to production systems and are often deeply integrated into release processes.
Consequently, the quality of the tests themselves is crucial for their reliability to ensure the software’s quality and correctness. One of the approaches to evaluate tests is Mutation Testing. However, this technique does not seem to be very popular and has its downsides. Is it mature and useful enough to support strategic decisions regarding development of a software and its tests?
First, let’s get down with the basics.
Continue reading