Teste de Software 08 Teste Funcional Marcelo dAmorim
- Slides: 14
Teste de Software 08: Teste Funcional Marcelo d’Amorim damorim@cin. ufpe. br
Resumo • Definição de teste funcional • Particionamento • Adequação – Combinatorial – Pairwise – Catalog-based (cenários) 2
Teste funcional • Teste baseado em uma especificação – Muitas vezes implícita (entendimento do testador) • Complementar a teste estrutural e baseado em falhas – Usa especificação! – Ignora detalhes de código 3
Particionamento • O espaço de entradas de uma operação é tipicamente muito alto • Particionamento divide o espaço de entrada em classes de equivalência – Hipótese: valores podem ser subsituídos sem perda de generalidade 4
Princípio • Dados – domínios de entrada D – classes de equivalência (de D) C 1. . . Cn • Nota 1: s in Si iff s |= Ci • Nota 2: Ci => not Cj, i != j • S 1 U S 2 U. . . Sn = D • n << |D| 5
Exemplo • F(int x, int y) possui espaço de entradas size(int) ^ 2 • Cenário: O testador identifica que comparação de valores de x e y é importante 6
Exemplo • F(int x, int y) possui espaço de entradas size(int) ^ 2 • Cenário: O testador identifica que comparação de valores de x e y é importante • Sugere as partições: – Int 1 = {z: int. z < 0}, Int 2 = {z: int. z>0} e Int 3 = {z: int. z==0} • Reduz o espaço de entradas a 3 ^ 2 7
Técnicas • Combinatorial • Pairwise • Catalog-based 8
Combinatorial • Produto cartesiano dos domínios de cada parâmetro • Considere os parâmetros – DM={FG, TO, LB}, SS={HH, L, FS}, F={M, ST, DL} • Exemplo: F(DM, SS, F) • Resultado: 27 tuplas (testes) (= 3 parâmetros ^ 3 classes) 9
Pairwise (2 -way combination) • Garante que todos pares aparecem na tupla • Não requer todas as possíveis tuplas • Cresce em razão logarítmica com o número de parâmetros e não exponencial 10
Exercício • Considere os parâmetros – DM={FG, TO, LB}, SS={HH, L, FS}, F={M, ST, DL} • Enumere as tuplas (testes) para atender cobertura pairwise em F(DM, SS, F) 11
Catalog-based • Usa cenários como especificação do teste • Cada cenário, em geral, inclui: – Pré-condição – Variáveis de entrada – Operacões envolvidas – Pós-condicão 12
Técnicas • Combinatorial – Número elevado de testes • Pairwise – Trabalhoso definir classes • Catalog-based – Requer documento mais detalhado de especificação do teste 13
Resumo • Definição de teste funcional • Particionamento • Adequação – Combinatorial – Pairwise – Catalog-based (cenários) 14