Teste Funcional Teste funcional Considera o sistema como

  • Slides: 19
Download presentation
Teste Funcional

Teste Funcional

Teste funcional • Considera o sistema como uma função • O teste consiste em:

Teste funcional • Considera o sistema como uma função • O teste consiste em: – Gerar dados de entrada para função – Comparar saída com resultado esperado • Caixa preta! Complementar ao teste estrutural e baseado em falhas 2

Particionamento

Particionamento

Particionamento • O espaço de entradas de uma função é frequentemente enorme • Particionamento

Particionamento • O espaço de entradas de uma função é frequentemente enorme • 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 • D é um domínio de entrada • Construção de classes de equivalência

Princípio • D é um domínio de entrada • Construção de classes de equivalência – i є 1. . n – s є Si iff s |= Ci – forall i != j. Ci => not Cj – 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

Porém. . . frequentemente partições são definidas com base na intuição

Porém. . . frequentemente partições são definidas com base na intuição

Construção de entradas

Construção de entradas

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

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

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: função F(DM, SS, F) • Resultado: 27 tuplas (testes) (= 3 parâmetros ^ 3 classes) 11

Discussão • Tamanho da suíte cresce exponencialmente em função do tamanho e número de

Discussão • Tamanho da suíte cresce exponencialmente em função do tamanho e número de domínios: – O(z^3), z=max{|DM|, |SS|, |F|} • Pode ser impraticável para testar. – Pode requerer muito esforço para construção (se construção manual) – Pode demandar muito tempo de execuçao 12

Pairwise (2 -way combination) • Garante que todos pares aparecem na tupla 13

Pairwise (2 -way combination) • Garante que todos pares aparecem na tupla 13

Discussão • Vantagem – Não requer todas as possíveis tuplas – Cresce em razão

Discussão • Vantagem – 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 • Desvantagem – É uma heurística. Pode perder entradas importantes

Discussão • Vantagem – Não requer todas as possíveis tuplas – Cresce em razão

Discussão • Vantagem – 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 • Desvantagem – É uma heurística. Pode. Resultados perder entradas importantes significativos na Microsoft!

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

t-wise combination • • 2 -wise requer geraçao de todos pares 3 -wise requer

t-wise combination • • 2 -wise requer geraçao de todos pares 3 -wise requer geração de todas triplas. . . n-wise. . . todas as tuplas (combinatorial)

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 18

Resumo • Paticionamento • Construção de entradas – Combinatorial – Pairwise – Catalog-based (cenários)

Resumo • Paticionamento • Construção de entradas – Combinatorial – Pairwise – Catalog-based (cenários) 19