Systematisches Testen von Software



Ähnliche Dokumente
Whitebox-Tests: Allgemeines

Einsatz automatischer Testdatengenerierung im modellbasierten Test

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Qualitätsmanagement im Projekt

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

SDD System Design Document

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Internet Explorer Version 6

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Studieren- Erklärungen und Tipps

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Internet online Update (Internet Explorer)

Backup der Progress Datenbank

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Anleitung zur Datensicherung und -rücksicherung in der VR-NetWorld Software

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Microsoft Update Windows Update

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

.. für Ihre Business-Lösung

Die Invaliden-Versicherung ändert sich

Professionelle Seminare im Bereich MS-Office

Erfahrungen mit Hartz IV- Empfängern

Anleitung - Archivierung

GEVITAS Farben-Reaktionstest

1. Einführung. 2. Weitere Konten anlegen

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen

Zeichen bei Zahlen entschlüsseln

Kurzanleitung zu. von Daniel Jettka

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Spezifikation für Coaching Funktion in OpenOLAT

Adminer: Installationsanleitung

Dokumentation von Ük Modul 302


Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Inhaltserzeichnis. Datenübernahme

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

anleitung für einen 2Wire- Account im Microsoft Outlook 2007

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Gimp Kurzanleitung. Offizielle Gimp Seite:

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Inkrementelles Backup

Installation OMNIKEY 3121 USB

Programmteil Zeiterfassung für Projekt und Mitarbeiter

Word 2010 Schnellbausteine

Content Management System mit INTREXX 2002.

Protect 7 Anti-Malware Service. Dokumentation

IBIS Professional. z Dokumentation zur Dublettenprüfung

Die Online-Meetings bei den Anonymen Alkoholikern. zum Thema. Online - Meetings. Eine neue Form der Selbsthilfe?

Leichte-Sprache-Bilder

Urlaubsregel in David

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Einführung in. Logische Schaltungen

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Vorgehensweise bei Lastschriftverfahren

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Elexis-BlueEvidence-Connector

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Installation und Inbetriebnahme von Microsoft Visual C Express

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Primzahlen und RSA-Verschlüsselung

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x

Installationsanleitung Spamfilter Outlook 2003

Zwischenablage (Bilder, Texte,...)

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Anleitung zum ebanking KOMPLETT - Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

Software Engineering II (IB) Testen von Software / Modultests

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Testen Prinzipien und Methoden

Gezielt über Folien hinweg springen

Was meinen die Leute eigentlich mit: Grexit?

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Agile Software Development

Presseinformation. Ihre Maschine spricht! Mai GLAESS Software & Automation Wir machen industrielle Optimierung möglich.

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Fax einrichten auf Windows XP-PC

Abwesenheitsnotiz im Exchangeserver 2010

Welches Übersetzungsbüro passt zu mir?

Testmanagement in IT-Projekten

Windows 7 32 Bit (x32) Windows 7 64 Bit (x64)

SEP 114. Design by Contract

Proofreading Was solltest Du beim Korrekturlesen beachten?

Quickstep Server Update

Sage Start Einrichten des Kontenplans Anleitung. Ab Version

Artikel Schnittstelle über CSV

Transkript:

Programmierung Systematisches Testen von Software Markus Eckstein Systematika Information Systems GmbH Kurfürsten-Anlage 36 69115 Heidelberg markus.eckstein@systematika.com Zusammenfassung Die wichtigsten Auswirkungen des systematischen Testens sind weniger Fehler, höhere Qualität und daher bessere Softwareprodukte und somit erfolgreiche Softwareprojekte. Um Software möglichst fehlerfrei zu erstellen, haben sich einige Vorgehensweisen und Verfahren in der Praxis bewährt. Systematisches Testen hilft Ihnen, keine Bananensoftware zu erstellen, die erst beim Kunden reifen muss, sondern hochwertige Software, die die Anforderungen erfüllt. Schlüsselwörter: Softwaretesting, Modultest, Integrationstest, Systemtest, Blackbox- Whitebox-Tests, Testmetriken, Code-Coverage 1 Motivation Komplexe Softwaresysteme sind in den seltensten Fällen 100% fehlerfrei. Beispielsweise ist durch einen Softwarefehler 1996 die europäische Trägerrakete Ariane 5 nach dem Start automatisch selbstzerstört worden, da ein Fehler bei der Berechnung der Geschwindigkeit vorlag. Hierdurch entstand ein Schaden in Höhe von ca. 500 Mio.. Um Software möglichst fehlerfrei zu erstellen, haben sich einige Vorgehensweisen und Verfahren in der Praxis bewährt. Die wichtigsten Auswirkungen durch systematisches Testen sind weniger Fehler, höhere Qualität und daher bessere Softwareprodukte und somit erfolgreiche Softwareprojekte. 2 Softwaretesting 2.1 Testziele und Testanforderungen Primäres Ziel des Testvorgehens ist eine korrekte (fachliche) Funktionalität und weniger Fehler in der Software sowie die Einhaltung der Qualitätsrichtlinien wie Wartbarkeit, Modularität und das Einhalten der Layoutvorgaben. Insgesamt wird hierdurch die Qualität der Software nicht nur gesichert, sondern auch erhöht. Die Tests sollen nicht nur ihre Testziele erreichen, sondern auch ausreichend dokumentiert werden. Hilfreich sind eine Wiederholbarkeit der Tests und deren Automatisierung. Insbesondere bei der Entwicklung eines neuen Releases kann hierdurch der Testauf- 141

