SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
Atividades de Teste
  e Cobertura de
      Código
    Erik Aceiro Antonio
•   Bacharelado em Ciência da Computação
    – Universidade Mackenzie

•   Mestrado em Engenharia Elétrica
    – Sistemas de Comunicações Ópticas
    – Automação e WebLab

•   Doutorando em Ciência da Computação
    – Engenharia de Software – Universidade Federal de São Carlos (UFSCar)
    – Teste de Software para Sistemas Embarcados Críticos

•   Certificado OCA/OCP/SCJP/LPI
•   Trabalhei no UOL/Mackenzie como Analista Programador
•   Professor Universitário
•   Experiência no ensino de 10 anos
•   Consultor de TI
aceiro@gmail.com

      erik_aceiro@hotmail.com

http://erikblogger.blogspot.com

      facebook.com/erik.aceiro


                      @eaceiro
Apresentar
   princípios
      ea
motivação para
    o uso de
 atividades de
      teste


                 Erik | aceiro@gmail.com
O que
    é
atividade
    de
  Teste
   ?
“Testing is the process
    of executing a
  program with the
   intent of finding
         errors”
                 Myers
As Atividades de Teste promovem…

- Auxilia na compreensão do SUT (App)

- Os testes devem reduzir “riscos”

- Reduzir correçoes manuais e “debug”

- Em uma palavra …
Qualidade
O que
    é
Qualidade
    ?
A busca
    pela
 qualidade
   exige
    um
 trade-off

   Risco
     X
Oportunidade
O que
    é
Qualidade
    ?
“Qualidade” …

 Estamos construindo certo o produto ?


 Estamos construindo o produto certo ?
“Verificação” assegura que

- Estamos construindo certo o produto ?

- Assegurar que o software está de
 acordo com a especificação pré-
 estabelecida

- Verificar problemas e defeitos em
 componentes

- Exige a execução de artefatos
“Validação” assegura que

- Estamos construindo o produto certo ?

- Assegurar que o software está de
 acordo com os requisitos do cliente

- Validar se a construção dos
 componentes segue a especificação

- Não exige a execução de artefatos
Conceitos preliminares
Top-Down/Inside-out
Bottom-up/Outside-in




 Uso de Mock, Stubs, Drivers (Controllers), Dummy Objects , Fakes Objects
Taxonomia



Um Defeito é uma Erro,
se ele é for encontrado
Durante a execução do
software.
Ciclo de Vida de Defeitos (IEEE 1044-2009)
Atividades de Verifivação & Validação (V&V)

São divididas em dois grupos básicos

  (1) Atividades Estáticas
      - Não envolve a execução do SUT

      -   Inspeção
      -   Inspeção de Código/Modelos
      -   Revisão
      -   Walkthrough (Passo a Passo)
      -   Checklist
      -   Programação em Pares (XP)
Atividades de Verifivação & Validação (V&V)

  (2) Atividades Dinâmicas

      - Atividades de Teste

      - Envolve a execução do artefato

      - Exercita caminhos (paths)
“O mais importante
   na atividade de
 teste é o projeto e
  criação efetivo do
    caso de teste”

            Myers
O melhor teste é
  aquele que
 descobre mais
   problemas
A Economia de uma Atividade
                   de Teste
Esforço




              Número de Casos de Teste
“it is impractical,
often impossible, to
        find all
   the errors in a
      program”

            Myers
100 trilhões de
  instruções
3,2 milhões de
     anos
Principle 9: The probability of the existence of more errors in a section of a
program is proportional to the number of errors already found in that section.
Principais Atividades de Teste

   Caixa Preta (Teste Funcional)
     - Critérios
         - Particionamento de Equivalencia
         - Análise do Valor Limite
         - Grafo de Causa-Efeito
         - Erro de Advinhação


   Caixa Branca (Teste Estrutural)
     - Critérios
         - Statement Coverage (SC)
         - Decision Coverage (DC)
         - Condition Coverage (CC)
         - Decision-Condition coverage (DCC)
         - Multiple-Condition coverage (MC)
         - MC/DC
Teste Caixa Branca – White Box Testing
QUIZ




Podemos executar todas as instruções de um
 programa com loops ?
Teste Caixa Branca – White Box Testing




       caso de teste

(Entrada; Saída Esperada)
Teste Caixa Branca – White Box Testing




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução




    caso de teste

(A=2,B=0,X=3; 2.5)
QUIZ



O critério de cobertura de instrução pode ser
        considerado um critério forte ?
