www.wikidata.de-de.nina.az
Ein Softwaretest pruft und bewertet Software auf Erfullung der fur ihren Einsatz definierten Anforderungen und misst ihre Qualitat Die gewonnenen Erkenntnisse werden zur Erkennung und Behebung von Softwarefehlern genutzt Tests wahrend der Softwareentwicklung dienen dazu die Software moglichst fehlerfrei in Betrieb zu nehmen Von diesem eine einzelne Testmassnahme bezeichnenden Begriff ist die gleich lautende Bezeichnung Test auch Testen zu unterscheiden unter der die Gesamtheit der Massnahmen zur Uberprufung der Softwarequalitat inkl Planung Vorbereitung Steuerung Durchfuhrung Dokumentation usw siehe auch Definitionen verstanden wird Den Nachweis dass keine Fehler mehr vorhanden sind kann das Softwaretesten nicht erbringen Es kann lediglich fallibilistisch feststellen dass bestimmte Testfalle erfolgreich waren Edsger W Dijkstra schrieb hierzu Program testing can be used to show the presence of bugs but never show their absence Das Testen von Programmen kann die Existenz von Fehlern zeigen aber niemals deren Nichtvorhandensein Der Grund ist dass alle Programmfunktionen und auch alle moglichen Werte in den Eingabedaten in allen ihren Kombinationen getestet werden mussten was ausser bei sehr einfachen Testobjekten praktisch nicht moglich ist Aus diesem Grund beschaftigen sich verschiedene Teststrategien und konzepte mit der Frage wie mit einer moglichst geringen Anzahl von Testfallen eine grosse Testabdeckung zu erreichen ist Pol Koomen Spillner 1 erlautern Testen wie folgt Tests sind nicht die einzige Massnahme im Qualitatsmanagement der Softwareentwicklung aber oft die letztmogliche Je spater Fehler entdeckt werden desto aufwandiger ist ihre Behebung woraus sich der Umkehrschluss ableitet Qualitat muss im ganzen Projektverlauf implementiert und kann nicht eingetestet werden Und Beim Testen in der Softwareentwicklung wird i d R eine mehr oder minder grosse Fehleranzahl als normal unterstellt oder akzeptiert Hier herrscht ein erheblicher Unterschied zur Industrie Dort werden im Prozessabschnitt Qualitatskontrolle oft nur noch in Extremsituationen Fehler erwartet Inhaltsverzeichnis 1 Definition 2 Standardisierung 3 Motivation 4 Ziele 5 Teststufen 5 1 Komponententest 5 2 Integrationstest 5 3 Systemtest 5 4 Abnahmetest 6 Testprozess Testphasen 6 1 Testplanung 6 2 Testvorbereitung 6 3 Testspezifikation 6 4 Testdurchfuhrung 6 5 Testauswertung 6 6 Testabschluss 7 Klassifikation fur Testarten 7 1 Klassifikation nach der Pruftechnik 7 1 1 Analytische Massnahmen 7 1 2 Konstruktive Massnahmen 7 1 3 Spezifikationstechniken 7 2 Klassifikation nach Art und Umfang der Testobjekte 7 3 Klassifikation nach besonderen Sichtweisen 7 3 1 Funktionale Sicht von Benutzern Anwendern 7 3 2 Softwaretechnische Zusammenhange 7 3 3 Software Qualitatsmerkmale 7 4 Weitere Klassifikationen fur Testarten 8 Weitere Teilaspekte beim Testen 8 1 Teststrategie 8 1 1 Beispiel fur Risikobasiertes Testen nach der RPI Methode 8 1 2 Erlauterungen zur Teststrategie nach ISO 25000 8 2 Dokumentation 8 3 Testautomatisierung 9 Ubersichten Zusammenhange 9 1 Begriffe beim Testen 9 2 Schnittstellen beim Testen 10 Literatur 11 Weblinks 12 EinzelnachweiseDefinition BearbeitenEs gibt unterschiedliche Definitionen fur den Softwaretest Nach ANSI IEEE Std 610 12 1990 2 ist das Testen engl Testing the process of operating a system or component under specified conditions observing or recording the results and making an evaluation of some aspects of the system or component Eine andere Definition liefert Ernst Denert 3 wonach der Test der uberprufbare und jederzeit wiederholbare Nachweis der Korrektheit eines Softwarebausteines relativ zu vorher festgelegten Anforderungen ist Eine weitergehende Definition verwenden Pol Koomen und Spillner 1 Unter Testen versteht man den Prozess des Planens der Vorbereitung und der Messung mit dem Ziel die Eigenschaften eines IT Systems festzustellen und den Unterschied zwischen dem tatsachlichen und dem erforderlichen Zustand aufzuzeigen Bemerkenswert hierbei Als Messgrosse gilt der erforderliche Zustand nicht nur die moglicherweise fehlerhafte Spezifikation Testen ist ein wesentlicher Teil im Qualitatsmanagement von Projekten der Softwareentwicklung Standardisierung BearbeitenIm September 2013 wurde die Norm ISO IEC IEEE 29119 Software Testing veroffentlicht die international erstmals viele altere nationale Normen des Softwaretestens wie z B die IEEE 829 zusammenfasst und ersetzt Die Normreihe ISO IEC 25000 erganzt die Seite des Software Engineering als Leitfaden fur die gemeinsamen Qualitatskriterien und ersetzt die Norm ISO IEC 9126 Motivation Bearbeiten Kein umfangreiches System ist fehlerfrei 4 Jedes Softwaresystem von genugender Komplexitat weist Fehler auf Diesen konnen neben vielen anderen Fehlergrunden zum Beispiel nicht bedachte Ausnahmesituationen oder nicht berucksichtigte Randbedingungen zugrunde liegen In der Softwareentwicklung wird der Test verwendet um den Verlust von Geld Zeit Menschenleben oder anderen materiellen oder immateriellen Gutern die durch mangelhafte Qualitat eines Softwaresystems verursacht werden zu minimieren 4 Durch das systematische Testen einer Software wahrend der Entwicklung konnen Fehler fruh festgestellt werden was deren Fehlerkosten nach der Rule of ten minimiert 5 Ziele BearbeitenGlobales Ziel des Softwaretestens ist das Messen der Qualitat des Softwaresystems Dabei dienen definierte Anforderungen als Prufreferenz mittels derer ggf vorhandene Fehler aufgedeckt werden ISTQB Der Wirkung von Fehlern im produktiven Betrieb wird damit vorgebeugt Ein Rahmen fur diese Anforderungen konnen die Qualitatsparameter gem ISO IEC 9126 sein denen jeweils konkrete Detailanforderungen z B zur Funktionalitat Bedienbarkeit Sicherheit usw zugeordnet werden konnen Im Besonderen ist auch die Erfullung gesetzlicher und oder vertraglicher Vorgaben nachzuweisen Die Testergebnisse die uber verschiedene Testverfahren gewonnen werden tragen zur Beurteilung der realen Qualitat der Software bei als Voraussetzung fur deren Freigabe zum operativen Betrieb Das Testen soll Vertrauen in die Qualitat der Software schaffen 1 Individuelle Testziele Da das Softwaretesten aus zahlreichen Einzelmassnahmen besteht die i d R uber mehrere Teststufen hinweg und an vielen Testobjekten ausgefuhrt werden ergeben sich individuelle Testziele fur jeden einzelnen Testfall und fur jede Teststufe wie z B Rechenfunktion X in Programm Y getestet Schnittstellentest erfolgreich Wiederinbetriebnahme getestet Lasttest erfolgreich Programm XYZ getestet usw Teststufen Bearbeiten nbsp Stufen des V ModellsDie Einordnung der Teststufen zum Teil auch Testzyklen genannt folgt gemass V Modell dem Entwicklungsstand des Systems Ihr Inhalt orientiert sich dabei an den Entwicklungsstufen von Projekten Dabei wird in jeder Teststufe rechte Seite im V gegen die Systementwurfe und Spezifikationen der zugehorigen Entwicklungsstufe linke Seite getestet d h die Testziele und Testfalle basieren auf den jeweiligen Entwicklungsergebnissen Dieses Vorgehensprinzip ist allerdings nur anwendbar wenn evtl in spateren Entwicklungsstufen vorgenommene Anderungen in den alteren Spezifikationen nachgefuhrt wurden In der Realitat werden diese Auspragungen abhangig von der Grosse und Komplexitat des Software Produkts weiter untergliedert So konnten beispielsweise die Tests fur die Entwicklung von sicherheitsrelevanten Systemen in der Transportsicherungstechnik folgendermassen untergliedert sein Komponententest auf dem Entwicklungsrechner Komponententest auf der Ziel Hardware Produkt Integrationstests Produkttest Produkt Validierungstests System Integrationstest Systemtest System Validierungstests Feldtests und Akzeptanztest Die nachfolgend beschriebenen Teststufen sind in der Praxis oft nicht scharf voneinander abgegrenzt sondern konnen abhangig von der Projektsituation fliessend oder uber zusatzliche Zwischenstufen verlaufen So konnte zum Beispiel die Abnahme des Systems auf der Grundlage von Testergebnissen Reviews Testprotokolle von Systemtests erfolgen Komponententest Bearbeiten Der Modultest auch Komponententest oder Unittest genannt ist ein Test auf der Ebene innerer abgrenzbarer Einzelteile der Software wie beispielsweise Module Unterprogramme Units oder Klassen Testziel dieser haufig durch den Softwareentwickler selbst durchgefuhrten Tests ist der Nachweis der technischen Lauffahigkeit und korrekter Teil Ergebnisse Mittels Unittests konnen im Schnitt 30 Prozent der Fehler erkannt werden 6 bei der Verwendung von testgetriebener Entwicklung 45 7 Auf Grund der Tatsache dass Unittests die Fehler bereits wahrend der Entwicklungsphase erkennen sind die durch Unittests vermiedenen Fehlerkosten gemass der Rule of 10 5 um ein Vielfaches hoher als bei spateren Teststufen was Unittests zur effizientesten Teststufe machen Integrationstest Bearbeiten Der Integrationstest bzw Interaktionstest testet die Zusammenarbeit voneinander abhangiger Komponenten Der Testschwerpunkt liegt auf den Schnittstellen der beteiligten Komponenten und soll korrekte Ergebnisse uber komplette Ablaufe hinweg nachweisen Mittels Integrationstests konnen im Schnitt 35 der Fehler erkannt werden 6 Systemtest Bearbeiten Der Systemtest ist die Teststufe bei der das gesamte System gegen die gesamten Anforderungen funktionale und nicht funktionale Anforderungen getestet wird Gewohnlich findet der Test auf einer Testumgebung statt und wird mit Testdaten durchgefuhrt Die Testumgebung soll die Produktivumgebung des Kunden simulieren d h ihr moglichst ahnlich sein In der Regel wird der Systemtest durch die realisierende Organisation durchgefuhrt Mittels Systemtests konnen im Schnitt 40 der Fehler erkannt werden 6 Abnahmetest Bearbeiten Ein Abnahmetest Verfahrenstest Akzeptanztest oder auch User Acceptance Test UAT ist das Testen der gelieferten Software durch den Kunden Der erfolgreiche Abschluss dieser Teststufe ist meist Voraussetzung fur die rechtswirksame Ubernahme der Software und deren Bezahlung Dieser Test kann unter Umstanden z B bei neuen Anwendungen bereits auf der Produktionsumgebung mit Kopien aus Echtdaten durchgefuhrt werden Besonders fur System und Abnahmetests wird das Blackbox Verfahren angewendet d h der Test orientiert sich nicht am Code der Software sondern nur am Verhalten der Software bei spezifizierten Vorgangen Eingaben des Benutzers Grenzwerte bei der Datenerfassung etc Die Anzahl der Akzeptanztests sollte sich am Umfang der Software orientieren 8 Testprozess Testphasen BearbeitenPol Koomen und Spillner 1 beschreiben im Kap 8 1 TMap ein Vorgehen nach einem Phasenmodell Sie nennen dieses Vorgehen Testprozess bestehend aus den Testphasen Testvorbereitung Testspezifikation Testdurchfuhrung und Auswertung Testabschluss Parallel sieht der Testprozess die Rahmenfunktionen Planung amp Verwaltung vor Das Vorgehen sei generisch d h es wird jeweils nach Erfordernis fur unterschiedliche Ebenen angewendet fur das Gesamtprojekt fur jede Teststufe und letztlich je Testobjekt und Testfall Bei anderen Autoren oder Instituten finden sich zum Teil andere Gruppierungen und andere Bezeichnungen die aber inhaltlich nahezu identisch sind Z B wird bei ISTQB der fundamentale Testprozess mit folgenden Hauptaktivitaten definiert 9 Testplanung und Steuerung Testanalyse und Testentwurf Testrealisierung und Testdurchfuhrung Bewertung von Endekriterien und Bericht Abschluss der Testaktivitaten Die einzelnen Aktivitaten und deren Reihenfolge die im Testprozess festgelegt fur die einzelnen Testobjekte auszufuhren sind ggf mehrfach z B bei Testwiederholung Regressionstest nennt ISTQB Testzyklus Testaktivitaten werden nach Pol Koomen und Spillner 1 rollenspezifisch zu sog Testfunktionen zusammengefasst Testen Testmanagement Methodische Unterstutzung Technische Unterstutzung Funktionale Unterstutzung Verwaltung Koordination und Beratung Anwendungsintegrator TAKT Architekt und TAKT Ingenieur bei Einsatz von Testautomatisierung TAKT Testen Automatisierung Kenntnisse Tools Diese Funktionen Rollen haben Schwerpunkte in bestimmten Testphasen sie konnen im Projekt selbst eingerichtet sein oder uber spezialisierte Organisationseinheiten einbezogen werden Personenbezogen konnen u a die folgenden Rollen beim Testen unterschieden werden Testmanager Fuhrung Der Testmanager entwickelt die Teststrategie plant die Ressourcen und dient als Ansprechperson fur Projektleitung und Management Wichtige Charakterzuge sind dabei Verlasslichkeit und Integritat Testarchitekt Testengineer Der Testengineer unterstutzt den Testmanager bei der Entwicklung der Teststrategie Zudem ist er fur die optimale Auswahl der Testmethoden und Testwerkzeuge zustandig Die Planung und Entwicklung einer projektspezifischen Testinfrastruktur liegt auch in seinem Aufgabenbereich Testanalyst Der Testanalyst bestimmt die notigen Testsszenarien indem er sie aus den Anforderungen ableitet Zudem definiert er welche Testdaten notwendig sind Testdatenverantwortlicher Der Testdatenverantwortlicher kummert sich um die Beschaffung und Aktualitat der Testdaten Er arbeitet eng mit dem Testanalyst zusammen Diese Rolle wird meist unterschatzt aber ohne die richtigen Testdaten ist die Aussage der Testfalle nutzlos Tester Fachperson Der Tester hat die Aufgabe die Tests zuverlassig und exakt auszufuhren Zudem soll er die Testergebnisse prazise und wertfrei dokumentieren Bei der Fehlersuche kann er die Testanalysten und IT Spezialisten unterstutzen Allgemein wird oft diese Rolle als Tester angesehen wobei die anderen Rollen vergessen werden Testplanung Bearbeiten Ergebnis dieser i d R parallel zur Softwareentwicklung stattfindenden Phase ist i W der Testplan Er wird fur jedes Projekt erarbeitet und soll den gesamten Testprozess definieren In TMap wird dazu ausgefuhrt Sowohl die zunehmende Bedeutung von IT Systemen fur Betriebsprozesse als auch die hohen Kosten des Testens rechtfertigen einen optimal verwaltbaren und strukturierten Testprozess Der Plan kann und soll je Teststufe aktualisiert und konkretisiert werden sodass die Einzeltests im Umfang zweckmassig und effizient ausgefuhrt werden konnen Inhalte im Testplan sollten z B folgende Aspekte sein Teststrategie Testumfang Testabdeckung Risikoabschatzung Testziele und Kriterien fur Testbeginn Testende und Testabbruch fur alle Teststufen Vorgehensweise Testarten Hilfsmittel und Werkzeuge zum Testen Dokumentation Festlegen der Art Struktur Detaillierungsgrad Testumgebung Beschreibung Testdaten allgemeine Festlegungen Testorganisation Termine Rollen alle Ressourcen Ausbildungsbedarf Testmetriken Problemmanagement Testvorbereitung Bearbeiten Aufbauend auf der Testplanung werden die dort festgelegten Sachverhalte zur operativen Nutzung vorbereitet und zur Verfugung gestellt Beispiele fur einzelne Aufgaben global und je Teststufe Bereitstellen der Dokumente der Testbasis Verfugbar machen z B Customizing von Werkzeugen fur das Testfall und Fehlermanagement Aufbauen der Testumgebung en Systeme Daten Ubernehmen der Testobjekte als Grundlage fur Testfalle aus der Entwicklungsumgebung in die Testumgebung Benutzer und Benutzerrechte anlegen Beispiele fur Vorbereitungen fur Einzeltests Transfer Bereitstellung von Testdaten bzw Eingabedaten in die Testumgebung en Testspezifikation Bearbeiten Hier werden alle Festlegungen und Vorbereitungen getroffen die erforderlich sind um einen bestimmten Testfall unterscheide logischer und konkreter Testfall ausfuhren zu konnen Beispiele fur einzelne Aktivitaten Testfallfindung und Testfalloptimierung orientiert an Testzielen und ggf Testpfad Kategorien Beschreiben je Testfall was genau ist zu testen Vorbedingungen inkl Festlegen von Abhangigkeiten zu anderen Testfallen Festlegen und Erstellen der Eingabedaten Festlegungen zum Testablauf und zur Testreihenfolge Festlegen Soll Ergebnis Bedingung en fur Test erfullt Testdurchfuhrung Bearbeiten Bei dynamischen Tests wird dazu das zu testende Programm ausgefuhrt in statischen Tests ist es Gegenstand analytischer Prufungen Beispiele fur einzelne Aktivitaten Auswahlen der zu testenden Testfalle Starten des Pruflings manuell oder automatisch Bereitstellen der Testdaten und des Ist Ergebnisses zur Auswertung Umgebungsinformationen fur den Testlauf archivieren Weitere Anmerkung Ein Testobjekt sollte nicht vom Entwickler selbst sondern von anderen wenn moglich unabhangigen Personen getestet werden Testauswertung Bearbeiten Die Ergebnisse aus durchgefuhrten Tests je Testfall werden uberpruft Dabei wird das Ist Ergebnis mit dem Soll Ergebnis verglichen und anschliessend eine Entscheidung uber das Testergebnis ok oder Fehler herbeigefuhrt Bei Fehler Klassifizierung z B nach Fehlerursache Fehlerschwere etc siehe auch Fehlerklassifizierung angemessene Fehlerbeschreibung und Erlauterung Uberleitung ins Fehlermanagement Testfall bleibt offen Bei OK Testfall gilt als erledigt Fur alle Tests Dokumentation Historisieren Archivieren von UnterlagenTestabschluss Bearbeiten Abschluss Aktivitaten finden auf allen Testebenen statt Testfall Testobjekt Teststufe Projekt Der Status zum Abschluss von Teststufen wird z B mit Hilfe von Teststatistiken dokumentiert und kommuniziert Entscheidungen sind herbeizufuhren und Unterlagen zu archivieren Grundsatzlich ist dabei zu unterscheiden nach Regel Abschluss Ziele erreicht nachste Schritte einleiten Alternativ moglich Teststufe ggf vorzeitig beenden oder unterbrechen aus diversen zu dokumentierenden Grunden in Zusammenarbeit mit dem ProjektmanagementKlassifikation fur Testarten BearbeitenIn kaum einer Disziplin der Softwareentwicklung hat sich der Komplexitat der Aufgabe Testen entsprechend eine derart grosse Vielfalt an Begriffen gebildet wie beim Softwaretest Dies trifft besonders auch fur die Bezeichnungen zu mit denen Testarten Testvarianten benannt werden Sie leiten sich in der Regel aus den unterschiedlichen Situationen ab in denen sie ausgefuhrt werden sowie aus den Testzielen auf die sie ausgerichtet sind Dadurch ergibt sich eine Vielzahl an Begriffen Dieser Vieldimensionalitat entsprechend konnen fur einen konkreten Test die Bezeichnungen mehrerer Testarten zutreffen Beispiel Ein Entwicklertest kann gleichzeitig ein dynamischer Test Blackbox Test Fehlertest Integrationstest Aquivalenzklassentest Batchtest Regressionstest etc sein In Literatur und Praxis werden diese Bezeichnungen meist nur teilweise benutzt zum Teil auch mit in Details abweichenden Bedeutungen So konnten im praktischen Einsatz bestimmte Tests zum Beispiel einfach als Funktionstest bezeichnet werden und nicht als Fehlertest Batchtest High Level Test etc Die Testeffizienz wird hierdurch nicht beeintrachtigt wenn die Tests ansonsten zweckmassig geplant und ausgefuhrt werden Durchaus im Sinn effizienter Testprozesse ist es dabei mehrere Testziele mit nur einem Testfall abzudecken z B dabei die Benutzeroberflache eine Rechenformel korrekte Wertebereichsprufungen und die Datenkonsistenz zu prufen Ein Mittel zum Verstandnis dieser Begriffsvielfalt ist die nachfolgend angewendete Klassifikation bei der Testarten nach unterschiedlichen Kriterien gegliedert dazu passende Testarten aufgefuhrt und ihre Testziele kurz erlautert werden Klassifikation nach der Pruftechnik Bearbeiten nbsp Qualitats und Testmethoden im ProjektverlaufAnalytische Massnahmen Bearbeiten Als analytische Massnahmen werden Softwaretests definiert die erst nach Erstellung des Prufgegenstandes durchgefuhrt werden konnen Liggesmeyer 10 klassifiziert diese Testmethoden folgendermassen verkurzt und z T kommentiert Statischer Test Test ohne Programmausfuhrung Review Statische Code Analyse auch Formale VerifikationDynamischer Test Test mit Programmausfuhrung Strukturorientierter Test Kontrollflussorientiert Mass fur die Uberdeckung des Kontrollflusses Anweisungs Zweig Bedingungs und Pfaduberdeckungstests Datenflussorientiert Mass fur die Uberdeckung des Datenflusses Defs Uses Kriterien Required k Tupels Test Datenkontext Uberdeckung Funktionsorientierter Test Test gegen eine Spezifikation Funktionale Aquivalenzklassenbildung Zustandsbasierter Test Ursache Wirkung Analyse z B mittels Ursache Wirkungs Diagramm Syntaxtest Transaktionsflussbasierter Test Test auf Basis von Entscheidungstabellen Positivtest versucht die Anforderungen zu verifizieren und Negativtest pruft die Robustheit einer Anwendung Diversifizierender Test Vergleich der Testergebnisse mehrerer Versionen Regressionstest Back To Back Test Mutationen Test Sonstige nicht eindeutig zuzuordnen bzw Mischformen Bereichstest bzw Domain Testing Verallgemeinerung der Aquivalenzklassenbildung Error guessing Grenzwertanalyse ZusicherungstechnikenKonstruktive Massnahmen Bearbeiten Den analytischen Massnahmen bei denen Testobjekte gepruft werden gehen die sog konstruktiven Massnahmen voraus die bereits im Verlauf der Software Erstellung zur Qualitatssicherung betrieben werden Beispiele Anforderungsmanagement Prototyping Review von Pflichtenheften Spezifikationstechniken Bearbeiten Weiterhin sind von den Pruftechniken die Spezifikationstechniken zu unterscheiden Sie bezeichnen keine Testarten mit denen Testobjekte aktiv gepruft werden sondern nur die Verfahren nach denen die Tests vorbereitet und spezifiziert werden Beispielbezeichnungen sind Aquivalenzklassentest und Uberdeckungstest Testfalle werden nach diesen Verfahren identifiziert und spezifiziert konkret uberpruft jedoch z B in einem Integrationstest Batchtest Sicherheitstest etc Klassifikation nach Art und Umfang der Testobjekte Bearbeiten Debugging fur einzelne Codeteile Uberprufen des Programmcodes unter schrittweiser oder abschnittsweiser Kontrolle und ggf Modifikation des Entwicklers Modultest Unittest oder Komponententest Testen kleinst moglicher testbarer Funktionalitaten isoliert von anderen gilt auch als eine Teststufe Integrationstest Test der Funktionalitat bei der Zusammenarbeit voneinander unabhangiger Komponenten wird auch Interoperabilitatstest genannt gilt auch als eine Teststufe Systemtest Teststufe mit Tests uber das gesamte System Schnittstellentest Testen ob die Schnittstellen zwischen sich gegenseitig aufrufenden Komponenten korrekt d h insbesondere bzgl der moglichen Parameter Kombinationen implementiert sind meist gem der Spezifikation beispielsweise mit Hilfe von Mock Objekten Batchtest Dialogtest werden Tests von Stapelprogrammen bzw Tests fur Dialogprogramme genannt Web Test Test von Internet oder Intranet Funktionen auch Browsertest genannt Hardwaretest Testen konkreter Hardwarekomponenten betreffender Last und anderer Kriterien wie Netzlast Zugriffszeit Parallelspeichertechniken etc Klassifikation nach besonderen Sichtweisen Bearbeiten Die jeweilige Testart testet Funktionale Sicht von Benutzern Anwendern Bearbeiten Geschaftsprozesstest das Zusammenwirken von Programmteilen eines Geschaftsprozesses ahnlich wie End to End Test Funktionen des Systems uber alle Schritte hinweg z B von der Benutzerschnittstelle bis zur Datenbank Verhaltenstest behaviour test die Anwendung aus der Sicht von Benutzern bei 11 werden unterschieden Featuretest oder Funktionstest eine einzelne vom Benutzer ausfuhrbare Funktion Fahigkeitstest englisch capability test ob eine bestimmte Benutzertatigkeit i Z mit den getesteten Funktionen ausgefuhrt werden kann Akzeptanztest auch User Akzeptanztest UAT ob die Software vor allem hinsichtlich ihrer Benutzeroberflache definierte Anforderungen Erwartungen erfullt Oberflachentest die Benutzerschnittstellen des Systems z B Verstandlichkeit Anordnung von Informationen Hilfefunktionen fur Dialogprogramme auch GUI Test oder UI Test genannt Softwaretechnische Zusammenhange Bearbeiten Datenkonsistenztest Auswirkung der getesteten Funktion auf die Korrektheit von Datenbestanden Testbezeichnungen Datenzyklustest Wertebereichstest Semantiktest CRUD Test Wiederinbetriebnahmetest ob ein System nach einem Abschalten oder Zusammenbruch z B ausgelost durch einen Stresstest wieder in Betrieb genommen werden kann Installationstest Routinen zur Softwareinstallation ggfs in verschiedenen Systemumgebungen z B mit verschiedener Hardware oder unterschiedlichen Betriebssystemversionen Stresstest das Verhalten eines Systems unter Ausnahmesituationen Crashtest ist ein Stresstest der versucht das System zum Absturz zu bringen Lasttest das Systemverhalten unter besonders hohen Speicher CPU o a Anforderungen Besondere Arten von Last Tests konnen Multi User Tests viele Anwender greifen auf ein System zu simuliert oder real und Stresstests sein dabei wird das System an die Grenzen der Leistungsfahigkeit gefuhrt Performance Test ob bei bestimmten Speicher und CPU Anforderungen ein korrektes Systemverhalten sichergestellt ist Rechnernetz Test das Systemverhalten in Rechnernetzen z B Verzogerungen der Datenubertragung Verhalten bei Problemen in der Datenubertragung Sicherheitstest potentielle Sicherheitslucken Software Qualitatsmerkmale Bearbeiten Aus den Qualitatsmerkmalen von Software z B gem ISO IEC 9126 die fur die meisten Testanforderungen den Rahmen bilden konnen lasst sich eine grosse Anzahl von Tests ableiten Testartbezeichnungen gemass dieser Klassifikation sind zum Beispiel Funktionaler Test bzw Funktionstest ein System in Bezug auf funktionale Anforderungsmerkmale wie Korrektheit und Vollstandigkeit Nicht funktionaler Test die nicht funktionalen Anforderungen wie z B die Sicherheit die Gebrauchstauglichkeit oder die Zuverlassigkeit eines Systems Beispiele fur konkrete Testarten hierzu sind Sicherheitstest Wiederanlauftest GUI Test Installationstest Lasttest Dabei steht nicht die Funktion der Software Was tut die Software im Vordergrund sondern ihre Funktionsweise Wie arbeitet die Software Fehlertest ob die Verarbeitung von Fehlersituationen korrekt d h wie definiert erfolgt Weitere Klassifikationen fur Testarten Bearbeiten Zeitpunkt der TestdurchfuhrungDie nach diesem Aspekt bedeutendsten und meist auch im allgemeinen Sprachgebrauch benutzten Testartbezeichnungen sind die Teststufen die mit Komponententest Integrationstest Systemtest Abnahmetest bezeichnet werden Eine Testart fur fruhe Tests ist der Alpha Test erste Entwicklertests Ein Vorbereitungstest pruft zunachst nur wesentliche Funktionen Im spateren Betatest prufen ausgewahlte Benutzer Vorabversionen der nahezu fertigen Software auf Tauglichkeit Produktionstests werden in produktionsahnlich konfigurierten Testumgebungen oder gar in der Produktionsumgebung selbst zum Teil sogar erst im produktiven Betrieb der Software nur fur unkritische Funktionen geeignet durchgefuhrt Moglicher Grund Nur die Produktionsumgebung verfugt uber bestimmte zum Testen erforderliche Komponenten Auch Test Wiederholungen gehoren zum Aspekt Testzeitpunkt Solche Tests werden Regressionstest Retest oder ahnlich genannt Indirekt mit Zeitbezug sind zu nennen Entwicklertest vor Anwendertest statisches Testen vor dynamischem Testen Zum Testen ausgewahlte methodische AnsatzeSpezielle Teststrategien SMART Testing Risk based testing Data driven Testing Exploratives Testen top down bottom up hardest first big bang Besondere Methoden sind fur Entscheidungstabellentests Use Case oder anwendungsfallbasierte Tests Zustandsubergangs zustandsbezogene Tests Aquivalenzklassentests Mutationstests gezieltes Verandern von Quelltextdetails zu Testzwecken und Pair wise Tests die Grundlage fur Testartbezeichnungen TestintensitatUnterschiedliche Grade der Testabdeckung Test Coverage bzw Code Coverage werden mit Uberdeckungstests erreicht die auf Grund der geringen Grosse der Testobjekte besonders fur Komponententests geeignet sind Testartenbezeichnungen hierzu Anweisungs C0 Test C1 Test Zweig Bedingungs und Pfaduberdeckungstest Mit Vorbereitungstests werden vorerst nur wichtige Hauptfunktionen getestet Ohne systematisch spezifizierte Testdaten falle werden Smoketests ausgefuhrt Tests bei denen lediglich ausprobiert werden soll ob das Testobjekt uberhaupt irgendetwas tut ohne abzurauchen zum Beispiel im Rahmen eines Vorbereitungstests oder auch als finale Stichprobe beim Abschluss einer Teststufe Beim Error Guessing provozieren erfahrene Tester bewusst Fehler Informationsstand uber die zu testenden Komponenten der beim Spezifizieren Durchfuhren von Tests genutzt wird Black Box Tests werden ohne Kenntnisse uber den inneren Aufbau des zu testenden Systems sondern auf der Basis von Entwicklungsdokumenten entwickelt In der Praxis werden Black Box Tests meist nicht von den Software Entwicklern sondern von fachlich orientierten Testern oder von speziellen Test Abteilungen oder Test Teams entwickelt In diese Kategorie fallen auch Anforderungstests Requirements Tests auf der Grundlage spezieller Anforderungen und stochastisches Testen statistische Informationen als Testgrundlage White Box Tests auch strukturorientierte Tests genannt werden auf Grund von Wissen uber den inneren Aufbau der zu testenden Komponente entwickelt Entwicklertests sind i d R White Box Tests wenn Entwickler und Tester dieselbe Person sind Hierbei besteht die Gefahr dass Missverstandnisse beim Entwickler zwangslaufig zu falschen Testfallen fuhren der Fehler also nicht erkannt wird Grey Box Test werden zum Teil Tests genannt bei denen eine Kombination von White und Blackbox Tests parallel praktiziert wird bzw die nur auf partiellen Codekenntnissen beruhen 12 Low Level Test High Level Test Fasst Testarten begrifflich danach zusammen ob sie auf konkrete technische Komponenten ausgerichtet sind wie Debugging White Box Test fur low Level oder aufgrund von Vorgaben zur Implementierung ausgefuhrt spezifiziert werden z B Requirementstest Anforderungstest Black Box Test fur high Level Wer fuhrt die Tests aus oder spezifiziert sie Entwicklertests Programmierertests Benutzertests Anwendertests Benutzerakzeptanztests User Acceptance Tests UAT werden von der jeweiligen Testergruppe durchgefuhrt Abnahmetests fuhren die fachlich fur die Software verantwortlichen Stellen aus Betriebstest Installationstests Wiederanlauftests Notfalltests nehmen u a auch Vertreter des Rechenzentrums vor zur Sicherstellung der Einsatzfahigkeit nach definierten Vorgaben Crowd Testing nach dem Prinzip des Crowdsourcing werden Testaufgaben an eine Menge von Usern im Internet die Crowd ausgelagert Art der SoftwaremassnahmeDiese Kategorie ist von eher untergeordneter Bedeutung aus ihr resultieren Testbegriffe wie die folgenden In Wartungsprojekten werden Wartungstests und Regressionstests ausgefuhrt dabei werden i d R bereits vorhandene Testfalle und Testdaten benutzt In Migrationsprojekten werden Migrationstests durchgefuhrt die Datenuberfuhrung und spezielle Migrationsfunktionen sind hierbei z B Testinhalte Weitere Teilaspekte beim Testen BearbeitenTeststrategie Bearbeiten Pol Koomen und Spillner beschreiben in 1 die Teststrategie als umfassenden Ansatz Eine Teststrategie ist notwendig da ein vollstandiger Test d h ein Test der alle Teile des Systems mit allen moglichen Eingabewerten unter allen Vorbedingungen uberpruft in der Praxis nicht durchfuhrbar ist Deswegen muss in der Test Planung anhand einer Risikoabschatzung festgelegt werden wie kritisch das Auftreten eines Fehlers in einem Systemteil einzuschatzen ist z B nur finanzieller Verlust oder Gefahr fur Menschenleben und wie intensiv unter Berucksichtigung der verfugbaren Ressourcen und des Budgets ein Systemteil getestet werden muss oder kann Demnach ist in der Teststrategie festzulegen welche Teile des Systems mit welcher Intensitat unter Anwendung welcher Testmethoden und Techniken unter Nutzung welcher Test Infrastruktur und in welcher Reihenfolge siehe auch Teststufen zu testen sind Sie wird vom Testmanagement im Rahmen der Testplanung erarbeitet im Testplan dokumentiert und festgelegt und als Handlungsrahmen fur das Testen durch die Testteams zu Grunde gelegt Nach einer anderen Interpretation wird Teststrategie als methodischer Ansatz verstanden nach dem das Testen angelegt wird So benennt z B ISTQB Auspragungen fur Teststrategien wie folgt top down Haupt vor Detailfunktionen testen untergeordnete Routinen werden beim Test zunachst ignoriert oder mittels Stubs simuliert bottom up Detailfunktionen zuerst testen ubergeordnete Funktionen oder Aufrufe werden mittels Testdriver simuliert hardest first Situationsbedingt das Wichtigste zuerst big bang Alles auf einmalWeitere Prinzipien und Techniken fur Teststrategien sind Risk based Testing Testprinzip nach dem die Testabdeckung an den Risiken ausgerichtet wird die in den Testobjekten fur den Fall des Nichtfindens von Fehlern eintreten konnen Data driven Testing Testtechnik mit der uber Einstellungen in den Testscripts die Datenkonstellationen gezielt geandert werden konnen um damit mehrere Testfalle hintereinander effizient testen zu konnen Testgetriebene Entwicklung SMART Testprinzip Specific Measurable Achievable Realistic time bound Keyword driven testing framework based Testing Test Automatisierung mittels Testwerkzeugen fur bestimmte Entwicklungsumgebungen Programmiersprachen Testing nach ISO IEC 25000 Die ISO IEC Norm 25000 ist ein Standard fur Qualitatskriterien sowie Bewertungsmethoden fur Software und Systeme Dementsprechend kann ein Ansatz fur eine Teststrategie auf den in dieser Norm vorhandenen Standards basieren Beispiel fur Risikobasiertes Testen nach der RPI Methode Bearbeiten Grundsatzlich ist es aus Grunden der Zeit und oder den finanziellen Mitteln niemals moglich eine Software oder Teile einer Software komplett zu testen Aus diesem Grund ist es wichtig Tests gemass der Bedeutung des zu testenden Software Bestandteils zu priorisieren Eine bewahrte Methode zur Priorisierung von Tests ist die risikobasierte Methode auch RPI Methode genannt wobei RPI fur Risiko Prioritats Index steht In der RPI Methode werden zuerst die Anforderungen zu Gruppen zugeordnet Anschliessend werden Kriterien definiert welche fur das Endprodukt von Bedeutung sind Diese Kriterien werden spater verwendet um die Anforderungsgruppen zu bewerten Nachfolgend wird auf die drei Kriterien eingegangen welche sich aus der Praxis bewahrt haben Mit den aufgezeigten Fragen soll es moglichst gut gelingen die Anforderungen zu unterscheiden womit die Bewertung ermoglicht wird Businessrelevanz Wie gross ist der Nutzen fur den die Endanwender Wie gross ist der Schaden bei Nichterfullung dieser Anforderung Wie viele Endanwender waren betroffen wenn diese Anforderung nicht erfullt wird Wie wichtig ist diese Anforderung gegenuber anderen Anforderungen Muss soll kann sie erfullt werden Auffindbarkeit Ist der Fehler bzw ein Nichterfullen der Anforderung schnell auffindbar Wird der Fehler uberhaupt bemerkt Wie wird der Fehler ersichtlich Findet jeder den Fehler oder eher Anwender welche erweitertes Wissen gegenuber dem Produkt vorweisen Komplexitat Wie komplex ist die Anforderung Wie sehr ist die Anforderungen von anderen Teilen abhangig Wie viele andere Anforderungen hangen davon ab Wie komplex ist die Umsetzung der Anforderung Sind Technologien im Einsatz welche eher einfach oder komplex sind Sobald die Anforderungen gruppiert und die Kriterien definiert wurden durchlaufen samtliche Anforderungsgruppen die drei Kriterien Die Anforderungen werden von 1 bis 3 bewertet wobei 3 dem hochsten Wert bezgl Wichtigkeit darstellt fur eine breitere Verteilung der Anforderungen kann die Skala beliebig angepasst werden Ist dies getan wird das Produkt aus den drei bewerteten Kriterien gebildet woraus sich die Wichtigkeit der Anforderungen ergibt Erlauterungen zur Teststrategie nach ISO 25000 Bearbeiten ISO 25000 definiert 8 Dimensionen 13 fur Software Qualitatsmerkmale Diese Dimensionen sind die folgenden Funktionale Eignung Ist die geforderte Funktionalitat in der Software gegeben Angemessenheit Richtigkeit Interoperabilitat Ordnungsmassigkeit Zuverlassigkeit Wie zuverlassig arbeitet die Software Reife Fehlertoleranz Wiederherstellbarkeit Benutzbarkeit Ist die Software einfach bedienbar Verstandlichkeit Erlernbarkeit Bedienbarkeit Leistungseffizienz Wie effizient arbeitet die Software Zeitverhalten Verbrauchsverhalten Wartbarkeit Wie leicht lasst sich die Software modifizieren Analysierbarkeit Modifizierbarkeit Stabilitat Prufbarkeit Anpassbarkeit Ubertragbarkeit Wie leicht lasst sich die Software auf ein anderes System portieren Anpassbarkeit Installierbarkeit Konformitat Austauschbarkeit Sicherheit Wie sicher sind unsere Daten und Programme vor nicht autorisiertem Zugriff Zugriffssicherheit Datenverschlusselung Kompatibilitat Wie kompatibel ist die Software beim Austausch und der Verarbeitung von Daten mit und von anderen Systemen Austauschbarkeit Erweiterbarkeit AbwartskompatibilitatDie Teststrategie ist auf diese 8 auf Erfahrungen und Standards basierenden Qualitatsmerkmale ausgerichtet Durch gezielt dafur erstellte Testfalle soll sichergestellt werden dass diese Kriterien von der zu testenden Software soweit relevant eingehalten unterstutzt werden Dokumentation Bearbeiten nbsp Zusammenhang der Dokumente und Verfahrensschritte laut IEEE 829Zur Testplanung gehort auch die Vorbereitung der Dokumentation Eine normierte Vorgehensweise dazu empfiehlt der Standard IEEE 829 14 15 Laut diesem Standard gehoren zu einer vollstandigen Testdokumentation folgende Unterlagen Testplan Beschreibt Umfang Vorgehensweise Terminplan Testgegenstande Testdesignspezifikation Beschreibt die im Testplan genannten Vorgehensweisen im Detail Testfallspezifikationen Beschreibt die Umgebungsbedingungen Eingaben und Ausgaben eines jeden Testfalls Testablaufspezifikationen Beschreibt in Einzelschritten wie jeder Testfall durchzufuhren ist Testobjektubertragungsbericht Protokolliert wann welche Testgegenstande an welche Tester ubergeben wurden Testprotokoll Listet chronologisch alle relevanten Vorgange bei der Testdurchfuhrung Testvorfallbericht Listet alle Ereignisse die eine weitere Untersuchung erforderlich machen Testergebnisbericht Beschreibt und bewertet die Ergebnisse aller Tests Testautomatisierung Bearbeiten Hauptartikel Testautomatisierung Insbesondere bei Tests die haufig wiederholt werden ist deren Automatisierung angeraten Dies ist vor allem bei Regressionstests und bei testgetriebener Entwicklung der Fall Daruber hinaus kommt Testautomatisierung bei manuell nicht oder nur schwer durchfuhrbaren Tests zum Einsatz z B Lasttests Durch Regressionstests wird nach Softwareanderungen meist im Zuge des System oder Abnahmetests der fehlerfreie Erhalt der bisherigen Funktionalitat uberpruft Bei der testgetriebenen Entwicklung werden die Tests im Zuge der Softwareentwicklung im Idealfall vor jeder Anderung erganzt und nach jeder Anderung ausgefuhrt Bei nicht automatisierten Tests ist in beiden Fallen der Aufwand so gross dass haufig auf die Tests verzichtet wird Ubersichten Zusammenhange Bearbeiten nbsp Begriffe und ihr ZusammenhangBegriffe beim Testen Bearbeiten Die nebenstehende Grafik zeigt Begriffe die im Kontext Testen auftreten und wie sie mit anderen Begriffen in Verbindung stehen Schnittstellen beim Testen Bearbeiten nbsp Wichtige Schnittstellen beim TestenDie Grafik zeigt die wichtigsten Schnittstellen die beim Testen auftreten Zu den von Thaller 16 genannten Partnern beim Testen wird nachfolgend beispielhaft angefuhrt was jeweils kommuniziert bzw ausgetauscht wird Projektmanagement Termin und Aufwandsrahmen Status je Testobjekt testready Dokumentationssysteme Linienmanagement und Linienabteilung Fachlicher Support Testabnahme fachliche Tester stellen Rechenzentrum Testumgebung en und Testwerkzeuge bereitstellen und betreiben Datenbankadministrator Testdatenbestande installieren laden und verwalten Konfigurations Management Testumgebung einrichten Integrieren der neuen Software Entwicklung Test Basisdokumente Pruflinge Support zum Testen Testergebnisse erortern Problem und CR Management Fehlermeldungen Ruckmeldung zum Retest Fehlerstatistik Lenkungsausschuss Entscheidungen zur Test stufen abnahme oder zum TestabbruchLiteratur BearbeitenAndreas Spillner Tilo Linz Basiswissen Softwaretest Aus und Weiterbildung zum Certified Tester Foundation Level nach ISTQB Standard 5 uberarbeitete und aktualisierte Auflage dpunkt verlag Heidelberg 2012 ISBN 978 3 86490 024 2 Harry M Sneed Manfred Baumgartner Richard Seidl Der Systemtest Von den Anforderungen zum Qualitatsnachweis 3 aktualisierte und erweiterte Auflage Carl Hanser Munchen 2011 ISBN 978 3 446 42692 4 Georg Erwin Thaller Software Test Verifikation und Validation 2 aktualisierte und erweiterte Auflage Heise Hannover 2002 ISBN 3 88229 198 2 Richard Seidl Manfred Baumgartner Thomas Bucsics Stefan Gwihs Basiswissen Testautomatisierung Konzepte Methoden und Techniken 2 aktualisierte und uberarbeitete Auflage dpunkt verlag 2015 ISBN 978 3 86490 194 2 Mario Winter Mohsen Ekssir Monfared Harry M Sneed Richard Seidl Lars Borner Der Integrationstest Von Entwurf und Architektur zur Komponenten und Systemintegration Carl Hanser 2012 ISBN 978 3 446 42564 4 Bill Laboon A Friendly Introduction to Software Testing CreateSpace Independent 2016 ISBN 978 1 5234 7737 1 Weblinks Bearbeiten nbsp Wiktionary Softwaretest Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen Glossar Testbegriffe von ISTQB Ausfuhrliche Auflistung von Testmanagement Software und Erlauterung der Management Werkzeugarten im Softwaretest Testtool Review Informations Portal uber das internationale Marktangebot im Bereich Softwaretest WerkzeugeEinzelnachweise Bearbeiten a b c d e f Martin Pol Tim Koomen Andreas Spillner Management und Optimierung des Testprozesses Ein praktischer Leitfaden fur erfolgreiches Testen von Software mit TPI und TMap 2 aktualisierte Auflage dpunkt Verlag Heidelberg 2002 ISBN 3 89864 156 2 IEEE Standard Glossary of Software Engineering Terminology IEEE doi 10 1109 ieeestd 1990 101064 ieee org abgerufen am 5 Oktober 2020 Ernst Denert Software Engineering Methodische Projektabwicklung Springer Berlin u a 1991 ISBN 3 540 53404 0 a b Andreas Spillner Tilo Linz Basiswissen Softwaretest Aus und Weiterbildung zum Certified Tester Foundation Level nach ISTQB Standard 6 Auflage dpunkt verlag Heidelberg 2019 ISBN 978 3 86490 583 4 a b Fehlerkosten 10er Regel Zehnerregel Rule of ten In SixSigmaBlackBelt de 19 Juni 2021 abgerufen am 5 April 2022 a b c Steve McConnell Code Complete A Practical Handbook of Software Construction 2 Auflage Microsoft Press 2004 ISBN 978 0 7356 1967 8 S 470 englisch 960 S Unit test Lowest Rate 15 Modal Rate 30 Highest Rate 50 Integration test Lowest Rate 25 Modal Rate 35 Highest Rate 40 System test Lowest Rate 25 Modal Rate 40 Highest Rate 55 Capers Jones Software Engineering Best Practices Lessons from Successful Projects in the Top Companies Mc Graw Hill 2010 ISBN 978 0 07 162162 5 S 660 englisch 960 S David Longstreet Test Cases amp Defects Softwaremetrics archiviert vom Original am 8 Februar 2019 abgerufen am 8 September 2022 englisch The number of acceptance test cases can be estimated by multiplying the number of function points by 1 2 ISTQB Certified Tester Foundation Level Syllabus Version 2011 1 0 1 International Software Testing Qualifications Board Abgerufen am 20 Mai 2019 Deutschsprachige Ausgabe Herausgegeben durch Austrian Testing Board German Testing Board e V amp Swiss Testing Board Kap 1 4 Peter Liggesmeyer Software Qualitat Testen Analysieren und Verifizieren von Software Spektrum Akademischer Verlag Heidelberg u a 2002 ISBN 3 8274 1118 1 S 34 Toby Clemson Testing Strategies in a Microservice Architecture In Martin Fowler 18 November 2014 abgerufen am 13 Marz 2017 englisch Tobias Weber Uni Koln Planung von Softwareprojekten Memento vom 9 August 2016 im Internet Archive White Black and Grey Box Test Dominique Portmann The Noser Way of Testing Hrsg Noser Engineering AG 7 Auflage Januar 2016 IEEE Standard for Software Test Documentation IEEE Std 829 1998 IEEE Standard for Software and System Test Documentation IEEE Std 829 2008 Georg Erwin Thaller Software Test Verifikation und Validation 2 aktualisierte und erweiterte Auflage Heise Hannover 2002 ISBN 3 88229 198 2 Abgerufen von https de wikipedia org w index php title Softwaretest amp oldid 232212036