Defesa de Dissertação de Mestrado de Alysson Filgueira Milanez 06/06, às 14hs

postado em 6 de mai de 2014 10:01 por Franklin de Souza Ramalho   [ 6 de mai de 2014 10:02 atualizado‎(s)‎ ]
Candidato: Alysson Filgueira Milanez
Título do trabalho: Aprimorando a Verificação de Conformidade em Programas Baseados em Contratos
Orientador(es): Tiago Lima Massoni e Rohit Gheyi

Data: 6/6/2014
Horário: 14h
Local: Auditório do CEEI

Banca examinadora: Tiago Massoni (orientador), Rohit Gheyi (orientador), Ricardo Massa Ferreira Lima (UFPE) e Wilkerson Andrade (UFCG).

Resumo: Teste é comumente usado para verificar conformidade em programas baseados em contrato; uma vez que verificação por provas formais tem baixo poder de escalabilidade e análise estática é limitada. Casos de teste tradicionais, com dados de teste providos manualmente, podem ser ineficazes para detectar não-conformidades sutis que surgem apenas após diversas criações e modificações nos objetos sob teste. Essas não-conformidades podem sinalizar bugs mais sutis, diminuindo os benefícios de usar programas baseados em contrato. Testes gerados aleatoriamente com dados de teste providos automaticamente, por outro lado, são uma abordagem promissora quando testes mais substanciais são necessários. No presente trabalho, propomos e avaliamos uma abordagem, JMLOK 2.0, para detecção e categorização de não-conformidades, no contexto de Java Modeling Language (JML), com suporte de Testes Gerados Aleatoriamente (RGT) e por categorização baseada em heurísticas. Realizamos duas avaliações. Na primeira, realizamos uma avaliação de nossa abordagem para detecção de não-conformidades e de nosso processo para categorização manual: detectamos 84 não-conformidades em mais de 29 KLOC e mais de 9 K linhas de contratos JML (que iremos nos referir como KLJML); aplicando nosso modelo de categorização manual, obtivemos que a maioria das não-conformidades detectadas foram classificadas como erros de pós-condição; também observamos que uma não-conformidade é detectada após 2.54 top-level chamadas num caso de teste, em média, e que o número de chamadas internas ao caso de teste que revela a não-conformidade é, em média, de 2.23, nos dando evidências da necessidade de uma estrutura de testes mais elaborada para detecção de não-conformidades. Além disso, comparamos nossa abordagem com JET, uma ferramenta existente para detecção de não-conformidades em programas JML baseada em testes, utilizando um subconjunto dos programas usados no primeiro estudo (6 KLOC e 5 KLJML). JMLOK 2.0 detectou 30 nãoconformidades com cobertura de 88%, enquanto que JET detectou 9 não-conformidades cobrindo 64% dos programas. Na segunda, realizamos uma avaliação da nossa abordagem automática de categorização: comparamos a categorização manual e a automática e tivemos um valor de coincidências de 0.73 (considerando as não-conformidades da primeira avaliação) indicando que há similaridade entre as abordagens de categorização manual e automática; além disso, comparamos os resultados da categorização automática com a categorização realizada por experts em JML e também observamos similaridade entre as abordagens.
Comments