zertifizierter Softwaretester Lernplattform mit Übungsfragen zum Thema Softwaretest

Für die if Abfrage und die while Schleife exist...

Fragen-ID

443

test

Übungsfrage

Für die if Abfrage und die while Schleife existieren jeweils voneinander unabhängige Werte. Wieviele Testfälle sind mindestens nötig um eine 100% tige Entscheidungsüberdeckung zu erreichen?

public boolean textEinfügen (Comparable text) {
  Node vater = null;
  Node kind = wurzel;  // wurzel wurde entsprechend früher definiert
  while ( null != kind ) {
    vater = kind;
    int vergleichswert = text.compareTo(kind.getElement());
    if (0 == vergleichswert) {
      return false;
    } else {
      if (vergleichswert < 0) {
        kind = kind.getLeft();
      } else {
        kind = kind.getRight();
      }
    }
  }
  if (null == vater) {
    wurzel = new Node(text);
  } else {
    if (text.compareTo(vater.getElement()) < 0) {
      vater.setLeft( new Node(text));
    } else {
      vater.setRight( new Node(text));
    }
  }
  return true;
}

wrong

Es werden zwei Testfälle benötigt.

richtig

Es werden vier Testfälle benötigt.

wrong

Es werden drei Testfälle benötigt.

wrong

Es werden fünf Testfälle benötigt.

Kommentare

Um mal das Bild hier zu korrigieren - es verwirtt etwas :-D

Meine Lösung sähe so aus - korrekt? :-)

Hallo, was ist denn deinen

Hallo, was ist denn deinen Testfall 2? Warum hast du hier ein "End"? Viele Grüße, Stefan

Testfall 2

    if (0 == vergleichswert) {
      return false;


Return false = Ende der Ausführung daher hab ich End geschrieben.

Ja, das stimmt. Nach dem

Ja, das stimmt. Nach dem return endet die Methode (Rückgabewert der Methode textEinfügen). Grüße, die Redaktion

Hilfe

Hallo zusammen, 

ich habe mich auch mal mit dem Thema befasst und komme auch zu dem Ergebnis, dass für 100% tige Entscheidungsüberdeckung nur 3 Testfälle benötigt werden.Anbei auch die Lösung dazu. Sollte es eine andere Lösung geben, bitte einmal posten.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Geht es hier rein um die Enscheidung dann sind es tatsächlich nur vier Testfälle. Und für eine 100% tige Zweigüberdeckung werden 8 Testfälle benötigt. 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Gruss und Danke

Merfar

 

 

Hallo,müsste man nicht die

Hallo,

müsste man nicht die negative Prüfung der While-Schleife als Entscheidungsausgang berücksichtigen, d.h. dass das Schleifeninnere gar nicht geprüft wird? Ggf. ist jedoch ein weiterer Schleifendurchlauf (1. Mal positive Prüfung, 2. Mal negative Prüfung des Schleifenkopfes) auch so möglich. Ich bin mir da nicht sicher. Diese Frage hier auf S. 5 schaut ähnlich aus, daher denke ich dass 4 stimmt.

Viele Grüße,

die Redaktion

Antwort 4 ist korrekt

Hallo, 

ich habe es mal mit der statischen Analyse versucht und komme nun auch auf 4 Testfälle. Danek für den Hinweis. 

Folgende Erklärung ist nun mehr als logisch und es kann von allen nachvollzogen werden. 

Erklkärung:

While Schleife positive:    //oberer teil des Code wird durchlaufen 

1.Testfall if (cmp == 0) { return false;  //restlicher Code wird dan nicht mehr durchlaufen  

2.Testfall if (cmp < 0)


While Schleife negativ:    //unterer teil des Code wird durchlaufen 

3.Testfall if (parent == null)

4.Testfall if (c.compareTo (parent.getElement ()) < 0)


Viele Grüße

Merfar

Hallo Merfar,super, dass ich

Hallo Merfar,

super, dass ich dir helfen konnte! Danke für deine Ausführungen!

Viele Grüße,

die Redaktion

Warum werden es vier Testfälle benötigt?

Wie ich sehe, wird es für 100% tige Entscheidungsüberdeckung 3 Testfälle benötigt....

Hi,wie lauten denn

Hi,

wie lauten denn diese?

Grüße, die Redaktion

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br> <p> <table> <tr> <td> <img>

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Diese Frage hat den Zweck zu testen, ob Sie ein menschlicher Benutzer sind und um automatisiertem Spam vorzubeugen.
3 + 2 =
Das einfache mathematische Problem ist zu lösen und das Ergebnis einzugeben. Z.B. muss für 1+3 der Wert 4 eingegebene werden.