Logo

teaching

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

Testen von Software / Software Testing

Lecture, Prof. Dr.-Ing. M. Heiner, WS 2018/2019
This course will be in English.

Module
11885 Software Testing
12408 Testen von Software

latest update: December 07, 2018, at 03:46 PM

I N D E X

Target group
Summary
Objectives
Preconditions
Organisation
Zum Übungsablauf
Bewertungskriterien
References
Table of Contents - progress line
Materials - progress line
exercises

Target group

  • Students of Computer Science (Informatics) - Bachelor, Master
  • Students of Information and Media Technique (IMT) - Bachelor, Master
  • Students of Cyber Security - Compulsory Elective Module for Computer Science
  • Students of (Applied) Mathematics

Summary

  • Category: Practical Computer Science, 8 Credits
  • We start with getting to know the possibilities and limits of testing, specifically in comparison with (mathematically thorough) verification techniques.
  • Next we acquire an overview of state-of-the art methods for systematic testing of sequential software.
  • Finally, we pay attention to the special problems in systematic testing of object-oriented and concurrent software.

Objectives

  • overview of methods for systematic software testing;
  • assessment from a software engineer's point of view, supporting the selection of useful methods in a given situation;
  • some experience in dealing with (public-domain) test systems;

Preconditions

  • basic knowledge of programming (imperative, object-oriented, concurrent software)
  • basic knowledge in software engineering

Organisation

Remark

According to the General Examination and Study Regulations, students have to register for modules (without a limited number of participants) during the first 3 weeks of the lecture period of each semester. You can withdraw your registration until one week before beginning of the examination period in which the examination is offered for the first time. Both steps are handled via the Online Portal. Please note, if you registered for a module, you are automatically registered for the corresponding exam.

The course consists of two blocks of Lectures and one block Exercise per week.

Lectures

fridays, 3. and 4. block (11.30 - 14.45), VG1c, R 2.01;

Exercises

mondays, VG 1c, R 2.01;

responsible assistant: Jacek [period] Chodak [snail] b-tu [period] de

The exercises will be managed using Moodle; please register for the course: 11885 Software Testing | WiSe 18/19

Exam

Written, without any auxiliary means; you will need paper and pencil, nothing else.
15.02.2019, 11.30-13.30 (the Friday in the first week of the exam period February 2019)

Bewertungskriterien

Die Prüfung zur Lehrveranstaltung (zum Erwerb der Credits) setzt sich aus den folgenden zwei Bestandteilen zusammen:
(1) Übungsteilnahme UND
(2) Klausur/Prüfungsgespräch zum Abschluß der Lehrveranstaltung.
Es müssen beide Kriterien erfolgreich absolviert werden.

(1) Übungsteilnahme

Die Übungen finden in Seminarform statt. Die Übungen setzen sich v. a. mit Testwerkzeugen auseinander! Die erfolgreiche Übungsteilnahme erfordert eine kritischen Auseinandersetzung, Präsentation und Ausarbeitung einer Kurzdokumentation eines Testwerkzeuges sowie kontinuierliche aktive Teilnahme an allen Präsentationen. Vergabe und Absprache erfolgt in der ersten Übung (2. Vorlesungswoche).

(2) Klausur/Prüfungsgespräch

Eine Klausur wird mit erfolgreich (bestanden) bewertet, wenn mindestens 50 % der maximalen Punktzahl erreicht werden. Die Benotung erfolgt nach dem üblichen Notenspiegel. Eine Klausur wird ohne Unterlagen (d.h. auch ohne Handy) geschrieben. Wörterbücher werden bei Bedarf vom Lehrstuhl gestellt. Dauer der Klausur: 2h.

Ein Prüfungsgespräch besteht aus zwei Teilen: 1h Vorbereitungszeit + 1h mündliche Prüfung. Während dieser Zeit sind keine Unterlagen oder andere Hilfsmittel (d.h. auch kein Handy) zugelassen. Wörterbücher werden bei Bedarf vom Lehrstuhl gestellt. Ein Prüfungsgespräch wird mit erfolgreich (bestanden) bewertet, wenn mindestens 50 % der zu erwartenden Leistung gezeigt werden.

Die Entscheidung, ob die Prüfung als Klausur oder Prüfungsgespräch (also schriftlich oder mündlich) erfolgt, wird zu Beginn des Semesters (in Abhängigkeit von der Teilnehmerzahl) gefällt.

Siehe auch "Allgemeine Prüfungsmodalitäten für Diplom- und Master-Prüfungen".

Allgemeines

Ein Credit entspricht 30 Arbeitstunden (Bachelorstudienordnung, §7). Somit gilt

Vorlesung: 8 Credits = 240 Arbeitsstunden; bei 16 Wochen (15 Wochen Vorlesung + 1 Woche Prüfungszeit) macht das 15 Arbeitstunden pro Woche! Davon sind 4.5 h sogenannte Kontaktstunden, womit 10.5 Stunden pro Woche zur Vor-/Nachbereitung der Vorlesung bzw. Bearbeitung der Übungsaufgaben verbleiben.

Diese Aufwandskalkulation ist beim Verfassen der Übungsthemen berücksichtigt worden.

References

General interest

  • Balzert, Helmut:
    Lehrbuch der Software-Technik: Band 1, Software-Entwicklung;
    Spektrum Akademischer Verlag, 2001.
  • Balzert, Helmut:
    Lehrbuch der Software-Technik: Band 2, Software-Management,
    Software-Qualitätssicherung, Unternehmensmodellierung;
    Spektrum Akademischer Verlag, 1998.
  • Beizer, Boris:
    Software Testing Techniques;
    International Thomson Computer Press, 1990.
  • Beizer, Boris:
    Black-Box Testing: Techniques for Functional Testing of Software and Systems;
    Wiley & Sons, 1995.
    (and many more of the same autor)
  • Beydeda, Sami:
    The Self-Testing COTS Components Method;
    Diss. Uni Leipzig, 12/2003.
  • Binder, Robert V.:
    Testing Object-oriented Systems; Models, Patterns, and Tools;
    Addison-Wesley, 4th edition, 2003.
  • Dijkstra, E. W.:
    Notes on Structured Programming;
    Academic Press, London, 1972, pp. 1-82.
  • Ehrenberger, W.:
    Softwareverifikation, Verfahren für den Zuverlässigkeitsnachweis von Software;
    Hanser 2002.
  • Grams, T.:
    Denkfallen und Programmierfehler;
    Springer 1990.
  • Liggesmeyer, Peter:
    Software-Qualität; Testen, Analysieren und Verifizieren von Software;
    Spektrum 2002.
  • Myers, Glenford J.:
    The Art of Software Testing;
    Wiley & Sons, 1979.

    - > deutsche Fassung:
    Methodisches Testen von Programmen;
    R. Oldenbourg Verlag, 1991.
  • Riedemann,E. H.; Schippers, H.:
    Testmethoden für sequentielle und nebenläufige Software-Systeme;
    Teubner 1998.
  • Sneed, Harry M.; Winter, Mario:
    Testen objektorientierter Software;
    Das Praxishandbuch für den Test objektorientierter Client/Server-Systeme;
    Hanser 2002.
  • Sommerville, Ian:
    Software Engineering;
    Addison-Wesley, fifth Edition, 1995.
    (Hint: The latest (10th) edition was published in April 2015.)
  • Spillner, Andreas; Linz, Tilo:
    Basiswissen Softwaretest
    dpunkt.verlag GmbH, 2007.
    (Hinweis: korrespondiert zum Lehrplan "Certified Tester Foundation Level")
  • Vigenschow, Uwe:
    Objektorientiertes Testen und Testautomatisierung in der Praxis;
    dpunkt.verlag 2005

Testing of concurrent systems

  • Baumgarten, Bernd; Giessler, Alfred:
    OSI-Testmethodik und TTCN;
    GMD-Bericht Nr. 202, R. Oldenbourg Verlag, 1992.
  • Baur, Marcel Christian:
    Instrumenting Java Bytecode to replay Execution Traces of Multithreaded Programs;
    Diplomarbeit ETH Zürich, April 2003.
  • Eugster, Pascal:
    Java Virtual Machine with Rollback Procedure allowing Systematic and Exhaustive Testing og Multi-threaded Java Programs;
    Diplomarbeit ETH Zürich, April 2003.
  • Henniger, Olaf:
    Testgenerierung aus Spezifikationen in Estelle und SDL;
    Diss. BTU Cottbus 06/2002, Shaker-Verlag Aachen 2003.
  • Ulrich, Andreas W.:
    Testfallableitung und Testrealisierung in verteilten Systemen;
    Diss. BTU Cottbus, 09/1998, Shaker-Verlag, Aachen 1998.

Links of interest

Table of Contents

Remark: all keywords given below represent exam-related aspects.

1. Introduction

sw quality management, basic terminology; validation vs testing - an overview;

2. Program verification

basic ideas, pros/cons:
program proofs: logical reasoning over assertions (pre/post conditions), Hoare formulas;
model checking, temporale logics;

3. Static Testing (Human Testing)

basic ideas, pros/cons;
variants: Fagan inspection, walkthrough, desktop testing, reviews;
typical examples of test criteria (checklists);
demarcation from static analysis;

4. White Box Testing (implementation-oriented testing, developer testing)

control structure based testing: control structure graphs for sequential programs, Petri nets for concurrent programs;
coverage measures: node, branch, path coverage;
several condition coverages: simple/multiple/minimal multiple condition coverage, MC/DC;
code instrumentation for coverage measures;
data flow based testing: defs/uses techniques;

5. Black Box Testing (specification-oriented testing, user testing)

basic techniques:
equivalence classes, boundary values, error guessing;
model-based techniques:
cause/effect graphs and their evaluation by help of Petri net T-invariants;

--------------------- progress line --------------------- progress line ---------------------

automata, syntax diagrams and their coverage with Euler paths;

6. Testen objektorientierter Software

die neuen Anforderungen: (Datenkapselung), Vererbung, Polymorphie und dynamisches Binden;
Klassentestansätze: Klassentestreiber, Build-in-Testen, Zusicherungstesten, Zustandstesten; Modalität einer Klasse und deren Einfluss auf den Testansatz;
Testen von Vererbungshierarchien, Design/Testing by Contract, Testen polymorpher Operationen;

7. Testen nebenläufiger Software

drei Probleme: Komplexität des Zustandsraumes, Sondeneffekt, Nichtdeterminismus;
dedizierte Verfahren/Tools: (1) Instant Replay, allgemein; (2) Java Replay, (3) Java Milestone/Rollback , (4) Verifsoft;
Vergleich zu statischen Verfahren;

8. Zusammenfassung

vier einfache Testendekriterien: Mutations-Testen, Fehlereinpflanzungsmethode, Testen durch zwei unabhängige Teams, Belinsky-Moranda-Methode;

9. Testen im Großen

Integrationsteststrategien: Bing-Bang, Backbone, Top-down, Bottom-up, Jo-Jo, Sandwich;
Systemtest, Ziele:: Funktion, Leistung, Benutzbarkeit, Sicherheit, Interoperabilität, Installation, Wiederinbetriebnahme; Abnahmetest;

10. Management des Testens

DIN EN ISO 9000, Normen zum Qualitätsmanagement;
DIN EN ISO 9001, Qualitätsmanagementsysteme, Anforderungen

Materials used in the lectures

The green line indicates the current progress of the lectures. Materials above the green line are released, materials below the green line are preliminary information possibly subject to changes.


1. Introduction



2. Program verification


Petri Nets

supplementary material

for more examples see

related tools

  • Snoopy - Petri net editor and animator
  • Charlie - includes (traditional) explicit CTL model checker
  • Marcie - includes symbolic CTL model checker

3. Static Testing (Human Testing)


checklists, some examples

supplementary material
  • Keynote Fagan (2001) slides,
    in M Broy, E Denert (Eds): Pioneers and Their Contributions to Software Engineering, sd&m Conference on Software Pioneers, Bonn, June 28/29, 2001
  • Riedemann (2002) Kap. 12, speziell 12.1 Informelle Analyse

4. White Box Testing


running example

supplementary material

5. Black Box Testing


cause effect graphing using Petri nets techniques slides - will be updated

Petri nets

supplementary material

--------------------- progress line --------------------- progress line ---------------------


6. Testing of object-oriented software


demo oo programm (slides, Rauh)
testen oo dreiecksprogramm (slides, Santen)
challenges of oo testing (slides)

(non/uni/quasi) modale klassen (slides, Santen)
Klassen-Kontrakte (slides, Santen)
Testen polymorpher Operationen (slides, Santen)

supplementary material
  • a kind of summary: oo testen (slides, Liggesmyeyer) (in German)

7. Testen nebenläufiger Software


countCharSystem

on the influenec of time on system behaviour

VeriSoft - the approach, download
lazy state space exploration - stubborn sets

ergänzendes Material

… the end …

Any comments or questions are welcome. Please direct them to monika [period] heiner [snail] b-tu [period] de Privacy Policy