21
1° Madrugada de Testes Dormir é para os FRACOS !!!

1° Madrugada de Testes

Embed Size (px)

Citation preview

Page 1: 1° Madrugada de Testes

1° Madrugada de Testes

Dormir é para os FRACOS !!!

Page 2: 1° Madrugada de Testes

O que é Teste de Software ?

Processo de verificação do software onde a principal

finalidade é detectar problemas

• Os testes devem ser realizados em todos os

sistemas, independente da

plataforma, ambiente, tecnologia ou linguagem de

programação

Page 3: 1° Madrugada de Testes

Benefícios do Teste de Software

• Garantir que o sistema funciona

• Garantir que está fazendo tudo que deveria fazer

• Detectar problemas

• Melhorar performance

• Melhorar qualidade do código

• Melhorar a usabilidade do sistema

Testes fazem parte do ciclo do desenvolvimento de software

Page 4: 1° Madrugada de Testes

Se o software falhar…

Page 5: 1° Madrugada de Testes

Eles também erram… Herar é umano !!!

Faça testes e erre menos

Page 6: 1° Madrugada de Testes

O que Testar ?

TUDO… independente da

(complexidade, quantidade de linhas ou cenário)

• Telas

• Camadas

• Validações e Consistências

• Regras de Negócio

• Arquivos, Banco de Dados (Abertura, Pedido, Resposta)

O que você NÃO testar PODERÁ ocasionar um erro no FUTURO

Page 7: 1° Madrugada de Testes

Modelos de Teste

• Manual

Uma pessoa vai testar o software

Conferência do Código (Pessoa Técnica)

Depuração (BreakPoints)

Evidência (PrintScreen)

• Automático

Um programa de computador vai testar o software

Código que Testa Código (Robo de Testes)

Próprio Desenvolvedor pode criar o Robo

Testes Manuais são demorados (Conferência do Código) e mais

caros R$ R$ (Precisa de uma Pessoa Técnica pra Conferir)

Existem muitas empresas que AINDA utilizam testes Manuais

Page 8: 1° Madrugada de Testes

Ferramentas de Teste

Existem frameworks de teste que nos ajudam a testar

os nossos sistemas de forma automatizada

• INTERFACE VISUAL - SELENIUM, WATIN

• CÓDIGO - NUNIT

VISUAL STUDIO UNIT TEST FRAMEWORK

Page 9: 1° Madrugada de Testes

Visual Studio Unit Test Framework

• Framework de testes da Microsoft

• Disponível desde o Visual Studio 2005

• Os testes criados rodam de 2 formas

• Gráfica (IDE Visual Studio)

• Código (MSTest.exe)

• Atributos que decoram as classes e métodos

• Definido no assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework

Page 10: 1° Madrugada de Testes

Resumo e apelidos carinhosos

SISTEMA

PROJETO DE

TESTE

SYSTEM UNDER TESTSUT

TEST SUITE

Page 11: 1° Madrugada de Testes

Demonstração

Visualizando os 3 Modelos de Projetos de Teste (Coded, Web and Load, Unit)1

Criando um Projeto de Teste (Unit Test)2

Visualizando a Referência e Namespace do Projeto3

Conhecendo a Classe de Teste UNITTEST14

Conhecendo o Método de Teste TESTMETHOD15

Conhecendo a Janela Test Explorer6

Page 12: 1° Madrugada de Testes

ABC dos Testes

1. Analise o SUT e verifique quais unidades você quer testar

2. No TEST SUITE crie classes e métodos de teste

3. Execute os testes até que todos fiquem VERDES

OBS: Caso o teste fique vermelho (FALHOU) foi retornada

alguma informação que você não estava esperando,

modificar o código ATÉ QUE O TESTE FIQUE VERDE

DE QUANTO EM QUANTO TEMPO IREMOS EXECUTAR A

SUITE DE TESTES ????

Sempre que algum desenvolvedor alterar o SUT !!!

Page 13: 1° Madrugada de Testes

Demonstração

