Erste Schritte Glass-Box-Testing ->Bedingungsüberdeckung

Foxtrot

Mitglied
Hallo liebes Forum!

Ich bereite mich langsam mal auf die kommenden Klausuren vor und stehe beim Glass-Box-Testing irgendwie auf dem Schlauch. Während den Vorlesungen dachte ich, dass ich es verstanden habe, aber jetzt bei den Übungsaufgaben siehts anders aus.

Wie geht am sinnvollsten vor, wenn man folgenden Beispiel-Code "testen" möchte. Ich habe mich für die Tabellenform entschieden und schon mal angefangen:

Java:
public boolean isLenaGerckesBirthday(int d, int m, int y) {
if (d != 29 || m != 2 || y <= 1988) {
return false ;
}
if (y % 4 == 0) {
     if (y%100==0&&y%400==0) {
           return true ;
     } else {
     if (y%100==0&&y%400 != 0) {
           return false ;
        }
       }
return true ;
}
return false ;
}


Aufrufe in Tabelle:
(siehe Anhang)


Problem(e):
Muss ich bei "covered lines" nur die lines angeben, welche auch betroffen sind?
Wie schließe ich "unnötige" Testfälle aus?

Hoffentlich hat jemand eine Idee. Komme den ganzen Tag schon nicht klar damit :(

LG und vielen Dank schon mal!
 

Anhänge

  • 1.jpg
    1.jpg
    138,7 KB · Aufrufe: 41

pacao

Neues Mitglied
"Muss ich bei "covered lines" nur die lines angeben, welche auch betroffen sind?"
Soweit ich weis alle Lines die durchlaufen werden mit deinem Test.

"Wie schließe ich "unnötige" Testfälle aus?"

Unnötige Testfälle? gibt es solche?

Beim White(Glas-)boxtest geht es ja darum dass du statt wie beim Blackboxtest die Funktion genauer betrachten kannst.
D.h. du kannst die Testeingaben auf die Funktion anpassen.
Weiter ist es wichtig welche Überdeckung du erreichen willst.
Bsp.:
Glasbox.PNG
Dies ist ein einfaches Beispiel um zu sehen wieviele Test benötigt werden um den Verschiedenen Überdeckungsgrade zu erfüllen. Qualitätskriterien: https://de.wikipedia.org/wiki/White-Box-Test

IF1: a==3
IF2: b>=0||c>0

Anweisungsüberdeckung: IF1= false, IF2=false
Zweigüberdeckung: IF1=true, IF2=true
Termüberdeckung: IF1=true, IF2=true; IF1=false, IF2=false
Pfadüberdeckung: IF1= true, IF2=true; IF1=false, IF2=false; IF1=true, IF2=false; IF1=false, IF2=true;

zusätzlich natürlich die Test damit die Funktion failed. Im bsp.: a=0, b=4, c=-2 (Division durch 0 da IF2 ein oder.)

Hoffe ich konnte dir weiterhelfen ist bei mir schon ein Weilchen her XD
 
Zuletzt bearbeitet:

Ähnliche Java Themen


Oben