Detalhes bibliográficos
Ano de defesa: |
2021 |
Autor(a) principal: |
Brito, Iara Ramos |
Orientador(a): |
Duarte, Lucio Mauro |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Não Informado pela instituição
|
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: |
|
Palavras-chave em Inglês: |
|
Link de acesso: |
http://hdl.handle.net/10183/218453
|
Resumo: |
A geração de testes em sistemas já existentes, sem documentação atualizada ou sem testes legados, usualmente não é uma tarefa fácil, pois exige do desenvolvedor o trabalho de descobrir ou supor as regras que os testes devem executar para testar o sistema corretamente. Neste trabalho, propõe-se uma metodologia com o objetivo de possibilitar a criação semiautomática de testes unitários nesse cenário. A metodologia propõe a integração das técnicas de testes e verificação de modelos, utilizando a extração de modelos. A extração de modelos é usada para possibilitar a obtenção de um modelo de comportamento a partir de rastros de execução de alguns casos de teste executados sobre o código de interesse. Este modelo é analisado em uma ferramenta de verificação de modelos, gerando contraexemplos, os quais descrevem caminhos a partir do estado inicial que são diferentes daqueles constantes no modelo atual. Estes contraexemplos gerados são analisados a fim de verificar se permitem a criação de algum teste válido. A criação de um novo teste implica a geração de um novo rastro e, por consequência, a construção de um novo modelo contendo este novo comportamento do sistema, o que torna a abordagem iterativa. O processo de extração de modelos utilizado neste trabalho usa as ferramentas Labelled Transition Systems Extractor (LTSE) para a geração de um modelo no formato de Labelled Transition Systems (LTS) a partir de rastros deixados na execução da classe instrumentada. Nos experimentos realizados, foi analisada a eficácia da metodologia para a criação de testes unitários. Para isso, foram analisadas quatro classes de quatro sistemas de acesso público. A metodologia foi aplicada nessas quatro classes e foram verificadas três questões principais em relação a metodologia: se a metodologia permite a geração de testes, se os testes gerados permitiam o aumento de cobertura de branch ou linha e se a metodologia permite descobrir erros. Os resultados obtidos no experimento mostraram que, em geral, a metodologia permite a geração de testes e que a geração desses testes pode implicar o aumento de cobertura de branch ou linha. Foram realizadas análises dos resultados dos experimentos avaliando as possíveis relações entre algumas métricas de software de cada classe e os seus diferentes resultados obtidos na aplicação da metodologia. Além disso, foi mostrado no trabalho como a metodologia pode contribuir para a descoberta de erros na aplicação. |