SlideShare uma empresa Scribd logo
1 de 21
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



         TEST SUITE            SYSTEM UNDER TEST
                                      SUT

          PROJETO
            DE                     SISTEMA
           TESTE
Demonstração

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


2   Criando um Projeto de Teste (Unit Test)


3   Visualizando a Referência e Namespace do Projeto


4   Conhecendo a Classe de Teste UNITTEST1


5   Conhecendo o Método de Teste TESTMETHOD1


6   Conhecendo a Janela Test Explorer
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

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


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


3   Fazer os Testes Falharem (VERMELHO)


4   Fazer os Testes Falharem (VERMELHO) COM MENSAGEM DESCRITIVA


5   Fazer os Testes Passarem (VERDE)


6   Fazer um Teste ficar Inconclusivo (INCONCLUSIVE)


7   Fazer um Teste Falhar de Propósito (FAIL)
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

1   Criando um Componente Matemático


2   Criando as Classes (Calculadora e Numeros)


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


4   Numeros=> Codificando as Operações Matemáticas


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


6   Criando um Projeto de Teste (Unit Test)


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


8   Criando a Classe de Teste NumerosTST


9   Criando Métodos de Teste para Testar as Operações Matemáticas
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

1   Triangulando as Operações Aritméticas


2   Triangulando as Operações Matemáticas
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
1   Parâmetro de Entrada seja Igual a ZERO


2   Aplicando a Cobertura de Código nos Testes Aritméticos
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

Mais conteúdo relacionado

Mais procurados

Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
elliando dias
 
Implementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel Pimentel
Manoel Pimentel Medeiros
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?
Alex Tercete
 

Mais procurados (20)

Junit
JunitJunit
Junit
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
Implementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel Pimentel
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com Junit
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
Java 12
Java 12Java 12
Java 12
 
Aexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tddAexo TI - Boas práticas de testes tdd
Aexo TI - Boas práticas de testes tdd
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
Apresentacao teste
Apresentacao testeApresentacao teste
Apresentacao teste
 
Qualidade de Código
Qualidade de CódigoQualidade de Código
Qualidade de Código
 
Testes de Sofware
Testes de SofwareTestes de Sofware
Testes de Sofware
 
Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2Validação e Testes de Software - MOD2
Validação e Testes de Software - MOD2
 
TDD Primeiro Contato
TDD Primeiro ContatoTDD Primeiro Contato
TDD Primeiro Contato
 

Destaque (7)

Hibernate - Aula 02
Hibernate - Aula 02Hibernate - Aula 02
Hibernate - Aula 02
 
Course Hibernate 2008
Course Hibernate 2008Course Hibernate 2008
Course Hibernate 2008
 
Orm slides
Orm slidesOrm slides
Orm slides
 
Real World Discussions Recognition System For Pig Cough Based On Neural
Real World Discussions Recognition System For Pig Cough Based On NeuralReal World Discussions Recognition System For Pig Cough Based On Neural
Real World Discussions Recognition System For Pig Cough Based On Neural
 
Introdução ao ORM
Introdução ao ORMIntrodução ao ORM
Introdução ao ORM
 
Como se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa pretaComo se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa preta
 
ORM: Por que isso te interessa? (TDC2010)
ORM: Por que isso te interessa? (TDC2010)ORM: Por que isso te interessa? (TDC2010)
ORM: Por que isso te interessa? (TDC2010)
 

Semelhante a 1° Madrugada de Testes

Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Domingos Teruel
 

Semelhante a 1° Madrugada de Testes (20)

Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
ybr789try
ybr789tryybr789try
ybr789try
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Testes de Software.ppt
Testes de Software.pptTestes de Software.ppt
Testes de Software.ppt
 
Aula12 T EES UFS Testes de SW
Aula12  T EES  UFS  Testes de SWAula12  T EES  UFS  Testes de SW
Aula12 T EES UFS Testes de SW
 
Aula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SWAula12 TEES UFS Testes de SW
Aula12 TEES UFS Testes de SW
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Métricas Em Fabricas De Software
Métricas Em Fabricas De SoftwareMétricas Em Fabricas De Software
Métricas Em Fabricas De Software
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
Elevando a qualidade e agilidade das automações com Test Cases
Elevando a qualidade e agilidade das automações com Test CasesElevando a qualidade e agilidade das automações com Test Cases
Elevando a qualidade e agilidade das automações com Test Cases
 
TDD
TDDTDD
TDD
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 

Mais de Leonardo Lourenço Silva (20)

Introdução a Plataforma .NET
Introdução a Plataforma .NETIntrodução a Plataforma .NET
Introdução a Plataforma .NET
 
Resources no XAML
Resources no XAMLResources no XAML
Resources no XAML
 
