Ferramentas
JMOCKIT, ALLPAIRS,
ECLEMMA, MUCLIPSE
JMOCKIT
Jmockit
• Automatiza a substituição de versões
original e mock-up
• Instrumentação ocorre em tempo de
execução
3
Como usar?
• Basicamente, uma operação (overloaded):
Mockit.redefineMethods(Class, Class);
Mockit.redefineMethods(Class, Object);
Substitui métodos da direita pelos da esquerda
4
Como usar?
• Basicamente, uma operação (overloaded):
Mockit.redefineMethods(Class, Class);
Mockit.redefineMethods(Class, Object);
Objeto “Commando” (ver padrão de projetos)
5
Como usar?
• A execução precisa receber o seguinte
parâmetro: -ea -javaagent:"libs\\jmockit.jar“
– O agente realiza instrumentação
Prós
• Não interfere no código fonte/design
7
Cons
• Erros de instrumentação
– Exceção em tempo de execução
• E.g., Mock não é público ao driver
– Erro silencioso
• E.g., assinatura de método fonte e destino não casa
Específicos da implementação
8
Instruções
• Baixe o arquivo:
http://www.cin.ufpe.br/~damorim/teaching/t
esting/demos/jmockit-demo.zip
• Descomprima o arquivo
• Importe o projeto no Eclipse
– File > Import > Existing Projects Into
Workspace
• Rode os testes
– Selecione a opção “Run As > ServiceATest”
com botão direito “ServiceATest.launch”,
9
ALLPAIRS
Instruções
• Baixe o arquivo:
http://www.cin.ufpe.br/~damorim/teaching/t
esting/demos/pairs.zip
• Descomprima o arquivo pairs.zip
• CD allpairs
• Execute na linha de comando (Windows)
– allpairs printing.txt > testcases.txt
11
ECLEMMA
Instruções
• Instale o plugin. Use a URL:
http://update.eclemma.org/
• Baixe o arquivo:
http://www.cin.ufpe.br/~damorim/teaching/t
esting/demos/eclemma-demo.zip
• Descomprima o arquivo zip
• Importe o projeto associado
• Execute os testes usando opção
“Coverage As”
13
MUCLIPSE
Características importantes
• Separação de código falho do original
• Para o teste de mutação
– Interface visual
• Preciso visualizar diferenças para construir novos
casos de teste
MuClipse
• Plugin do Eclipse para o MuJava
• Seguir passos de configuração em
http://muclipse.sourceforge.net/site
– Ver projeto demo no site da disciplina
MuClipse: Dois passos
• Gerar mutantes
– Entrada: Caminhos, classe de teste, e operadores
de mutação em script (run configuration)
– Saída: lista de mutantes
• Rodar testes e analisar resultados
– Entrada: Classe modificada com mutantes e o
teste daquela classe
– Saída: Relatório com score de mutação e label
killed ou alive associado a cada mutante
Comentário sobre o MuClipse v1.2
• Reduzir compatibilidade do JDK de 1.6
para 1.5
Instruções 1/2
• Instale o plugin. Use a URL:
http://muclipse.sourceforge.net/site
• Baixe o arquivo:
http://cin.ufpe.br/~damorim/teaching/testi
ng/demos/muclipse-demo.zip
• Descomprima o arquivo zip
• Importe o projeto associado
19
Instruções 2/2
• Gere os mutantes. Execute a
configuração
“runTraditionalMutants.launch”
• Rode o teste(s). Execute a configuração
“runTestsForMutation.launch”
Exercício
• Tente gerar um score de mutação >50%
para a class BST e teste TestBST2
– Ver projeto do muclipse no site da disciplina
– Lembrar de baixar o plugin
Download

Teste de Software