T HE development of Object-Oriented (OO) and component-based software is a reality. This work investigates software testing and validation in this context. Several studies related with OO testing have been carried out. In spite of being a controversial point, some researchers state that the procedural testing criteria can be easily extended to OO program testing, for instance to the testing of methods. There are few initiatives aiming at applying data-flow and mutationbased criteria, traditionally used for procedural testing, to the test of OO programs. The present work aims at contributing to identify and define resources for OO program testing and validation, considering data-flow and mutation based testing criteria, involving the unit and integration testing phases. An integrated environment for testing and validation has been developed to support the application of these criteria. This environment provides means to comparative studies amongst the criteria and to technology transfer processes. This work provides contributions to the following testing perspectives: theoretical -with the definition of testing criteria; empiricalwith the conduction of empirical studies; and to testing automation -with the specification and implementation of an integrated environment for testing and validation of OO programs. Examples are provided to illustrate the ideas and tools presented in this work. vii viii ix 1.3. ORGANIZAÇÃO DA TESE ¡¨ ¡ ¡¨ ¡ ¡¨ ¡ ¡
Although software testing is a crucial activity in the software development process, only recently have more sound and consistent testing tools become available for testing Java programs and their components. These tools support mostly functional and control-flow based structural criteria. In this paper we explore control-flow and data-flow based coverage criteria to support the testing of Java programs and/or components. We also describe a testing tool, named JaBUTi, which can be used by both the component developer and the component user to test Java-based components and/or systems. To achieve this goal, the tool works at the bytecode level such that no source code is required during the testing activity. We illustrate these ideas and concepts with an example extracted from the literature.
Agradecimentos A DEUS, pelo dom da vida e por me acompanhar em todos os momentos. Ao amigo e orientador, Prof. Dr. José Carlos Maldonado, pelo apoio, sugestões e profissionalismo na orientação deste trabalho. Aos meus familiares, em especial, aos meus pais Amauri e Leise e minhas irmãs Cibele e Andresa, pelo amor, compreensão e incentivo proporcionados. À Ellen Francine pelo amor, apoio, carinho, revisão, incentivo, esclarecimento de duvidas, etc., etc., etc., os quais foram de fundamental importância para que este trabalho pudesse ser concluído. Aos demais professores do grupo de Engenharia de Software: Prof.ª Dr.ª Rosely Sanches, Prof. Dr. Paulo Cesar Masiero e Prof.ª Dr.ª Renata P. M. Fortes. Ao meu irmão, Pe. José Carlos Frederice (Fred), pela amizade, ajuda e conselhos nas horas mais difíceis. A todos aqueles que, de alguma forma, contribuíram e colaboraram para a realização deste trabalho: Delamaro,
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.