Prof. Me. Marcos Echevarria

Documentos relacionados
Testes Unitários com JUnit

Desenvolvimento guiado por testes e ferramentas xunit

Programação Orientada a Objetos

Análise e Projeto Orientados a Objetos

Teste Automatizado POO. Prof. Marcio Delamaro

Refatoração Melhorando o sistema e preparando pra a Web

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues

Teste Unitários com NUnit. Anderson Martiniano da Rocha

JUnit: framework de testes unitários. Fred Lopes

TESTANDO MAIS PARA DEPURAR MENOS: OS BENEFICIOS DOS TESTES PARA O DESENVOLVIMENTO DE SOFTWARE

3 Informações para Coordenação da Execução de Testes

O JUnit permite a realização de testes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos e objetos.

Testes Unitários em Java

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Problems and Programmers

TUTORIAL MATLAB Victor Breder 2016

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Estruturas de Repetição

2.1 Dê duplo clique com o botão esquerdo do mouse sobre o instalador.

Ponto Secullum 4 Extras. Para configurar as extras no Ponto Secullum 4 abra a tela Cadastro de Horários e clique no botão Extras:

Programação de Computadores - I. Profª Beatriz Profº Israel

Pagamento de complemento de salário-maternidade, considerando que este valor deve ser deduzido da guia de INSS, pois é pago pelo INSS.

MANUAL DO SISTEMA. Versão 6.05

Ferramenta Selenium. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Reader e Writer para streams de caracteres (texto).

O Segredo De Como colocar links externos no Youtube e Aumentar sua taxa de conversão em 1000%

Ponto Secullum 4 - Adicional Noturno. Como padrão o horário de Noturno PADRÃO é 22:00 hrs às 05 hrs da manhã.

Configurar conta corrente para cada Forma de Pagamento

Credenciamento. e manual de instalação Magento. Credenciamento. Configurações

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

Apresentação do Microsoft Excel

Gerenciamento de dispositivos móveis

Lista 4 Introdução à Programação Entregar até 07/05/2012

Orientação a Objetos

Padrões de Projeto. Factory Method

CONFIGURAÇÃO DE POP-UP DE ALARME SIM V5

APOSTILA DE INFORMÁTICA - PAINT

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

1 Cálculo do valor à vista

Manual do Usuário. Quiz Online

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Tutorial Autodesk Inventor Sheet Metal

INTEGRAÇÃO JAVA COM ARDUINO

Como Gerar Boletos? FS132

Tutorial Suporte Técnico da DTI

MC Teste de Mesa e Comandos Repetitivos

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

MICROSOFT OFFICE EXCEL 2007

PREFEITURA DO MUNICÍPIO DE SANTO ANTONIO DE PADUA. Estado do Rio de Janeiro. Nota Fiscal de Serviços Eletrônica NFS-e

Maratona de Programação - Dicas Para Iniciantes

Exercícios: comandos de repetição

Programação WEB I Funções

Versão Portuguesa. Introdução. Instalação de Hardware. Adaptador Ethernet Powerline LC202 da Sweex de 200 Mbps

PLANEJAMENTO SIMPLIFICADO DE PROJETOS

NOTA FISCAL DE SERVIÇOS ELETRÔNICA NFS-E VERSÃO ON-LINE. Manual do Usuário do Sistema NFS-E

Linguagem de Programação II Implementação

Programas Utilitários: Antivírus e Desfragmentadores de disco. Prof. Rafael Sandim

CÁLCULO DO MODELO NUMÉRICO (MDT)

MANUAL DE EMISSÃO DO CERTIFICADO TIPO A3 ENVIADO POR ENVIADO POR VERSÃO 10. Atualizado em 30/12/2015 Página 1 de 19

Programação Orientada a Objeto Java

Programação Linear - Parte 4

Agenda. O que é Testar? Por que testar? Quando testar? Processo de teste Níveis de teste Tipos de teste Classificação dos testes.

FOLHA DE CÁLCULO ELABORAÇÃO DE GRÁFICOS

O que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho

Manutenção do Sistema

Sistema PROJUDI Vara de Execuções Penais

Placas PC Card. Número de publicação do documento: Este manual explica como utilizar as placas PC Card com o computador.

Elabore um algoritmo na Linguagem de Programação do VisuAlg usando a estrutura de repetição PARA que satisfaça as seguintes condições:

Como Atualizar o SolidWorks Enterprise PDM. Atualização do Servidor

Backup. O que é um backup?

Inserindo o SIM card no modem D-Link DWM-156

Instalando o SCI Manager

Algoritmo e Pseudo-código

Teste Intermédio de Matemática A Matemática A Entrelinha 1,5 (Versão única igual à Versão 1) 12.º Ano de Escolaridade

Vetores, Matrizes e String

INSTALAÇÃO DE CERTIFICADO SERVIDOR WEB MICROSOFT IIS 5.x

Gerenciamento de Integração. Prof. Anderson Valadares

Programação Orientada a Objetos

ANEXO L PLANILHA DE CUSTOS E FORMAÇÃO DE PREÇOS

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

BC-0505 Processamento da Informação

Criação de métodos em Java

Excel. Profª Leticia Lopes Leite

