31
Agenda O que é Testar? Conceitos Por que testar? Quando testar? Custo do defeito Processo de teste Níveis de teste Tipos de teste Classificação dos testes

de descobrir erros e defeitos

  • Upload
    hadieu

  • View
    235

  • Download
    10

Embed Size (px)

Citation preview

Page 1: de descobrir erros e defeitos

Agenda

● O que é Testar?● Conceitos

● Por que testar?● Quando testar?

● Custo do defeito

● Processo de teste● Níveis de teste● Tipos de teste● Classificação dos testes

Page 2: de descobrir erros e defeitos

Entendendo o que é TESTAR

● “ Testar é analisar um programa com a intenção de descobrir erros e defeitos. ” (Myers)

● “ O teste de programas pode ser usado para mostrar a presença de defeitos, mas nunca para mostrar a sua ausência.” (Dijkstra)

● Testar é medir a qualidade e funcionalidade de um sistema.

Page 3: de descobrir erros e defeitos

Objetivo do Teste

● Reduzir a probabilidade de incidência de erro no cliente

+ ● Minimizar riscos ao negócio do cliente

+ ● Atender as necessidades do cliente (negócio,

contratual, legal, etc.)

=

Maior satisfação do cliente

Page 4: de descobrir erros e defeitos

Conceitos

● ERRO: trata-se de uma ação humana (ex.: não entendimento de como executar um cálculo)

● DEFEITO: Causado por um erro de entendimento (ex.: código com fórmula de cálculo mal escrita)

● FALHA: Tentativa de execução de um defeito. (ex.: execução de um cálculo gerando resultados indevidos)

Page 5: de descobrir erros e defeitos

O que leva a Erros, Defeitos e Falhas

● Pressão dos interessados no software; ● Prazos de atendimento às demandas

inadequados; ● Utilização de tecnologia inadequada;

Page 6: de descobrir erros e defeitos

O que leva a Erros, Defeitos e Falhas

● Falta de habilidade da equipe; ● Não entendimento das necessidades do

cliente; ● Fator humano.

Page 7: de descobrir erros e defeitos

Por que Testar?

● Motivação por maior segurança aos clientes; ● Oferecer maior continuidade do serviço ao

negócio do cliente; ● Melhoria da qualidade dos softwares;

Page 8: de descobrir erros e defeitos

Por que Testar?

● Busca pela confiabilidade do software junto aos clientes;

● Visando redução de gastos em correção de bugs.

Page 9: de descobrir erros e defeitos

Quando Testar?

● Visão Tradicional: ● Testes são realizados ao final da

implementação; ● Visam provar que o software funciona; ● Pode ser executado por qualquer profissional.

Page 10: de descobrir erros e defeitos

Quando Testar?

● Melhor Prática: ● Realizar testes durante o ciclo de vida do

software. ● Provar que o software não funciona; ● Fazer uso de profissionais especializados em

teste de software.

Page 11: de descobrir erros e defeitos

Quanto ao custo do defeito

Page 12: de descobrir erros e defeitos

Psicologia do Teste de Software

● Independência nos testes ● Próprio desenvolvedor; ● Outro desenvolvedor; ● Equipe de teste; ● Empresa de teste.

Page 13: de descobrir erros e defeitos

Psicologia do Teste de Software

● Identificar e relatar defeitos ● Curiosidade; ● Pessimismo profissional; ● Ser crítico; ● Atenção aos detalhes; ● Experiência em identificar defeitos; ● Comunicação eficiente com o desenvolvimento.

Page 14: de descobrir erros e defeitos

Processo de Teste - PDCA

1.Definir Meta

2.Definir Método

3.Educar e Treinar

4.Executar

5.Coletar Dados

6.Checar

7.Ação: corretiva, preventiva, melhoria

Page 15: de descobrir erros e defeitos

Fundamentos do Processo de Teste de Software

● Um processo de teste básico deve contemplar: ● Planejamento e controle; ● Análise e modelagem; ● Implementação e execução; ● Avaliação de critérios de saída e relatórios; ● Atividade de encerramento dos testes. ● Melhoria/Corretiva/Preventiva.

Page 16: de descobrir erros e defeitos

Atividades de Verificação e Validação

● A construção de software depende da habilidade das pessoas (erros acabam surgindo);

