WhiteBox-Testing

JavaNoob1988

Mitglied
Guten Tag liebe Helfer,

mein Problem liegt nicht direkt in der Programmierung, allerdings liegt es im Aufgabenbereich eines Testers.
Da der Code in Java ist, habe ich dieses Forum gewählt, ich hoffe es kann mir jemand bei meinem Problem helfen.

Aufgabe:
Erstellen Sie für die nachfolgende Methode isBlank der Klasse StringUtils eine optimale Anzahl von Whitebox Tests, so dass Sie eine Boundary Interior Path Coverage von 100% erreichen. Definieren Sie jeden Testfall durch Angabe des Eingabeparameters value und der erwarteten Ergebnisse in der nachfolgenden Tabelle


Java:
/**
*Überprüft, ob der übergebene String nur Whitespace‐Zeichen enthält.
* @param value: der zu prüfende String
* @return true: falls der String nur Whitespace enthält, false sonst
*/

public static boolean isBlank(final String value){
if (value == null){
return true;
}
   for (int i = 0; i < value.length(); i++){
   char current = value.charAt(i);
          if (!Character.isSpaceChar(current) && !Character.isWhitespace(current)){
          return false;
          }
    }
   return true;
}

Hab den Code aus einem PDF-Script und musste ihn manuell formatieren, hoffe er ist gut lesbar.

Boundary Interior Pfadüberdeckung laut Script:
Boundary:
- Jede Schleife wird keinmal betreten.
- Jede Schleife wird genau einmal betreten und alle Zweige im Schleifenkörper werden durchlaufen
Interior:
Jede Schleife wird zweimal betreten und alle Zweige im Schleifenkörper werden durchlaufen

Ergebnis laut Script sind 7 Testfälle. Ich komme lediglich auf 4.

Ergebnis laut Script:

value / Ergebnis
1) null / 1) true
2) " " / 2) true
3) "\n" / 3) true
4) "\u00A0" / 4) true
5) "a" / 5) false
6) "\na" / 6) false
7) "\u00A0a" / 7) false

Wie kommt man auf 7 Testfälle?
Jede Schleife wird keinmal betreten = 1) null 1)true
Jede Schleife wird genau einmal betreten und alle Zweige... =
2) "" 2) true und 5) "a" 5) false. Somit wurden alle Pfade innerhalb der Schleife abgedeckt.

Das sind die Boundary Durchgänge. Nun der Interior-Durchgang:
Jede Schleife wird zweimal betreten und alle Zweige...
6) "\na" 6) false
Beim ersten Durchlauf kam es zu true, dann zu false, was als Ergebnis zu false führt.

Wie komme ich auf die anderen Ergebnisse? Bitte um Hilfe...
 

Ruzmanz

Top Contributor
Mit
Code:
null
wird deine Schleife nie erreicht. Zusätzlich gibt es noch den Fall, dass deine Schleife erreicht wird, aber nie betreten: Wenn die Länge des Strings negativ oder 0 ist. Negativ ist nicht möglich, also bleibt noch der Fall
Code:
isBlank("")
.

Wenn du nicht weiter kommst, solltest du dir evtl. einfach überlegen, welche Werte du intuitiv testen würdest ;)

PS: Ich glaube ich habe die Frage falsch verstanden. Dachte du suchst noch ein paar andere Testfälle. Du wolltest eigentlich wissen, wie man auf alle Testfälle kommt? Das geht mit einer Kontrollflussanalyse.
 
Zuletzt bearbeitet:

JavaNoob1988

Mitglied
Ich wollte wissen, warum es die in der Tabelle aufgelisteten 7 Testfälle gibt, da ich nur auf 4 komme.
Eine Kontrollflussanalyse / Diagramm wird für die Prüfung nicht benötigt, da der Code ziemlich einfach gehalten ist.

Trotzdem danke für die Antwort, allerdings löst sie mein Problem nicht. :(
 

Ähnliche Java Themen

Neue Themen


Oben