Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO...

22
Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos Caparróz Carvalho

Transcript of Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO...

Page 1: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Técnicas de Teste de Software

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SULSISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE

Profª M.Sc. Adriana dos Santos Caparróz Carvalho

Page 2: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Por que testar?Por que testar? Se fôssemos realmente bons em programação... Se pudéssemos realmente nos concentrar... Se todos usassem apenas programação

estruturada... Não haveria erros a revelar.

Há erros porque nós somos ruins no que fazemos!

Testes e projetos de casos de testes são uma admissão de falha...

O tédio de testar é apenas uma punição pelos nossos erros!

Page 3: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Aspectos IntrodutóriosAspectos Introdutórios

O teste expõe uma anomalia interessante para os engenheiros de software, que são por natureza

pessoas construtivas. O teste exige que o desenvolvedor descarte noções pré concebidas da “corretividade” do software recém-desenvolvido e depois trabalhe duro para projetar casos de teste

que “quebrem” o software.(PRESSMAN, 2006, P. 315)

Page 4: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Aspectos IntrodutóriosAspectos Introdutórios

O teste realmente deveria inculcar culpa?

O teste é realmente destrutivo?

Page 5: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Aspectos IntrodutóriosAspectos Introdutórios

Um teste é um processo de execução de um programa com a finalidade de encontrar um erro.

Um bom caso de teste é aquele que tem alta probabilidade de encontrar um erro ainda não descoberto

Relembrando

Page 6: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Fundamentos do Teste de Fundamentos do Teste de SoftwareSoftware Engenheiros de software devem projetar e

implementar sistema ou produto baseado em computador com “testabilidade” em mente.

Testabilidade?

“A testabilidade de software é simplesmente quão fácil um programa de computador pode

ser testado” (PRESSMAN, 2006, p. 316).

Page 7: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Fundamentos do Teste de Fundamentos do Teste de SoftwareSoftware Características de um software testável:

Operabilidade Quanto melhor funciona, mais eficientemente pode ser

testado. Observabilidade

O que você vê é o que você testa. Código fonte acessível. Controlabilidade

Quanto melhor você pode controlar o software, mais o teste pode ser automatizado e otimizado.

Decomponibilidade Capacidade de isolar problemas rapidamente e realizar

retestagem mais racionalmente.

Page 8: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Fundamentos do Teste de Fundamentos do Teste de SoftwareSoftware Características de um software testável:

Simplicidade Quanto menos houver a testar, mais rapidamente podemos

testá-lo. Estabilidade

Quanto menos modificações, menos interrupções no teste. Compreensibilidade

Quanto mais informações temos, mais racionalmente vamos testar.

Page 9: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Teste de Caixa-Preta e Caixa-Teste de Caixa-Preta e Caixa-BrancaBranca Qualquer produto que passe por engenharia

pode ser testado por uma das duas maneiras: Conhecendo-se a função específica que o produto

foi projetado para realizar, podem ser realizados testes que demonstrem que cada função está plenamente operacional, e, ao mesmo tempo, procurem erros em cada função.

Requisito 1

Requisito 2

Resultado 1

Resultado 2

Page 10: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Teste de Caixa-Preta e Caixa-Teste de Caixa-Preta e Caixa-BrancaBranca Qualquer produto que passe por engenharia

pode ser testado por uma das duas maneiras: Sabendo-se como é o trabalho interno de um

produto, podem ser realizados testes para garantir que todas as engrenagens combinem, isto é, que as operações internas foram adequadamente exercitados.

Requisito 1

Requisito 2

Resultado 1

Resultado 2

Page 11: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Teste de Caixa-Preta e Caixa-Teste de Caixa-Preta e Caixa-BrancaBranca Caixa-Preta

Refere-se a testes que são conduzidos na interface do software. Um teste de caixa-preta examina algum aspecto fundamental do sistema pouco se preocupando com a estrutura lógica interna do software.

Requisito 1

Requisito 2

Resultado 1

Resultado 2

Page 12: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Teste de Caixa-Preta e Caixa-Teste de Caixa-Preta e Caixa-BrancaBranca Caixa-Branca

É baseado em um exame rigoroso do detalhe procedimental. Caminhos lógicos internos ao software e colaborações entre componentes são testados, definindo-se casos de testes que exercitam conjuntos específicos de condições e/ou ciclos.

Requisito 1

Requisito 2

Resultado 1

Resultado 2

Page 13: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Teste de Caixa-BrancaTeste de Caixa-Branca

Teste de Caminho Básico Teste de Estrutura de Controle

Requisito 1

Requisito 2

Resultado 1

Resultado 2

Page 14: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Teste de Caixa-PretaTeste de Caixa-Preta

Métodos de Teste Baseados em Grafo Particionamento de Equivalência Análise de Valor-limite Teste de Matriz Ortogonal

Requisito 1

Requisito 2

Resultado 1

Resultado 2

Page 15: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Testes Orientados a Testes Orientados a ObjetosObjetos Teste Baseado em Erro Casos de Testes e Hierarquia de Classes Teste com Base em Cenário Teste da Estrutura Superficial e Profunda

Page 16: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Testes Aplicáveis ao Nível Testes Aplicáveis ao Nível de Classede Classe Teste Aleatório para Classes OO Partição no Nível de Classe

Page 17: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Casos de Teste InterclassesCasos de Teste Interclasses

Teste de várias Classes Testes derivados dos modelos de

comportamento

Page 18: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Casos de Ambientes, Casos de Ambientes, Arquiteturas e Aplicações Arquiteturas e Aplicações EspecializadasEspecializadas Teste de IGU Testes de Arquitetura Cliente/Servidor Testes de Documentação e Disp. de Ajuda Testes de Sistemas de Tempo Real

Page 19: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Retomando o percurso ...Retomando o percurso ...

Desenvolvedores de software experientes freqüentemente dizem:

“Teste nunca acaba, ele é simplesmente transferido de você [o engenheiro de software] para seu cliente. Toda vez que o seu cliente usa o programa, um teste está

sendo conduzido”.

Page 20: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Algumas questões ...Algumas questões ...

1. Dê pelo menos três exemplos nos quais o teste de caixa-preta pode dar a impressão de que “está tudo certo”, enquanto testes de caixa-branca poderiam detectar um erro.

2. Dê pelo menos três exemplos nos quais o teste de caixa-branca pode dar a impressão de que “está tudo certo”, enquanto testes de caixa-preta poderiam detectar um erro.

3. O teste exaustivo (mesmo que seja possível para programas muito pequenos) vai garantir que o programa esteja 100% correto?

Page 21: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Algumas questões ...Algumas questões ...

4. Descreva com suas próprias palavras por que a classe é a menor unidade razoável de teste em um sistema OO.

5. Por que temos de testar novamente subclasses instanciadas a partir de uma classe existente, se a classe existente já foi testada rigorosamente? Podemos usar os casos de teste projetados para a classe existente?

6. Aplique o teste aleatório e o de partição a três classes definidas no projeto de sistema CasaSegura. Produza casos de teste que indiquem as seqüências de operação que serão invocadas.

Page 22: Técnicas de Teste de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Profª M.Sc. Adriana dos Santos.

Algumas questões ...Algumas questões ...

7. Aplique teste de classe múltiplas e teste derivados do modelo comportamental ao projeto CasaSegura.

8. Teste um manual de usuário (ou facilidades de ajuda) para a aplicação que você use freqüentemente. Detecte pelo menos um erro na documentação.