Auxílio à pesquisa 13/25356-2 - Engenharia de software, Reúso de software - BV FAPESP
Infraestrutura para a correção automática de software baseada em busca de código: ...
Evolução e avaliação de técnicas de teste e de busca de código-fonte no desenvolvimento de software contemporâneo
Processo: 13/25356-2
Vigência: 01 de abril de 2014 - 29 de fevereiro de 2016
Pesq. associados: Fabiano Cutigi Ferrari
Assunto(s): Engenharia de software Reúso de software Teste e avaliação de software Programação orientada a aspectos Código fonte
As técnicas contemporâneas de desenvolvimento como a Programação Orientada a Objetos (POO) e a Programação Orientada a Aspectos (POA) trazem diversos benefícios ao desenvolvimento de software, como código mais coeso, menos acoplado e mais legível. Entretanto, essas mesmas técnicas podem apresentar obstáculos, como novos tipos de defeitos que não ocorriam com o uso das técnicas anteriores. Além disso, mesmo que as técnicas apresentem benefícios ao desenvolvimento de software, ainda existem maneiras de fazer com que se obtenha maior confiança no código implementado, ou que o mesmo seja produzido com menor custo. No que diz respeito ao aumento da qualidade, recentemente foi introduzida uma nova família de critérios de teste estrutural - chamada de cobertura de arestas multi-ponto -, que generaliza a cobertura de arestas tradicional para a cobertura de tuplas de arestas obtidas na sequência de execução de um programa. Estudos iniciais indicam que os critérios são efetivos e inclusive comparáveis aos critérios de fluxo de dados, tidos anteriormente como entre os mais efetivos (apesar de bastante custosos). Essa família de critérios ainda não foi explorada no contexto de POA, o que abre um novo caminho de pesquisa importante, já que os programas OA também contêm condicionais. No que diz respeito à diminuição de custos de desenvolvimento, recentemente o grupo de pesquisa do proponente desenvolveu um protótipo que implementa a correção automática de programas utilizando busca de código em repositórios de código aberto. A ideia básica é procurar código similar a trechos defeituosos do programa - detectados via casos de teste -, e substituí-los por implementações corretas encontradas nesses repositórios. Apesar da ferramenta apresentar evidências de ser efetiva, ainda existem diversas maneiras de estendê-la e avaliá-la. Outra técnica proposta pelo grupo e que ainda não foi avaliada adequadamente é a expansão de query automática utilizando tesauros. O objetivo deste projeto de pesquisa é evoluir e avaliar as técnicas de teste e de busca de código-fonte nesses e em outros pontos relacionados para a melhoria do desenvolvimento de software contemporâneo. (AU)
LAZZARINI LEMOS, OTAVIO AUGUSTO; SILVEIRA, FABIO FAGUNDES; FERRARI, FABIANO CUTIGI; GARCIA, ALESSANDRO. The impact of Software Testing education on code reliability: An empirical assessment. JOURNAL OF SYSTEMS AND SOFTWARE, v. 137, p. 497-511, MAR 2018. Citações Web of Science: 1.