Conhecendo a Classe Assert (AreEqual, AreNotEqual……..)1

Criando um Método para Testar o Nome, Email e Idade2

Fazer os Testes Falharem (VERMELHO)3

Fazer os Testes Falharem (VERMELHO) COM MENSAGEM DESCRITIVA4

Fazer os Testes Passarem (VERDE)5

Fazer um Teste ficar Inconclusivo (INCONCLUSIVE)6

Fazer um Teste Falhar de Propósito (FAIL)7

Page 14: 1° Madrugada de Testes

Divisão do Teste

Todo teste é dividido em 3 etapas

• Arrange - Preparação do Teste

• Instância as classe que vai usar no teste

• Prepara a massa de dados

• Act - Unidade que vai ser Testada

• Execução das funcionalidades do SUT

• Assert - Verificação de Resultados

• Conferência de resultados (se o que foi retornado do SUT era o

que você estava esperando que retornasse)

Page 15: 1° Madrugada de Testes

Demonstração

Criando um Componente Matemático1

Criando as Classes (Calculadora e Numeros)2

Calculadora=> Codificando as Operações Aritméticas Básicas3

Numeros=> Codificando as Operações Matemáticas4

Visualizando os 3 Modelos de Projetos de Teste (Coded, Unit, Web and Load)5

Criando um Projeto de Teste (Unit Test)6

Criando Métodos de Teste para Testar as Operações Aritméticas7

Criando a Classe de Teste NumerosTST8

Criando Métodos de Teste para Testar as Operações Matemáticas9

Page 16: 1° Madrugada de Testes

Triangulação

Técnica de gerar vários testes para testar o mesmo

comportamento de uma classe

• Redundante… e isso é muito bom !!!

• Testar ao máximo todas as possibilidades de entrada

Quanto MAIS você Triangular MELHOR !!!

Page 17: 1° Madrugada de Testes

Exemplo de Triangulação

[TestMethod]

public void TESTAR_SOMA(){

Calculadora classe = new Calculadora();

Int32 resultado = classe.Somar(1, 1);

Assert.AreEqual(2, resultado, "O resultado deveria ser 2");}

[TestMethod]public void TESTAR_SOMA_NUMEROS_ALTOS(){

Calculadora classe = new Calculadora();

Int32 resultado = classe.Somar(3000, 9000);

Assert.AreEqual(12000, resultado, "O resultado deveria ser 12000");}

[TestMethod]public void TESTAR_SOMA_NUMEROS_NEGATIVOS(){

Calculadora classe = new Calculadora();

Int32 resultado = classe.Somar(-250, 500);

Assert.AreEqual(250, resultado, "O resultado deveria ser 250");}

Page 18: 1° Madrugada de Testes

Demonstração

Triangulando as Operações Aritméticas1

Triangulando as Operações Matemáticas2

Page 19: 1° Madrugada de Testes

Cobertura de Código (Code Coverage)

Técnica que identifica quais linhas de código

NÃO FORAM TESTADAS

• Mostra para o desenvolvedor o que falta testar no SUT

• As linhas de código que não estiverem cobertas por

testes, ficarão na cor VERMELHA, a idéia é testar tudo, o

correto seria que todas as linhas ficassem na cor VERDE

O que você NÃO testar PODERÁ ocasionar um erro no FUTURO

Page 20: 1° Madrugada de Testes

Demonstração

Alterando as Operações Aritméticas para Retornar ZERO, caso algum

Parâmetro de Entrada seja Igual a ZERO1

Aplicando a Cobertura de Código nos Testes Aritméticos2

Page 21: 1° Madrugada de Testes

Laboratório

Codificar o projeto de clientes e colocar em prática

tudo que você aprendeu até agora…

1. Crie um projeto utilizando Repository e DTO

2. Simule os registros com NBUILDER

3. Crie o projeto de teste

4. Crie as classes e métodos de teste

5. Faça as triangulações

6. Aplique a cobertura de código

OS MÉTODOS DA SUITE DE TESTE DEVEM FICAR VERDES