Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
Testen von Softwaresystemen
|
Dr. Christoph Steindl |
Fr 10:15 - 11:45 |
T212 |
Beginn: 10.3.2000 |
Nachklausur am 13.10.2000 um 16 h im BA9908
Zuerst ein Witz
Man erzählt eine Mathematiker, einem Physiker und einem Techniker: "Alle ungeraden Zahlen sind Primzahlen."
Der Mathematiker sagt: "Das ist Blödsinn. 9 ist ungerade und trotzdem keine Primzahl."
Der Physiker sagt: "Schauen wir einmal: Drei ist eine Primzahl, 5 ist eine, 7 ist eine - das dürfte also wahr sein."
Der Techniker sagt: "Schauen wir einmal: Drei ist eine Primzahl, 5 ist eine, 7 ist eine, 9 ist eine, 11 ist eine..."
Beim Testen ist es genauso: Der Tester bekommt eine falsche Aussage ("Das Programm funktioniert.") und muss aus den unendlich vielen Möglichkeiten diejenige Eingabe auswählen, die die Aussage widerlegt.
Der Tester muss dabei den Fehler des Physikers (nicht die richtigen Werte auszuprobieren) vermeiden und den des Technikers (den richtigen Wert auszuprobieren, aber den Widerspruch nicht zu erkennen). Der Tester möchte am liebsten - wie der Mathematiker - ohne unnötigen Testaufwand das richtige Beispiel finden, das die Aussage widerlegt.
Wie man das macht, lernen Sie in dieser Lehrveranstaltung.
Organisatorisches
Diese zweistündige KV (kombinierte Lehrveranstaltung) ist ein Teil der Projektorienterten Wahlfachgruppe Komponentenbasierte Softwareentwicklung des Instituts für Praktische Informatik. Sie besteht aus 3 Teilen:
- Im ersten Teil (5 Einheiten) werden allgemeine Grundlagen und Testmethoden vorgestellt.
- Im zweiten Teil (3 Einheiten) werden in Studentenvorträgen und Gastvorträgen aus der Wirtschaft spezielle Probleme erarbeitet.
- Im dritten Teil (2 Einheiten) werden kompliziertere Methoden und diffizilere Probleme besprochen.
Hausübungen
Im Laufe des Semesters werden einige Hausübungen ausgeteilt, die auf
freiwilliger Basis durchgeführt werden und der Vertiefung und Anwendung
des Gelernten dienen. Man bekommt gemeinsam mit der Angabe auch
schon die Beispiellösung ausgeteilt, bestimmt also selbst, wieviel
Aufwand man investiert.
Unterlagen
Für jede Einheit, bei der Stoff vorgetragen wird, gibt es Vorlesungsunterlagen.
Die Unterlagen für die erste Einheit gibt es im Sekretariat zu kaufen, Restexemplare
werden auch in der ersten Einheit selbst verkauft. Später werden die Unterlagen
direkt in der Lehrveranstaltung verkauft.
Inhaltsübersicht
Kapitel 1: Grundlagen |
Testen im Software-Life-Cycle
White-Box-Testen und Black-Box-Testen
Unit-Test, Integration-Test, System-Test
|
|
Kapitel 2: Einfache Testverfahren |
Schreibtischtest, Code-Inspektion, Walkthrough, Peer-Rating
Vorgehensweise nach Myers (The Art of Software Testing)
Vorgehensweise nach Marick (The Craft of Software Testing)
|
Kapitel 3: Kontrollflusstesten |
Kontrollflussgraphen usw. |
Kapitel 4: Datenflusstesten |
Datenflussanomalien, Zustandsgraph dafür usw. |
Kapitel 5: Weitere Testverfahren |
Transaktionsflusstesten
Syntaxtesten
Logik-basiertes Testen
Zustandstesten - Testen mit endlichen Automaten
|
Kapitel 6: Regressionstesten |
Kapitel 7: Testen von OO-Software |
Probleme mit Vererbung, Polymorphismus
und dynamischer Bindung
Regressionstesten
Spezifikation und Verifizierung von Methodensequenzen
|
Kapitel 8: Program Slicing |
Kapitel 9: Alternativen zum Testen |
Personal Software Process
|
Anhang: Software Process Models |
Wasserfallmodell
Evolutionäres Modell
Transformationsmodell
Spirallenmodell
Capability Maturity Model for Software
|
Studentenvorträge
Zwei Einheiten sollen mit kurzen Vorträge von Studenten gehalten werden.
Man kann sich dadurch die Note um maximal 2 Grade verbessern. Die Vorträge
werden auf Wunsch auf Video aufgenommen und im kleinen Kreis besprochen.
Dauer der Vorträge: 15 Minuten Vortrag + 5 Minuten Diskussion. Pro
Einheit sind drei Vorträge (= 3 * 20 Minuten) + abschließende
Gruppendiskussion (inkl. Eingliederung in den bisherigen Stoff) geplant.
Ziel der Vorträge: Das Thema soll sehr objektiv dargestellt werden,
die Prinzipien sollen klar herausgearbeitet werden. Eine kritische und
vergleichende Analyse soll eine Diskussion durch Denkanstöße vorbereiten.
Das jeweilige Thema muss nicht vollständig dargestellt werden, vielmehr soll
man im Vortrag auf interessante und überraschende Punkte hinweisen. Als
Handout sollen 1-5 Mind Maps vorbereitet und ausgeteilt werden.
Studenten, die keinen Vortrag halten wollen, können das Thema schriftlich
(max. 10 Seiten) behandeln.
Finden sich keine Studenten für die Vorträge, wird in den Einheiten
weiterer Stoff behandelt.
Mögliche Themen:
- Einteilung von Fehlern ([Bei90], pp. 27-58)
- Testmetriken ([Bei90], pp. 213-242)
- Testen von Schleifen ([Bei95], pp. 70-83)
- Testen von GUIs ([Bou97], pp. 121-124)
- Testen von Web-Anwendungen
- Capture/Playback-Tools ([Bou97], pp. 307-351)
- Tools für Stress-Test und Lasttest ([Bou97], pp. 353-390)
- Testen von SQL-Datenbanken ([Bou97], pp. 415-460)
- Testen von Sicherheit ([Bou97], pp. 561-602)
- Buchpräsentation [PeR97]
- Buchpräsentation [Kit95]
- Buchpräsentation [Gar99]
- Toolpräsentation
- Tool von Sun: JavaScope usw.
- Tool von Reliable Software Technologies: DeepCover
- Tool von Compuware NuMega: TrueCoverage
- Tool von ParaSoft: Jtest
Feedback-Auswertung
Fragebogen in erster Stunde
Literatur
[Bei90] |
Boris Beizer: Software Testing Techniques (2nd edition). Thomson Computer Press, 1990. |
[Buz97] |
Tony Buzan, Barry Buzan: Das Mind- Map- Buch. Die beste Methode zur Steigerung ihres geistigen Potentials. Moderne Verlagsgesellschaft, 1997. |
[Bei95] |
Boris Beizer: Black-Box Testing. John Wiley & Sons, 1995.
|
[Bou97] |
Kelley C. Bourne: Testing Client/Server Systems. McGraw-Hill, 1997. |
[Gar99] |
Stewart Gardiner: Testing Safety-Related Software, A Practical Handbook. Springer, 1999. |
[Kit95] |
Edward. Kit: SoftwareTesting in the Real World. Addison-Wesley, 1995. |
[Ku+98] |
David C. Kung, Pei Hsia, Jerry Gao: Testing Object-Oriented Software. IEEE Computer Society, 1998. |
[Mar95] |
Brian Marick: The Craft of Software Testing. Prentice Hall, 1995. |
[McG96] |
John. D. McGregor: Testing Object-Oriented Components. Clemson University, Tutorial 9, ECOOP 96. |
[Mye97] |
Glenford J. Myers: The Art of Software Testing, John Wiley, 1979. |
[PaR89] |
Norman Parrington, Marc Roper: Understanding Software Testing. Ellis Horwood, 1989. |
[PeR97] |
William E. Perry, Randall W. Rice: Surviving the Challanges of Software Testing. Dorset House Publishing, 1997. |
Test Tools
Konferenzen
- International Symposium on Software Testing and Analysis (ISSTA)
Theory, academic, leading edge practitioners. Sponsored by ACM and ACM's SIGSOFT.
http://www.ics.uci.edu/IRUS/issta/
- International Conference on Software Engineering (ICSE)
Spring, world-wide. Technical. Primary source after ISSTA for leading edge results.
http://www.ul.ie/~icse2000/
- Quality Week (QW)
Annual, San Francisco Bay Area. Biggest Conference on Testing and QA.
Typically 700+. Many vendors. Good balance between technical/theoretical and practitioners.
Very broad base. Workshops. Sponsored by Software Research Institute
http://www.soft.com/QualWeek/QW2K/index.html
- Quality Week Europe (QWE)
is held in Brussels, Belgium in November.
http://www.soft.com/QualWeek/QWE00/index.html
- Software Testing, Analysis, and Review (STAR)
http://www.sqe.com/stareast/
http://www.sqe.com/starwest/
- QAI International Software Testing Conference
More of a tutorial/workshop than a conference. Newbie orientation.
http://www.qaiusa.com/conferences/november/
Zeitschriften
- IEEE TSE (Transactions on Software Engineering)
Monthly. The most prestigious journal for testing stuff.
- ACM TOSEM (Transactions on Software Engineering Methodology)
Quarterly. Relatively new journal (1992). Somewhat more theoretical than IEEE TSE.
- ACM SIGSOFT Software Engineering Notes (from the Special Interest Group on Software Engineering)
Monthly. Goes back to May 1976.
- ISSTA conference proceedings
Annual.
- IEEE Software
Six times a year. Rarely the latest stuff.
More like surveys and overviews once a subfield has become established.
Refereed, generally high standards. Mostly overviews, but occasionally new stuff.
- ACM Computing Surveys
Quarterly. Not specific to testing and QA, but contains the most prestigious survey articles in the field, typically only when a subfield is well established. The authors are usually authorities. Articles are long and comprehensive. When an ACM Survey on a topic appears, it usually means that the field has matured to the point where it is possible to write meaningful books.
- Communications of the ACM
Monthly. Survey articles and overviews. Sometimes (rarely) original stuff. More academic and fundational/theory oriented than IEEE Software, but generally the same level.
|