Software-Tests

Systematische Maskierung von Daten

Software gehört zu den komplexesten Werken, die je erschaffen wurden. Ihre Entwicklung ist abhängig von den sich ständig ändernden Anforderungen der Anwender, die sich Qualität, Funktionalität und Flexibilität wünschen. Um diesen Anforderungen gerecht zu werden, nehmen Software-Tests eine wachsende Sonderstellung ein.

Systematische Maskierung von Daten

„Obwohl Testverfahren so alt sind wie die Software-Entwicklung selbst, konnten sie sich erst vor kurzem als eigener Kompetenzbereich etablieren“, bekräftigt Joachim Herschmann, Product Director Test Automation bei Micro Focus. Gemeint sei ein Bereich, dem man zubilligt, echte Wettbewerbsvorteile zu sichern. „Diese neue Wahrnehmung in Verbindung mit der wachsenden Bedeutung von Software-Tests in einer Welt, die zunehmend von Software gesteuert wird, hat dazu geführt, dass Testverfahren und generell die Qualität von Software immer mehr in den Fokus rücken.“ Gleiches bestätigt auch Thomas Winkeler. Er ist Verkaufsleiter Testing im Bereich Application Management Services bei der Unternehmensberatung IBM Global Business Services. „In der Vergangenheit wurde das Testen von Anwendungen vielfach als notwendiges, aber wenig nutzbringendes Anhängsel klassischer Software-Entwicklungsprojekte gesehen. Diese Betrachtungsweise hat sich nicht zuletzt vor dem Hintergrund geändert, dass das Testen über den Lebenszyklus einer Applikation betrachtet zwischen 25 und 50 Prozent an Kosten und Zeit in Anspruch nimmt.“

Zudem hat das Testen von Anwendungen aufgrund regulatorischer Anforderungen, schnellerer Entwicklungszyklen und eines deutlich gestiegenen Qualitätsanspruchs an Komplexität und Bedeutung gewonnen. Die Konsequenz ist laut Winkeler, dass der Markt für „Testing Services“ seit einigen Jahren einem umfassenden Transformationsprozess unterliegt, wobei neue Service-Modelle, Tools und Methoden zum Einsatz kommen.

Automatisierung von Testprozessen

Bei der Software-Entwicklung selbst sind derzeit agile Methoden wie Scrum auf dem Vormarsch. „Kunden versprechen sich davon eine höhere Flexibilität bei Änderungen und somit eine stärkere Fokussierung und Sicherung von Investitionen als bei langfristigen Planungen“, weiß Werner Beckmann, Senior IT Consultant bei der Itemis AG. Gleiches bestätigt auch Martin Lochte-Holtgreven, Geschäftsführer der Consist Software Solutions GmbH: „Scrum als ein Vorgehensmodell der agilen Software-Entwicklung und ein sauberes Durchführen der einzelnen Projektphasen haben sich bewährt. Gegenüber klassischen Vorgehensmodellen bietet die agile Software-Entwicklung zusätzlich die Flexibilität, veränderte Anforderungen noch während des Projektablaufs zu berücksichtigen.“

Neben den allgemeinen Trends in der Software-Entwicklung ist laut Lochte-Holtgreven zunehmend auch ein automatisiertes Testen auf dem Vormarsch, das für eine höhere Software-Qualität sorgt, die Arbeit für die Entwickler erleichtert und spätere Support- und Wartungsaufwände verringert. „In der Vergangenheit“, ergänzt Joachim Herschmann von Micro Focus, „konzentrierten sich Qualitätssicherungsmaßnahmen meist auf den Endspurt im Entwicklungsprozess – Tests wurden erst durchgeführt, wenn die Entwicklung abgeschlossen war. Verzögerungen und Nacharbeiten waren die Folge dieses späten Testens. Durch die Automatisierung von Testprozessen steht die Qualität von Anfang an im Vordergrund, und Probleme können ausgeräumt werden, bevor ihre Behebung zu komplex oder zu teuer wird.“ Und Werner Beckmann: „Automatisierte Tests können vor allem wiederholt ausgeführt werden, was die Stabilität maßgeblich sicherstellt. Fehlentwicklungen werden so zeitnah erkennbar.“

