Sonntag, 14. Februar 2016

Musterlösung zur Aufgabe 7 Äquivalenzklassen

Anbei finden Sie eine mögliche Aufstellung der Äquivalenzklassen für die Aufgabe 7 aus der Beispiel Klausur. Zu jeder Klasse muss im nächsten Schritt ein Repräsentant gewählt werden.

knr:
gÄK1_01 = [100001 ... 999999]
gÄK1_02 = NULL

uÄK1_03 = [-MAX_LONG ... 100000]
uÄK1_04 = [1 000 000 ... MAX_LONG]

vorname:
gÄK2_01 = NULL
gÄK2_02 = [length(0) ... length(12)]

uÄK2_03 = [length() > 12]

nachname:
gÄK3_01 = [length(1) ... length(14)]

uÄK3_02 = NULL
uÄK3_03 = Empty
uÄK3_04 = [length() > 14]

typ:
gÄK4_01 = [0, 1, 9]

uÄK4_02 = NULL
uÄK4_03 = [-MAX_INT ... -1]
uÄK4_04 = [2 ... 8]
uÄK4_05 = [10... MAX_INT]

Schritt 2: Anbei die gewählten Repräsentanten für die einzelnen Klassen.

knr:
gÄK1_01 = [100001 ... 999999]              R = 100001
gÄK1_02 = NULL                                   R = NULL

uÄK1_03 = [-MAX_LONG ... 100000]        R = 100000
uÄK1_04 = [1 000 000 ... MAX_LONG]     R = 1 000 000

vorname
gÄK2_01 = NULL                                            R = NULL
gÄK2_02 = [length(0) ... length(12)]                R = „ABC“

uÄK2_03 = [length() > 12]                               R = „123456789ABCD“

nachname
gÄK3_01 = [length(1) ... length(14)]             R = „DEF“

uÄK3_02 = NULL                                            R = NULL
uÄK3_03 = Empty                                            R = „“
uÄK3_04 = [length() > 14]                               R = „123456789ABCDEF“

typ
gÄK3_01 = [0, 1, 9]                                          R = 1

uÄK3_02 = NULL                                            R = NULL
uÄK3_03 = [-MAX_INT ... -1]                        R = -1
uÄK3_04 = [2 ... 8]                                           R = 2
uÄK3_05 = [10... MAX_INT]                          R = 11

Schritt 3: Nun können die Positiv-Testfälle abgeleitet werden:

1. P-Testfall
knr = 100001
vorname = NULL
nachname = „DEF“
typ = 1

Nachbedingung:
Kunde wurde gespeichert und wird mit den entsprechenden Werten als Objekt zurückgeliefert.

2. P-Testfall
knr = NULL
vorname = „ABC“
nachname = „DEF“
typ = 1

Nachbedingung:
Kunde wurde gespeichert und wird mit den entsprechenden Werten als Objekt zurückgeliefert.

Schritt 4: Aus den ungültigen Klassen können die Negativen-Testfälle abgeleitet werden:

1. N-Testfall
knr = 100000
vorname = NULL
nachname = „DEF“
typ = 1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

2. N-Testfall
knr = 1 000 000
vorname = NULL
nachname = „DEF“
typ = 1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

3. N-Testfall
knr = 100001
vorname = „123456789ABCD“
nachname = „DEF“
typ = 1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

4. N-Testfall
knr = 100001
vorname = NULL
nachname = NULL
typ = 1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

5. N-Testfall
knr = 100001
vorname = NULL
nachname = „“
typ = 1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

6. N-Testfall
knr = 100001
vorname = NULL
nachname = „123456789ABCDEF“
typ = 1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

7. N-Testfall
knr = 100001
vorname = NULL
nachname = „DEF“
typ = NULL

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

8. N-Testfall
knr = 100001
vorname = NULL
nachname = „DEF“
typ = -1

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

9. N-Testfall
knr = 100001
vorname = NULL
nachname = „DEF“
typ = 2

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

10. N-Testfall
knr = 100001
vorname = NULL
nachname = „DEF“
typ = 11

Nachbedingung:
Operation wirft eine Ausnahme vom Typ IllegalArgumentException.

Samstag, 30. Januar 2016

Landkarte Software-Qualitätssicherung (Mindmap)

Anbei finden Sie eine Mindmap, als Landkarte der Themen bzw. Begrifflichkeiten die Sie für die Prüfung sich anschauen sollten.

Download Mindmap

Beispiel Aufgaben Klausur Software-Qualitätssicherung

Anbei finden zur Vorbereitung auf die Klausur einige Beispiel-Aufgaben. Die Klausur im WS15/16 wird andere Aufgaben umfassen, wie die angehängten Beispiele-Aufgaben. Den Aufbau der Klausur haben wir in der letzten Vorlesung besprochen.

Mittwoch, 27. Januar 2016

Testprozess Testmanagement und Testendekriterien

