Beruflich Dokumente
Kultur Dokumente
Aula 9
http://www.ic.uff.br/~bianca/engsoft2/
Aula 9 - 19/05/2006 1
Ementa
Processos de desenvolvimento de software Estratgias e tcnicas de teste de software (Caps. 13 e 14 do Pressman) Mtricas para software Gesto de projetos de software: conceitos, mtricas, estimativas, cronogramao, gesto de risco, gesto de qualidade e gesto de modificaes Reengenharia e engenharia reversa
Aula 9 - 19/05/2006 2
Software
Sada
Testes Caixa-Branca
So baseados em um exame rigoroso do detalhe procedimental. Caminhos lgicos e colaboraes entre componentes so testadas.
Aula 9 - 19/05/2006
Software
Entrada Sada
Ns do grafo de fluxo
Aula 9 - 19/05/2006
R4
7 9 11
8 10
Aula 9 - 19/05/2006
Lgica Composta
SE a OU b ENTO procedimento x SENO procedimento y FIM-SE SE a E b ENTO procedimento x SENO procedimento y FIM-SE
Aula 9 - 19/05/2006
a b y x Ns Predicados a y y b x x
2,3 6 R3 9 10 11 8 R2 4,5 R1
R4
Conjunto-Base
um conjunto de caminhos independentes em que cada aresta aparece pelo menos uma vez. Testes projetados para forar a execuo do conjunto-base garantem que:
Todo comando do programa ter sido executado pelo menos uma vez. Cada condio ter sido executada no seu lado verdadeiro e no seu lado falso.
O conjunto-base no nico.
Diversos conjuntos-base diferentes podem ser derivados para um dado projeto procedimental.
Aula 9 - 19/05/2006 10
Complexidade Ciclomtica
uma mtrica de software que fornece uma medida quantitativa da complexidade lgica de um programa.
Fornece um limite superior para o nmero de caminhos independentes num conjunto-base. Fornece um limite superior para a quantidade de testes que deve ser conduzida para garantir que todos os comandos sejam executados pelo menos uma vez.
Aula 9 - 19/05/2006 11
Complexidade Ciclomtica
1. O grafo de fluxo tem quatro regies. 2. V(G) = 11 arestas 9 ns + 2 = 4. 3. V(G) = 3 nspredicado + 1 = 4
1 2,3 6 7 R3 9 10 11
Aula 9 - 19/05/2006 13
R2
4,5 R1
R4
Exemplo: Passo 1
Procedimento mdia(valor[]) i=1; 1 soma=0; total.entrada=0; 2 3 total.vlidas=0 Faa-Enquanto (valor[i]-999 E total.entrada<100) incremente total.entrada de 1; 4 6 Se5(valor[i]min E valor[i]max) Ento 10 incremente total.vlidas de 1; 7 soma = soma + valor[i] 12 Fim-Se 8 incremente i de 1; 13 Fim-Enquanto 9 Se total.vlidas>0 10 Ento mdia = soma/total.vlidas; 11 Seno mdia = -999; 12 Fim-Se 13 Fim mdia Aula 9 - 19/05/2006
2 3 4 11 5 6 8 9 7
15
Exemplo: Passo 2
V(G) = 6 regies V(G) = 17 arestas 13 ns + 2 = 6 V(G) = 5 nspredicados + 1 = 6
12 R2
2 3 4 11 R6 R4 6 R3 7 5 R1
10 R5 13
Aula 9 - 19/05/2006
16
Exemplo: Passo 3
Temos que especificar 6 caminhos independentes:
1. 2. 3. 4. 5. 6. 1-2-10-12-13 1-2-10-11-13 1-2-3-10-11-13 1-2-3-4-5-8-9-2-... 1-2-3-4-5-6-8-9-2-... 1-2-3-4-5-6-7-8-9-2-...
2 3 10 12 13 6 8 9 7 11 4 5
Aula 9 - 19/05/2006
17
Exemplo: Passo 4
Teste de Condio
Exercita todas as condies lgicas contidas em um mdulo de programa para garantir que elas no contm erros.
Condio simples: uma varivel booleana ou uma expresso relacional, possivelmente precedida por um NO. Condio composta: duas ou mais condies simples ligadas por um operador OU, E ou NO.
Aula 9 - 19/05/2006 20
Uma varivel X definida em S considerada viva em S, se existir um caminho de S para S que no contenha nenhuma outra definio de X. Uma cadeia definio-uso (DU) da varivel X da forma [X,S,S], X pertence a DEF(S) e USO(S) e a definio de X no comando S est viva no comando S. Estratgia: exigir que cada cadeia DU seja coberta pelo menos uma vez.
Aula 9 - 19/05/2006 21
Teste de Ciclo
Focaliza exclusivamente na validade de construes de ciclos (loops).
Ciclos simples Ciclos concatenados Ciclos aninhados Ciclos desestruturados
Aula 9 - 19/05/2006
22
Ciclos Simples
O seguinte conjunto de testes pode ser aplicado a ciclos simples em que n o nmero mximo de passagens permitidas:
1. 2. 3. 4. 5. Pule o ciclo completamente. Apenas uma passagem pelo ciclos. Duas passagens pelo ciclo. m passagens pelo ciclo em m < n. n - 1, n, n + 1 passagens pelo ciclo.
Aula 9 - 19/05/2006 23
Ciclos Aninhados
Para evitar que o nmero de testes cresa geometricamente, deve seguir a seguinte abordagem:
1. Comece testando o ciclo mais interno, ajustando os outros ciclos para valores mnimos. 2. Trabalhe em direo ao exterior, conduzindo testes para o ciclo seguinte, mas mantendo todos os ciclos externos nos valores mnimos e os internos nos valores tpicos. 3. Continue at que todos os ciclos sejam testados.
Aula 9 - 19/05/2006 24
Ciclos Concatenados
Dois possveis casos:
Contadores independentes
Usar a abordagem de ciclos simples para cada um deles.
Contador de ciclo para o ciclo 1 usado como valor inicial para o ciclo 2.
Usar a abordagem de ciclos aninhados.
Aula 9 - 19/05/2006
25
Ciclos Desestruturados
Devem ser reprojetados.
Aula 9 - 19/05/2006
26