Tester und ihre Tools

Für die Testdurchführung zeichnen meist Testspezialisten der Entwicklungs- und Fachabteilungen verantwortlich. Grob unterschieden wird hier laut Uwe Krauter, Manager Testing Services und Executive IT Specialist bei IBM Global Business Services, zwischen Technical- und Business-Testern. „Es gibt aber auch Testarchitekten, die Testumgebungen entwerfen, während Testmanager die Planung und Leitung eines Tests übernehmen. Abhängig von der Stufe führen auch ausgewählte Benutzer die Tests durch. Zudem werden diese – organisatorisch eigenständig – vermehrt von einem Test-Center oder einer -Factory übernommen.“ IBM Global Business Services setzt für seine Kunden beispielsweise immer häufiger sogenannte Test-Factory-Modelle um. „Hierbei schneiden wir aus dem Testportfolio der Kundenorganisation Bereiche heraus und wickeln diese in eigener Verantwortung in Form eines industrialisierten Managed-Service-Modells für den Kunden ab“, erläutert Thomas Winkeler.

Micro Focus kann mit dem 2009 erfolgten Kauf der QA-Sparte (Quality Assurance) von Compuware und der Übernahme von Borland eine Gesamtlösung für die Qualitätssicherung von unternehmenskritischen Applikationen anbieten. Die Lösung soll u.a. Werkzeuge für Anforderungsmanagement, Testmanagement und -automatisierung umfassen. Die Exept Software AG wiederum stellt für manuelle und automatisierte Tests beispielsweise das Automatisierungswerkzeug Expecco zur Verfügung, während es die Fabasoft Distribution GmbH nach eigenen Angaben durch die Entwicklung von App.test gelungen sei, auch GUI-Tests (Graphical User Interface) zu automatisieren und damit zu vereinfachen.

Testkriterien und -phasen

Beim Testen von Software und Applikationen stützen sich die Spezialisten auf bestimmte Kriterien. Hierzu gehören beispielsweise die Anwendbarkeit, Änderbarkeit, Effizienz, Funktionalität, Performance, Sicherheit, Übertragbarkeit, Verfügbarkeit sowie Zuverlässigkeit der zu testenden Software. „Die Kriterien und Merkmale, die eine Software erfüllen soll, sind im Standard ISO/IEC 9126 klar definiert“, hebt Joachim Herschmann hervor. „Die Gewichtung dieser Merkmale in einer Software-Anwendung ist ein unternehmensspezifisches Thema.“

Weniger unternehmensspezifisch als vielmehr generell verbreitet ist die Unterteilung eines Testprozesses in verschiedene Phasen. Den Anfang macht die Testdefinitionsphase. Andreas Bartsch, Business Development Manager bei der Exept Software AG, erläutert: „Man beginnt mit der Analyse der Anforderungen und erstellt daraus ein Testfallmodell. Dann werden die Daten für die Testmodelle definiert und daraus entsprechende Testfälle abgeleitet.“ Als zweites folgt die Ausführung. Hierbei werden die auszuführenden Testfälle ausgewählt, durchgeführt und die Resultate archiviert. Die Testresultatsanalyse bildet die dritte Phase, wie Andreas Bartsch erklärt: „Im Fehlerfall werden die Testabläufe analysiert und bewertet sowie anschließend an den zuständigen Bearbeiter mit zusätzlichen Informationen weitergeleitet.“

Keine Rückschlüsse auf Echtdaten

