framework para desenvolvimento e execução de testes de unidade em programas java

45
Plano de teste

Upload: internet

Post on 18-Apr-2015

111 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: framework para desenvolvimento e execução de testes de unidade em programas Java

Plano de teste

Page 2: framework para desenvolvimento e execução de testes de unidade em programas Java

JUnit

Page 3: framework para desenvolvimento e execução de testes de unidade em programas Java

framework para desenvolvimento e execução de testes de unidade em programas Java.

O que é e para que serve?

Page 4: framework para desenvolvimento e execução de testes de unidade em programas Java

http://junit.org/

O Eclipse já vem com o JUnit.

Onde Encontrar?

Page 5: framework para desenvolvimento e execução de testes de unidade em programas Java

Adicionar o junit.jar ao projeto

No EclipseProject > Properties > Java Build Path > Libraries > Add Library > JUnit

Como configurar?

Page 6: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 7: framework para desenvolvimento e execução de testes de unidade em programas Java

Classes de Teste devem herdar de TestCase.

import junit.framework.TestCase;

Métodos de teste devem começar com o prefixo “test”

public void setUp() {...}public void testxxx() {...}public void tearDown() {...}

Como Implementar?

Page 8: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 9: framework para desenvolvimento e execução de testes de unidade em programas Java

Todos as classes de teste devem herdar de TestCase?

Todos os métodos devem ter em seu nome o prefixo “test”?

Pergunta?

Page 10: framework para desenvolvimento e execução de testes de unidade em programas Java

A partir do JUnit 4 pode-se escolher não utilizar herança da classe TestCase e o prefixo “test” dos métodos.

Nova Implementação

Page 11: framework para desenvolvimento e execução de testes de unidade em programas Java

•Os casos de teste agora são marcados com as anotações @Test.

•Você não precisa mais colocar o prefixo “test” nos métodos.

•Além disso, sua classe não precisa herdar de “TestCase”.

@Test

Page 12: framework para desenvolvimento e execução de testes de unidade em programas Java

@Testpublic void somar() {

assertEquals(12, simpleMath.add(7, 5));}

@Testpublic void subtrair() {

assertEquals(9, simpleMath.substract(12, 3));

}

Page 13: framework para desenvolvimento e execução de testes de unidade em programas Java

• Use as anotações @Before e @After para os métodos “setup” e “tearDown” respectivamente. Eles irão rodar antes e depois de cada caso de teste.

• É possível ter quantos métodos @Before e @After quiser.

@Before e @After

Page 14: framework para desenvolvimento e execução de testes de unidade em programas Java

@Beforepublic void executeAntesCadaTeste() { simpleMath = new SimpleMath();}

@Afterpublic void executeDepoisCadaTeste() {

simpleMath = null;}

Page 15: framework para desenvolvimento e execução de testes de unidade em programas Java

Teste falha se demorar mais do que timeout

Útil para testes de redes e conexões com bancos de Dados

Aplicações modernas existem tempo de resposta máximo.

Testes de tempo garantem que o tempo de resposta máximo seja satisfeito, mesmo que o sistema se torne mais complexo

Teste de Tempo

Page 16: framework para desenvolvimento e execução de testes de unidade em programas Java

@Test(timeout=500)public void buscaTodasAsNovelas(){

novelas.buscaTodas();}

Page 17: framework para desenvolvimento e execução de testes de unidade em programas Java

Método Descrição Teste passa se

assertEquals(a, b) Compara dois valores a.equals(b)

assertFalse(a) Avalia uma expressão booleana

a == false

assertTrue(a) a == true

assertNotNull(a) Compara uma variável com nulo

a != null

assertNull(a) a == null

assertNotSame(a, b) Compara dois objetos

a == b

assertSame(a, b) a != b

fail()Causa uma falha no teste atual Não passa

Asserções

Page 18: framework para desenvolvimento e execução de testes de unidade em programas Java

import org.junit.Test;

import static org.junit.Assert.*;

Imports

Page 19: framework para desenvolvimento e execução de testes de unidade em programas Java

Método suite

//JUnit 3public static TestSuite suite() {

return new TestSuite(SuaClasseTest.class);}

//JUnit 4public static junit.framework.Test suite() {

return new JUnit4TestAdapter(SuaClasseTest.class);}

Page 20: framework para desenvolvimento e execução de testes de unidade em programas Java

import junit.framework.Test;import junit.framework.TestSuite;

public class TesteGeral {public static Test suite() {

TestSuite suite = new TestSuite();suite.addTest(SuaClasseTeste.suite());return suite;

}}

TestSuite