● As atividades de Verificação e Validação têm a finalidade de garantir o “modo” e “o que” está sendo construído;

● Divididas em estáticas (não requer a execução e existência de software) e dinâmicas (execução do software).

Page 17: de descobrir erros e defeitos

Processo em “V”

Planejar para ...

Planejar para ...

Planejar para ...

Planejar para ...Desenvolvimento Teste

Verificação V

alid

ação

Especificaçãode requisitos

Teste deAceitação

Projeto de Alto Nível

Projeto Detalhado

Codificação

Teste de Sistema

Teste de Integração

Teste Unitário

Page 18: de descobrir erros e defeitos

Níveis de Testes

● Unitários● Integração● Sistema● Aceite

Page 19: de descobrir erros e defeitos

Testes Unitários

● Unidade (programa, módulo, objetos ou classes) de software a ser testada separadamente;

● Uso de controladores (drivers) e simuladores (stubs);

● Funcionais, não-funcionais, estruturais, desempenho, cobertura, etc;

● Acesso ao código fonte;

Page 20: de descobrir erros e defeitos

Testes Unitários

● Executado em ambiente de desenvolvimento; ● Executado pelo próprio desenvolvedor; ● Não há registro de defeitos identificados, visto

que são corrigidos imediatamente; ● TDD (Test Driven Development).

Page 21: de descobrir erros e defeitos

Outros Níveis de Teste

● Integração● Testa a integração entre os diversos componentes

de software criados;

● Sistema● Validação do comportamento do sistema;

● Aceite● Validação realizada pelos stakeholders (clientes,

usuários, etc.);● Teste de Aceite Contrato (cumprimento de acordo:

legislação, etc.);

Page 22: de descobrir erros e defeitos

Tipos de Testes

● Funcional● Não-funcional● Estrutural● Mudança

Page 23: de descobrir erros e defeitos

Teste Funcional

● Validar o funcionamento do sistema conforme especificado (está construindo o produto certo?); ● As regras de negócio estão sendo cumpridas.

● Considera o comportamento externo do software;

● Pode ser executado em todos níveis de teste.

Page 24: de descobrir erros e defeitos

Outros Tipos de Testes

● Não funcional● Busca a validação de aspectos não funcionais

(como está funcionando?) do software como: – Desempenho, Carga, Stress, Usabilidade, etc.

● Estrutural● Busca a validação de aspectos estruturais do

software como: – Cobertura de código, sentença (comandos, funções),

decisão, etc.

Page 25: de descobrir erros e defeitos

Outros Tipos de Testes

● Mudanças● Teste de Confirmação

– valida a remoção de defeitos; ● Teste de Regressão

– executado quando ocorre alteração de software ou ambiente;

– valida se não foram gerados novos defeitos.

Page 26: de descobrir erros e defeitos

Classificação de Teste

● Técnica Caixa-preta: ● Deriva condições e casos de teste de

documentações formais; ● Funcionais e não-funcionais do software; ● Não considera aspectos internos (código).

Page 27: de descobrir erros e defeitos

Caixa-preta

● Transição de estados: ● Utiliza-se do diagrama de transição de estado; ● Os estados são identificáveis e finitos; ● Identificar e exercitar todas transições válidas e

inválidas.

Page 28: de descobrir erros e defeitos

Caixa-preta

● Caso de Uso: ● Interações entre usuário e sistema gerando

resultado relevante ● Preocupação com as pré-condições e pós-

condições; ● Cobrir os fluxos existentes (principal, alternativos e

exceção); ● Tratar os pontos de extensão.

Page 29: de descobrir erros e defeitos

Classificação de Teste

● Técnica Caixa-branca: ● Considera aspectos internos do software (código); ● Foco nas estruturas dos códigos (cobertura); ● Deriva condições e casos de testes de forma

sistêmica.

Page 30: de descobrir erros e defeitos

Caixa-branca

● Teste e cobertura de Sentença (Comando): ● Análise de cobertura de comandos executáveis

existentes no código; ● Utilizados para aumentar a cobertura dos testes.

Page 31: de descobrir erros e defeitos

Caixa-branca

● Teste e cobertura de Decisão: ● Teste de controle de fluxo; ● Utilizados para aumentar a cobertura dos testes.

● Observação: 100% de cobertura de decisão, garante 100% de cobertura de sentença, mas NÃO vice-versa.