Teste de Software 08 Teste Funcional Marcelo dAmorim

  • Slides: 14
Download presentation
Teste de Software 08: Teste Funcional Marcelo d’Amorim damorim@cin. ufpe. br

Teste de Software 08: Teste Funcional Marcelo d’Amorim damorim@cin. ufpe. br

Resumo • Definição de teste funcional • Particionamento • Adequação – Combinatorial – Pairwise

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

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 • 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)

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 •

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 •

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

Técnicas • Combinatorial • Pairwise • Catalog-based 8

Combinatorial • Produto cartesiano dos domínios de cada parâmetro • Considere os parâmetros –

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

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,

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:

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

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

Resumo • Definição de teste funcional • Particionamento • Adequação – Combinatorial – Pairwise – Catalog-based (cenários) 14