Download
Lernziele (Fragen zur Vorlesung)
  • Was enthält eine Testspezifikation? Wie spielt sie mit der Traceability Matrix zusammen?
  • Was enthält eine Fehlermeldung?
  • Wann ist es sinnvoll, mit dem Testen aufzuhören?
  • Welche Phasen hat der fundamentale Test-Prozess?
  • Was ist ein Fehler? Was ist ein Mangel?
  • Welche Vor- und Nachteile haben unabhängige Tester?
  • Wie sollten Fehler erfasst werden? 
  • Welche Testendekriterien kennen Sie?
Literatur
  • Andreas Spillner - Basiswissen Softwaretest - 2005

Donnerstag, 21. Januar 2016

Übung Last- und Performancetest

Schritt: 1 Einrichten der Demo in Eclipse
Laden Sie das Eclipse Projekt von hier herunter: download

Importieren Sie das Projekt mittels Gradle in Eclipse. Dazu erzeugen Sie sich die Eclipse Konfiguration über das Gradle Kommando gradlew eclipse

Schritt 2: Starten der Anwendung
Die Beispiel Anwendung kann über die Java Main Klasse “basar. BasarApplication“ gestartet werden. Anschließend kann die Web-Anwendung unter der folgenden URL aufgerufen werden http://localhost:8080/.

Schritt 3: Apache JMeter herunterladen
Laden Sie das Programm JMeter heruntern z.B über den folgenden Link
Apache JMeter Download.

Schritt 4: Aufzeichnen eines JMeter Tests für die Nutzerverwaltung
Zeichnen Sie mit JMeter einen Test für die Verwaltungsfunktion der Nutzer auf.

Schritt 5: Test durchführen
Führen Sie den JMeter Test mit unterschiedlichen Lastbedingungen aus.

Schritt 6: Test Auswertung
Werten Sie die Testergebnisse aus dem Schritt 5 mittels Excel aus.

Mittwoch, 20. Januar 2016

Weitere Testverfahren

Download Folien
Lernziele (Fragen zur Vorlesung)
  • Was verstehen Sie unter Skalierbarkeit?
  • Wie unterscheidet sich ein Performance-Test von einem Last-Test?
  • Wie kann man für ganze Webanwendungen Last simulieren?
  • Welche Ziele werden beim Stresstest verfolgt?
  • Was verstehen Sie unter Smoke-Tests?
  • Wann wird ein Wartungstest durchgeführt?
  • Welches Testziel wird beim Regressionstest verfolgt? 
  • Wie kann man die Benutzbarkeit einer Benutzeroberfläche prüfen?
  • Welche klassischen Angriffsszenarien kennen Sie?
  • Wie kann man sich gegen diese Angriffe schützen?
  • Wie kann man Anwendungen auf Security testen?
  • Was verstehen Sie unter Continuous Delivery?
Links

Donnerstag, 14. Januar 2016

Übung zum Systemtest - Zustandsbasierter Test

Schritt: 1 Einrichten der Demo in Eclipse
Laden Sie das Eclipse Projekt von hier herunter: download
Importieren Sie das Projekt mittels Gradle in Eclipse. Dazu erzeugen Sie sich die Eclipse Konfiguration über das Gradle Kommando gradlew eclipse

Schritt 2: Starten der Anwendung
Die Beispiel Anwendung kann über die Java Main Klasse “basar. BasarApplication“ gestartet werden. Anschließend kann die Web-Anwendung unter der folgenden URL aufgerufen werden http://localhost:8080/basar.html und http://localhost:8080/sellers.html

Schritt  3: Zustandsbasierter Test
Erstellen Sie für den Basar ein Zustandsdiagramm . Leiten Sie aus dem Diagramm über einen Baum die Testfälle ab.

Schritt: 4 JUnit Tests
Setzen Sie die Testfälle aus Schritt 3 mittels JUnit oder Spock um.

Schritt 5: Anbindung der Tests an die Benutzeroberfläche
Binden Sie die Testfälle aus Schritt 4 mittels WebDriver oder Geb an die Web-Oberfläche an.

Mittwoch, 13. Januar 2016

Systemtest und UI Tests

Download
Lernziele (Fragen zur Vorlesung)
  • Welche fünf spezifikationsorientierte Verfahren zur Ermittlung von Testfällen kennen Sie?
  • Wie lassen sich Oberflächen automatisiert Testen?
  • Welches Pattern sollte genutzt werden um Oberflächentests für Web-Anwendung zu strukturieren?
  • Wie kann ein Fluent Builder beim schreiben von Tests helfen?
  • Wie funktioniert das Fluent Builder Pattern?
Literatur
  • Der Systemtest. Anforderungsbasiertes Testen von Software-Systemen, Harry M. Sneed, Manfred Baumgartner, Richard Seidl - 2008
    Links

    Montag, 4. Januar 2016

    Nächste Vorlesung am 14.01.2016

    Ich wünsche Ihnen allen noch ein friedliches, gesundes und erfolgreiches Jahr 2016.

    Die nächste Vorlesung Software-Qualitätssicherung findet am Donnerstag 14.01.2016 statt. Für den Ausfall vor Weihnachten wird es einen Ersatztermin geben, diesen Termin stimmen wir am 14.01 ab.

    Viele Grüße
    Christian Baranowski