Processo de Desenvolvimento de Software

Como as provas discursivas são corrigidas

Programação de CPLDs no ambiente ISE 4.2i da Xilinx

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Transcrição:

Prof. Me. Marcos Echevarria

JUnit é um framework, open-source, que auxilia a criação e execução de testes unitários em classes Java. Engenharia de Software 2

JUnit facilita a criação de testes automatizados, com apresentação dos resultados; Com ele, pode ser verificado se cada método de uma classe funciona da forma esperada, exibindo possíveis erros ou falhas; Engenharia de Software 3

Um dos seus pontos fortes é que ele possui integração com várias IDEs de desenvolvimento Java; Além disso, ele facilita muito o trabalho do desenvolvedor na execução de baterias de testes; Engenharia de Software 4

1. Criação rápida de testes (maior qualidade); 2. Não é necessário criar um padrão para testes; 3. Amplamente utilizado, possuindo um grande número de exemplos; 4. Execução dos testes sem interromper o processo de desenvolvimento; 5. JUnit checa os resultados dos testes e fornece uma resposta imediata; 6. Permite que o programador perca menos tempo depurando seu código; 7. JUnit é livre. Engenharia de Software 5

--------------------------------------------------- Engenharia de Software 6

Crie um projeto no NetBeans chamado Game; Engenharia de Software 7

Crie um projeto no NetBeans chamado Game; Crie uma classe chamada FizzBuzz; Engenharia de Software 8

Clique com o botão direito em cima da classe que queremos testar; Vá em: ferramentas -> criar/atualizar testes Engenharia de Software 9

Configurando opções do Junit; Engenharia de Software 10

@BeforeClass (setupclass()) Códigos que precisam ser executados antes da criação de um objeto da classe; @AfterClass (teardownclass()) Códigos que precisam ser executados após todos os testes serem executados; @Before (setup()) Códigos que precisam ser executados antes da execução de cada teste; @After (teardown()) Códigos que precisam ser executados após a execução de cada teste; Engenharia de Software 11

@Test public void testsomemethod() { } // TODO review the generated test code and remove the default call to fail. fail("the test case is a prototype."); Engenharia de Software 12

@Test public void testnumeroqualquer() throws Exception { int numero = 7; FizzBuzz instance = new FizzBuzz(); String expresult = 7"; assertequals(expresult, instance.fizzbuzz(numero)); } Engenharia de Software 13

( 0 ) retorna Exception ( 3 ) : ( fizz ) ( 5 ) : ( buzz ) ( 7 ) : ( 7 ) ( 15 ) : ( fizz buzz ) Engenharia de Software 14

--------------------------------------------------- Engenharia de Software 15

@Test(expected=Exception.class) public void testvalormenorzero() throws Exception { FizzBuzz instance = new FizzBuzz(); instance.fizzbuzz(0); } Engenharia de Software 16

--------------------------------------------------- Engenharia de Software 17

Escreva testes: Não escreva logs de depuração (Sytem.out.println()); Nunca coloque múltiplos assertions no mesmo método: @Test public void testsomething() { assertequals(10, Calc.soma(7,3)); assertequals(50, Calc.multiplica(5,10)); assertequals(30, Calc.subtrai(50,20)); } Engenharia de Software 18

--------------------------------------------------- Engenharia de Software 19

Para cada classe da nossa aplicação teremos uma classe de testes; Podemos trabalhar a classe de teste como sendo uma classe de verdade; Use atributos, utilize o construtor, utilize os helpers (métodos padrão) e etc. Engenharia de Software 20

Para cada classe da nossa aplicação teremos uma classe de testes; Podemos trabalhar a classe de teste como sendo uma classe de verdade; Use atributos, utilize o construtor, utilize os helpers (métodos padrão) e etc. Engenharia de Software 21

--------------------------------------------------- Engenharia de Software 22

Todos nós trabalhadores e recebemos um salário, correto? Porém, o governo desconta alguns impostos de nosso salário bruto; Um deles é o famoso INSS (Instituto Nacional do Seguro Social); Ok, mas como saber quanto de INSS será descontado de nosso salário? Engenharia de Software 23

Tabela: Salário Desconto Até 1.556,94 8% De 1.556,95 até 2.594,92 9% De 2.594,93 até 5.189,82 11% Engenharia de Software 24

Tabela: Salário Desconto Até 1.556,94 8% De 1.556,95 até 2.594,92 9% De 2.594,93 até 5.189,82 11% Alguém sabe responder por que acima de R$ 5.189,82 não é cobrado INSS? Engenharia de Software 25

Precisamos desenvolver um método que realize o cálculo do INSS; Para isso, precisamos definir todos os testes que precisam ser feitos para que o método funcione; Os testes devem ser elaborados ANTES de desenvolvê-lo (TDD); Engenharia de Software 26

Utilize as duas técnicas de testes caixa preta para criar os testes para o cálculo do INSS; Após, utilize o JUnit para criar os testes unitários; Engenharia de Software 27

Crie o método que calcule o INSS a ser pago por um empregado de forma que o método passe em todos os testes criados; Engenharia de Software 28

Engenharia de Software 29

--------------------------------------------------- Engenharia de Software 30