Zum Hauptinhalt springen

Test, Analyse und Verifikation von Software

Aus der Arbeit der Fachgruppe TAV der GI

Herausgegeben von
Monika Müllerburg, Andreas Spillner und Peter Liggesmeyer

Themen

  • Testen objektorientierter Programme
  • Werkzeugunterstützung
  • Prozeßbewertung und -verbesserung
  • Ökonomischer Einsatz von Resourcen

Das Buch spricht aktuelle Themen der Software-Qualitätssicherung an. Schwerpunkt ist das Testen objektorientierter Programme. Weitere Themen sind Werkzeugunterstützung für das Testen im Kleinen und für die statische Analyse sowie Zertifizierung nach der DIN ISO 9001-Norm und Software-Prozeß-Assessment als Grundlage für Prozeßbewertung und -verbesserung. Schließlich werden unter dem Aspekt ökonomischer Einsatz von Ressourcen Verwendung von im Testetat verfügbaren Mitteln sowie Wirksamkeit und Wirtschaftlichkeit von Inspektionen diskutiert. Die ausgewählten Aufsätze repräsentieren aktuelle Diskussionen in der Fachgruppe Test, Analyse und Verifikation von Software (TAV) der Gesellschaft für Informatik (GI). Bei der Auswahl wurde bewußt eine Mischung aus grundlegenden Arbeiten und Erfahrungsberichten aus der Praxis hergestellt.

Bibliographische Angaben

Müllerburg, M.; Spillner, A.; Liggesmeyer, P. (Hrsg.). Test, Analyse, und Verifikation von Software; aus der Arbeit der Fachruppe 2.1.7 Test, Analyse, und Verifikation von Software (TAV) der Gesellschaft für Informatik (GI) München, Wien: Oldenbourg, 1996. GMD Berichte : Nr. 260 ISBN 3-486-23845-0

Vorwort der Herausgeber

Das Testen von Software ist weiterhin eine Herausforderung sowohl für die tägliche praktische Arbeit als auch für die Forschung. Testen ist aber nur ein Aspekt der Software-Qualitätssicherung. Die Qualitätskontrolle hat weiter an Bedeutung gewonnen, da immer mehr Firmen ihre Produkte mit Hilfe von Zulieferern realisieren, trotzdem aber in Gänze dafür verantwortlich sind. Fragen der sinnvollen Überprüfung gelieferter Software unter Beachtung ökonomischer Gesichtspunkte stehen im Vordergrund. So sind nicht mehr ausschließlich Test-, Analyse- und Verifikationsverfahren Diskussionsgegenstand, sondern auch Managementaspekte, zum Beispiel die Verteilung der verfügbaren Ressourcen, sowie Prozeßbewertung und -verbesserung.

Da die Qualität eines Produkts wesentlich vom Entwicklungsprozeß abhängt, haben beide, Produzenten und Kunden, Interesse daran, daß dieser Prozeß Mindestanforderungen erfüllt. Heute sind viele der großen Softwareproduzenten nach ISO 9000 zertifiziert. Wichtiger aber ist, daß durch eine Untersuchung und Bewertung des Entwicklungsprozesses eine gezielte Prozeßverbesserung möglich wird. Assessment -Verfahren, etwa auf der Basis des Capability Maturity Model (CMM) vom Software Engineering Institute (SEI) in Pittsburgh, erlauben, Schwächen und Stärken im Entwicklungprozeß zu identifizieren und bieten damit eine geeignete Grundlage für erfolgversprechende Maßnahmen zur Prozeßverbesserung.

Da es nicht darum gehen kann, so viel wie möglich zu prüfen, sondern nur darum, mit den beschränkt verfügbaren Ressourcen möglichst viel zu erreichen, ist von großem Interesse, wie wirksam und wirtschaftlich die Prüfverfahren sind und wie die verfügbaren Kapazitäten möglichst günstig auf besonders risikoreiche Softwareteile verteilt werden können.

Ein aktueller Interessenschwerpunkt beim Testen ist die Objektorientierung. Da sich objektorientierte Vorgehensweisen bei der Softwareerstellung immer mehr verbreiten, stellt sich die Frage, ob für objektorientierte Programme herkömmliche Prüfverfahren übernommen werden können oder ob andere Verfahren zu entwickeln sind.

Für alle Prüfungen ist eine angemessene Werkzeugunterstützung wichtig. Dies gilt insbesondere für das Testen. Für wirksames und wirtschaftliches Testen ist eine möglichst weitgehende Automatisierung unabdingbare Voraussetzung, da manuelles Testen nicht nur sehr aufwendig sondern auch unzuverlässig ist.

Die für dieses Buch ausgewählten Beiträge repräsentieren aktuelle Diskussionen in der Fachgruppe Test, Analyse und Verifikation von Software der Gesellschaft für Informatik (GI). Die Fachgruppe ist 1995 aus dem gleichnamigen, 1991 gegründeten Arbeitskreis der Fachgruppe Software Engineering hervorgegangen. Bei den Arbeitstreffen, die zweimal im Jahr stattfinden, wird über Ergebnisse aus der täglichen Arbeit berichtet, es werden praktische Erfahrungen ausgetauscht, neue Ideen vorgestellt und aktuelle Entwicklungen diskutiert. Die Gruppe ist außerordentlich aktiv. Es gibt Arbeitsgruppen, die sich regelmäßig auch außerhalb der Fachgruppentreffen zusammensetzen, zum Beispiel zu den Themen: Testen in der Praxis, Testen objektorientierter Software und Prüfen von technischen Softwaresystemen.

