Um Framework Para Testes

Slides:



Advertisements
Apresentações semelhantes
JAVA Orientação a Objetos
Advertisements

Programação orientada a objetos
Programação em Java Prof. Maurício Braga
Em Busca de Software Correto
Técnicas de Teste de Software
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Desenvolvimento Guiado por Testes
Walfredo Cirne walfredo.dsc.ufpb.br
Polimorfismo e Classes Abstratas Profa
Programação Concorrente
Introdução ao paradigma de programação: Orientado a Objetos
Test Driven Development
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Aspectos Avançados em Engenharia de Software
Classes e objetos P. O. O. Prof. Grace.
Test-Driven Development
Linguagem Técnica II Testes Automatizados Aula 04 Prof
Introdução aos conceitos de Teste de Software
Introdução ao Teste Unitário com JUnit
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Concorrência em Java Threads em Java.
Introdução a Computação Trabalho Final PUC Minas – São gabriel
DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde
O Fluxo de Implementação
Plano de teste.
Programação I Aula 2 (Métodos)
Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida.
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Objetivos das Atividades de Implementação • Implementar as classes do modelo de projeto em termos de componentes (código fonte ou executável, etc.) •
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 de Aplicações CORBA
Desenvolvimento Orientado a Componentes e Reuso
JUnit “Keep the bar green to keep the code clean” JUnit Site.
Referências: Booch, G. et al. The Unified Modeling Language User Guide
Testes de Unidade Usando JUnit
Introdução – Teste de Unidade usando JUnit
 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.
Orientação a Objetos e Java Graduação em Ciência da Computação
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Linguagem II Exceções.
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Programação Orientada a Objetos - Java
Teste de Software Conceitos iniciais.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Polimorfismo.
Introdução a Teste de Software
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Classes Abstratas e Interface
Laboratório de Programação
Automação de Testes de Software
Herança e Arquitetura em camadas
Execução de testes: driver e stub
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
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
Daniel Cukier – IME - USP 1 Junit 4.0 Daniel Cukier – IME – USP MAC5700.
Factory.
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.
Orientação a Objetos Paradigma. Davi Pires Revisão Dúvidas da aula passada? –Características de Java –Compilador vs. Interpretador.
1 Junit Motivação para o uso André Luís Moreira
Java Avançado Luiz Carlos d´Oleron SJCP JUnit.
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.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Teste de Software 04: Que parte devo testar? Marcelo d’Amorim
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.
Transcrição da apresentação:

Um Framework Para Testes JUnit Um Framework Para Testes Sylvia Campos Rodrigo Lumack {scls, rlmb}@cin.ufpe.br

Motivação Todos os programadores sabem que devem testar seu código Quanto mais curto o prazo menos testes são realizados Necessidade de testar cada método separadamente Centralizar o código de testes Regras já definidas para apresentação de erros Possibilidade de automatização

Testes em Software Revelam erros no código Garantem que a implementação respeita a especificação Devem ser automatizados a fim de serem facilmente executados sempre que necessário Garantem a qualidade do software durante todo o ciclo de vida

Testes Automatizados Avaliam se um programa funciona como esperado Exemplo: main() Validam os requisitos

Testes de Unidade Testam a aplicação em seus menores componentes, isoladamente Testam unidades lógicas Métodos Objetos Maior número de erros detectados Erros mais fáceis de corrigir Devem ser executados continuamente

Testes de Integração Testam como uma coleção de unidades interage entre si ou com o ambiente onde executam Executados continuamente (caso as unidades em desenvolvimento dependam de outras)

Testes Funcionais Ponto de vista do usuário Testam casos de uso Validam a interface com o usuário, as operações requisitadas, etc. São menos estáveis do que os outros tipos

JUnit Framework para facilitar o desenvolvimento e a execução de testes de unidade em programas Java Modelo de programação para a criação de testes de unidade Sugerido por Kent Beck

JUnit API para construir testes Aplicações para executar testes junit.framework.* Aplicações para executar testes TestRunner

JUnit O framework JUnit pode ser resumido em uma classe pai para todos os casos de teste (chamada TestCase) que fornece ferramentas para rodar testes, gerar relatórios e definir conjuntos de testes

Escrevendo uma classe de teste Assuma uma classe Conta  Para testar a classe definimos uma classe ContaTest import test.framework.TestCase; public class ContaTest extends TestCase { public ContaTest(String testCase) { super(testCase); }

Escrevendo uma classe de teste Para testar o método creditar(double valor) definimos o método testCreditar() na classe ContaTest; public void testCreditar() { Conta c = new Conta(1, 100); c.creditar(50.0); assertTrue(c.getSaldo() == 150); } Para cada método da classe Conta é definido um método na classe ContaTest

Principais Asserções assertEquals(objEsperado, objRecebido); assertTrue(expBooleana); assertNull(obj); assertNotNull(obj) assertSame(obj1, obj2); fail(mensagem);

Instalando e Rodando o JUnit www.junit.org Descompacte o arquivo junit3.8.1.zip. Baixe a classe Conta.java em www.cin.ufpe.br/~scls/ES Incluir o arquivo junit.jar no classpath Crie uma classe ContaTest que será o test case da classe Conta.

Funcionamento O TestRunner recebe uma subclasse de junit.framework.TestCase e executa o método run(Test) Obtém dados de TestSuite - suite() TestSuite usa Java Reflection para descobrir os métodos de teste

Funcionamento public static Test suite(){ return new TestSuite(ContaTest.class); } public static void main(String[] args){ junit.textui.TestRunner.run(suite());

TestSuite Composição de testes public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new ContaTest("testGetSaldo")); suite.addTest(new ContaTest("testCreditar")); return suite; } Um TestSuite é usado pelo TestRunner para saber quais métodos devem ser executados como testes

TestSuite Para executar mais de um teste de uma vez e/ou reusar testes de outras classes (testes regressivos) public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new ContaTest("testSaldoConta")); suite.addTest(new ContaTest("testCredito")); suite.addTest(PoupancaTest.suite()); return suite; }

Como funciona As asserções causam falhas quando os resultados não estiverem corretos test.framework.AssertionFailedError Cada instância de TestCase será utilizada para executar um dos métodos de teste As alterações que ele fizer ao estado do objeto não afetarão as demais classes

Boas Práticas Escreva o código de testes antes da implementação. Dessa forma, você terá uma implementação dirigida por contrato Teste somente métodos que podem estar quebrados (assim, métodos get e set não devem ser testados na maioria dos casos) Teste sempre que possível

Testes conduzem o projeto OO Decida o que o componente deve fazer. Projeto o componente (sua interface pública) Escreva os testes de unidade Escreva o componente até que todos os testes passem Escreva teste para outras possibilidade de falha Escreva testes antes de corrigir um bug Execute todos os testes antes de publicar uma alteração (regressão)

Referências http://www.junit.org

Um Framework Para Testes JUnit Um Framework Para Testes