Functional, Structural and Mutation Testing

Authors:
        José Carlos Maldonado, University of São Paulo
        Auri Marcelo Rizzo Vicenzi, Catholic University of Santos
        Márcio E. Delamaro, Centro Universitário Euripedes de Marília

The growing of user request for better software quality has motivating the definition of criteria, methods and techniques to improve the way software is developed. In this sense, there is an increasing interest in software testing area. Several researches have investigated a variety of testing criteria, aiming at obtaining a testing strategy with a lower application cost but, at the same time, very efficacy in detecting failure, and at the very end faults. The aim of this course is to present the theoretical and practical aspects related to the software testing activity. A synthesis of the functional, structural and fault based testing techniques is presented, as well as the main related testing criteria. The comparison aspects amongst the testing criteria (cost, efficacy and strength) are also considered from the theoretical and experimental point of view. The importance of the testing automation is discussed, characterizing the main efforts of the testing community in this direction. Emphasis will be given to the state of the art tools. Efforts from the academia will be also discussed. The testing activity and the related problems are presented and illustrated through practical examples with the support of different testing tools such that the audience can obtain a good knowledge about software testing both on theory and practice. The need for systematic evaluation of these criteria and tools in the perspective of experimental software engineering will also be discussed.