Um die Diskussionen der Gruppe einer breiteren Öffentlichkeit zugänglich zu machen, werden sie in verschiedenen Formen publiziert.

  • Kurzfassungen zu den Vorträgen erscheinen regelmäßig in den GI-Softwaretechnik-Trends.
  • Ein erster Band mit ausgewählten, ausgearbeiteten Beiträgen der beiden ersten Teffen wurde 1992 von P. Liggesmeyer, H.M. Sneed und A. Spillner in der Reihe Informatik aktuell im Springer-Verlag herausgegeben. Themen waren Klassifizierung von PrüfverfahrenWerkzeuge zur TestunterstützungTesten großer Softwaresystemeformale Ansätze zur Softwareprüfung und Testen objektorientierter Software.
  • Die folgenden Beiträge wurden 1995 in einem Themenheft des Software Quality Journal veröffentlicht (London: Chapmann & Hall; Band 4, Heft 4, Dezember) und erscheinen deshalb nicht in diesem Buch:
  • Costs and benefits of early defect detection (R. van Megen und D.M. Meyerhoff),
  • A set of complexity metrics for guiding the software test process (P. Liggesmeyer),
  • Test criteria and coverage measures for software integration testing (A. Spillner),
  • Systematic testing and formal verification to validate reactive programs (M. Müllerburg, L. Holenderski, O. Maffeïs, A. Merceron und M. Morley) und
  • Using formal specifications to support software testing (H.-M. Hörcher und J. Paleska.)


Der vorliegende Band enthält ausgewählte Beiträge der letzten Treffen, die sich folgenden Themen zuordnen lassen:

  • Testen objektorientierter Programme,
  • Werkzeugunterstützung,
  • Prozeßbewertung und -verbesserung und
  • ökonomischer Einsatz von Ressourcen.


Das Testen objektorientierter Programme wird aus unterschiedlichen Blickwinkeln betrachtet: Anforderungen an den Test beim Einfügen neuer Klassen in eine Bibliothek wiederverwendbarer Klassen, Test von Client-Server-Anwendungen in der öffentlichen Verwaltung, Erfahrungen mit dem Testen von C++ Programmen, Testunterstützung durch vordefinierte Klassen, die Testverfahren implementieren, sowie Probleme beim Testen paralleler objektorientierter Programme und beim Konformitätstest von objektorientierten Datenbanken.

Zum Thema Werkzeugunterstützung werden zwei Werkzeugsysteme für den Unit-Test vorgestellt, und es wird über Erfahrungen mit einem Werkzeug der statischen Analyse von 4GL Sprachen berichtet.

Aus dem Bereich Prozeßbewertung und -verbesserung werden Assessment-Verfahren vorstellt und deren Vor- und Nachteile diskutiert, und es wird über Erfahrungen mit der Zertifizierung nach ISO 9001 sowie über deren Wirkung auf das vorhandene Quality Management (QM) System berichtet.

Unter dem Aspekt ökonomischer Einsatz von Ressourcen wird die Wirksamkeit und Wirtschaftlichkeit von Inspektionen untersucht, und es wird ein Verfahren beschrieben, das - auf der Basis von Schätzungen des Fehlerrisikos - den Testaufwand möglichst günstig auf die einzelnen Programm-Funktionen verteilt.

Danken möchten wir an dieser Stelle den Autoren für ihre Bereitschaft, neben dem Vortrag auf den Treffen der Fachgruppe auch eine schriftliche Langfassung ihres Beitrags anzufertigen. Unser Dank gilt auch der GMD für die Unterstützung bei der Erstellung des Bandes.

Inhaltsverzeichnis

Vorwort Monika MüllerburgAndreas Spillner und Peter Liggesmeyer

Testen objektorientierter Programme

  1. Objektorientiertes Testen und Wiederverwendbarkeit. 
    Jan Overbeck
  2. Ein objektorientiertes Testverfahren.
    Harry M. Sneed
  3. Testen von OO-Programmen aus der Sicht der Praxis.
    Ute Pelkmann
  4. Ein Applikationsrahmen zur flexiblen Automatisierung von Klassentests.
    Peter Rüppel
  5. Ansätze zur Analyse objektorientierter paralleler Systeme.
    Matthias Besch
  6. Systematische Definition von Testfällen für den Konformitätstest von strukturell objektorientierten Datenbanksystemen am Beispiel des PCTE-OMS.
    Bernd Sonderkötter

Werkzeugunterstützung

  1. Das Testsystem TESSY zur Unterstützung von systematischen Software-Tests.
    Joachim Wegener und Roman Pitschinetz
  2. Das DST-Unit Testbed zur automatisierten Durchführung von Unit-Tests.
    Hans-Martin Hörcher
  3. Erfahrungen mit der werkzeuggestützten statischen Analyse in einer 4GL-Umgebung.
    Horst Pohlmann

Prozeßbewertung und -verbesserung

  1. Die Bewertung und Verbesserung von Software-Entwicklungsprozessen mit Assessments.
    Peter Liggesmeyer
  2. Ein Erfahrungsbericht zur DIN ISO 9001 Zertifizierung.
    Siegfried Zopf

Ökonomischer Einsatz von Ressourcen

  1. Effektivität und Effizienz von Software Inspektionen.
    Markus Thaler und Matthias Utesch
  2. Risikogesteuerte Aufteilung von Softwaretestkapazitäten.
    Walter J. Gutjahr

Herausgeber

Autor/Letzte Änderung

Monika Müllerburg, SET, August 1996, last modification: 29 Nov. 1996