quarta-feira, 17 de junho de 2020

Métricas Halstead Aplicadas ao Teste

O trabalho de testes, de acordo com Pressman e Maxim (2016, p. 676), pode ser baseado com base nas métricas de Halstead, podendo ser obtidas as métricas:

PL = 1/ Dou 1 / [(n1/2) x (N2/n2)]

e = V / PL ou (N1 + N2) x log2 (n1 + n2)/PL

A porcentagem de trabalho de teste global a ser dispensado a um determinado módulo k pode ser estimada com base na seguinte equação, na qual o denominador é a soma do trabalho de Halstead por todos os módulos do sistema:

Porcentagem de trabalho de teste (k) = e (k) / Ʃ e(i)

Complexidade Ciclomática

A complexidade ciclomática mede a complexidade de um determinado módulo (classe, método, função etc), com base na contagem do número de caminhos independentes que ele pode executar até o seu fim. Um caminho independente é o que apresenta pelo menos um desvio de fluxo ou um novo conjunto de comandos a serem executados.

Essa métrica parte do princípio de que, medindo a complexidade do programa, é possível saber quantos caminhos lógicos devem ser testados. Pode ser representada por um grafo de fluxo de controle, no qual os nós representam uma ou mais instruções sequenciais e os arcos orientados indicam o sentido do fluxo de controle entre as instruções. Sendo e (edges) o número de arestas e n (nodes) o número de nós, a complexidade ciclomática v(G) de um grafo pode ser calculada através da fórmula:

v(G) = e - n + 2

Um exemplo de um trecho de programa (procedimento) em pseudocódigo e seu correspondente grafo de fluxo é mostrado na figura.

Um trecho de programa e seu grafo de fluxo

Fonte: <treinaweb>.

No grafo da figura acima há 17 arestas e 13 nós. O cálculo da complexidade ciclomática é:

v(G) = e - n + 2 = 17 – 13 + 2 = 6

Mas há outra forma de fazer o cálculo da complexidade ciclomática, que implica o mesmo resultado. Considerando que R seja o número de regiões do grafo de fluxo:

v(G) = R

Observe a figura a seguir. O grafo de fluxo da figura foi demarcado com as regiões. Como são 6 regiões, v(G) continua sendo 6, como no cálculo anterior.

Grafo de fluxo com regiões do trecho de programa da figura 12

Fonte: <treinaweb>.

Nenhum comentário:

Postar um comentário