41
Kildery Sukar System Engineer Modular Mining Systems E-mail: [email protected] www.modularmining.com

O que é Teste de Software?

Embed Size (px)

DESCRIPTION

Palestra realizada no QA Night de julho por Kildery Sukar.

Citation preview

Page 1: O que é Teste de Software?

Kildery SukarSystem Engineer

Modular Mining SystemsE-mail: [email protected]

Page 2: O que é Teste de Software?

Roteiro

– O que é teste de software?– Por que é necessário testar?– Princípios de Teste de Software– Processos de Teste de Software– Níveis de Teste– Informações complementares

Page 3: O que é Teste de Software?

O que é teste de software?

• Execução de Software

Page 4: O que é Teste de Software?

O que é teste de software?

• É analisar um programa com a intenção de descobrir erros e defeitos.(Glenford Myers)

• É um processo que consiste de todo o ciclo de atividades (estáticos e dinâmicos), voltadas para o planejamento, preparação e avaliação do produto de software, está relacionado em determinar se o produto satisfaz os requisitos especificados, buscar se ele estar adequado a proposta do cliente e detectar defeitos.

Page 5: O que é Teste de Software?

O que é teste de software?

Page 6: O que é Teste de Software?

• Hoje existe software e aplicativos em todas as partes da nossa vida.

Por que testar software?

Page 7: O que é Teste de Software?

• Possíveis prejuízos por falhas de softwares.• Financeiro• Reputação• Riscos físicos

Por que testar software?

Page 8: O que é Teste de Software?

• Humanos sempre cometem erros...

...e isso é o que fazemos melhor !!!

Por que testar software?

Page 9: O que é Teste de Software?

Por que testar software?

Temos que verificar tudo que produzimos, simplesmente porque as coisas podem dar errado.

"Se alguma coisa pode dar errado, ela dará" Lei de Murphy

Page 10: O que é Teste de Software?

Por que testar software?

Podemos errar quando analisamos nosso próprio trabalho, concordam?

Page 11: O que é Teste de Software?

Por que testar software?

• Simplesmente porque falhamos.– Falta de experiência.– Falta de informação correta.– Falha de comunicação.– Desmotivação, cansaço ou sob pressão.

Page 12: O que é Teste de Software?

Por que testar software?

• Custos de correção dos defeitos:– Quanto mais cedo descobrirmos e corrigirmos um

defeito, menor é o custo do projeto.

Page 13: O que é Teste de Software?

Por que testar software?Exemplo:

Page 14: O que é Teste de Software?

Objetivos de Teste de Software

• Encontrar defeitos.• Ganhar confiabilidade.• Prover informações para tomada de decisão.• Prevenir defeitos.

Page 15: O que é Teste de Software?

Princípios de Teste de Software

Page 16: O que é Teste de Software?

1º Princípio

Teste é feito diferentemente em diferentes

contextos, ou seja, teste é dependente de contexto.

Page 17: O que é Teste de Software?

2º Princípio

Quantos casos de teste são suficientes ?

Teste exaustivo é impossível !!!

10 números (0-9)26 letras maiusculas (ABC)26 letras minúsculas (abc)

