1

In der Datenflussabdeckung werden DU-Pfade verwendet, um eine Variable zu isolieren, die im gesamten Codeteil definiert und verwendet wird.Wie erreicht man den Datenfluss bei ungenutzten Variablenzuweisungen?

Wie kann ich in einem solchen Funktionsszenario Testfälle schreiben, die alle Definitionen der Variablen x abdecken?

Da es nur einen neuen Wert jedes Mal zugewiesen wird, aber nicht überall in dieser Funktion verwendet:

Function x (int y, int z) { 
    int x = 0; 
    M = y + z; 
    My_Array = [1,2,3];   
    if (0 < M < 10) 
     x = My_Array[1]; 
    else if (10 < M < 20) 
     x = My_Array[2]; 
    else 
     x = 0; 
} 
+0

Welche Sprache ist das? Gibt diese Funktion irgendetwas zurück? –

+0

Mehr wie ein Pseudocode, der auf viele Sprachen angewendet werden kann, aber im Test viel benutzt wird. Es kann ungültig sein (kein Rückgabewert) oder gibt x zurück, aber das betrifft meine Frage sowieso nicht. –

+0

Ich fragte, weil [die Rückgabe eines Wertes ist eine Verwendung] (http://stackoverflow.com/questions/32908375/data-flow-coverage-return-statement/37127193). Wie auch immer, fragst du, welche Testfälle für diesen spezifischen (Pseudo-) Code geschrieben werden oder welche Methode verwendet wird, um Testfälle für Code mit unbenutzten Definitionen zu finden? –

Antwort

1

Die Art und Weise Datenflussanalyse in Tests zu verwenden, ist zu

  • analysiert den Code
  • Wenn die Datenflussanalyse Probleme im Code gefunden hat, erstellen Sie einen idealen Datenfluss ohne diese Probleme. Schreiben Sie Tests basierend auf dem idealen Datenfluss. Die Tests werden bestanden, da wir sie auf der Grundlage einer aufgeräumten Ansicht des Codes entwerfen.
  • korrigieren Sie alle Probleme im Code, um den idealen Datenfluss zu entsprechen. Die Tests werden weiterhin bestanden, solange Sie bei der Korrektur des Codes keine Fehler machen.

Die DU-Pfadanalyse setzt voraus, dass alle Variablen definiert und dann verwendet werden. Wenn eine Variable nicht vor dem Ende des Codes verwendet wird, handelt es sich um einen Fehler im Code und wir korrigieren ihn wie oben beschrieben. Die DUK-Pfadanalyse berücksichtigt "Kills" (Orte, an denen eine Variable neu zugewiesen wird oder das Programm verlässt), betrachtet jedoch einen Kill ohne einen Fehler, der auf die gleiche Weise korrigiert werden muss.

Also, in Ihrem Beispiel beseitigen wir alle nicht verwendeten Zuordnungen und finden, dass es keinen Code mehr gibt, nichts zu testen, und die Funktion kann inline sein!