1° Madrugada de Testes

Preview:

Citation preview

1° Madrugada de Testes

Dormir é para os FRACOS !!!

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

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

Se o software falhar…

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

Faça testes e erre menos

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

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

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

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

Resumo e apelidos carinhosos

SISTEMA

PROJETO DE

TESTE

SYSTEM UNDER TESTSUT

TEST SUITE

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

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 !!!

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

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)

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

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 !!!

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

Demonstração

Triangulando as Operações Aritméticas1

Triangulando as Operações Matemáticas2

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

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

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