Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Rafael Targino rtargino@unicarioca.edu.br @rafatargino QUALIDADE DE SOFTWARE Unidade IV - Técnicas de Testes de Caixa Branca e Preta 2 Programa da Aula • Técnicas de Testes – Caixa Branca – Caixa Preta Técnicas de Teste Caixa Branca Caixa Preta Caixa Cinza Conduzidos nos caminhos lógicos internos ao software Conduzidos na interface do software. Examina aspectos fundamentais do sistema (funcionalidade) Conduzidos na interface mas com alguma visibilidade interna do sistema (Ex: Teste de registro consultando as tabelas do BD) Acesso direto ao código Não conhece a estrutura interna do software Conhecimento interno do produto e saídas esperadas 3 Programa da Aula • Técnicas de Testes – Caixa Branca – Caixa Preta Caixa Branca • Testes baseados na implementação ou testes caixa- branca: – São baseados no código. – Geralmente desempenhado pelo próprio programador durante a programação. – Visam exercitar estruturas de controle (instruções) e de dados de um programa. 4 Grafo de fluxo de controle • Nó = Bloco de comandos sequenciais • Aresta ou Ramo = Transferência de controle Grafo de Fluxo de Controle 5 Critérios de Cobertura • Objetivos – Geração dos testes – Avaliação final: indicação do término dos testes • Tipos – Cobertura de Instruções – Cobertura de Decisões – Cobertura de Condições – Cobertura de Caminhos • Critério: Cada instrução (nó) deve ser executada pelo menos uma vez. Teste de Instruções 6 Teste de Instruções • Cada ramo (aresta) deve ser percorrido pelo menos uma vez. Teste de Decisões 7 Teste de Decisões Teste de Decisões/Condições • Todas as condições devem ser testadas para valores V e F em cada decisão. 8 Teste de Caminhos • Critério: Todos os caminhos possíveis do grafo devem ser percorridos pelo menos uma vez • Dificuldades: – Nem todos os caminhos do grafo são executáveis pelo programa – Em grafos com ciclos, o número de caminhos pode ser infinito • É necessário critérios para delimitar o número de caminhos – Teste de caminhos básicos – Teste de laços Teste de Caminhos Básicos • Em vez de todos os caminhos, busca os caminhos independentes: – Caminho independente: contém pelo menos 1 nova aresta do grafo de controle – O nº de caminhos independentes é dado pela complexidade ciclomática (V(G)) de McCabe: • V(G) = nº de predicados + 1 – Nós predicados são aqueles que possuem dois ou mais percursos (arestas) de saída. – Uma vez que todos os outros caminhos do grafo são combinações dos caminhos independentes, então V(G) é o limite inferior do nº de testes de caminhos 9 Complexidade Ciclomática • A ideia é basicamente contar o número de caminhos diferentes que um método pode ter. • A Complexidade Ciclomática basicamente conta o número de vezes que um for, while, e todas as instruções aparecem. • Também podemos definir a complexidade ciclomática como: V(G) = A – N + 2 (esta fórmula funciona apenas considerando funções simples, com um único ponto de entrada e saída) Onde: • A é o número de arestas do grafo • N é o número de nós do grafo Exercício – Calcule a Complexidade Ciclomática Opção 1 • V(G) = nº de predicados + 1 • Nós predicados: – B, D, E • V(G) = 3 + 1 = 4 Opção 2 • V(G) = A – N + 2 • Qtd de Arestas (A) = – 9 • Qtd de Nós (N) = – 7 • V(G) = 9 – 7 + 2 = 4 10 Complexidade Ciclomática • Não há um número ideal para a complexidade de um método. Mas os especialistas sugerem que ele não deva passar de 10. • Caso passe, você deveria quebrar o seu método em 2, e o primeiro método, chama o segundo. • Existem diversas ferramentas que calculam esta métrica entre outros para o código fonte. – Ex: Eclipse Metrics • Critério: Cada caminho independente deve ser percorrido pelo menos uma vez. Teste de Caminhos Básicos 11 Teste de Laços Teste de Laços 12 Teste de Laços Teste de Laços 13 Programa da Aula • Técnicas de Testes – Caixa Branca – Caixa Preta Caixa Preta • Testes baseados na especificação. • Objetivo: Demonstrar cobertura da especificação – são baseados na especificação do sistema – visam exercitar as interfaces da aplicação 14 Importância da Análise de Requisitos • Detecção de falhas depende da especificação – especificações ambíguas, incompletas, incorretas e inconsistentes são perigosas para os testes – especificações devem ser validadas • Uma especificação deve ser testável, isto é, deve conter informações suficientes para os testes Técnicas • Particionamento em classes de equivalência • Análise de valor limite • Grafo causa-efeito 15 Particionamento em classes de Equivalência • Identificar partições dos domínios das entradas e saídas onde os elementos, supostamente, fariam com que o sistema se comportasse da mesma forma Partição por Equivalência – Exemplo 1 Input – Número Real Output – Número Real • Para uma dada entrada igual a 0 ou maior que 0, a raiz positiva do número será retornada. • Para uma dada entrada menos que 0, a mensagem “Erro – Entrada Inválida” deverá ser mostrada e o valor 0 deverá ser retornado. • A rotina “PrintLine” deverá ser utilizada para mostrar a mensagem.” 16 • Teste da função de raiz quadrada • Para cada partição de equivalência, escolher dados representativos destas classes – Caso 1: Entrada 4, Retorno 2. • Testa ii e a; – Caso 2: Entrada -10, Retorno 0, Saída “Erro • “Entrada Inválida” através de PrintLine. • Testa i e b; Partição por Equivalência – Exemplo 1 Análise do Valor Limite • A análise de valor limite leva à escolha de casos de teste que põem à prova os valores fronteiriços • A análise de valor limite é uma técnica de projeto de casos de teste que complementa o particionamento de equivalência. 17 Análise de Valor Limite • Critério de seleção que identifica valores nos limites das classes de equivalência • Exemplos: – valor mínimo (máximo) igual ao mínimo (máximo) válido – uma unidade abaixo do mínimo – uma unidade acima do máximo – arquivo vazio – arquivo maior ou igual à capacidade máxima de armazenamento – cálculo que pode levar a “overflow” (“underflow”) – erro no primeiro (último) registro Análise do Valor Limite – Exemplo 1 18 Análise de Valor Limite – Exemplo 2 • Um campo de entrada (input field) referente ao ano de aniversário aceita valores de 1900 até 2004. Utilizando a análise do valor limite o teste usaria quais valores? a) 0,1900,2004,2005 b) 1900, 2004 c) 1899,1900,2004,2005 d) 1899, 1900, 1901,2003,2004,2005 Grafo Causa-Efeito • Verifica o efeito combinado de dados de entrada. • As causas (condições de entrada) e os efeitos (ações) são identificados e combinados em um grafo a partir do qual é montada uma tabela de decisão • A partir da tabela de decisão são derivados os casos de teste e as saídas 19 Grafo Causa-Efeito - Exemplo 1 • “Em um programa de compras pela Internet, a cobrança ou não do frete é definida seguindo tal regra: Se o valor da compra for maior que R$ 60,00 e foram comprados menos que 3 produtos, o frete é gratuito. Caso contrário, o frete deverá ser cobrado.” Casos de Teste (61,2,“frete grátis”) (61,3,“cobrar frete”) (60, qualquer quantidade,“cobrar frete”) Tabela de Decisão 20 Referências Bibliográficas • KOSCIANSKI, A. e SOARES, M. S. Qualidade de Software. NOVATEC. • PRESSMAN, R. S. Engenharia de Software. McGraw Hill, • Notas de Aula do Prof. David Zanetti, Qualidade de Software - Unicarioca
Compartilhar