Tesis
Um estudo de caso sobre como a introdução de comportamentos adaptativos em uma aplicação web legada impacta a cobertura de código
Fecha
2020-09-16Registro en:
Autor
Gentil, Rogerio Jeronimo
Institución
Resumen
Context: Self-managing computer systems, also known as self-adaptive systems, are an alternative to get IT professionals free from details of operation and maintenance. Web applications can incorporate characteristics of a self-adaptive system, such as adaptation behavior at runtime, to respond to user needs, or to changes in context, in order to make them autonomous. However, one of the challenges of software engineering is to transform a legacy system into a self-adaptive system, in view of the costs and risks to replace a legacy system. Furthermore, as with any software evolution process, the introduction of adaptive behavior can lead to the insertion of faults in the legacy system. This way, the code coverage information produced by software tests assist in activities related to the evolutionary maintenance of the system. Objective: In this work, we analyzed, through the comparison of coverage metrics, how the introduction of adaptive behaviors in a real world legacy web application impacted code coverage. Method: In order to have a minimum percentage of coverage, for each scenario implemented, a set of test cases was created in the legacy version of the web application. Then, evolutionary versions were develop with the introduction of the adaptive behaviors to the application. The versions (legacy and adaptive) were organized into branches of the version control system so that adaptive implementations have evolved in two technological ways. The coverage metrics for each version of the web application were collected, after re-running the set of test cases created, and tabulated to allow data analysis. Results: The coverage of six versions of the web application with behavior characteristic of self-adaptive systems, in addition to the legacy version, were analyzed and compared between the respective implementation scenarios. Conclusion: The results indicate that the impact on the total code coverage is relevant, where even relatively small changes can considerably affect, either positively or negatively, the percentage of coverage of the changed unit.