Empirical Study and Analysis of Software Repositories to Explore Evolution and Testing Effort

Abstract

Software Testing is an important activity of software development life cycle that is performed to aid and enhances the quality and reliability of the software. Studies indicate that more than fifty percent of the cost of software development is devoted to testing. Unless efficient ways to perform effective testing is not obtained, the percentage of development costs devoted to testing will increase significantly. The work in the thesis aims to find ways to improvise testing by reducing test effort. Since manual testing is so labor-intensive, time-consuming and error-prone that it becomes necessary to identify automatic techniques to ease the process. Consequently, an algorithm generating test cases automatically from UML Collaboration Diagrams was implemented and the results were validated using mutation testing. However, a successful software requires a continuous change that is stimulated by ever evolving requirements and technologies. This continuous change constitutes software evolution and can only be understood if evolution is studied properly. Lehman in early 90s proposed eight laws of software evolution for Evolutionary type of systems. We empirically validated these eight laws on eleven Open Source Java projects containing 493 official releases, extracted from Apache Server Foundation (ASF) and found that three out of eight laws: Law of Continuous Growth, Law of Conservation of Familiarity and Law of Continuous Change, hold good, indicating that the systems in Open Source continuously grow and adapt itself to the changing requirements. newlineWhile studying evolution, it was found that bugs also evolve along with the system and analyzing the evolution of bugs can help in their early detection and prevention. Moreover, it is not feasible for a tester to devote equal time and effort to all parts of the system, therefore identification of areas where testing efforts could be focused can help engineers to divert their effort towards critical parts of the software system. We studied bug distribution at three

Description

Keywords

Citation

item.page.endorsement

item.page.review

item.page.supplemented

item.page.referenced