Você está na página 1de 28

Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Estratégias de Teste de Software


Uma Exposição Baseada em Conhecimento

Adenilso da Silva Simão


adenilso@icmc.usp.br
Departamento de Computação e Estatística
Instituto de Ciências Matemáticas e de Computação
Universidade de São Paulo

04/05/05

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Objetivos da Apresentação

Objetivos da Apresentação

Apresentar alguns pontos para se pensar sobre o teste de


software (e o desenvolvimento de software)
Poucos detalhes técnicos

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Objetivos da Apresentação

Objetivos da Apresentação (II)

1 Introdução

2 Cinco Níveis de Ignorância

3 Desenvolvimento de Software

4 A Arte do Teste

5 Linhas de Pesquisa

6 Bibliografia

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Contexto

Contexto

O que é importante em um software


Ele é um produto?
Em que sentido?
Software é conhecimento
É a codificação do conhecimento
Eu posso usar o conhecimento de outra pessoa!

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Contexto

Contexto (II)

Outras formas de codificação de conhecimento?


Livros
Hardware
Mentes
DNA
O que faz do software algo especial?
É o conhecimento ativo!

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Contexto

Contexto (III)

O que é desenvolver software?


Codificar conhecimento
Qual conhecimento?
De quem?
É legal?
É legal? (é outra pergunta ,)

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Contexto

Contexto (IV)

Desenvolver software é fácil


Agora, se é útil, isso é outra coisa
Gerador de aplicação
Conhecimento embutido
Quanto mais conhecimento você tiver
Mais fácil produzir um software útil
Com técnica adequada

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Contexto

Contexto (V)

Como o conhecimento está organizado?


Como descobri-lo? Ou seria inventá-lo?
Como codificá-lo?
Epistemologia
Empiristas
Realistas
Idealistas

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Cinco Níveis de Ignorância

O conhecimento pode ser categorizado em 5 níveis


Segundo Phillip G. Armour [Armour, 2000]
Não concordo com o autor
Nem discordo
Muito pelo contrário ,

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Nível 0

Nível 0

Eu sei que eu sei!


O nome dessa cidade
Português! ,

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Nível 1

Nível 1

Eu sei que eu não sei!


O nome de vocês
O nome de todas as cidades entre Bauru e São José do Rio Preto

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Nível 2

Nível 2

Eu não sei que eu não sei!


?????

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Nível 3

Nível 3

Eu não sei que eu não sei,


e não sei como descobrir...
Caos!

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Nível 4

Nível 4

Eu não sei que existem 5 níveis de ignorância ,

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Desenvolvimento de Software

Desenvolvimento de Software

Software é conhecimento
De qual nível?

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Desenvolvimento de Software

Desenvolvimento de Software (II)

Nível 0
É o que se sabe sobre o domínio
Foi codificado
Eu tenho a resposta

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Desenvolvimento de Software

Desenvolvimento de Software (III)

Nível 1
São as variações do domínio
Não foi codificado
Função ainda não implementada
Eu tenho a pergunta!

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Desenvolvimento de Software

Desenvolvimento de Software (IV)

Nível 2
Eu não tenho a resposta
Sequer a pergunta
No começo do desenvolvimento
Nível 2
Passar para o nível 0
Passar para o nível 1
Sindrome do “90% concluído”

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Desenvolvimento de Software

Desenvolvimento de Software (V)

Você não tem um processo de desenvolvimento


Você está no Nível 3
Um bom método
Converte Nível 2 em Nível 1 ou Nível 0

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

A Arte do Teste

Qual é o objetivo?
Desenvolver um jeito de descobrir se eu não sei que eu não sei
alguma coisa
Um defeito
Procurar por algo que eu não sei se existe!
Um problema muito difícil
Eu acho que existe problemas... mas quais?
Normalmente, testa-se o que já se sabe ,

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Problemas

Problemas

Como testar sistematicamente?


Heurísticas
Limites
Combinações de condições
O que podemos garantir
Pouca coisa
Eu não sei o que não sei

O que eu posso esperar que os desenvolvedores são saibam


que eles não sabem?

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Abordagens

Abordagens

Como atacar esses problemas de forma sistemática?


A qualidade do meu teste está relacionada à qualidade dos meus
casos de teste
Como medir a qualidade dos casos de teste?
Critérios de teste
Requisitos que podem ajudar a revelar defeitos
Como testar?
Testabilidade
Controlabilidade
Observabilidade

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Critérios de Teste

Critérios de Teste

Funcionais
Classes de equivalência
Valor limite
Estruturais
Todos os comandos
Todos os usos
Baseadas em erros
Mutantes
Injeção de falhas

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Testabilidade

Testabilidade

Qual é a facilidade em testar o software?


Stubs
Drivers
Controlabilidade
Eu consigo controlar o que é relevante no sistema?
f (5) = 6
f (5) = 7
Observabilidade
Eu consigo observar o comportamento do sistema?
f (1) = 1
f (2) = 1
f (3) = 1
...

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Linhas de Pesquisa

Linhas de Pesquisa

Teste de sistemas baseados em paradigmas


Orientados a Objetos
Orientados a Aspectos
Baseados em Componentes
Teste a partir de artefatos
Especificações
Modelos de análise

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Linhas de Pesquisa

Linhas de Pesquisa (II)

Teste de regressão
Estratégias eficientes e eficazes
Evidências da eficácia de técnicas
Estudos empíricos
Ferramentas
Geração de casos de teste
Análise de conjuntos de casos de teste

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Bibliografia

Armour, P. G. (2000).
The five orders of ignorance.
Commun. ACM, 43(10):17–20.
Harrold, M. J. (2000).
Testing: A roadmap.
In Future of Software Engineering, 22nd International Conference
on Software Engineering, pages 61–72.
Myers, G. (1979).
The Art of Software Testing.
Wiley, New York.

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br


Introdução Cinco Níveis de Ignorância Desenvolvimento de Software A Arte do Teste Linhas de Pesquisa Bibliografia

Obrigado!!
Adenilso da Silva Simão
adenilso@icmc.usp.br

Estratégias de Teste de Software Adenilso da Silva Simãoadenilso@icmc.usp.br

Você também pode gostar