Upload
internet
View
107
Download
1
Embed Size (px)
Citation preview
Técnicas de Testes Caixa-PretaMarília Oliveira 07/08/2007
Introdução
Testes caixa-preta são aqueles baseados em especificações que descrevem o
comportamento externo do sistema (as saídas) em relação a um conjunto de
entradas.
Cenário Comuns
• Especificações diferentes
• Diferentes tipos de entrada
• Grande número de entradas possíveis
• Plataformas diferentes
Quais testes executar?
Testes de Caixa Preta
Tipos de Testes Caixa Preta
• Classe de Equivalência
• Valores Limites
• Tabela de Decisão
• Pairwise
• Transição de Estados
Classe de Equivalência
Classes de Equivalência• É uma técnica usada para reduzir a
quantidade de casos de testes a um montante gerenciável, mas mantendo um elevado grau de cobertura
Classes de Equivalência• O conjunto de entradas
possíveis é dividido em partições;
• Os elementos de um subconjunto são equivalentes em relação a uma característica;
• Os subconjuntos são disjuntos.
s1
s2
s3
s4
Classes de Equivalência
• A técnica admite que se as entradas estão divididas em partições de equivalência, o comportamento do sistema será o mesmo para qualquer entrada escolhida em uma mesma partição.
• Dessa forma não é preciso testar todas as entradas possíveis, basta testar uma opção de cada partição.
Classes de Equivalência• Exemplos:
– Em um sistema de cadastro de clientes:• Se o cliente for pessoa física, devem ser
informados os dados: Nome, RG, CPF e Endereço.
• Se o cliente for pessoa jurídica, devem ser informados os dados: Razão Social, Nome Fantasia, CNPJ, Endereço.
Valores de Fronteira
Valores de Fronteira• É uma técnica em testes de software
utilizada para testar valores nas “fronteiras” das faixas de entrada, por exemplo...
Valores de Fronteira• Considere as seguintes regras
organizacionais, sobre contratação baseada em idade, em um programa de uma empresa de recursos humanos:
– 0-16 Não Contrata– 16-18 Contrata meio-expediente– 18-55 Contrata tempo integral– 55-99 Não Contrata
Valores de Fronteira• Uma regra correta seria:
• Se (idadeCandidato >= 0 && idadeCandidato <= 15) estadoContratação = “Não”;
• Se (idadeCandidato >= 16 && idadeCandidato <= 17) estadoContratação = “Meio”;
• Se (idadeCandidato >= 18 && idadeCandidato <= 54) estadoContratação = “Integral”;
• Se (idadeCandidato >= 55 && idadeCandidato <= 99) estadoContratação = “Não”;
• Conjuntos de valores interessantes para serem testados são {-1,0,1},{15,16,17},{17,18,19},{54,55,56} e {98,99,100}.
• Dependendo das pré-condições, valores como {-42, 1001, FRED, %$#@} também devem ser testados!
Valores de Fronteira• Passos:1. Identifique as classes de equivalência.2. Identifique as fronteiras de cada classe.3. Crie casos de teste para cada valor de fronteira,
escolhendo um ponto abaixo, um acima e outro ponto na fronteira.
Obs.: “Acima” e “abaixo” são termos relativos, dependendo da unidade, exemplo: Inteiros, Moeda, horas, etc.
Valores de Fronteira
Técnicas de Casos de Teste para Caixa Preta | 16
• No exemplo abaixo quais são os dados de entrada para testes de fronteira?
• E no caso a seguir:
$ 1000/month $ 83,333/month
Valores de Fronteiras
2 43 610 5
Valores de Fronteiras
Tabela de Decisão
Tabela de Decisão• Tabelas de decisão é uma excelente técnica
para capturar alguns tipos de requisitos do sistema e para documentar modelagens internas do sistema. Elas são utilizadas para registrar regras de negócio complexas. Também servem como guia para criar casos de teste.
Tabela de Decisão• Tabelas de decisão representam regras de negócio
complexas baseadas em um conjunto de condições:
Regra1 Regra2 ... Regra P
Condições
Cond-1
Cond-2
...
Cond-m
Ações
Ação-1
Ação-2
...
Ação-n
Tabela de Decisão• Condições de 1 a m, representam as condições
de entrada.• Ações de 1 a n, representam ações a serem
tomadas dependendo das combinações das várias condições.
Tabela de Decisão• Cada regra pode especificar uma ação exclusiva a
regra, ou regras podem compartilhar ações:
Regra1 Regra2 Regra3 Regra 4
Condições
Casado ? Sim Sim Não Não
Bom Estudante?
Sim Não Sim Não
Ações
Desconto 60 25 50 0
Tabela de Decisão• Uma regra também pode possuir mais de uma ação;
exclusiva ou compartilhada com outras regras:
Regra1 Regra2 Regra3 Regra 4
Condições
Cond-1 Sim Sim Não Não
Cond-2 Sim Não Sim Não
Ações
Ação-1 Do X Do Y Do X DO Z
Ação-2 Do-A Do B Do B Do B
Tabela de Decisão
• Valores das condições podem ser mais complexos:
Regra1 Regra2 Regra3 Regra 4
Condições
Cond-1 0 – 1 1 – 10 10 – 100 100 – 100
Cond-2 < 5 5 6 ou 7 >7
Ações
Ação-1 Do X Do Y Do X DO Z
Ação-2 Do-A Do B Do B Do B
Pairwise
Pairwise• Web Site
– 8 browsers– 3 plug-ins– 6 sistemas operacionais
clientes– 3 servidores de aplicação– 3 servidores
– 1.296 combinações
Banco
4 tipos de cliente
5 tipos de conta
27 estados
540 combinações
O que estes exemplos possuem em comum?
Pairwise• Cada um tem uma grande quantidade de
combinações a serem testadas.
• Cada um tem uma grande quantidade de combinações que podem ser muito arriscadas de não serem testadas.
Como selecionar um subconjunto razoavelmente pequeno e eficiente, que ache uma grande variedade de erros, mais, do que você esperaria de tal subconjunto?
A resposta é não tentar testar todas as combinações de valores e variáveis e sim testar todos os pares de variáveis.
Pairwise• ExemplosExemplos:
• Para um sistema com 4 parâmetros diferentes cada um podendo assumir 3 valores, resulta em 34 = 81 combinações. Com Pairwise reduz-se para 9 testes.
• Para um sistema com 13 parâmetros diferentes cada um podendo assumir 3 valores, resulta em 313 = 1,594,323 combinações. Com Pairwise reduz-se para 15 testes.
• Para um sistema com 20 parâmetros diferentes cada um podendo assumir 10 valores, resulta em 1020 (100.000.000.000.000.000.000)
combinações. Com Pairwise reduz-se para 180 testes.
Pairwise• Como pairwise funciona tão bem?
– Não se sabe ao certo!!!
• Importante !!• Teste por Pairwise pode não escolher combinações que
desenvolvedores e/ou testadores sabem que são freqüentes ou de alto risco. Caso isso ocorra use a técnica de pairwise e adicione casos de teste para minimizar os risco de deixar passar uma importante combinação.
Pairwise• Em Lessons Learned in Software Testing, James
Bach criou um algoritmo para gerar todos os pares. Baseado no algoritmo, escreveu um programa chamado “Allpairs” (http://www.satisfice.com) que gera automaticamente todos os pares.
• Procedimentos1. Download e unzip Allpairs2. Preencha a tabela com os valores das variáveis do sistema
web (browser, plug-in, servidores, etc) abaixo no Excel salve como .txt
3. Execute o programa através do comando: allpairs imput.txt > output.txt
Browser Client OS Plg-in Server Server OS
IE 5.0 Win 95 None IIS Win NT
IE 5.5 Win 98 RealPlayer Apaache Win 2000
IE6.0 Win ME Media Player WebLogic Linux
Nestscape 6.0 Win NT
Nestscape 6.1 Win 2000
Nestscape 7.0 Win XP
Mozilla 1.1
Opera 7
Pairwise• Output.txt
CASE Browser Client OS Plg-in Server Server OS pairings
1 IE 5.0 Win 95 None IIS Win NT 10
2 IE 5.0 Win 98 RealPlayer Apaache Win 2000 10
3 IE 5.0 Win ME Media Player WebLogic Linux 10
4 IE 5.0 Win NT ÿ ÿ ÿ 10
5 IE 5.0 Win 2000 ÿ ÿ ÿ 10
6 IE 5.0 Win XP ÿ ÿ ÿ 10
7 IE 5.0 ÿ ÿ ÿ ÿ 10
8 IE 5.0 ÿ ÿ ÿ ÿ 10
9 IE 5.5 Win 95 RealPlayer WebLogic ÿ 10
... ... ... ... ... ... ...95 ~Nestscape 6.0 ÿ ÿ WebLogic Win 2000 2
Transição de Estados
Transição de Estados• Ótima, para capturar requisitos e detalhes da
modelagem.
• Utilizada quando o sistema necessita ter “memória” ou quando pedidos de operação válidos e inválidos existem!!!
• Técnica vital para analistas, desenvolvedores, arquitetos, testadores, etc.
Transição de Estados• Diagramas de transições de estado definem como um
sistema interage com o mundo, os eventos que processa e a ordem válida e inválida desses eventos.
• Diagramas de transição de estado não são a única maneira de documentar o comportamento do sistema, mas são mais fáceis de entender.
• Tabelas de transição de estado são fáceis de utilizar.
Transição de Estados
CanceladoPorCliente Embarcado
darInfo/iniciarTimerPg
Feita
PagopagarDinheiro
Emitido
emitirBilhete/ Bilhete
entregarBilhete
CanceladoFaltaPg
timerPgExpirado
cancelarcancelar/reem
bolso
Cancelar[d
evolve
rBilh
et
e]/reembolso
Considerações finais
• As técnicas não são excludentes
• As regras de negócio de um sistema geralmente mesclam essas características
• É possível considerar mais de uma técnicas para criar o conjunto adequado de casos de testes.