Ciclomático Complexcapacidade em teste de software (exemplo)

O que é o Cyclomatic Com de McCabeplexcidade?

Ciclomático Complexidade em teste de software é uma métrica de teste usada para medir oplexqualidade de um programa de software. É uma medida quantitativa de caminhos independentes no código-fonte de um programa de software. Ciclomático complexA capacidade pode ser calculada usando gráficos de fluxo de controle ou em relação a funções, módulos, métodos ou classes dentro de um programa de software.

Caminho independente é definido como um caminho que possui pelo menos uma aresta que não foi percorrida antes em nenhum outro caminho.

Esta métrica foi desenvolvida por Thomas J. McCabe em 1976 e é baseada em uma representação do fluxo de controle do programa. O fluxo de controle descreve um programa como um gráfico que consiste em nós e arestas.

No gráfico, os nós representam tarefas de processamento enquanto as arestas representam o fluxo de controle entre os nós.

Ciclomático Com de McCabeplexdade

Notação de gráfico de fluxo para um programa

A notação Flow Graph para um programa define vários nós conectados pelas arestas. Abaixo estão diagramas de fluxo para instruções como if-else, While, Until e sequência normal de fluxo.

Notação de gráfico de fluxo para um programa

Como calcular o Ciclomático Complexdade

Representação matemática:

Matematicamente, é um conjunto de caminhos independentes através do diagrama gráfico. O Código complexA qualidade do programa pode ser definida usando a fórmula -

V(G) = E - N + 2

Onde,

E – Número de arestas

N – Número de nós

V (G) = P + 1

Onde P = Número de nós predicados (nó que contém condição)

Exemplo -

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

O gráfico de fluxo para este programa será

Calcular Com Ciclomáticoplexdade

Computando matematicamente,

  • V(G) = 9 – 7 + 2 = 4
  • V(G) = 3 + 1 = 4 (os nós de condição são 1,2 e 3 nós)
  • Conjunto Base – Um conjunto de possíveis caminhos de execução de um programa
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

Propriedades do Ciclomático complexdade

Following são as propriedades do Cyclomatic complexidade:

  1. V (G) é o número máximo de caminhos independentes no gráfico
  2. V(G) >=1
  3. G terá um caminho se V (G) = 1
  4. Minimizar complexdade para 10

Como essa métrica é útil para testes de software?

O teste do caminho básico é um dos brancos box técnica e garante a execução de pelo menos uma instrução durante o teste. Ele verifica cada caminho linearmente independente através do programa, que significa número de casos de teste, será equivalente ao ciclomático complexdo programa.

Esta métrica é útil devido às propriedades do Cyclomatic complexcidade (M) –

  1. M pode ser o número de casos de teste para obter cobertura de filial (limite superior)
  2. M pode ser o número de caminhos através dos gráficos. (Limite inferior)

Considere este exemplo -

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

Ciclomático ComplexA capacidade para este programa será 8-7+2=3.

Como com.plexity foi calculado como 3, três casos de teste são necessários para a cobertura completa do caminho para o exemplo acima.

Passos a serem seguidos:

O seguintewing etapas devem ser seguidas para calcular o Cyclomatic complexprojeto de dados e casos de teste.

Passo 1 – Construção de gráfico com nós e arestas do código

Passo 2 – Identificação de caminhos independentes

Passo 3 – Ciclomático Complexcálculo de capacidade

Passo 4 – Desenho de Casos de Teste

Uma vez formado o conjunto básico, CASOS DE TESTE deve ser escrito para executar todos os caminhos.

Mais sobre V (G)

Ciclomático complexA capacidade pode ser calculada manualmente se o programa for pequeno. Ferramentas automatizadas precisam ser usadas se o programa for muitoplex pois isso envolve mais gráficos de fluxo. Baseado em complexnúmero de dados, a equipe pode concluir sobre as ações que precisam ser tomadas para medir.

Following tabela fornece visão geral sobre o complexnúmero de identidade e significado correspondente de v (G):

ComplexNúmero da cidade Significado
1-10 Código estruturado e bem escrito

Alta testabilidade

Custo e esforço são menores

10-20 Complex Code

Testabilidade média

Custo e esforço são médios

20-40 Muito com.plex Code

Baixa testabilidade

Custo e esforço são altos

> 40 Nem um pouco testável

Custo e esforço muito altos

Ferramentas para Cyclomatic Complexcálculo de capacidade:

Muitas ferramentas estão disponíveis para determinar o complexda aplicação. Alguns complexferramentas de cálculo de qualidade são usadas para tecnologias específicas. ComplexA qualidade pode ser encontrada pelo número de pontos de decisão em um programa. Os pontos de decisão são instruções if, for, for-each, while, do, catch, case em um código-fonte.

Exemplos de ferramentas são

  • OCLint – Analisador de código estático para C e linguagens relacionadas
  • Suplemento Reflector – Métricas de código para montagens .NET
  • Métricas – Encontre métricas em Java aplicativos relacionados

Usos do Cyclomatic Complexidade:

Ciclomático Complexpode ser muito útil em

  • Ajuda desenvolvedores e testadores a determinar execuções de caminhos independentes
  • Os desenvolvedores podem garantir que todos os caminhos foram testados pelo menos uma vez
  • Ajuda-nos a focar mais nos caminhos descobertos
  • Melhore a cobertura do código em Engenharia de Software
  • Avalie o risco associado ao aplicativo ou programa
  • Usar essas métricas no início do ciclo reduz mais riscos do programa

Conclusão

Ciclomático Complexidade é uma métrica de software útil para aplicações estruturadas ou Branco Box ensaio. É usado principalmente para avaliar complexqualidade de um programa. Se os pontos de decisão forem maiores, então complexa qualidade do programa é maior. Se o programa tiver alta comunicaçãoplexnúmero de qualidade, então a probabilidade de erro é alta com o aumento do tempo para manutenção e solução de problemas.