A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Fundamentos de Engenharia de SW TÉCNICAS DE TESTE DE SOFTWARE.

Apresentações semelhantes


Apresentação em tema: "1 Fundamentos de Engenharia de SW TÉCNICAS DE TESTE DE SOFTWARE."— Transcrição da apresentação:

1 1 Fundamentos de Engenharia de SW TÉCNICAS DE TESTE DE SOFTWARE

2 2 TESTE DE SOFTWARE GARANTIA DE QUALIDADE –VERIFICAÇÃO E VALIDAÇÃO TESTE (última atividade de V & V do desenvolvimento)

3 3 CICLO DE VIDA Análise Projeto Codificação Teste Operação

4 4 Custo do Erro

5 5 UMA ESTRATÉGIA DE TESTE Teste de unidade Teste de integração Teste de validação Teste de sistema

6 6 TESTE DE SOFTWARE Questões psicológicas –Definições... demonstrar ausência de erros... mostrar que o programa cumpre suas funções corretamente.... o programa faz o que ele é suposto fazer

7 7 TESTE DE SOFTWARE Questões psicológicas –Definições... demonstrar ausência de erros... mostrar que o programa cumpre suas funções corretamente.... o programa faz o que ele é suposto fazer PROCESSO DE EXECUTAR UM PROGRAMA COM A INTENÇÃO DE ACHAR ERROS (conotação destrutiva)

8 8 TESTE DE SOFTWARE Questões psicológicas –Teste bem (e mal) sucedido) –Impossibilidade (prática) de detetar todos os erros –Problematização da definição:... faz o que é suposto fazer.

9 9 TESTE DE SOFTWARE Questões econômicas –A impossibilidade de se encontrar todos os erros. Nos testes caixa preta Nos testes caixa branca –Dada a impossibilidade, quantos erros se deve descobrir? Quanto se deve investir no teste? –Maximizar o número de erros encontrados por um número finito de casos de teste

10 10 TOTAL DE CAMINHOS A B 20 vezes

11 11 TOTAL DE CAMINHOS A B ~ 10 14

12 12 TESTE DE SOFTWARE Testes de software (Myers): –processo de executar um programa com o objetivo de encontrar erros. –bom caso de teste é aquele que tem uma alta probabilidade de revelar um erro ainda não descoberto. –teste bem sucedido é aquele que revela um erro ainda não descoberto. Sucesso na atividade de teste: –descobrir erros no software Teste de software: – não mostra a ausência de bugs - somente sua presença.

13 13 TIPOS DE TESTE Caixa Preta –baseado na especificação –o testador não conhece o módulo por dentro, mas apenas sua interface (o módulo é opaco) –data driven Caixa Branca –baseado na lógica interna –o testador conhece o módulo por dentro (o módulo é transparente) –logic driven

14 14 TESTE DE CAIXA BRANCA Teste do caminho básico. Teste dos fluxos de dados. Teste dos laços.

15 15 TESTE DO CAMINHO BÁSICO O teste do caminho básico –deriva uma medida da complexidade lógica do procedimento –use essa medida para definir um conjunto básico de caminhos de execução. Estes casos de teste –Garantem a execução de cada instrução do programa (cada aresta do grafo de fluxo) pelo menos uma vez Como obter uma medida da complexidade lógica do procedimento? –A partir do grafo do fluxo (representação do fluxo de controle).

16 16 GRAFO DE FLUXO Sequence If Case While Until

17 17 GRAFO DE FLUXO

18 18 GRAFO DE FLUXO , 3 4,

19 19 CAMINHO INDEPENDENTE Um caminho independente é um caminho no grafo de fluxo que inclui pelo menos uma aresta nova (que não tenha sido ainda atravessada) Conjunto básico é o conjunto formado pelos caminhos independentes que cubram todas as arestas do grafo de fluxo A complexidade ciclomática é uma métrica de software que proporciona uma medida da complexidade lógica de um programa. O valor da complexidade ciclomática estabelece um limite superior para o número de caminhos independentes Diferentes conjuntos de caminhos básicos podem ser derivados para um dado procedimento.

20 20 COMPLEXIDADE CICLOMÁTICA A complexidade ciclomática –Baseado na teoria dos grafos –Dado um grafo G, V(G) = número de regiões do grafo de fluxo E – N + 2, onde E corresponde ao número de arestas e N o número de nós do grafo de fluxo. P + 1, onde P é o número de nós predicativos (desviantes) contidos no grafo.

21 21 COMPLEXIDADE CICLOMÁTICA 1 2, 3 4,

22 22 COMPLEXIDADE CICLOMÁTICA O grafo de fluxo tem 4 regiões. V(G) = 11 arestas – 9 nós + 2 = 4 V(G) = 3 nós predicativos + 1 = 4 Portanto a complexidade ciclomática é 4 1 2, 3 4, R1 R4 R3 R2

