OOPM1718 Übungswoche 06 (18.12-24.12.17)

Zielsetzung für die Übung

  • Glassbox-Testing
    • Anweisungsabdeckung
    • Zweigüberdeckung
    • Bedingungsüberdeckung
  • Blackbox-Testing
    • Bestimmung von
      • Normalfällen
      • Grenzfällen
      • Fehlerfällen

Gegeben ist die Methode foo. Erzielen Sie mit möglichst wenigen Aufrufen eine Bedingungsüberdeckung.

    public void foo(int x, int y){
        if (x < 0 && y < 0){      (1)
            return;
        }
        int a = x + y;
        int b = x - y;
        int c = 0;
        if (x > y) {             (2)
            c = a + b;
        } else {
            c = a - b;
        }
        if(a > 0 && b < 0){     (3)
            a = 2*a;
        } else {
            if(c > x){             (4)
                b = 2*b;                    
            } else {
                b = b-2;
            }

        }
        c -= 3;
    }

Mit folgenden Aufrufen hätten wir eine Bedingungsüberdeckung:

foo(-1,-1)    (1a true     1b true)
foo(1,2)      (1a false    1b false 2 false    3a true     3b true)
foo(1,-3)     (1a false    1b true  2 true     3a false    3b false    4 true)
foo(0,0)      (1a false    1b false 2 false    3a false    3b false    4 false)

Gegeben ist die Spezifikation von Substring aus der Klasse String. Ermitteln Sie Normal-, Grenz- und Fehlerfälle.

substring(int beginIndex, int endIndex)

Returns a string that is a substring of this string. The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex-beginIndex.
Examples:

 "hamburger".substring(4, 8) returns "urge"
 "smiles".substring(1, 5) returns "mile"

Parameters:
    beginIndex the beginning index, inclusive.
    endIndex the ending index, exclusive.
Returns:
    the specified substring.
Throws:
IndexOutOfBoundsException - if the beginIndex is negative, or endIndex is larger than the length of this String object, or beginIndex is larger than endIndex.
Normalfälle
"hamburger".substring(4, 8)
"hamburger".substring(3, 7)
"haus".substring(1, 3)

Grenzfälle
"hamburger".substring(0, 4)
"hamburger".substring(4, 9)
"hamburger".substring(0, 0)
"hamburger".substring(2, 2)
"hamburger".substring(9, 9)
"hamburger".substring(0, 9)
"".substring(0, 0)
"a".substring(0, 1)
"a".substring(0, 0)

Fehlerfälle
"hamburger".substring(-1, 8)
"hamburger".substring(8, 4)
"hamburger".substring(8, -1)
"hamburger".substring(4, 10)
evtl. auch:
String s = null;
s.substring(2, 8)

Zielsetzung für das Programmierpraktikum

  • Blackbox-Testing
    • JUnit4-Tests