A case study on how introducing adaptive behaviors in a legacy web application impact code coverage

Autor: Gentil, Rogerio Jeronimo
Přispěvatelé: Ferrari, Fabiano Cutigi
Jazyk: portugalština
Rok vydání: 2020
Předmět:
Zdroj: Repositório Institucional da UFSCAR
Universidade Federal de São Carlos (UFSCAR)
instacron:UFSCAR
Popis: Não recebi financiamento 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. Contexto: Sistemas computacionais que se autogerenciam, também conhecidos como sistemas adaptativos, são uma alternativa para liberar profissionais de TI de detalhes de operação e manutenção. Aplicações web podem incorporar características de um sistema adaptativo, tais como comportamentos de adaptação em tempo de execução, para responder às necessidades do usuário, ou a mudanças de contexto, de modo a torná-las autônomas. Entretanto, um dos desafios da engenharia de software é transformar um sistema legado em um sistema adaptativo, tendo em vista os custos e riscos para substituir um sistema legado. Ademais, como em qualquer processo de evolução de software, a introdução de comportamentos adaptativos pode conduzir à inserção de defeitos no sistema legado. Desta forma, as informações de cobertura de código produzida por testes de software auxiliam nas atividades relacionadas à manutenção evolutiva do mesmo. Objetivos: Neste trabalho foi analisado, por meio da comparação de métricas, como a introdução de comportamentos adaptativos em uma aplicação web legada do "mundo real" impactou a cobertura de código. Método: Visando dispor de um percentual mínimo de cobertura, para cada cenário implementado foi criado um conjunto de casos de teste na versão legada da aplicação web. Em seguida, foram implementadas versões evolutivas que introduziram comportamentos adaptativos à aplicação. As versões (legada e adaptativas) foram organizadas em ramos do sistema de controle de versão de modo que as implementações adaptativas evoluíram seguidamente em duas vertentes tecnológicas. As métricas de cobertura de cada versão da aplicação web foram coletadas após a reexecução do conjunto de casos de teste criado e tabuladas para permitir a análise dos dados. Resultados: As coberturas de seis versões da aplicação web com comportamentos característicos de sistemas adaptativos, além da versão legada, foram analisadas e comparadas entre os respectivos cenários de implementação. Conclusão: Os resultados obtidos indicam que o impacto sobre a cobertura total é relevante, onde mesmo as modificações relativamente pequenas podem afetar consideravelmente, de forma negativa ou positiva, os percentuais de cobertura da unidade alterada.
Databáze: OpenAIRE