ferramentas jmockit, allpairs, eclemma, muclipse
TRANSCRIPT
FerramentasJMOCKIT, ALLPAIRS,
ECLEMMA, MUCLIPSE
JMOCKIT
3
Jmockit
• Automatiza a substituição de versões original e mock-up
• Instrumentação ocorre em tempo de execução
4
Como usar?
• Basicamente, uma operação (overloaded):
Mockit.redefineMethods(Class, Class);Mockit.redefineMethods(Class, Object);
Substitui métodos da direita pelos da esquerda
5
Como usar?
• Basicamente, uma operação (overloaded):
Mockit.redefineMethods(Class, Class);Mockit.redefineMethods(Class, Object);
Objeto “Commando” (ver padrão de projetos)
Como usar?
• A execução precisa receber o seguinte parâmetro: -ea -javaagent:"libs\\jmockit.jar“– O agente realiza instrumentação
7
Prós
• Não interfere no código fonte/design
8
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
9
Instruções
• Baixe o arquivo: http://www.cin.ufpe.br/~damorim/teaching/testing/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”,
ALLPAIRS
11
Instruções
• Baixe o arquivo: http://www.cin.ufpe.br/~damorim/teaching/testing/demos/pairs.zip
• Descomprima o arquivo pairs.zip• CD allpairs• Execute na linha de comando (Windows)
– allpairs printing.txt > testcases.txt
ECLEMMA
13
Instruções
• Instale o plugin. Use a URL: http://update.eclemma.org/
• Baixe o arquivo: http://www.cin.ufpe.br/~damorim/teaching/testing/demos/eclemma-demo.zip
• Descomprima o arquivo zip• Importe o projeto associado• Execute os testes usando opção
“Coverage As”
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
19
Instruções 1/2
• Instale o plugin. Use a URL: http://muclipse.sourceforge.net/site
• Baixe o arquivo: http://cin.ufpe.br/~damorim/teaching/testing/demos/muclipse-demo.zip
• Descomprima o arquivo zip• Importe o projeto associado
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