Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode...

34
Rede de Laboratórios de Produtividade de Software

Transcript of Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode...

Page 1: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Rede de Laboratórios de Produtividade de Software

Page 2: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Técnicas de Teste Caixa-Preta

Programa de Capacitação

em Testes de Software

Page 3: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Conteúdo

• All-Pairs

• Tabelas de Decisão

• Transição de Estados

• Partição de Equivalência

• Análise de Valores de Fronteira

• Teste de Caso de Uso

3Rede de Laboratórios de Produtividade de Software

Page 4: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

• Hipótese

– Os bugs mais simples de um programa são revelados por 1 variável de entrada

• Exemplo. Um valor X = 0 para sacar do caixa eletrônico

– Em segundo lugar em simplicidade, vem aqueles bugs revelados através de uma combinação entre 2 variáveis de entrada

• Exemplo. Um valor X > 1.000 de saque e saldo Y < 0.

4Rede de Laboratórios de Produtividade de Software

Page 5: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

• Temos que testar um sistema web em diversas configurações:

– Browser: Firefox, IE, GoogleChrome

– Sistema operacional: Unix, Linux, MacOS, Windows XP, Windows Vista, Windows 7

– Memória: 256MB, 500MB, 1GB, 2GB

• Quantas combinações temos que testar?

5Rede de Laboratórios de Produtividade de Software

.

Page 6: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

• 3 browsers: Firefox, IE, GoogleChrome

• 6 sistemas operacionais: Unix, Linux, MacOS, Windows XP, Windows Vista, Windows 7

• 4 memórias: 256MB, 500MB, 1GB, 2GB

• Total: 3 x 6 x 4 = 72

6Rede de Laboratórios de Produtividade de Software

.

Page 7: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

• Com All-Pairs, geramos testes de forma que todas as combinações possíveis 2 a 2 estão cobertas.

• Ou seja, todas combinações

– (browser, sistema operacional)

– (browser, memória)

– (sistema operacional, memória)

são geradas.

7Rede de Laboratórios de Produtividade de Software

.

Page 8: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

• Precisamos de apenas 24 combinações para cobrir os parâmetros 2 a 2.

• Ferramenta: http://www.mcdowella.demon.co.uk/jars/mcdowella.zip

8Rede de Laboratórios de Produtividade de Software

.

Page 9: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

9Rede de Laboratórios de Produtividade de Software

1 Firefox Linux 500MB2 GoogleChrome WindowsXP 500MB3 GoogleChrome MacOS 2GB4 Firefox Unix 256MB5 Firefox Windows7 1GB6 IE Linux 2GB7 GoogleChrome WindowsVista 2GB8 GoogleChrome Linux 1GB9 IE WindowsXP 1GB

10 IE WindowsVista 256MB11 Firefox WindowsVista 1GB12 GoogleChrome MacOS 256MB

Page 10: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

10Rede de Laboratórios de Produtividade de Software

13 IE Windows7 2GB14 Firefox MacOS 1GB15 IE Linux 256MB16 Firefox WindowsXP 2GB17 IE Windows7 500MB18 GoogleChrome Unix 500MB19 IE MacOS 500MB20 IE WindowsVista 500MB21 GoogleChrome Unix 1GB22 IE WindowsXP 256MB23 GoogleChrome Windows7 256MB24 IE Unix 2GB

Page 11: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

All-Pairs

• Exercício. Defina como aplicar All-Pairs no sistema em que você está testando.

11Rede de Laboratórios de Produtividade de Software

Page 12: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Tabelas de Decisão

• Especificam várias combinações de entradas

12Rede de Laboratórios de Produtividade de Software

Condições Regra 1 Regra 2 Regra 3 Regra 4

Plano 500 min. S N N S

Plano 1000 min. N S S S

Banda Larga (10 MBps) S N S N

Banda Larga (50 MBps) N S N N

Possui TV a Cabo S N N S

Ações

Mensalidade R$ 100,00 R$ 200,00 R$ 120,00

Desconto (na TV a cabo) 5%

Mensagem de Erro S

Page 13: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Tabelas de Decisão

13Rede de Laboratórios de Produtividade de Software

• Exercício

– Escolha um sistema que você está testando

– Construa uma Tabela de Decisão para este sistema

Page 14: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Transição de Estados

• O sistema pode ser modelado como uma Máquina de Estados Finito

14Rede de Laboratórios de Produtividade de Software

Digite a senha

Exiba menu principal

Insira o cartão

Exiba extrato

Exiba saldo

Senha

correta

Senha

incorreta

Pressiona

OK

Cartão

válido

Cartão

inválido

Saldo

selecionado

Extrato

selecionado

Exiba mensagem

de erro

Page 15: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Transição de Estados

• Exercício: Gere testes a partir desta máquina de estados.

15Rede de Laboratórios de Produtividade de Software

Digite a senha

Exiba menu principal

Insira o cartão

Exiba extrato

Exiba saldo

Senha

correta

Senha

incorreta

Pressiona

OK

Cartão

válido

Cartão

inválido

Saldo

selecionado

Extrato

selecionado

Exiba mensagem

de erro

Page 16: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

• Veja os requisitos do Banco LabPS

16Rede de Laboratórios de Produtividade de Software

Internet Banking

A senha de tem que ter 4 dígitos

Se o usuário digitar 4 dígitos

Se for uma senha correta → exibe o menu principal

Senão → exibe a mensagem “Senha inválida”

Se o usuário digitar de 1 a 3 dígitos

Exibe a mensagem “Digite 4 dígitos”

Se o usuário digitar 0 dígitos

Exibe a mensagem “Senha vazia”

Page 17: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

17Rede de Laboratórios de Produtividade de Software

Senhas com 4

