ferramentas jmockit, allpairs, eclemma, muclipse

21
Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

Upload: mikaela-monserrate

Post on 07-Apr-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

FerramentasJMOCKIT, ALLPAIRS,

ECLEMMA, MUCLIPSE

Page 2: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

JMOCKIT

Page 3: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

3

Jmockit

• Automatiza a substituição de versões original e mock-up

• Instrumentação ocorre em tempo de execução

Page 4: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

4

Como usar?

• Basicamente, uma operação (overloaded):

Mockit.redefineMethods(Class, Class);Mockit.redefineMethods(Class, Object);

Substitui métodos da direita pelos da esquerda

Page 5: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

5

Como usar?

• Basicamente, uma operação (overloaded):

Mockit.redefineMethods(Class, Class);Mockit.redefineMethods(Class, Object);

Objeto “Commando” (ver padrão de projetos)

Page 6: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

Como usar?

• A execução precisa receber o seguinte parâmetro: -ea -javaagent:"libs\\jmockit.jar“– O agente realiza instrumentação

Page 7: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

7

Prós

• Não interfere no código fonte/design

Page 8: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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

Page 9: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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”,

Page 10: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

ALLPAIRS

Page 11: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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

Page 12: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

ECLEMMA

Page 13: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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”

Page 14: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

MUCLIPSE

Page 15: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, 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

Page 16: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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

Page 17: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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

Page 18: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

Comentário sobre o MuClipse v1.2

• Reduzir compatibilidade do JDK de 1.6 para 1.5

Page 19: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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

Page 20: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

Instruções 2/2

• Gere os mutantes. Execute a configuração “runTraditionalMutants.launch”

• Rode o teste(s). Execute a configuração “runTestsForMutation.launch”

Page 21: Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE

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