Plano de teste.

Slides:



Advertisements
Apresentações semelhantes
Teste Unitário - NUnit Realizando testes unitários utilizando a ferramenta NUnit Marcelo Rocha Rodrigo Rocha.
Advertisements

Programação em Java Prof. Maurício Braga
Desenvolvimento de Plug-ins Orientado a Testes
Programação em Java Prof. Maurício Braga
Eventos, Variáveis de Sessão e Aplicação
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Iniciando na plataforma Eclipse
Tratamento de Exceções
Desenvolvimento Guiado por Testes
Walfredo Cirne walfredo.dsc.ufpb.br
Test Driven Development
Introdução a Linguagem JAVA
PyUnit. O que é? Framework de teste baseado no JUnit Versão atual
Selenium CONFIGURAÇÃO DE TESTE.
EL e JSTL Prof. Danton Cavalcanti Franco Junior
Conhecendo o Visual Studio.NET
Test-Driven Development
Linguagem Técnica II Testes Automatizados Aula 04 Prof
Introdução ao Teste Unitário com JUnit
Introdução a linguagem Python
Bruno Rafael de Oliveira Rodrigues. Tratadores de Excessões A exceção é uma indicação de que um erro ou problema aconteceu durante a execução de uma aplicação.
Unidade I: “Dê um mergulho rápido”
Conceitos básicos de orientação a objetos
Capítulo 2 Java Servlets.
DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde
Selenium Componentes: Fábio Gomes Claver Pari Eni Conde
Treinamento do Microsoft® Word 2010
Treinamento do Microsoft® Access® 2010
Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida.
Interpretador Python.
Entendendo as definições de classe
Utilizando Testes Unitários Gleibson Rodrigo “dartanham” Fontes: antiga apresentação de testes da disciplina de ESS e na curso de testes do PDesigner.
Desenvolvimento Orientado a Componentes e Reuso
JUnit “Keep the bar green to keep the code clean” JUnit Site.
Um Framework Para Testes
Ruby Viviane Souza (vess).
Concorrência e Java RMI
Testes de Unidade Usando JUnit
Introdução – Teste de Unidade usando JUnit
Professor: Márcio Amador
 using Microsoft.VisualStudio.TestTools.UnitTesting;  Você pode criar testes de unidade usando um recurso de geração de código que cria o código fonte.
Prof. Roberto Rosa Aula 8.  A partir de agora vamos aprender como ver qual é o erro que está acontecendo em nosso projeto. Para.
Linguagem II Exceções.
Paradigmas da Programação – Semestre 1 – Aula 10 Professor: Eduardo Mantovani )
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Implementação MVC Pedro Antonino.
Semáforos J2SE 5.0 Estudo da API e comparação com definição clássica Gustavo Frainer Rômulo Rosinha
Tratamento de Exceções
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
Exemplo de desenvolvimento com testes (JUNIT - estudo de caso) Alfredo Goldman.
Ferramentas JMOCKIT, ALLPAIRS, ECLEMMA, MUCLIPSE
Aglets.
Daniel Cukier – IME - USP 1 Junit 4.0 Daniel Cukier – IME – USP MAC5700.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II Verifier Professor Ismael H F Santos –
1 Uso do Eclipse/CVS na cadeira Paradigmas de Linguagem de Programação Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.:
1 JUnit. 2 Por que testar? Qualidade: Código testado é mais confiável –Como saber se o recurso funciona sem testar? Coragem para mudar: o programador.
1 Baseado em whitepapers/eclipse-overview.pdf Nelson Lago IME/USP 04/2003 A Plataforma Eclipse.
RMI Remote Method Invocation
Java Avançado Luiz Carlos d´Oleron SJCP JUnit.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza 06/12/2008 Programa de Mestrado em Ciência.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introdução a testes unitários automatizados com JUnit.
Usando JUnit.
Transcrição da apresentação:

Plano de teste

JUnit

O que é e para que serve? framework para desenvolvimento e execução de testes de unidade em programas Java.

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)

Onde Encontrar? http://junit.org/ O Eclipse já vem com o JUnit.

Como configurar? Adicionar o junit.jar ao projeto No Eclipse Project > Properties > Java Build Path > Libraries > Add Library > JUnit

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() {...}

Pergunta? Todos as classes de teste devem herdar de TestCase? Todos os métodos devem ter em seu nome o prefixo “test”?

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.

@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”.

@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));

@Before e @After • 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 public void executeAntesCadaTeste() { simpleMath = new SimpleMath(); } @After public void executeDepoisCadaTeste() { simpleMath = null;

Exception Handling • Use o parâmetro “expected” com a anotação @Test 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).

@Test(expected = ArithmeticException @Test(expected = ArithmeticException.class) public void divisionWithException() { // divisão por zero simpleMath.divide(1, 0); }

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

@Test(timeout=500) public void buscaTodasAsNovelas(){ novelas @Test(timeout=500) public void buscaTodasAsNovelas(){ novelas.buscaTodas(); }

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

Imports import org.junit.Test; import static org.junit.Assert.*;

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);

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; }

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

Resultado dos Testes SUCESSO FALHA ERRO

Casos de Teste

Implementação dos Casos de Teste no JUnit

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á?

Visão Geral

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.

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.

Caracteristicas Launching Analysis Import Export

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:

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

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.

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

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.

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.

Instalação

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