Dissertação de Mestrado: 31/08/2010, 08:00.

postado em 26 de ago de 2010 13:42 por Hyggo Oliveira de Almeida
Aluno: Sabrina de Figueirêdo Souto.
Título: Geração Automática de Testes com Objetos Mock Baseados em Interações.
Local: Auditório do LSD - Bloco CO.
Banca Examinadora: Dalton Dario Serey Guerrero, D.Sc (Orientador), Jorge César Abrantes de Figueiredo, D.Sc e Profa. Roberta de Souza Coelho, Dra. (UFRN/DIMAP).
Data: 31/08/2010.
Hora: 08:00.

Resumo: O objetivo de um teste de unidade é verificar o funcionamento de um software e procurar defeitos na menor parte testável, de forma isolada do restante do sistema. Porém, este isolamento nem sempre é possível devido às interações entre a a classe sob teste - CUT (Class Under Test) e seus colaboradores, fazendo-se necessário o uso de objetos mock para simular os colaboradores, em um mecanismo onde a CUT não sabe se ela está interagindo com colaboradores reais ou objetos mock. Desta forma, objetos mock podem ser de grande utilidade na escrita de testes de unidade, uma vez que isolam a CUT, tornando o teste mais eficaz e eficiente. Entretanto, escrever testes com objetos mock pode ser uma tarefa custosa, tediosa e repetitiva, mesmo com auxílio de frameworks, devido às atividades necessárias ao seu funcionamento. Dada a necessidade de se utilizar objetos mock nos testes de unidade e seus benefícios, e considerando a dificuldade envolvida no desenvolvimento e manutenção deste tipo de código, propomos e avaliamos uma técnica para automatizar o desenvolvimento de testes com objetos mock, gerando-os automaticamente para um determinado cenário de teste. Esta técnica tem por base a identificação das interações entre a CUT e seus colaboradores em um dado cenário de teste, através da análise estática e dinâmica de código. Após essas análises, a técnica provê a geração de código de teste com objetos mock para os colaboradores e interações identificadas. O código resultante consiste em uma nova versão do código do cenário de teste inicial, onde os colaboradores da CUT são substituídos por objetos mock, bem como suas interações. Considerando o baixo custo de se gerar automaticamente o código para os objetos mock, não se faz necessária a reutilização deste código, o qual poderá ser gerado novamente toda vez que o teste for modificado. Para avaliar nossa técnica realizamos um estudo experimental comparativo entre a forma manual e a automática de se desenvolver testes com objetos mock, através da observação do tempo e do esforço empregados em tais atividades e o nível de cobertura de interações do código resultante, que tenta assegurar que o código gerado possui pelo menos a mesma qualidade ou precisão do código inicial. Os resultados da avaliação comprovam que nossa técnica foi capaz de reduzir o tempo e o esforço empregados no desenvolvimento de testes com objetos mock, resultando em um código melhor e mais preciso quando comparado ao desenvolvido manualmente.

Agradecemos a sua presença.