6 caracteres (!@#$%?)Vazio ( )

-------------------------------------------68 testes

Page 18: O que é Teste de Software?

3º Princípio

Quando começar a testar ?

Teste o mais cedo possível !!!

Page 19: O que é Teste de Software?

4º Princípio Em muitos projetos a maioria dos defeitos

estão agrupados em uma minoria de módulos do software.

Fenômeno conhecido como

Clustering de defeitos.

Page 20: O que é Teste de Software?

5º Princípio

Casos de testes devem sempre ser regularmente revisados e atualizados.Os mesmos testes não encontram novos defeitos. Fenômeno conhecido como paradoxo da pesticida.

Page 21: O que é Teste de Software?

6º Princípio

Teste não prova que um software está livre de defeitos.

Teste deve mostrar que um software tem defeitos.

Page 22: O que é Teste de Software?

7º Princípio

Os defeitos não estarem sendo encontrados, não garante que o sistema está ausente de erro.

A ilusão da ausência de erro.

Page 23: O que é Teste de Software?

Processos de Teste de Software

Page 24: O que é Teste de Software?

Processos de Teste de Software

Page 25: O que é Teste de Software?

Planejamento e controlePrincipais atividades de planejamento:

Determinamos o escopo e objetivos dos testes.Determinamos os recursos.Agendamos as atividades.Determinamos o critério de saída (Critério de

cobertura, porcentagem de execução, etc...).

Page 26: O que é Teste de Software?

Planejamento e controleControle de teste é o acompanhamento do

atual progresso das atividades comparado com o progresso planejado.Medir e analisar os resultados.Prover as informações durante os testes.Iniciar ações corretivas.Tomar decisões baseado em alguma mudança

do negócio ou dos riscos do projeto, etc...

Page 27: O que é Teste de Software?

Análise e ModelagemAnálise e modelagem tem como principais

atividades:Análise de requisitos.Definir as condições de testes.Modelagem de testes.Priorizar as condições de teste.Modelar e configurar os ambientes de testes e

ferramentas.

Page 28: O que é Teste de Software?

Implementação e execuçãoDurante esta fase são criados os casos de

testes e “testwares” baseados nas condições de testes e na modelagem dos testes.

Page 29: O que é Teste de Software?

Implementação e execuçãoImplementação:

Identificar e priorizar os casos de testes.Criar suítes de teste para uma eficiente

execução.Implementar e verificar o ambiente de teste.

Execução:Executar as suítes de teste.Registrar os resultados dos testesReportar incidências (discrepâncias entre

resultado atual e o esperado) .

Page 30: O que é Teste de Software?

Avaliação do critério de saída e reportagem

Na avaliação do critério de saída verificamos quando um atividade de teste foi completada.Avaliar eficácia nos resultados dos testes.Avaliar se mais testes são necessários e a

percentagem de testes executados.Avaliar o número e a gravidade dos defeitos

remanescentes.Escrever um Sumário dos Testes para os

clientes.

Page 31: O que é Teste de Software?

Fechamento das atividades de Testes

Coletamos dados das atividades de testes finalizados, consolidamos a experiência do projeto e analisamos os fatos e números. Checar que o que foi planejado a entregar foi

entregue e os incidentes foram resolvido ou deferidos (requisitar numa próxima entrega).

Arquivar os testwares.Entregar os testwares para o time/empresa de

manutenção.Analisar como foram os testes e discutir lições

aprendidas.

Page 32: O que é Teste de Software?

Níveis de TesteNíveis, fases ou estágios de teste:

Teste de UnidadeTeste de IntegraçãoTeste de SistemaTeste de Aceitação

Page 33: O que é Teste de Software?

Níveis de TesteTeste de componente (Unidade)

Consiste na verificação da menor unidade de projeto de software. (Módulos, classes, métodos, objetos, etc...)

TDD pode ser usado.

Page 34: O que é Teste de Software?

Níveis de TesteTeste de Integracao

Consiste no teste das interfaces entre unidades e módulos para garantir que eles se comunicam corretamente. Teste de Integração de Componentes Teste de Integração de Sistemas

Page 35: O que é Teste de Software?

Níveis de TesteTeste de Sistema

Busca de defeitos em todo o sistema/produto, totalmente integrado.

Investiga ambos requisitos funcionais e não-funcionais do sistema.

Geralmente é executado por um time independente ou tercerizado.

O ambiente de teste tem que corresponder ao ambiente de produção.

Page 36: O que é Teste de Software?

Níveis de Teste

Teste de Aceitação

“O sistema pode ser entregue?”Testa o comportamento do sistema de acordo com as necessidades do usuário.

Responsabilidade do usuário/cliente.

Page 37: O que é Teste de Software?

Níveis de Teste

Page 38: O que é Teste de Software?

Independência do TesteExistem alguns níveis de independência do

teste:Baixo: Teste feita pelo próprio autor do item.Médio: Teste feito por outra pessoa do mesmo

time (Ex.: Outro programador).Alto: Teste feito por outro time ou

organização.

Page 39: O que é Teste de Software?

Independência do Teste - Vantagens e DesvantagemAjuda a focar no esforço específicoProver os benefícios dos recursos de teste

profissional e treinado.Deterioração das relações entre os times

Page 40: O que é Teste de Software?

Bug For Sale by Douglas HoffmanNão faça caso (“Tirar onda da cara do outro”)Não culpe ninguém em específicoSeja uma critica construtiva e discuta o

defeito.Diga o que você gostou e o que funcionou,

assim como o que não funcionou.Mostre o risco honestamente.Seja educado e colaborativo.Confirme que a outra pessoa entendeu o que

você quis dizer.

Page 41: O que é Teste de Software?