Page 21: framework para desenvolvimento e execução de testes de unidade em programas Java

Aplicação em modo texto ou gráfico para execução de testes

TestRunner

Page 22: framework para desenvolvimento e execução de testes de unidade em programas Java

Resultado dos Testes

SUCESSO FALHA ERRO

Page 23: framework para desenvolvimento e execução de testes de unidade em programas Java

Casos de Teste

Page 24: framework para desenvolvimento e execução de testes de unidade em programas Java

Implementação dos Casos de Teste no

JUnit

Page 25: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 26: framework para desenvolvimento e execução de testes de unidade em programas Java

Visão Geral

Page 27: framework para desenvolvimento e execução de testes de unidade em programas Java

O EclEmma é um plugin para o Eclipse que mede e apresenta a cobertura de testes no próprio Eclipse. Os testes são executados no próprio

Eclipse e a apresentação dos trechos cobertos e descobertos é integrada ao editor Java.

Page 28: framework para desenvolvimento e execução de testes de unidade em programas Java

Baseado no EMMA, outra ferramenta de cobertura de código Java, tentando adotar a filosofia de Emma para a workbench do Eclipse: Rápido ciclo de desenvolvimento/teste: Inicia a

partir do workbench, como execuções de teste JUnit podem ser analisados diretamente com essa cobertura de código.

Análise de cobertura: Na cobertura, os resultados são imediatamente resumidos e destacados nos editores de código fonte Java.

Não-invasivos: EclEmma não requer modificar seus projetos ou realizar qualquer outra configuração.

Page 29: framework para desenvolvimento e execução de testes de unidade em programas Java

Launching Analysis Import Export

Caracteristicas

Page 30: framework para desenvolvimento e execução de testes de unidade em programas Java

EclEmma acrescenta um modo de lançar chamada para o workbench do Eclipse. Ele é chamado de modo de Cobertura (Coverage mode) e funciona exatamente como os modos “Run” e “Debug”. A modalidade de lançamento de cobertura pode ser ativada a partir do menu Executar ou utilizando a barra no workbench:

Page 31: framework para desenvolvimento e execução de testes de unidade em programas Java

Basta acessar suas aplicações ou testes de unidade no modo de Cobertura para coletar informações de cobertura. Atualmente, os tipos de lançamento a seguir são suportados: Aplicação Java Eclipse / RCP Aplication Equinox OSGi FrameworkJunit Test Test TestNG plug-in Junit test JUnit RAP testSWTBot Test

Page 32: framework para desenvolvimento e execução de testes de unidade em programas Java

Após a análise de sua aplicação ou teste de unidade foi finalizado informações cobertura de código é automaticamente disponível no workbench do Eclipse:

Resumo da Cobertura: A visão Cobertura(Coverage view) listas resumos da cobertura para seus projetos de Java, que permite drill-down para o nível de método.

Analysis

Page 33: framework para desenvolvimento e execução de testes de unidade em programas Java

Fonte highlighting:

O resultado de um teste com o Eclmma é diretamente visível nos editores fonte Java. Um código de cores totalmente personalizáveis destaca, em parte, e não linhas cobertas.

Analysis

Page 34: framework para desenvolvimento e execução de testes de unidade em programas Java

Recursos Adicionais nos testes com o EclEmma:Selecione instruções, linhas de código ou blocos, métodos rapidamenteVárias sessões de cobertura: É possível alternar entre os dados de cobertura de várias sessões.Mesclar Sessões: Se vários trexos de código em diferentes lugares devem ser considerados para a cobertura de sessões de análise, eles podem ser facilmente fundidos.

Analysis

Page 35: framework para desenvolvimento e execução de testes de unidade em programas Java

Enquanto EclEmma concebido essencialmente para a execução de teste e análise dentro da workbench do Eclipse, ele fornece alguns importação / exportação características.

Cobertura de importação de dados: Um assistente permite importar arquivos *. CE lança cobertura de dados externas. Exportar relatório Cobertura: dados de cobertura pode ser exportado como um arquivo *. CE ou no formato XML ou HTML.

Import/Export

Page 36: framework para desenvolvimento e execução de testes de unidade em programas Java

Instalação

Page 37: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 38: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 39: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 40: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 41: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 42: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 43: framework para desenvolvimento e execução de testes de unidade em programas Java
Page 44: framework para desenvolvimento e execução de testes de unidade em programas Java

http://www.oncast.com.br/blog/?p=23 http://www.eclemma.org/index.html http://tinyurl.com/ygut9v4

Page 45: framework para desenvolvimento e execução de testes de unidade em programas Java