Teste de fluxo de dados

Origem: Wikipédia, a enciclopédia livre.

O teste de fluxo de dados (do inglês data flow testing), é um teste de caixa-branca usado para verificação de softwares que visa exercitar caminhos do programa (executar sequências de linhas de código) com base nas definições e usos de cada variável.[1].

Definição e uso[editar | editar código-fonte]

Para realizar este teste, atribui-se um valor inteiro único para cada linha de código (normalmente, enumera-se cada linha com valores inteiros consecutivos, atribuindo o valor 1 para a primeira linha, 2 para a segunda e assim sucessivamente) e definem-se, para cada variável de interesse , os conjuntos

D() = { k : a linha k faz uma definição de }

e

U() = { k : a linha k usa a variável }.


Execução do teste[editar | editar código-fonte]

A execução do teste se dá com base nos caminhos do grafo de fluxo do programa e nos conjuntos D() e U().

Teste def-use[editar | editar código-fonte]

Um teste de fluxo de dados simples é o teste def-use: neste teste são escolhidos valores de entrada para o programa que exercitem todos os caminhos DU da variável testada. Os caminhos DU são caminhos em que passam por alguma linha na qual a variável é definida e por alguma linha em que a variável é usada.

De uma forma mais rigorosa, tenta-se executar todos os caminhos , onde cada é um comando, que tenham dos comandos e tais que D() X U().

Um pequeno refinamento neste teste elimina os caminhos em que a variável é redefinida antes de ser usada. Por exemplo, digamos que o primeiro comando, chamado de , defina a variável e o vigésimo comando, , use a variável , mas um comando intermediário, também defina , então, não é necessário exercitar um caminho para o par . Ao invés disso, executa-se apenas um teste para o caminho .

Caminhos que não contenham redefinições como no exemplo anterior, são chamados de caminhos vivos.


Referências

  1. Pressman, Roger S. (2001). Software Engineering: A practitioner's approach. [S.l.]: McGraw-Hill. ISBN 0073655783 


Ver também[editar | editar código-fonte]