Beruflich Dokumente
Kultur Dokumente
3
TESTE DE SOFTWARE
Entrada
TESTE DE SOFTWARE
Sada
TESTE DE SOFTWARE
Entrada Sada
COMO TESTAR TODAS AS FUNES
DO SISTEMA?
TESTES
Manuais
Automticos
TESTES AUTOMTICOS
Manifesto gil diz que passamos a valorizar
responder a mudanas mais que seguir um plano;
Para isso preciso mecanismos que traga segurana
ao fazer alteraes na aplicao;
Testes realizados por humanos so falhos e
demorados;
Neste contexto surge os Testes Automticos (ou
automatizados);
Ferramentas: JUnit, DBUnit etc;
EXEMPLO USANDO JUNIT
public class Calculadora{
}
EXEMPLO USANDO JUNIT
public class Calculadora{
@Test
public double deveriaSomarDoisValores(){
}
} Classe Testadora
EXEMPLO USANDO JUNIT
public class Calculadora{
}
}
EXEMPLO USANDO JUNIT
public class Calculadora{
}
Ateno! Somente mtodos com @Test sero executados
}
EXEMPLO USANDO JUNIT
public class Calculadora{
@Test
public double deveriaSomarDoisValores(){
Teste
}
}
EXEMPLO USANDO JUNIT
public class CalculadoraTest{
@Test
public void deveriaSomarDoisValores(){
Calculadora calc = new Calculadora();
double valorA = 2.0;
double valorB = 3.0;
double valorEsperado = 5.0;
double valorRetornado = calc.soma(valorA, valorB);
@Test
O que deveria
public void deveriaSomarDoisValores(){
acontecer
Calculadora calc = new Calculadora();
double valorA = 2.0;
double valorB = 3.0;
double valorEsperado = 5.0;
double valorRetornado = calc.soma(valorA, valorB);
@Test
public void deveriaSomarDoisValores(){
Calculadora calc = new Calculadora(); Instancia para
double valorA = 2.0; utilizar o mtodo
double valorB = 3.0;
double valorEsperado = 5.0;
double valorRetornado = calc.soma(valorA, valorB);
@Test
public void deveriaSomarDoisValores(){
Calculadora calc = new Calculadora();
double valorA = 2.0;
double valorB = 3.0;
double valorEsperado = 5.0;
Executa o
double valorRetornado = calc.soma(valorA, valorB);
mtodo testado
assertEquals(valorEsperado, valorRetornado, 0);
}
}
EXEMPLO USANDO JUNIT
public class CalculadoraTest{
@Test
public void deveriaSomarDoisValores(){
Calculadora calc = new Calculadora();
double valorA = 2.0;
double valorB = 3.0;
double valorEsperado = 5.0;
double valorRetornado = calc.soma(valorA, valorB);
Executando o Test:
o Selecione a classe
que contm o teste e
clique em Run As
e depois em JUnit
Test
EXEMPLO USANDO JUNIT
Vermelho: O teste no
passou
EXEMPLO USANDO JUNIT
Mtodos de Comparao
o assertArrayEquals()
Verifica se dois vetores so iguais
o assertEquals()
Verifica se dois objetos so iguais
o assertTrue()
Verifica se a varivel verdadeira
o ou assertFalse()
Verifica se a varivel falsa
EXEMPLO USANDO JUNIT
Mtodos de Comparao
o assertNull()
Verifica se a varivel nula
o assertNotNull()
Verifica se a varivel no nula
o assertSame()
Verifica se dois objetos possuem a mesma referncia
o assertNotSame()
Verifica se dois objetos no possuem a mesma referncia
DIFERENA ENTRE OS DESENVOLVEDORES
Teste de Unidade
Teste de Integrao
Teste de Aceitao
TESTE DE UNIDADE
Navegador
Aplicao
Banco de Dados
RESUMO
Navegador
Aplicao
Teste de Unidade
Banco de Dados
RESUMO
Teste de Integrao
Navegador
Aplicao
Banco de Dados
RESUMO
Teste de Aceitao
Navegador
Aplicao
Banco de Dados
RESUMO Teste de Aceitao
Teste de Integrao
Navegador
Aplicao
Teste de Unidade
Banco de Dados
QUAL DOS NVEIS DE TESTE
O MELHOR?
QUAL DOS NVEIS DE TESTE
O MELHOR?
Depende da necessidade
TEST AUTOMATION PYRAMID
10%
Aceitao
Integrao 40%
50%
Unidade
Fonte: http://martinfowler.com/bliki/TestPyramid.html
Primeiro escreve o cdigo de produo, depois
escreve o teste
Modelo de desenvolvimento tradicional
Primeiro escreve o cdigo de produo, depois
escreve o teste
Modelo de desenvolvimento tradicional
Vantagens:
o Melhor entendimento do negcio do sistema
o Criao de testes ricos
o Maior confiana no cdigo
o Maior valor agregado ao produto
TEST-DRIVEN DEVELOPMENT
TEST-DRIVEN DEVELOPMENT
Adiciona
o teste
[Falha] Executa
Altera
o teste
[Passou]
[Passou]
Desenvolvimento
Continua
Refatora
Desenvolvimento
terminou
EXEMPLO DE TDD
Cria o teste
EXEMPLO DE TDD
Cria o teste
Adiciona o teste
Adiciona o teste
EXEMPLO DE TDD
Adiciona o teste
Cria a classe e
adiciona o mtodo
EXEMPLO DE TDD
Implementa o mtodo
EXEMPLO DE TDD
Refatora o mtodo
EXEMPLO DE TDD
Alta cobertura;