Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDavid Neves Alterado mais de 10 anos atrás
1
Mutação Orientada a Objeto para Assegurar a Qualidade de Testes Baseado no Artigo: Object-Oriented Mutation to Asses the Quality of Tests Anna Derezinska Junho de 2004
2
Roteiro Introdução Mutações Orientada a Objetos Conclusões
Estudo de caso: exemplos de mutantes Conclusões
3
Introdução No teste de mutação pequenas modificações sintáticas são introduzidas em um programa P. Objetivo: investigar resultados de operadores de mutação OO aplicados às especificações de classe UML e ao código fonte.
4
Mutações Orientada a Objetos
Grupos de operadores de mutação OO: Inherit (Inh) – Muda a classe base ou omite a relação de herança; Associate (Ass) – Muda a associação entre classes; Object (Obj) – Acessa um membro em outro objeto da mesma classe ou membro em outra classe da mesma hierarquia de herança; Member (Mem) – Acessa dado ou função diferente do objeto; Access (Acc) – Muda o especificador de acesso relacionados ao dado, às funções, ou às classes em um relacionamento de herança.
5
Estudo de Caso: diagrama principal para o exemplo do carro
6
Estudo de Caso: classes para o sistema de iluminação do carro
7
Inherit: adiciona herança
8
Inherit: omite relação de herança
9
Inherit: muda a direção de um relacionamento de herança
10
Associate: muda a direção de uma associação
11
Associate: muda agregação para associação
12
Associate: muda classes ligadas por associação
13
Associate: duas associações por uma associação
14
Associate: aponta associação para classe base
15
Associate: substitui agregação para a classe base
16
Object: chama função de um outro objeto associado com classe
17
Object: controle do pedal é chamado por Brake_pedal
18
Object: chama função de classe derivada
19
Member: chama função complementar
20
Member: chama função herdada da classe base
21
Member: troca chamada de funções da mesma classe
22
Member: troca chamada de funções herdadas
23
Member: acessa dado diferente no mesmo objeto
24
Access: substitui função public por protected
25
Access: substitui herança public por private
26
Mutações OO Grupos Inherit, Associate e Access foram aplicados para especificações UML. Grupos Object e Member foram aplicados diretamente no código. Alguns mutantes UML invalidados (compilador) Mutante equivalente. Casos de teste: conjunto básico de testes funcionais + teste adicional. Cobertura: 83% : funções; 85%: linhas de código.
27
Conclusões Operadores melhores: grupos Object e Member.
Mutantes que mudam relação de herança (Inherit) ou tipo de relacionamento de associações são mais adequados na especificação.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.