Técnicas de Testes Caixa-Preta Marília Oliveira 07/08/2007.

Post on 16-Apr-2015

107 views 1 download

Transcript of Técnicas de Testes Caixa-Preta Marília Oliveira 07/08/2007.

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.

marilia@qualiti.com.br