|
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:
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.
Hier findet Ihr die Folien zur Veranstaltung.
Achtung: Im Laufe des Semesters werden die Folien
überarbeitet, somit ändern sie sich:
[PDF]
Für die praktische Umsetzung von Tests verwenden wir das Testwerkzeug
RT-Tester. Hier gibt es eine kleine Anleitung.
- R. Binder "Testing Object-Oriented
Systems: Models, Patterns, and Tools", Addison-Wesley, 2000
- 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.
- 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.
- 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.
- C.A.R. Hoare "Communicating Sequential
Processes", Prentice Hall, 1985.
Zur Vertiefung der Untimed-CSP Theorie.
- A.W. Roscoe "The Theory and Practice of
Concurrency", Prentice Hall, 1998.
Zur Vertiefung der Untimed-CSP Theorie.
- 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.
- 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.
- 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]
- 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]
- 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]
- J. Peleska "Hardware/Software
Integration Testing for the New Airbus Aircraft Families", TestCom
2002.
- 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
- 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.
- 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.
- B. Kernighan, D. Ritchie "The C
Programming Language", 2nd Edition, Prentice-Hall, Upper Saddle
River, NJ 07458, USA
Das Standardwerk zur Programmiersprache C.
-
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
-
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?"
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 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 .
- Strukturierte Anforderungsspezifikation in Kladde, unvollständig.
- Testfälle in
Kladde, deutlich unvollständig.
- Anforderungsüberdeckungsmatrix in Kladde, genauso unvollständig.
Beispiele zu Aufgabenblatt 1, Aufgabe 4 (03.05.2004):
- Beispiele zur
Bash-Programmierung.
- Stefans erstes Bash-Skript.
- Eine Testprozedur zum
Testen von
rmdir .
- Noch eine Testprozedur,
nicht in der Übung besprochen.
- 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.
|
|