Introdução ao WPF
Introdução ao WPFIntrodução ao WPF
Introdução ao WPF
 
Programação em Camadas - Iniciantes
Programação em Camadas - IniciantesProgramação em Camadas - Iniciantes
Programação em Camadas - Iniciantes
 
Visual F# 3.0 - Constantes, Variáveis e Classes
Visual F# 3.0 - Constantes, Variáveis e ClassesVisual F# 3.0 - Constantes, Variáveis e Classes
Visual F# 3.0 - Constantes, Variáveis e Classes
 
Expression Blend 5.0
Expression Blend 5.0Expression Blend 5.0
Expression Blend 5.0
 
Mudança de Vida
Mudança de VidaMudança de Vida
Mudança de Vida
 
Princípio DRY
Princípio DRYPrincípio DRY
Princípio DRY
 
Evolução ASP.NET
Evolução ASP.NETEvolução ASP.NET
Evolução ASP.NET
 
Conhecendo o Windows 8
Conhecendo o Windows 8Conhecendo o Windows 8
Conhecendo o Windows 8
 
Introdução a Plataforma .NET 4.0
Introdução a Plataforma .NET 4.0Introdução a Plataforma .NET 4.0
Introdução a Plataforma .NET 4.0
 
ASP.NET Profile
ASP.NET ProfileASP.NET Profile
ASP.NET Profile
 
ASP.NET AJAX
ASP.NET AJAXASP.NET AJAX
ASP.NET AJAX
 
WCF
WCFWCF
WCF
 
Visual C# - Parâmetros Opcionais e Nomeados
Visual C# - Parâmetros Opcionais e NomeadosVisual C# - Parâmetros Opcionais e Nomeados
Visual C# - Parâmetros Opcionais e Nomeados
 
.NET - Interfaces
.NET - Interfaces.NET - Interfaces
.NET - Interfaces
 
SilverLight
SilverLightSilverLight
SilverLight
 
WPF | XBAP
WPF | XBAPWPF | XBAP
WPF | XBAP
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Conhecendo o ASP .NET 4.5
Conhecendo o ASP .NET 4.5Conhecendo o ASP .NET 4.5
Conhecendo o ASP .NET 4.5
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (11)

[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 

1° Madrugada de Testes

  • 1. 1° Madrugada de Testes Dormir é para os FRACOS !!!
  • 2. 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
  • 3. 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
  • 4. Se o software falhar…
  • 5. Eles também erram… Herar é umano !!! Faça testes e erre menos
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. Resumo e apelidos carinhosos TEST SUITE SYSTEM UNDER TEST SUT PROJETO DE SISTEMA TESTE
  • 11. Demonstração 1 Visualizando os 3 Modelos de Projetos de Teste (Coded, Web and Load, Unit) 2 Criando um Projeto de Teste (Unit Test) 3 Visualizando a Referência e Namespace do Projeto 4 Conhecendo a Classe de Teste UNITTEST1 5 Conhecendo o Método de Teste TESTMETHOD1 6 Conhecendo a Janela Test Explorer
  • 12. 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 !!!
  • 13. Demonstração 1 Conhecendo a Classe Assert (AreEqual, AreNotEqual……..) 2 Criando um Método para Testar o Nome, Email e Idade 3 Fazer os Testes Falharem (VERMELHO) 4 Fazer os Testes Falharem (VERMELHO) COM MENSAGEM DESCRITIVA 5 Fazer os Testes Passarem (VERDE) 6 Fazer um Teste ficar Inconclusivo (INCONCLUSIVE) 7 Fazer um Teste Falhar de Propósito (FAIL)
  • 14. 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)
  • 15. Demonstração 1 Criando um Componente Matemático 2 Criando as Classes (Calculadora e Numeros) 3 Calculadora=> Codificando as Operações Aritméticas Básicas 4 Numeros=> Codificando as Operações Matemáticas 5 Visualizando os 3 Modelos de Projetos de Teste (Coded, Unit, Web and Load) 6 Criando um Projeto de Teste (Unit Test) 7 Criando Métodos de Teste para Testar as Operações Aritméticas 8 Criando a Classe de Teste NumerosTST 9 Criando Métodos de Teste para Testar as Operações Matemáticas
  • 16. 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 !!!
  • 17. 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"); }
  • 18. Demonstração 1 Triangulando as Operações Aritméticas 2 Triangulando as Operações Matemáticas
  • 19. 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
  • 20. Demonstração Alterando as Operações Aritméticas para Retornar ZERO, caso algum 1 Parâmetro de Entrada seja Igual a ZERO 2 Aplicando a Cobertura de Código nos Testes Aritméticos
  • 21. 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

Notas do Editor

  1.