1° Madrugada de Testes
-
Upload
leonardo-lourenco-silva -
Category
Technology
-
view
6.656 -
download
3
Transcript of 1° Madrugada de Testes
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