dígitos e corretas

Senhas com 4

dígitos e incorretasSenhas de 1

a 3 dígitos

Senha de 0 dígitos

• As senhas podem ser particionadas

Page 18: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

18Rede de Laboratórios de Produtividade de Software

“1234”

“3969”

“000”

“ ”

• As senhas podem ser particionadas

“1235” “1237”

“1238”

“1236”

“0023”

“1270”

“2134”

“3333” “432”

“34”

“21”

“1”

“953”

Page 19: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

19Rede de Laboratórios de Produtividade de Software

“1234”

“3969”

“000”

“ ”

• Os elementos de cada partição são equivalentes

“1235” “1237”

“1238”

“1236”

“0023”

“1270”

“2134”

“3333” “432”

“34”

“21”

“1”

“953”

Page 20: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

20Rede de Laboratórios de Produtividade de Software

“1234”

“3969”

“000”

“ ”

• Só precisamos executar 4 testes

• Escolhemos 1 representante de cada partição

“1235” “1237”

“1238”

“1236”

“0023”

“1270”

“2134”

“3333” “432”

“34”

“21”

“1”

“953”

Page 21: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

21Rede de Laboratórios de Produtividade de Software

“1234”

“3969”

“000”

“ ”

• Temos que pensar também em partições fora dos requisitos

“1235” “1237”

“1238”

“1236”

“0023”

“1270”

“2134”

“3333” “432”

“34”

“21”

“1”

“953”

“12345”

“1234567”Senhas com mais

de 5 caracteres

Page 22: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Partição de Equivalência

22Rede de Laboratórios de Produtividade de Software

• Exercício

– Escolha um sistema que você está testando

– Das suas várias entradas, escolha uma

– Defina classes de equivalências para esta variável

Page 23: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Análise de Valores de Fronteira

• Veja os requisitos do Banco LabPS

23Rede de Laboratórios de Produtividade de Software

Cheque especial

Se o saldo do usuário for

≥ 0 → multa de 0%

[-R$ 100, 0) → multa de 5%

[-R$ 1000, -R$ 100) → multa de 10%

< -R$ 1000 → multa de 15%

Page 24: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Análise de Valores de Fronteira

• Veja os requisitos do Banco LabPS

24Rede de Laboratórios de Produtividade de Software

Cheque especial

Se o saldo do usuário for

≥ 0 → multa de 0%

[-R$ 100, 0) → multa de 5%

[-R$ 1000, -R$ 100) → multa de 10%

< -R$ 1000 → multa de 15%

R$ 0-R$ 100-R$ 1000

0%5%10%15%

Page 25: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Análise de Valores de Fronteira

• Quais são os valores de fronteira?

25Rede de Laboratórios de Produtividade de Software

R$ 1-R$ 1-R$ 99-R$ 101-R$ 999-R$ 1001

R$ 0-R$ 100-R$ 1000

0%5%10%15%

Page 26: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Análise de Valores de Fronteira

• Observações

• A precisão do sistema deve ser considerada

-R$ 1000,01, -R$ 999,99, -R$ 100,01, -R$ 99,99, etc.

26Rede de Laboratórios de Produtividade de Software

R$ 1-R$ 1-R$ 99-R$ 101-R$ 999-R$ 1001

R$ 0-R$ 100-R$ 1000

0%5%10%15%

Page 27: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Análise de Valores de Fronteira

• Observações

• Os valores de fronteira devem levar em conta o máximo e mínimo representáveis pelo sistema: -R$ 999.999.999,99 e R$ 999.999.999,99

27Rede de Laboratórios de Produtividade de Software

R$ 1-R$ 1-R$ 99-R$ 101-R$ 999-R$ 1001

R$ 0-R$ 100-R$ 1000

0%5%10%15%

Page 28: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Particionamento / Fronteira

• Exercício

– Suponha um sistema da FIFA para cadastrar resultados dos jogos de futebol:

Brasil ___ x ___ Coreia do Norte

– Defina as classes de equivalência

– Defina os valores de fronteira

28Rede de Laboratórios de Produtividade de Software

Page 29: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Teste de Caso de Uso

• Cria testes a partir de casos de uso

• Cada cenário de caso de uso vira um teste

• Se o caso de uso for modelado como uma sistema de transição de estados, esta abordagem torna-se similar à de Transição de Estados

– A TaRGeT faz exatamente isso

29Rede de Laboratórios de Produtividade de Software

Page 30: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Conclusão

• Técnicas de teste de caixa-preta geram testes de forma mais inteligente e sistemática

• Não substitui a experiência do testador

• O conhecimento da aplicação é uma arma fundamental para criação de bons testes

30Rede de Laboratórios de Produtividade de Software

Page 31: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Referências

• Foundations of Software Testing – ISTQB Certification, de Dorothy Graham, Erik van Veenendaal, Isabel Evans, Rex Black

• Black-Box Testing, de Boris Beizer

• The Art of Software Testing, de Glenford Myers

31Rede de Laboratórios de Produtividade de Software

Page 32: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Sites

Wiki do LabPShttp://labps.cin.ufpe.br

Twitter do LabPShttp://twitter.com/Rede_LabPS

INEShttp://www.ines.org.br

Amigoshttp://amigos.ines.org.br

Cin/UFPEhttp://www.cin.ufpe.br

Rede de Laboratórios de Produtividade de Software 32

Page 33: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Dúvidas

33Rede de Laboratórios de Produtividade de Software

?

Page 34: Rede de Laboratórios de Produtividade de Software€¦ · Transição de Estados •O sistema pode ser modelado como uma Máquina de Estados Finito Rede de Laboratórios de Produtividade

Obrigado!

Rede de Laboratórios de Produtividade de Software 34