Testes e Projetos

Principais técnicas de testes estruturais

O teste estrutural pode ser considerado um dos mais importantes tipos de validação de software, tendo como resultado a diminuição no número de erros no sistema e, portanto, contribuindo com uma maior qualidade e confiabilidade.

há 3 anos 4 meses

Formação Tester
Conheça a formação em detalhes

Os testes estruturais, também conhecidos como testes de caixa-branca, é a validação do código-fonte da aplicação, bem como dos diferentes algoritmos e estruturas de dados. Em suma, o tester seleciona diferentes valores de entrada, para examinar cada um dos possíveis fluxos de execução do programa e verificar se os valores de saída estão retornando corretamente.

Por meio de testes estruturais é possível:

  • Assegurar que todos os caminhos independentes de cada módulo, programa ou método sejam executados pelo menos uma vez;
  • Verificar todas as decisões lógicas de verdadeiro e falso;
  • Executar todos os loops em seus limites operacionais;
  • Executar as estruturas de dados internas para garantir a validade.

Caso ocorra alguma alteração antes da etapa de implementação, os testes normalmente terão que ser refeitos. Assim sendo, o teste de caixa-branca pode ser considerado um dos mais importantes tipos de testes que se aplicam ao software, tendo como resultado a diminuição no número de erros no sistema e, portanto, contribuindo com uma maior qualidade e confiabilidade.

Técnicas de Testes Estruturais

Existem várias técnicas que podem ser aplicadas aos testes estruturais. A seguir vamos comentar brevemente sobre algumas delas:

Teste do Caminho Básico

O teste do caminho básico é uma técnica proposta por Thomas J. McCabe, em 1976, que permite ter uma noção da complexidade lógica de um projeto e, posteriormente, usar essa medida como um guia para a definição de um conjunto básico de caminhos de execução. A ideia é realizar casos de testes a partir de um determinado conjunto de caminhos independentes. Para obter este conjunto, é construído um fluxograma e sua complexidade ciclomática é calculada.

As etapas para aplicar esta técnica são:

  • O fluxograma é desenhado a partir do código-fonte;
  • A complexidade ciclomática do gráfico é calculada;
  • O conjunto básico de caminhos independentes é determinado;
  • São preparados os casos de teste, que requerem a execução de cada um dos caminhos.

Notação de fluxograma

Para aplicar a técnica de caminho básico, deve ser usado uma notação simples para a representação do fluxo de controle. O fluxograma costuma ser composto por 3 componentes fundamentais, que ajudam a preparar, entender e fornecer informações, para assegurar que o trabalho está sendo executado corretamente.

Os componentes são:

  • Nós: Representam uma sequência de processos ou uma declaração de decisão;
  • Setas: Representam o fluxo de controle. Uma seta deve sempre terminar em um nó, mesmo que este não passe nenhuma instrução do procedimento;
  • Regiões: São as áreas delimitadas por setas e nós. A área externa do gráfico também é incluída, contando como mais uma região.

Complexidade ciclomática

Também desenvolvida por Thomas J. McCabe, em 1976, a complexidade ciclomática é uma métrica de software extremamente útil, pois fornece uma medida quantitativa da complexidade lógica de um programa. Esta métrica mede a quantidade de diferentes fluxos de execução que o código pode ter, ou seja, quantos ifs-then-else, while, for, switch, entre outros, há no código-fonte. Quanto maior a complexidade ciclomática, mais complicado o código será de ler, entender, modificar, manter e, consequentemente, será mais caro.

Conjunto de caminhos independentes

Um caminho independente é qualquer rota no programa que introduz pelo menos um novo conjunto de instruções de processo, ou uma condição, em relação aos caminhos existentes. Em termos de diagrama de fluxo, consiste em pelo menos uma seta que não foi percorrida antes da definição do caminho. Ao identificar os diferentes caminhos de um programa a ser testado, deve-se levar em consideração que cada nova rota deve ter novas condições em relação às já existentes.

Tester
Formação Tester
Conhecer a formação

Casos de teste

Após preparar os casos de teste, cada um deles é executado e os resultados são comparados com o que era previsto. Assim que todos os casos de teste forem concluídos, o tester deverá ter a certeza de que todas as instruções do programa foram executadas pelo menos uma vez. É importante observar que alguns caminhos não podem ser testados isoladamente. Em suma, a combinação de dados necessária para percorrer o caminho não pode ser obtida com o fluxo normal do programa.

Considerações finais

Os testes estruturais, ou testes de caixa-branca, se concentram nos detalhes processuais do software e na análise do código fonte. Embora esta validação seja aplicável a vários níveis, como unidade, integração e sistema, eles geralmente são realizados nas unidades de software. Seu objetivo é verificar os fluxos de execução dentro de funções, classes, módulos, entre outros, bem como pode ser aplicado para validar os fluxos entre as unidades durante a integração e/ou entre subsistemas.

Autor(a) do artigo

João Paulo Soares
João Paulo Soares

Possui MBA em Arquitetura e Engenharia de Software e bacharelado em Jornalismo pela Universidade Municipal de São Caetano do Sul - USCS. Realizou intercâmbio acadêmico em Jornalismo pela Facultad de Letras y Comunicación da Universidad de Colima, no México. Atuou como redator de entretenimento e tecnologia na rádio Metropolitana FM e atualmente trabalha como Analista de Qualidade de Software.

Todos os artigos

Artigos relacionados Ver todos