M. Eckstein wand verringert werden, da bestehende Tests wiederverwendet werden können oder die Grundlage der neuen Tests bilden. 2.2 Testmetriken Ungenaue und vage formulierte Testziele erschweren deren Erreichung, da ein Maßstab fehlt, der die Zielerreichung messbar macht. Hier unterstützen Testmetriken, die einerseits die exakt formulierten Testziele messbar machen und deren Erfüllung die Testphase beenden. Als Maßstäbe der Tests bieten sich folgende Metriken an: Zeit für Fehlerfinden Anzahl gefundener Fehler / Anzahl Code-Zeilen Anzahl gefundener Fehler und deren Klassifikation in leicht, mittel und schwer Meldungen im SAS-Log Überdeckungsgrad 2.2.1 Meldungen im SAS-Log Bei Meldungen im SAS-Log kann das Kriterium anstatt keine Error auch strenger definiert werden und zusätzlich gefordert werden, dass SAS-Warnings und manche SAS-Notes ebenfalls nicht auftreten dürfen. Zum Beispiel WARNING: The data set... may be incomplete.... WARNING: The variable... in the DROP, KEEP, or RENAME list has never been referenced. NOTE: Character values have been converted to numeric values at... NOTE: Invalid numeric data,... =..., at... NOTE: Missing values were generated as a result of performing an operation on missing values... 2.2.2 Überdeckungsgrad, Coverage In vielen Programmiersprachen sind Tools zur Messung der Code-Überdeckung weit verbreitet. Bei der Code-Überdeckung wird gemessen, welche Code-Teile, insbesondere Statements, Zweige oder Pfade, bei der Durchführung der Tests ausgeführt werden. Je nach Überdeckungsgrad ändert sich die Anzahl der benötigten Testfälle. 142

Programmierung An den einfachen SAS-Code if (A > B or C > D) then ERG = ok ; ergeben sich folgende mögliche Testdaten für die unterschiedlichen Überdeckungen: C 0 -Überdeckung: Alle Statements werden ausgeführt 1) A > B; C, D beliebig C 1 -Überdeckung: Alle Zweige werden ausgeführt 1) A > B; C, D beliebig 2) A < B, C < D C 2 -Überdeckung: Bedingungsteile werden variiert 1) A > B, C < D 2) A < B, C > D C 3 -Überdeckung: Alle Kombinationen der Bedingungsteile werden ausgeführt 1) A > B, C > D 2) A < B, C < D 3) A > B, C < D 4) A < B, C > D C -Überdeckung: Alle Pfade werden ausgeführt Bei diesem einfachen Beispiel entspricht dies der C 1 -Überdeckung, da nur ein Pfad existiert. Im Allgemeinen sind die Testfälle für eine vollständige C -Überdeckung sehr umfangreich. 2.3 Testarten Man kann grundsätzlich zwei Arten des Tests unterscheiden, je nachdem ob die innere Struktur des Objekts für den Tester bekannt ist oder nicht. 2.3.1 Blackbox-Test Bei dieser Testart ist die innere Struktur des Testobjekts nicht bekannt, daher wird mit dieser Testart funktionsorientiertes Testen durchgeführt. Die Testfälle werden gemäß der Funktionsbeschreibung (Spezifikation) erstellt. Methoden hierfür sind die Bildung von Äquivalenzklassen und die Grenzwertanalyse. Zusätzliche Implementierungen (Computerkriminalität) werden nicht entdeckt. Abbildung 1: Blackbox-Test 143