Teste Caixa Branca – Cobertura de Instrução
Defeito

          ||




          caso de teste

   (A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução


    ||




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução


    ||




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução


    ||




    caso de teste

(A=2,B=0,X=3; 2.5)
Teste Caixa Branca – Cobertura de Instrução


       ||




       caso de teste

 (A=2,B=0,X=3; 2.5)
Defeito NUNCA detectado !!!
       Critério Fraco
Particionamento de Equivalência
DIMENSION ad[,ad]...

     n(d[ ,d]...)
Análise do Valor Limite




      Explora valores no limite de
               do domínio
1.   Arquivo vazio
2.   Título Faltando
3.   1 caracter para o título
4.   80 caracters para o título
5.   1 questão de exemplo
6.   50 questões de exemplo
7.   51 questões de exemplo
8.   999 questões de exemplo
9.   Uma questão vazia
Error Guessing (Erro de Adivinhação)




       Explora erros típicos em um
                  projeto.
Error Guessing (Erro de Adivinhação)




1. A lista de entrada é vazia
2. O nome das variáveis foram definidas com clareza
3. Todas as entradas foram salvas

…
…
Processo de Teste Tradicional e Ágil
jUnit (Zoo de Patterns)
xUnit
Terminologia básica
Pattern - Setup/Exercise/Verify/Teardown
Pattern – Arrange/Act/Assert (3A’s)

Como organizar os casos de teste ?

Arrange – Inicialização de todas as pré-condições
Act     – Um objeto ou método sob teste
Assert – Resultados esperados

Vantagens

  Auxilia na compreensão
  Melhora a manutenção
  Auxilia na detecção de Smells
Pattern – Arrange/Act/Assert (3A’s)

Como organizar os casos de teste ?

Arrange – Inicialização de todas as pré-condições
Act     – Um objeto ou método sob teste
Assert – Resultados esperados

Vantagens
       Auxilia na compreensão
        Melhora a manutenção
       Auxilia na detecção de Smells
Variações de nomenclatura
     Build/Operate/Check/Cleat (BOCC Pattern)
import static junit.org.Assert.*;

public class MySingleTest{

@Test
  public void test() {
     String input = "abc";
     String result = Util.reverse(input);
     assertEquals("cba", result);
  }
}

...
Exemplos
Usage: java br.com.varitus.nfe.app.RobotMainApp

   [(-m|--process-email) <process-email>] [(-e|--recover-error) <recover-
   error>] [(-o|--recover-other) <recover-other>] (-p|--path) <path> [-f|--
   process-full-mode] [-r|--recover-full-mode] [-v|--version] [-h|--help]



 [(-m|--process-email) <process-email>]
       E-mail da conta do cliente na base de dados da VARITUS que será
       processado

 [(-e|--recover-error) <recover-error>]
       E-mail da conta do cliente na base de dados da VARITUS. As mensagens
       dessa conta serão movidas da pasta NFE_ERRO para a caixa de entrada

 [(-o|--recover-other) <recover-other>]
       E-mail da conta do cliente na base de dados da VARITUS. As mensagens
       dessa conta serão movidas da pasta NFE_OUTRO para a caixa de entrada

 (-p|--path) <path>
       O path clientes da NF-e, esse caminho é o valor da tag configurada no
       path_cliente.properties em ~/nfe/
class FuncionarioDAOTest{
    private FuncionarioDAO dao;


    @Mock
    private Transacao transacao;


    @Before
    public void init(){
            MockitoAnnotations.initMocks(this);
            dao = new FuncionarioDAO(transacao);
    }


    @Test
    public void testQueChecaUsuario(){
            when(transacao.executar("1234"))
                .thenReturn("Eva      1234 1111");


            Funcionario umFuncionario = dao.buscarFuncionario("1234");


            assertEquals("Eva" ,    umFuncionario.getNome() );
            assertEquals(1234   ,   umFuncionario.getSetor());
            assertEquals("1111",    umFuncionario.getDepto());


            verify(transacao, atMostOnce()).executar("1234");


    }
}
OO




OA
Prática
Teste Caixa Branca – White Box Testing




Criar a classe Java
Criar o Teste de Unidade
Criar Casos de Testes com critério
       Statement Coverage
       Decision/Branch Coverage
       Condition Coverage
Teste Caixa Preta– Black Box Testing




Criar casos de teste com classes de
equivalência

Criar casos de teste com análise do
valor limite

Criar casos de teste com Erros de
Advinhação típicos
aceiro@gmail.com

      erik_aceiro@hotmail.com

http://erikblogger.blogspot.com

      facebook.com/erik.aceiro


                      @eaceiro

Weitere ähnliche Inhalte

Was ist angesagt?

Alg aula 04-2 - estruturas de-selecao tp1 (se - encadeado e caso)
Alg   aula 04-2 - estruturas de-selecao tp1 (se - encadeado e  caso)Alg   aula 04-2 - estruturas de-selecao tp1 (se - encadeado e  caso)
Alg aula 04-2 - estruturas de-selecao tp1 (se - encadeado e caso)
Thalles Anderson
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
Pacc UAB
 
Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2
irenescotolo
 

Was ist angesagt? (20)

UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Tarefa2 execução
Tarefa2 execuçãoTarefa2 execução
Tarefa2 execução
 
Questionário sobre casos de uso e classes revisão da tentativa
Questionário sobre casos de uso e classes  revisão da tentativaQuestionário sobre casos de uso e classes  revisão da tentativa
Questionário sobre casos de uso e classes revisão da tentativa
 
Workshop: Testes automatizados, Refactoring e Design Patterns
Workshop: Testes automatizados, Refactoring e Design PatternsWorkshop: Testes automatizados, Refactoring e Design Patterns
Workshop: Testes automatizados, Refactoring e Design Patterns
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Ferramentas testes2003
Ferramentas testes2003Ferramentas testes2003
Ferramentas testes2003
 
Questionário sobre conceitos oo revisão da tentativa
Questionário sobre conceitos oo  revisão da tentativaQuestionário sobre conceitos oo  revisão da tentativa
Questionário sobre conceitos oo revisão da tentativa
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativa
 
Alg aula 04-2 - estruturas de-selecao tp1 (se - encadeado e caso)
Alg   aula 04-2 - estruturas de-selecao tp1 (se - encadeado e  caso)Alg   aula 04-2 - estruturas de-selecao tp1 (se - encadeado e  caso)
Alg aula 04-2 - estruturas de-selecao tp1 (se - encadeado e caso)
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Questionário sobre programação oo com java revisão da tentativa
Questionário sobre programação oo com java  revisão da tentativaQuestionário sobre programação oo com java  revisão da tentativa
Questionário sobre programação oo com java revisão da tentativa
 
Java13
Java13Java13
Java13
 
Questionário sobre padrões de codificação java revisão da tentativa
Questionário sobre padrões de codificação java  revisão da tentativaQuestionário sobre padrões de codificação java  revisão da tentativa
Questionário sobre padrões de codificação java revisão da tentativa
 
Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2Introdução à análise orientada a objetos parte 2
Introdução à análise orientada a objetos parte 2
 
Java5
Java5Java5
Java5
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Questionário sobre modelagem revisão da tentativa
Questionário sobre modelagem  revisão da tentativaQuestionário sobre modelagem  revisão da tentativa
Questionário sobre modelagem revisão da tentativa
 

Ähnlich wie Atividades de Teste e Cobertura de Código em Java

Ähnlich wie Atividades de Teste e Cobertura de Código em Java (20)

Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Testes de Sofware
Testes de SofwareTestes de Sofware
Testes de Sofware
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Introdução a tdd
Introdução a tddIntrodução a tdd
Introdução a tdd
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por Testes
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
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
 
Apresentacao teste
Apresentacao testeApresentacao teste
Apresentacao teste
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 
Testes com python: como fazer uma refatoração segura
Testes com python: como fazer uma refatoração seguraTestes com python: como fazer uma refatoração segura
Testes com python: como fazer uma refatoração segura
 
Testing sucks
Testing sucksTesting sucks
Testing sucks
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
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...
 

Kürzlich hochgeladen

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
LeloIurk1
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Kürzlich hochgeladen (20)

aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 

Atividades de Teste e Cobertura de Código em Java

  • 1. Atividades de Teste e Cobertura de Código Erik Aceiro Antonio
  • 2. Bacharelado em Ciência da Computação – Universidade Mackenzie • Mestrado em Engenharia Elétrica – Sistemas de Comunicações Ópticas – Automação e WebLab • Doutorando em Ciência da Computação – Engenharia de Software – Universidade Federal de São Carlos (UFSCar) – Teste de Software para Sistemas Embarcados Críticos • Certificado OCA/OCP/SCJP/LPI • Trabalhei no UOL/Mackenzie como Analista Programador • Professor Universitário • Experiência no ensino de 10 anos • Consultor de TI
  • 3. aceiro@gmail.com erik_aceiro@hotmail.com http://erikblogger.blogspot.com facebook.com/erik.aceiro @eaceiro
  • 4. Apresentar princípios ea motivação para o uso de atividades de teste Erik | aceiro@gmail.com
  • 5. O que é atividade de Teste ?
  • 6. “Testing is the process of executing a program with the intent of finding errors” Myers
  • 7. As Atividades de Teste promovem… - Auxilia na compreensão do SUT (App) - Os testes devem reduzir “riscos” - Reduzir correçoes manuais e “debug” - Em uma palavra …
  • 9. O que é Qualidade ?
  • 10. A busca pela qualidade exige um trade-off Risco X Oportunidade
  • 11.
  • 12.
  • 13. O que é Qualidade ?
  • 14. “Qualidade” … Estamos construindo certo o produto ? Estamos construindo o produto certo ?
  • 15. “Verificação” assegura que - Estamos construindo certo o produto ? - Assegurar que o software está de acordo com a especificação pré- estabelecida - Verificar problemas e defeitos em componentes - Exige a execução de artefatos
  • 16. “Validação” assegura que - Estamos construindo o produto certo ? - Assegurar que o software está de acordo com os requisitos do cliente - Validar se a construção dos componentes segue a especificação - Não exige a execução de artefatos
  • 19. Bottom-up/Outside-in Uso de Mock, Stubs, Drivers (Controllers), Dummy Objects , Fakes Objects
  • 20. Taxonomia Um Defeito é uma Erro, se ele é for encontrado Durante a execução do software.
  • 21. Ciclo de Vida de Defeitos (IEEE 1044-2009)
  • 22. Atividades de Verifivação & Validação (V&V) São divididas em dois grupos básicos (1) Atividades Estáticas - Não envolve a execução do SUT - Inspeção - Inspeção de Código/Modelos - Revisão - Walkthrough (Passo a Passo) - Checklist - Programação em Pares (XP)
  • 23.
  • 24. Atividades de Verifivação & Validação (V&V) (2) Atividades Dinâmicas - Atividades de Teste - Envolve a execução do artefato - Exercita caminhos (paths)
  • 25. “O mais importante na atividade de teste é o projeto e criação efetivo do caso de teste” Myers
  • 26. O melhor teste é aquele que descobre mais problemas
  • 27. A Economia de uma Atividade de Teste Esforço Número de Casos de Teste
  • 28. “it is impractical, often impossible, to find all the errors in a program” Myers
  • 29.
  • 30. 100 trilhões de instruções
  • 32.
  • 33. Principle 9: The probability of the existence of more errors in a section of a program is proportional to the number of errors already found in that section.
  • 34. Principais Atividades de Teste Caixa Preta (Teste Funcional) - Critérios - Particionamento de Equivalencia - Análise do Valor Limite - Grafo de Causa-Efeito - Erro de Advinhação Caixa Branca (Teste Estrutural) - Critérios - Statement Coverage (SC) - Decision Coverage (DC) - Condition Coverage (CC) - Decision-Condition coverage (DCC) - Multiple-Condition coverage (MC) - MC/DC
  • 35. Teste Caixa Branca – White Box Testing
  • 36. QUIZ Podemos executar todas as instruções de um programa com loops ?
  • 37. Teste Caixa Branca – White Box Testing caso de teste (Entrada; Saída Esperada)
  • 38. Teste Caixa Branca – White Box Testing caso de teste (A=2,B=0,X=3; 2.5)
  • 39. Teste Caixa Branca – Cobertura de Instrução caso de teste (A=2,B=0,X=3; 2.5)
  • 40. Teste Caixa Branca – Cobertura de Instrução caso de teste (A=2,B=0,X=3; 2.5)
  • 41. Teste Caixa Branca – Cobertura de Instrução caso de teste (A=2,B=0,X=3; 2.5)
  • 42. Teste Caixa Branca – Cobertura de Instrução caso de teste (A=2,B=0,X=3; 2.5)
  • 43. QUIZ O critério de cobertura de instrução pode ser considerado um critério forte ?
  • 44. Teste Caixa Branca – Cobertura de Instrução Defeito || caso de teste (A=2,B=0,X=3; 2.5)
  • 45. Teste Caixa Branca – Cobertura de Instrução || caso de teste (A=2,B=0,X=3; 2.5)
  • 46. Teste Caixa Branca – Cobertura de Instrução || caso de teste (A=2,B=0,X=3; 2.5)
  • 47. Teste Caixa Branca – Cobertura de Instrução || caso de teste (A=2,B=0,X=3; 2.5)
  • 48. Teste Caixa Branca – Cobertura de Instrução || caso de teste (A=2,B=0,X=3; 2.5) Defeito NUNCA detectado !!! Critério Fraco
  • 50. DIMENSION ad[,ad]... n(d[ ,d]...)
  • 51.
  • 52. Análise do Valor Limite Explora valores no limite de do domínio
  • 53. 1. Arquivo vazio 2. Título Faltando 3. 1 caracter para o título 4. 80 caracters para o título 5. 1 questão de exemplo 6. 50 questões de exemplo 7. 51 questões de exemplo 8. 999 questões de exemplo 9. Uma questão vazia
  • 54. Error Guessing (Erro de Adivinhação) Explora erros típicos em um projeto.
  • 55. Error Guessing (Erro de Adivinhação) 1. A lista de entrada é vazia 2. O nome das variáveis foram definidas com clareza 3. Todas as entradas foram salvas … …
  • 56. Processo de Teste Tradicional e Ágil
  • 57. jUnit (Zoo de Patterns)
  • 58. xUnit
  • 59.
  • 62. Pattern – Arrange/Act/Assert (3A’s) Como organizar os casos de teste ? Arrange – Inicialização de todas as pré-condições Act – Um objeto ou método sob teste Assert – Resultados esperados Vantagens Auxilia na compreensão Melhora a manutenção Auxilia na detecção de Smells
  • 63. Pattern – Arrange/Act/Assert (3A’s) Como organizar os casos de teste ? Arrange – Inicialização de todas as pré-condições Act – Um objeto ou método sob teste Assert – Resultados esperados Vantagens Auxilia na compreensão Melhora a manutenção Auxilia na detecção de Smells Variações de nomenclatura Build/Operate/Check/Cleat (BOCC Pattern)
  • 64. import static junit.org.Assert.*; public class MySingleTest{ @Test public void test() { String input = "abc"; String result = Util.reverse(input); assertEquals("cba", result); } } ...
  • 66. Usage: java br.com.varitus.nfe.app.RobotMainApp [(-m|--process-email) <process-email>] [(-e|--recover-error) <recover- error>] [(-o|--recover-other) <recover-other>] (-p|--path) <path> [-f|-- process-full-mode] [-r|--recover-full-mode] [-v|--version] [-h|--help] [(-m|--process-email) <process-email>] E-mail da conta do cliente na base de dados da VARITUS que será processado [(-e|--recover-error) <recover-error>] E-mail da conta do cliente na base de dados da VARITUS. As mensagens dessa conta serão movidas da pasta NFE_ERRO para a caixa de entrada [(-o|--recover-other) <recover-other>] E-mail da conta do cliente na base de dados da VARITUS. As mensagens dessa conta serão movidas da pasta NFE_OUTRO para a caixa de entrada (-p|--path) <path> O path clientes da NF-e, esse caminho é o valor da tag configurada no path_cliente.properties em ~/nfe/
  • 67.
  • 68.
  • 69. class FuncionarioDAOTest{ private FuncionarioDAO dao; @Mock private Transacao transacao; @Before public void init(){ MockitoAnnotations.initMocks(this); dao = new FuncionarioDAO(transacao); } @Test public void testQueChecaUsuario(){ when(transacao.executar("1234")) .thenReturn("Eva 1234 1111"); Funcionario umFuncionario = dao.buscarFuncionario("1234"); assertEquals("Eva" , umFuncionario.getNome() ); assertEquals(1234 , umFuncionario.getSetor()); assertEquals("1111", umFuncionario.getDepto()); verify(transacao, atMostOnce()).executar("1234"); } }
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76. OO OA
  • 77.
  • 79. Teste Caixa Branca – White Box Testing Criar a classe Java Criar o Teste de Unidade Criar Casos de Testes com critério Statement Coverage Decision/Branch Coverage Condition Coverage
  • 80. Teste Caixa Preta– Black Box Testing Criar casos de teste com classes de equivalência Criar casos de teste com análise do valor limite Criar casos de teste com Erros de Advinhação típicos
  • 81. aceiro@gmail.com erik_aceiro@hotmail.com http://erikblogger.blogspot.com facebook.com/erik.aceiro @eaceiro