Um Rückschlüsse auf Personen oder Unternehmen zu vermeiden, dürfen bei Software-Tests nur mit Dummy-Daten gearbeitet werden. Joachim Herschmann bestätigt: „Originaldaten haben in der Software-Entwicklung definitiv nichts zu suchen, und zwar nicht nur beim Outsourcing von Entwicklungsprojekten, sondern generell.“ Da aber für wirklichkeitsnahe Tests realistische Daten unverzichtbar sind, führt an einer systematischen Datenmaskierung kein Weg vorbei. „Damit können Daten geliefert werden“, so Herschmann weiter, „die zwar den Originaldaten strukturell entsprechen, aber dennoch keine Rückschlüsse auf die echten Daten erlauben.“

Zur Verwendung von Echtdaten ist also eine Anonymisierung unabdingbar. Dazu gibt es laut Uwe Krauter von IBM Global Business Services bereits gängige Algorithmen und Tools, welche die Aufgabe der Anonymisierung übernehmen. Klassische Datenfelder, die anonymisiert werden müssen, seien Namen, Geburtstage, Adressen oder auch Kontodaten. Der Zeitraum wiederum, die eine Testphase letztlich in Anspruch nimmt, ist dabei von Projektinhalt, -größe und der -struktur abhängig. „Zeitlich gesehen“, so Krauter, „begleitet ein professioneller Test die gesamte Projektdauer. Schon mit Projektbeginn starten die Testplanung, die ersten Tests sowie die Überprüfung der Anforderungen.“

Unterschiedliche Toleranzgrenzen

Doch trotz umfangreicher Tests kann es immer wieder vorkommen, dass Fehler auftreten. Diese müssen entweder auf jeden Fall beseitigt werden oder sind gerade noch akzeptabel. Die Toleranzgrenze ist hierbei abhängig vom Einsatzgebiet und der Komplexität der Software. In der Luft- und Raumfahrt oder auch im medizinischen Bereich, wo ein Software-Fehler Menschenleben kosten könnte, ist die Grenze folglich sehr gering.

„Häufig auftretende Fehler betreffen sogenannte Side-Effects“, berichtet Andreas Dangl, Geschäftsführer der Fabasoft Distribution GmbH. „Dies bedeutet, dass eine Änderung an einer Stelle im Code unerwünschte bzw. unvorhergesehene Auswirkungen auf einen anderen Teil der Applikation hat.“ Die Folge von Software-Fehlern: vor allem finanzielle Schäden. „Je später ein Fehler im Software-Entwicklungsprozess entdeckt und behoben wird, umso höher ist der finanzielle Schaden“, so Andreas Dangl. „Generell gilt: Besser vorher in gute Tests investieren als im Nachhinein die Folgen beheben zu müssen.“


Statement
„Tests und insbesondere automatische Tests garantieren die Qualität einer häufig auch in mehreren Teilen und von mehreren Teams parallel entwickelten Software. Insbesondere Probleme bei unpassenden Schnittstellen können so frühzeitig aufgedeckt werden.“
Volker Brase, Software-Architekt beim Informatikunternehmen Infolab

Statement
„Software-Tests sind unumgänglich, um die Umsetzung der eigenen Qualitätsanforderungen und der des Kunden sicher zu stellen. Idealerweise sind die Maßnahmen eingebettet in ein ganzheitliches Qualitätsmanagementsystem, das eine gleich bleibend hohe Qualität während des gesamten Projektes sicherstellt.“
Lothar Stahl, Geschäftsführer der XWS Cross Wide Solutions GmbH

Statement
„In der Programmierung sind auch heute noch die klassischen Fehler wie falsche Vorzeichen, fehlende Initialisierungen, fehlerhafte Schleifenbedingungen oder nicht konsequent angepasster kopierter Programmcode mit die häufigsten Ursachen für das Fehlverhalten einer Software.“
Uwe Krauter, Manager Testing Services und Executive IT Specialist bei IBM Global Business Services

Bildquelle: © Hanquan Chen/istock.com

©2020Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok