Universität Bremen  
  Universität Bremen FB3 TZI BISS  
  AG BS > Lehre > SoSe 2004 > Deutsch
English
 

Testautomatisierung, Sommersemester 2004

 
Vorlesung: 
Di. 10-12 Uhr MZH 7230 Prof. Dr. Jan Peleska
Übung: 
Mo. 15-17 Uhr MZH 1400 Stefan Bisanz, Aliki Tsiolakis


Auf dieser Seite werden weiterführende Informationen zur Lehrveranstaltung sowie die jeweiligen Aufgabenzettel bereitgestellt. Wir bemühen uns, die Seite so aktuell wie möglich zu halten.


Leistungsnachweise

Einen benoteten Leistungsnachweis erhaltet Ihr bei erfolgreich erbrachter Prüfungsleistung:
  • Entweder durch erfolgreiches Bearbeiten von Übungsaufgaben inkl. bestandenem Fachgespräch,
  • oder durch eine bestandene mündliche Prüfung (alias Modulprüfung).
In beiden Fällen müßt Ihr ein vorausgefülltes Formular zum Fachgespräch bzw. zur Prüfung mitbringen!


Bewertung des Tutoriums

Hier habt Ihr jetzt die Möglichkeit, das Tutorium der vergangenen Veranstaltung zu bewerten.


Informationen:


Überblick

Auf dem Gebiet der Testautomatisierung sind in den letzten Jahren erhebliche Fortschritte erzielt worden, so daß die zur Zeit in vielen Softwarehäusern noch praktizierte intuitiv-heuristische Vorgehensweise nicht mehr als "Stand der Kunst" bezeichnet werden kann. Die Problemstellung wird unterteilt in den Test sequenzieller Komponenten, bei denen Datenstrukturen und darauf operierende Algorithmen im Vordergrund stehen und in den Test reaktiver Systeme, bei denen Parallelität, Synchronisation, Timing und Steuerungsentscheidungen die größte Bedeutung haben.

In dieser Vorlesung steht der Test eingebetteter reaktiver Systeme (Hardware und Software) im Mittelpunkt. Typische "Testlinge" sind Steuerkomponenten für Stellwerke, Überwachungskomponenten für ausfallsichere Systeme und ähnliche - meist sicherheitsrelevante - Anwendungen. Wir stellen die theoretischen Grundlagen dar, welche die automatische Generierung, Durchführung und Auswertung von Tests gegen formale-Spezifikationen ermöglichen. Dabei wird gezeigt, wie diese theoretischen Ergebnisse in Werkzeugen implementiert werden. Im praktischen Teil wird die Anwendung der Theorie für den Test reaktiver Systeme demonstriert.

Aufgrund der zunehmenden Kritikalität vieler eingebetteter Systeme und der hierdurch drastisch anwachsenden Kosten für Validation, Verifikation und Test ist das Gebiet Testautomatisierung ein echter "Zukunftsmarkt". Die vorgestellten Grundlagen und praktischen Resultate sind bereits in Industrieanwendungen, u.a. mit der DASA (heute ASTRIUM), EADS Airbus, OHB, Siemens und mit South African Railways, mit sehr gutem Erfolg erprobt worden. Fast schon überflüssig zu sagen, dass unsere Bremer Arbeitsgruppe auf diesem Gebiet "Leading Edge Technology" erarbeitet hat ;-). Neben der praktischen Relevanz gibt es hier auch noch ein sehr weites Feld für Diplomarbeiten und Dissertationen.


Folien zur Vorlesung

Hier findet Ihr die Folien zur Veranstaltung. Achtung: Im Laufe des Semesters werden die Folien überarbeitet, somit ändern sie sich:
[PDF]


Testwerkzeug RT-Tester

Für die praktische Umsetzung von Tests verwenden wir das Testwerkzeug RT-Tester. Hier gibt es eine kleine Anleitung.


Literatur

  1. R. Binder "Testing Object-Oriented Systems: Models, Patterns, and Tools", Addison-Wesley, 2000
     
  2. A. Spillner, T. Linz "Basiswissen Softwaretest: Aus- und Weiterbildung zum Certified-Tester", dpunkt-Verlag, 2003.
    Das Basiswissen für diese Lehrveranstaltung wird in diesem Buch sehr gut erläutert.
     
  3. CSP-Tutorium
    Als formale Spezifikationssprache zur Beschreibung von Testspezifikationen wird eine Echtzeitvariante von CSP verwendet, dass in dem zur Verfügung gestellten CSP-Tutorium vorgestellt wird.
    [PDF]
    Für den theoretischen Hintergrund (operationelle Semantik) sei auf die Arbeit von Schneider verwiesen.
     
  4. S. Schneider "An Operational Semantics for Timed CSP", Information and Computation 116, pp. 193-213, 1995.
    Die Timed-CSP Grundlagen der Vorlesung basieren auf diesem Paper.
     
  5. C.A.R. Hoare "Communicating Sequential Processes", Prentice Hall, 1985.
    Zur Vertiefung der Untimed-CSP Theorie.
     
  6. A.W. Roscoe "The Theory and Practice of Concurrency", Prentice Hall, 1998.
    Zur Vertiefung der Untimed-CSP Theorie.
     
  7. J. Peleska und M.Siegel "Test Automation of Safety-Critical Reactive Systems", South African Computer Journal, No. 19, pp. 53-77, 1997.
    [Abstract], [ps.gz]
    Dieses Paper bildet die Grundlage der Vorlesung und enthält weitere Literaturangaben. Eine etwas ausführlichere Version mit verbesserten Beweisen findet sich in der Habilitationsschrift von Jan Peleska.
     
  8. J. Peleska"Formal Methods and the Development of Dependable Systems", Habilitationsschrift, Bericht Nr. 9612, Dezember 1996, Institut für Informatik und praktische Mathematik, Christian-Albrechts-Universität Kiel, 1997.
    [ps.gz]
    Die Version der Beweise ist identisch mit dem Tutorial FTRTFT '98. Sätze und Beweise beziehen sich nur auf Testen ohne Zeit.
     
  9. J. Peleska, P. Amthor, S. Dick, O. Meyer, M. Siegel, C. Zahlten "Testing Reactive Real-Time Systems", Tutorial, held at the FTRTFT '98. Danmark Technical University, Lyngby, 1998.
    Für die Vorlesung ist vor allem die Übersich in Part I und der sich auf Testen ohne Zeit beziehende Teil relevant. Der Bereich Echtzeit-Tests ...
    vollständiges Tutorial [ps.gz]
     
  10. J. Peleska "Formal Methods for Test Automation - Hard Real-Time Testing of Controllers for the Airbus Aircraft Family", Invited Talk. Proceedings of the Sixth Biennial World Conference on Integrated Design and Process Technology (IDPT2002), Pasadena, California, June 23-28, 2002.
    [ps]
     
  11. A.E. Haxthausen, J. Peleska "A domain specific language for railway control systems", Proceedings of the Sixth Biennial World Conference on Integrated Design and Process Technology, IDPT2002, Pasadena, California, June 23-28, 2002.
    [ps]
     
  12. J. Peleska "Hardware/Software Integration Testing for the New Airbus Aircraft Families", TestCom 2002.
     
  13. A. W. Roscoe "Model-checking CSP", in "A Classical Mind: Essays in Honour of C.A.R. Hoare", edited by A. W. Roscoe, Prentice-Hall, 1994,
    Beschreibung des Normalisierungsalgorithmus
     
  14. Tsun S. Chow "Testing Software Design Modeled by Finite-State Machines", IEEE Transactions on Software Engineering, SE-4(3), pp. 178-186, März 1978.
    Originalartikel zur W-Method.
     
  15. S. Sadeghipour "Testing Cyclic Software Components on the Basis of Formal Specifications", Verlag Dr. Kovac, Hamburg 1998, Dissertation an der TU Berlin (1998)
    Beschreibung der W-Method zur Generierung von Test-Input-Traces.
     
  16. B. Kernighan, D. Ritchie "The C Programming Language", 2nd Edition, Prentice-Hall, Upper Saddle River, NJ 07458, USA
    Das Standardwerk zur Programmiersprache C.
     
  17. T. Love "ANSI C for Programmers on UNIX Systems", http://www.eng.cam.ac.uk/help/tpl/languages/C/teaching_C/teaching_C.html
    ANSI C Tutorial
     
  18. S. Summit "comp.lang.c Frequently Asked Questions", http://www.eskimo.com/~scs/C-faq/top.html
    FAQ der Nachrichtengruppe comp.lang.c, s. insbesondere Frage 18.9: "Are there any C tutorials or other resources on the net?"
     


Aufgabenblätter

Dieser Teil wird während des Semesters dynamisch erweitert.
Blatt 1: Testen des Unix-Kommandos ln (Erzeugung von Soft- und Hard Links)
Und schon die erste Aktualisierung einer unvollständigen Aufgabenstellung: Aufgabe 4, letzte Zeile:
[PDF] rev. 1.2
Abgabe: 10. Mai 2004, im Tutorium
   
Blatt 2: Test-Suite zum Testen eines kombinatorischen Systems
[PDF] rev. 1.11 Abgabefrist ist jetzt verlängert!
Das vorbereitete Testprojekt inkl. ta-project/stubs, von 2004-05-25, 15:31 MEZ: ta-project.tgz
Beachte: Anleitung zum Auspacken.
Die geforderte Parameterüberdeckung.
Abgabe: 24. Mai 2004, im Tutorium
01. Juni 2004, in der Vorlesung
   
Blatt 3: Test-Suite zum Testen eines kombinatorischen Systems Teil 2 - Übergangsüberdeckung
[PDF] rev. 1.5
Das vorbereitete Testprojekt: ta-project2.tgz
Beachte: Aktualisierte Anleitung zum Auspacken.
Abgabe: 21. Juni 2004, im Tutorium
Elektronische Abgabe bitte nicht per e-mail, sondern über folgende Netzseite: http://www.informatik.uni-bremen.de/~alien/upload.html. Dafür eine einzelne Archivdatei verwenden!
Siehe auch: Notizen aus dem Tutorium (Aktualisiert: 14.06.2004)
   
Blatt 4: Test-Suite zum Testen eines zustandsbasierten Systems
Überarbeitete Fassung: [PDF] rev. 1.10 Der Prüfalgorithmus ist im Vergleich zu Revision 1.8 (aus dem Tutorium vom 28.06.2004) verändert, wie im Tutorium vom 05.07.2004 besprochen. (bisanz, 2004-07-05)
Siehe dazu die angepasste Beschreibung von Aufgabe 2, S. 5.
Das vorbereitete Testprojekt (Aktualisierung vom 30.06.2004): ta-project3.tgz
Der Testling ist jetzt vollständig, er bedient jetzt auch pramOn[].
Auspacken etc. wie bei Serie 3; geänderte Dateien:
  ta-project3/SUT/PLS/pls.c
  ta-project3/SUT/PLS/test.c
  ta-project3/sclib/sctimer.c
  ta-project3/sclib/sctimer.h
Abgabe: 08. Juli 2004, im MZH8210.
12. Juli 2004, im Tutorium.
Elektronische Abgabe bitte nicht per e-mail, sondern über folgende Netzseite: http://www.informatik.uni-bremen.de/~alien/upload.html. Dafür eine einzelne Archivdatei verwenden!
   


Tutorium

Beispiele zu Aufgabenblatt 1, Aufgaben 1-3 (26.04.2004):
Testen des Unix-Kommandos rmdir.
  1. Strukturierte Anforderungsspezifikation in Kladde, unvollständig.
  2. Testfälle in Kladde, deutlich unvollständig.
  3. Anforderungsüberdeckungsmatrix in Kladde, genauso unvollständig.

Beispiele zu Aufgabenblatt 1, Aufgabe 4 (03.05.2004):

  1. Beispiele zur Bash-Programmierung.
  2. Stefans erstes Bash-Skript.
  3. Eine Testprozedur zum Testen von rmdir.
  4. Noch eine Testprozedur, nicht in der Übung besprochen.
  5. Nachtrag zu Fragen aus der Übung: (1) Klammerung von Ausdrücken bei test bzw. [...]. (2) Umleitung von stderr für die Zuweisung in Variablen.

Verschiedenes aus dem Tutorium vom 17.05.2004.

Sammelsurium aus dem Tutorium vom 07.06.2004.

Erstaunliches aus dem Tutorium vom 14.06.2004. Inkl. Kodeüberdeckung und einer Handvoll C-Grundlagen. S. auch die Literaturhinweise zum Thema C-Programmierung: Kernighan & Ritchie, ANSI C Tutorial und comp.lang.c FAQ.

Nachtrag zu kombinatorischen Systemen und Primimplikanten aus dem Tutorium vom 21.06.2004.

Notizen zum Thema der zustandsbasierten PLS-Variante aus dem Tutorium vom 28.06.2004 und das interaktive Beispiel test.c zum Thema Funktionszeiger.

Weitere Notizen zum Thema der zustandsbasierten PLS-Variante aus dem Tutorium vom 05.07.2004. Auch: Feld von Funktionszeigern: arrayfp.c

Semesterrückblick sowie Erläuterungen zur W-Methode aus dem Tutorium vom 12.07.2004.


 
   
Autor: jp
 
  AG Betriebssysteme, Verteilte Systeme 
Zuletzt geändert am: 2. November 2022   Impressum