M. Eckstein 2.3.2 Whitebox-Test Bei dieser Testart ist die innere Struktur des Testobjekts bekannt, daher wird mit dieser Testart strukturorientiertes Testen durchgeführt. Die Testfälle werden gemäß des Kontrollflusses erstellt. Testziel hier ist die Coverage des Programms durch die Testdaten. Zusätzliche Implementierungen werden entdeckt. Da der Programmcode beim Whitebox-Test bekannt ist, gehört auch das Code-Review zu dieser Testart. Abbildung 2: Whitebox-Test 2.4 Testphasen 2.4.1 Modultest Der Modultest wird auch häufig Unittest oder Komponententest genannt. Testobjekte in dieser Testphase sind einzelne Makros und einzelne Programme. Der Modultest kann teilweise bereits während der Realisierungsphase durch den Entwickler durchgeführt werden. Der komplette Modultest sollte aber in einer getrennten Testphase durchgeführt werden. Ausgewählte Methoden des Modultests sind im Folgenden erläutert. 2.4.1.1 Code-Review Beim Code-Review liegt der Schwerpunkt auf der Einhaltung der Entwicklerrichtlinien, insbesondere der Übersichtlichkeit, Wartbarkeit und Modularität des Testobjekts. 2.4.1.2 Testfälle Mittels synthetischer Testdaten kann sowohl die fachliche Funktionalität als auch eine Überdeckung gezeigt werden. Bei der Erstellung der fachlichen Testdaten werden Äquivalenzklassen gebildet, aus deren korrekter Verarbeitung man auf die korrekte Verarbeitung ähnlicher Daten schließt. Werden die Testdaten anhand der Grenzen der Bedingungsanweisungen festgelegt, spricht man von Grenzwertanalyse. Unterstützend zu diesen beiden Teststrategien kann das Error-Guessing eingesetzt werden. Aus der Erfahrung mit bereits durchgeführten Projekten und dort vorkommenden Softwarefehlern werden solche Konstellationen konstruiert. Insgesamt sollte vor der Testdurchführung das erwartete Ergebnis des Tests festgelegt und dokumentiert werden, um anschließend leichter das tatsächliche Ergebnis des Tests beurteilen zu können. 144

Programmierung 2.4.1.3 Testdurchführung Die Testdaten werden innerhalb eines Testtreibers erstellt, der das zu testende Objekt aufruft. Beim Coverage-Test wird nicht das zu testende Objekt selbst aufgerufen, sondern eine instrumentierte Version mit gleicher Funktionalität, aber erweitert um die Möglichkeit, anschließend die Überdeckungsquote zu bestimmen. 2.4.1.4 Testauswertung und Dokumentation Entsprechend der zu Beginn festgelegten Testmetriken und der definierten Testfälle werden die Testergebnisse analysiert. Die gewählte Testmetrik ist dafür entscheidend, wie der Test zu bewerten ist. Die durchgeführten Test und Analyseergebnisse werden zur Nachvollziehbarkeit dokumentiert, meist werden auch alle notwendigen Dateien, die zu einer Wiederholung des Tests notwendig sind, archiviert. 2.4.2 Integrationstest Schwerpunkt des Integrationstests sind die internen Schnittstellen zwischen den einzelnen Programmen und die fachliche Korrektheit des Softwareprodukts. Meist werden zum reinen Nachweis der technischen Funktionalität synthetische Testdaten, zum Nachweis der fachlichen Funktionalität echte Daten verwendet. Die Erstellung der Testfälle, die Testdurchführung, die Testauswertung und Dokumentation ist analog zum Vorgehen beim Modultest. Aufgrund der meist hohen Komplexität des Softwareprodukts werden nicht alle möglichen Fälle untersucht, sondern nur diejenigen, von denen man erwartet, dass das Verhältnis zwischen Aufwand und Finden der Fehler nicht zu hoch ist. 2.4.3 Systemtests, Gesamtintegrationstest Schwerpunkt des Systemtests, auch Gesamtintegrationstest oder end-2-end-test genannt, sind die Schnittstellen zwischen den verschiedenen Softwareprodukten und deren fachlich korrektes Zusammenspiel. Meist werden echte Daten verwendet und die Systemumgebung sollte möglichst ähnlich zu der Systemumgebung der Produktion sein. 3 Fazit Systematisches Testen erhöht die Wahrscheinlichkeit, dass die erstellte Software fachlich und technisch korrekt funktioniert und den Erwartungen entspricht. Definieren Sie vor Beginn der Tests Ihre Teststrategie und Testmetriken, nur so kann sichergestellt werden, dass Sie Ihre Testziele und damit ein qualitativ hochwertiges Softwareprodukt erstellen. Testen bedeutet nicht, die Richtigkeit des Programms zu zeigen, sondern es bedeutet, Fehler zu finden. Testen ist somit eher destruktiv, im Gegensatz zur Softwareentwicklung, die eher konstruktiv ist. Aufgrund dieser grundsätzlich anderen Ausrichtung sollten die Programme von Personen getestet werden, die nicht bei der Softwareerstellung beteiligt sind. Auch wenn man, wie E.W. Dijkstra formuliert hat, Fehler nur 145

M. Eckstein aufzeigen kann, niemals deren Abwesenheit, erreichen Sie durch das systematische Testen eine höhere Qualität, so dass die von Ihnen erstellten Softwareprodukte nicht erst beim Kunden reifen müssen. 146