Plano de teste. - ppt carregar
Plano de teste.
PublicouRaul Cantos Alterado mais de 4 anos atrás
Apresentação em tema: "Plano de teste."— Transcrição da apresentação:
1 Plano de teste
3 O que é e para que serve? framework para desenvolvimento e execução de testes de unidade em programas Java.
4 JUnit só serve para Java?
JUnit faz parte da família de ferramentas de testes xUnit, que inclui implementações do framework para SmallTalk, C++ e outras linguagens. EDUARDO OLIVEIRA SPÍNOLA (http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=4637) JUnit foi adaptado à outras linguagens, tais como C#(NUnit), Python, Fortran, e C++. (http://pt.wikipedia.org/wiki/JUnit)
5 Onde Encontrar? O Eclipse já vem com o JUnit.
6 Como configurar? Adicionar o junit.jar ao projeto No Eclipse
Project > Properties > Java Build Path > Libraries > Add Library > JUnit
8 Como Implementar? 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() {...}
10 Pergunta? Todos as classes de teste devem herdar de TestCase?
Todos os métodos devem ter em seu nome o prefixo "test"?
11 Nova Implementação A partir do JUnit 4 pode-se escolher não utilizar herança da classe TestCase e o prefixo "test" dos métodos.
12 @Test •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".
13 @Test public void somar() { assertEquals(12, simpleMath
@Test public void somar() { assertEquals(12, simpleMath.add(7, 5)); } public void subtrair() { assertEquals(9, simpleMath.substract(12, 3));
14 @Before • Use as para os métodos "setup" e "tearDown" respectivamente. Eles irão rodar antes e depois de cada caso de teste. • É possível ter quantos e @After quiser.
15 @Before public void executeAntesCadaTeste() { simpleMath = new SimpleMath(); public void executeDepoisCadaTeste() { simpleMath = null;
16 Exception Handling • Use o parâmetro "expected" com a para todos os casos de teste onde são esperadas exceções. Escreva o noma da classe da exceção que será lançada (throws).
17 @Test(expected = ArithmeticException
@Test(expected = ArithmeticException.class) public void divisionWithException() { // divisão por zero simpleMath.divide(1, 0); }
18 Teste de Tempo 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
19 @Test(timeout=500) public void buscaTodasAsNovelas(){ novelas
@Test(timeout=500) public void buscaTodasAsNovelas(){ novelas.buscaTodas(); }
20 Asserções 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
21 Imports import org.junit.Test; import static org.junit.Assert.*;
22 Método suite public static TestSuite suite() {
//JUnit 3 public static TestSuite suite() { return new TestSuite(SuaClasseTest.class); } //JUnit 4 public static junit.framework.Test suite() { return new JUnit4TestAdapter(SuaClasseTest.class);
23 TestSuite 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; }
24 TestRunner Aplicação em modo texto ou gráfico para execução de testes
25 Resultado dos Testes SUCESSO FALHA ERRO
26 Casos de Teste
27 Implementação dos Casos de Teste no JUnit
28 Hoje em dia é muito comum a preocupação de muitos desenvolvedores com qualidade de software e com testes automatizados. E para melhorar a qualidade de um software existem várias ferramentas livre que auxiliam em diversas áreas, como métricas, cobertura de código, testes funcionais, analise de possíveis bugs (findBugs, PMD) e etc... E com tantos testes como você sabe o que foi testado no sistema? Será que você não esta testando mais de uma vez a mesma coisa? Quanto do código está coberto por um teste unitário e quanto do código não está?
29 Visão Geral
30 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.
31 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.
32 Caracteristicas Launching Analysis Import Export
33 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:
34 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 Framework Junit Test Test TestNG plug-in Junit test JUnit RAP test SWTBot Test
35 Analysis 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.
36 Analysis 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
37 Analysis Recursos Adicionais nos testes com o EclEmma:
Selecione instruções, linhas de código ou blocos, métodos rapidamente Vá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.
38 Import/Export 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.