SlideShare una empresa de Scribd logo
1 de 81
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28Hélio Medeiros
 
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 PHPUnitDiego Tremper
 
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 tentativaAluisioSantos4
 
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 PatternsMauricio Andreazza
 
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)Mario Sergio
 
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 tentativaAluisioSantos4
 
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 tentativaAluisioSantos4
 
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 1Pacc UAB
 
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 tentativaAluisioSantos4
 
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 tentativaAluisioSantos4
 
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 2irenescotolo
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverEduardo Jorge
 
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 tentativaAluisioSantos4
 

La actualidad más candente (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
 

Similar a Atividades de Teste e Cobertura de Código em Java

Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
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 ManagerAlan Carlos
 
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 TestesEverton Rodrigues
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
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 SWguest8ae21d
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 
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 seguraValberto Carneiro
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
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...Claudinei Brito Junior
 

Similar a 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...
 

Último

Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarIedaGoethe
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

Caixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogarCaixa jogo da onça. para imprimir e jogar
Caixa jogo da onça. para imprimir e jogar
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 

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