23 23 Caminhos Independentes 1 2, 3 4, R1 R4 R3 R2

24 24 Caminhos Independentes 1: : : : , 3 4, R1 R4 R3 R2

25 25 DERIVANDO CASOS DE TESTE Usando o projeto ou o código como base, trace um grafo de fluxo. Determine a complexidade ciclomática do grafo de fluxo resultante. Determine um conjunto básico de caminhos independentes Prepare os casos de teste que forcem a execução de cada caminho no conjunto básico.

26 26 EXEMPLO PROCEDURE AVERAGE; INTERFACE RETURNS average, total.input, total.valid; INTERFACE ACCEPTS value, minimum, maximum; TYPE value [1:100] IS SCALAR ARRAY; TYPE average, total.input, total.valid, minimum, maximum, soma IS SCALAR; TYPE i IS INTEGER;

27 27 EXEMPLO i = 1; total.input = total.valid = 0; sum = 0; DO WHILE value[i] <> -999 AND total.input <100 increment total.input by 1; IF value[i] >= minimum AND value[i] <= maximum THEN increment total.valid by 1; sum = sum + value[i] ELSE skip ENDIF increment i by 1; ENDDO IF total.valid > 0 THEN average = sum / total.valid; ELSE average = -999; ENDIF END

28 28 EXEMPLO i = 1; total.input = total.valid = 0; sum = 0; DO WHILE value[i] <> -999 AND total.input <100 increment total.input by 1; IF value[i] >= minimum AND value[i] <= maximum THEN increment total.valid by 1; sum = sum + value[i] ELSE skip ENDIF increment i by 1; ENDDO IF total.valid > 0 THEN average = sum / total.valid; ELSE average = -999; ENDIF END

29 29 EXEMPLO Complexidade Ciclomática: 6 = 17 – = Caminhos: 1: : : : : :

30 30 EXEMPLO CASOS DE TESTE CaminhoMinMaxValueAveraget.inputt.valid 1: : : , 30, : , : , : ,

31 31 EXEMPLO CASOS DE TESTE CaminhoMinMaxValueAveraget.inputt.valid 1: : : , 30, : , : , : ,

32 32 TESTE DO FLUXO DE DADOS O método de teste de fluxo de dados – seleciona caminhos de teste de um programa de acordo com as localizações das definições e usos de variáveis no programa. Def(S) = {X | S contem uma definição de X}; Use(S) = {X | S contem um uso de X}; uma definição de X em S está viva em S1 se existe um caminho de S a S1que não contenha outra definição de X Cadeia DU = [X,S,S1] onde X Def(S) e X Use(S1) e a definição de X em S está viva em S1. Testar todas DUs.

33 33 TESTE DOS LAÇOS (LOOPS) focaliza a validade das construções de laços. Quatro tipos: simples, aninhados, concatenados, não- estruturados. Casos de teste para laços simples ( n: maximo de iterações ): –pular o laço –executar 1 passada –executar m passadas ( m

34 34 TESTE DE CAIXA PRETA Concentra-se nos requisitos funcionais do software. Procura descobrir os seguintes tipos de erro: –Funções incorretas ou ausentes; –Erros de interface; –Erros na estrutura de dados ou no acesso a banco de dados externos; –Erros de desempenho e –Erros de inicialização e término.

35 35 PARTICIONAMENTO POR EQUIVALÊNCIA propõe dividir o domínio de entrada em classes (partições) cujos dados produzam o mesmo comportamento na execução do teste, ou seja, os dados de uma classe ou devem todos não dar erro, ou todos o mesmo tipo de erro. diretrizes para definição de classes. Se a condição de entrada –especifica um intervalo então uma classe válida e duas inválidas. –requer um valor então uma classe válida e duas inválidas. –especifica a pertinência a um conjunto então uma válida e uma inválida –é booleana então uma classe válida e uma inválida

36 36 ANÁLISE DOS VALORES LIMITE Um maior número de erros tende a ocorrer nas fronteiras do domínio de entrada do que no centro. Complementa o particionamento por equivalência Diretrizes: –se a condição de entrada especificar um intervalo (a.. b) inclua casos com valores a e b, e logo acima e logo abaixo de a e b. –se uma condição de entrada especifica um conjunto de valores, inclua casos com os valores máximo e mínimo, e também com valores logo acima e logo abaixo de a e b. –idem ao caso acima para intervalos de saídas. –testar valores limites das estruturas de dados.

37 37 BIBLIOGRAFIA Capítulo 14, Pressman, R., Engenharia de Software, 6 a edição, McGraw Hill, Capítulos 1 e 2, Myers, G., The Art os Software Testing, Wilwy, 1979.


Carregar ppt "1 Fundamentos de Engenharia de SW TÉCNICAS DE TESTE DE SOFTWARE."

Apresentações semelhantes


Anúncios Google