Fundamentos e Técnicas de Teste de Software

Classificado em Matemática

Escrito em em português com um tamanho de 5,56 KB

Teste de Software

Teste de Software: É o processo de executar um programa com a intenção de descobrir um erro. Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um erro ainda não descoberto.

Objetivos da Atividade de Teste de Software

O objetivo central deve ser o de maximizar a cobertura dos testes. Deve-se detectar a maior quantidade possível de defeitos que não foram apanhados pelas revisões, dentro de dados limites de custos e prazos.

Projeto de Casos de Teste

Oferecem uma abordagem sistemática, um mecanismo que ajuda a garantir a integridade do teste e proporciona a mais alta probabilidade de revelar erros de software.

Abordagens de Teste

  • Para ser eficaz, o teste deve ser cuidadosamente desenhado.
  • Testes irreproduzíveis ou improvisados devem ser evitados.
  • Resultados devem ser inspecionados e comparados com os resultados esperados.
  • Desenvolvedores não são as pessoas mais indicadas para testar seu próprio produto.

Tipos de Teste Baseados na Estrutura

Teste de Caixa Preta

Determina se os requisitos foram total ou parcialmente satisfeitos pelo produto. Verifica apenas os resultados produzidos, não verifica como ocorre o processamento. Demonstra que as funções do software são operacionais, que a entrada é adequadamente aceita e a saída é corretamente produzida.

Teste de Caixa Branca

Determina defeitos da estrutura interna do programa, através de testes que exercitem suficientemente os possíveis caminhos de execução. São testados os caminhos lógicos através do software, fornecendo-se casos de teste que põem à prova conjuntos específicos de condições e/ou laços.

Caixa Branca - Teste de Caminho Básico

Deriva uma medida de complexidade lógica de um projeto procedimental e usa essa medida como guia para definir um conjunto básico de caminhos de execução.

GRAFO DE PROGRAMA

Uma notação para representar o fluxo de controle. Cada construção estruturada tem um símbolo de grafo correspondente. Cada círculo é denominado e representa uma ou mais instruções procedimentais. Os arcos de fluxo são denominados ramos, e um ramo deve terminar em um nó. As áreas delimitadas pelos ramos e nós são chamadas de regiões. Nós predicativos são os que contêm uma condição.

Complexidade Ciclomática

É uma métrica de software que proporciona uma medida quantitativa da complexidade lógica de um programa.

Caminho Independente

Introduz pelo menos um novo conjunto de instruções de processamento ou nova condição.

Técnicas de Projeto de Casos de Teste

Análise do Valor Limite

Leva à escolha de casos de teste que põem à prova os valores fronteiriços.

  • Casos de teste para entradas válidas: intervalo delimitado pelos valores a e b - os casos de teste devem ser projetados com os valores imediatamente acima e logo abaixo de a e b.
  • Série de valores - os casos de teste que ponham à prova valores máximos, mínimos, logo acima e abaixo devem ser testados.
  • Aplique as diretrizes 1 e 2 às condições de saída.

Particionamento de Equivalência

Divide o domínio de entrada de um programa em classes de dados a partir das quais os casos de teste podem ser derivados. Procura deduzir uma classe de erros evitando um número maior de testes.

Desenho de classes de equivalência
  • Intervalo válido: uma válida para os valores pertencentes ao intervalo, duas inválidas para os valores maiores e menores.
  • Lista de valores válidos: uma válida para os valores incluídos na lista, uma inválida para todos os outros valores.
  • Valor específico: uma válida que inclui o valor, duas inválidas para valores maiores e menores.
  • Lógica - uma válida e uma inválida.

Testes de Comparação

Compara as saídas de diferentes versões de um sistema. É aplicado em:

  • Uso de sistemas redundantes para aplicações críticas (controle de aeronaves).
  • Comparação de resultados para produtos em evolução.

Testes de Sistema de Tempo Real

  1. Testes de Tarefas: Cada tarefa deve ser testada independentemente. Teste de caixa preta e branca devem ser projetados.
  2. Teste Comportamental: Os eventos são categorizados, cada um é testado individualmente. O comportamento do sistema executável é examinado para detectar erros consequentes dos processamentos associados aos eventos.
  3. Teste Inter-tarefas: Detectam erros de sincronização de tarefas. Tarefas assíncronas que se comunicam entre si são testadas com diferentes taxas de dados e cargas de processamento para determinar se ocorrerão erros de sincronização inter-tarefas.
  4. Teste do Sistema: O software e o hardware são integrados e uma variedade completa de testes de sistema é levada a efeito numa tentativa de descobrir erros na interface software/hardware.

Entradas relacionadas: