Business Application Research Center

Experten für Business Intelligence, Analytics, Big Data, CRM und ECM

BARC-Newsletter

Testen von BI- und DWH-Systemen [Teil 3]: Testautomatisierung und -tools

Testen von BI- und DWH-Systemen [Teil 3]: Testautomatisierung und -tools

RssRss

01.04.2019

Testen von BI- und DWH-Systemen [Teil 3]: Testautomatisierung und -tools

Testen ist eine oft unbeliebte Aufgabe und wird als mühsam und aufwändig empfunden. Daher äußern viele den Wunsch, mittels Automatisierung effizienter zu werden und Aufgaben vom Menschen auf die Maschine zu übertragen. Die zentrale Voraussetzung für Automatisieren sind repetitive Tätigkeiten, das heißt, es muss ein Skaleneffekt über die Zeitachse oder die Masse möglich sein.

Skaleneffekte über die Zeitachse bedeutet, dass der gleiche Test oder die gleiche Aktivität in regelmäßigen zeitlichen Abständen wiederholt wird. Dies trifft etwa auf Regressionstests und Datenqualitätsprüfungen zu. Ähnliche Skaleneffekte werden ebenfalls bei der Bereitstellung von Testdaten erreicht.

Skaleneffekte über die Masse bedeutet, dass ähnliche oder gleiche Aktivitäten parallel ausgeführt werden. Beispiele sind Benutzbarkeitstests oder Funktionstests, die dynamisch über eine Kombination von Parametern gesteuert werden, wie entscheidungstabellen-gesteuerte funktionale Tests. Auch das Generieren einer größeren Menge von synthetischen Testdaten ist ein weiteres Beispiel dafür.  

Es wird leider nie möglich sein, sämtliche Testfälle zu den Akzeptanzkriterien nach ISO 25010 zu automatisieren (siehe dazu Teil 1 dieser Artikelserie). Keine Automatisierungsmöglichkeiten gibt es bei Tests der Benutzerakzeptanz und -zufriedenheit, Konzepten und Handbüchern, oder bei ersten funktionalen Tests eines neugeschriebenen Moduls.

Testautomatisierung wird den Menschen zudem nie komplett ersetzen. Vielmehr wird der Mensch von einem ausführenden zu einem hauptsächlich kontrollierenden und korrigierenden Faktor. Eine effiziente Automatisierung ist nur mittels Standardisierung, also der Eliminierung von unnötiger Varianz und einem konsequenten und zweckmässigen Tooleinsatz, abgestimmt und koordiniert durch das Testmanagement, möglich. 

Anstelle von Tools gibt es die Möglichkeit vereinfachter Formen der Automatisierung. Dazu gehören Scripts, Templates und Checklisten. Eigenentwickelte Scripts und Queries können bei den Verfahren Baseline- und Dualstream-Tests eingesetzt werden oder bei selbstentwickelten Komparatoren mittels SQL MINUS. Diese Verfahren werden detailliert im Seminar «Testen von DWH- und BI-Systemen» erklärt. 

Templates unterstützen die Erstellung von Testfall- oder Fehlerbeschreibungen, oder Testkonzepten. Der Automatisierungsgrad ist jedoch hier relativ gering, da durch Dokumentenvorlagen nur die Struktur vereinheitlicht, die Vollständigkeit sichergestellt und die Verständlichkeit für den Leser durch Einheitlichkeit erreicht wird. Gute Dokumentenvorlagen für das Testen liefert die Norm IEEE 829, in der Versionen 1998 und 2008 oder neu auch Teil 3 von ISO 29119. 

Checklisten hingegen automatisieren das repetitive Abarbeiten von immer gleichen Prüfungen. Checklisten sind geeignet für das Überprüfen des Designs von Reports oder Dashboards. Templates und Checklisten werden ebenfalls eingehend im zweitägigen Seminar «Testen von DWH- und BI-Systemen» erklärt.

Art der wiederholten Ausführung

Automatisieren lassen sich nur Testfälle, die wiederholt ausgeführt werden. Dies klingt zunächst nach einer Binsenwahrheit. Bei genauerer Betrachtung gibt es unterschiedliche Arten von Wiederholung: 

  • Zeitliche Wiederholung
    Zu bestimmten Zeitpunkten wird ein Set von Testfällen ausgeführt, beispielsweise eine Gruppe von Regressionstests am Ende einer Projektphase oder bei einem Releasewechsel.
  • Situative Wiederholung 
    Die Ausführung dieser Wiederholung erfolgt auf Basis von Einzelentscheidungen. Dazu gehören etwa kleinere Test-Sets für einen Modultest, welche durch den Entwickler angestoßen werden, um Funktionen nach Änderungen zu überprüfen. Zur situativen Wiederholung zählt auch das Ausführen eines Test-Sets zur spezifischen Fehlersuche, beispielsweise wenn eine produktive Störung aufgrund eines nicht entdeckten Fehlers auftritt.
  • Permanente Wiederholung
    Das Monitoring der Datenqualität ist eine Daueraufgabe und somit ein Beispiel für permanente Wiederholung. Die Prüfungen basieren nicht selten auf datengetriebenen Tests, die operationalisiert wurden und nun Teil des produktiven Monitorings sind. 
  • Parallele Ausführung
    Die parallele Ausführung ist keine Wiederholung im klassischen Sinn. Hier werden die gleichen Testfälle mehrfach gleichzeitig ausgeführt, um Last auf dem System zu erzeugen und Performance-Tests durchführen zu können.
    Zu bestimmten Zeitpunkten wird ein Set von Testfällen ausgeführt, beispielsweise eine Gruppe von Regressionstests am Ende einer Projektphase oder bei einem Releasewechsel.

Overview verschiedener Toolklassen

Am Markt gibt es eine große Anzahl von teilweise recht unbekannten Tools, die verschiedene Aufgaben des Testens unterstützen. Einige Lösungen sind Open Source, erstellt von Entwicklern, die aus der Not heraus eigene Lösungen für die Testautomatisierung erstellten.
Nachfolgend sind nur die Toolklassen beschrieben, die in der Toolübersicht dieses Artikels vorkommen. Es gibt weitere, hier nicht beschriebene Toolklassen, wie Debugger für die Fehlersuche. Debugger können zusätzlich für die funktionale Prüfungen des Codes eingesetzt werden, anstelle von Walkthroughs. Somit können statische Tests durch dynamische Whitebox-Tests ersetzt werden.

  • Test Suiten
    Test Suiten beinhalten verschiedene Funktionen zur Unterstützung des Testmanagements, wie Testfall- und Fehler-Tracking, automatisierte Ausführung von Testfällen, Komparatoren und teilweise auch Testdaten-Management.
  • Tracking von Testfällen oder Fehlern
    Tracking-Tools verwalten Testfälle (engl. test cases) oder Fehler (engl. defects). Im Detail speichern sie die Testfallbeschreibung, ergänzende Informationen, wie Handlungsanweisungen oder Testdaten und den aktuellen Status. Ein integriertes Reporting ermöglicht jederzeit eine Gesamtübersicht zur Unterstützung des Testmanagements. Tracking-Tools ermöglichen eine detaillierte Fehlerdokumentation, beispielsweise mittels Screenshots, und eine Fehlerklassifikation. Tracking-Funktionen sind ein zentrales Element von Test Suiten. Weitere beliebte Tracking-Tools sind Jira oder Sharepoint. 
  • Automatisierung
    Automatisierungstools können weiter unterteilt werden in das Automatisieren von Datenqualitätsprüfungen und in Software-Tests. Für die Datenqualitätsprüfung können auch klassische Datenqualitätstools eingesetzt werden, wie SAS Data Quality oder Attacama. Eine weitere Möglichkeit der Überprüfung der Datenqualität bieten ausgereifte ETL-Suiten, wie Informatica Power Center oder IBM Data Stage.
    Viele Lösungen der Gruppe der Software-Test-Tools ermöglicht die automatisierte Ausführung von funktionalen Tests, wie sie bei Regressionstest verwendet werden. Eine interessante Gruppe der Software-Test-Tools sind Lösungen für Lasttests. Sie können Benutzeraktivitäten simulieren oder I/O auf Datenquellen.
  • Subsetting
    Es ist nicht immer sinnvoll den vollen produktiven Datenbestand für das Testen zu verwenden, insbesondere dann, wenn die Testumgebung kleiner dimensioniert ist. Unnötige Performance-Probleme sind sonst die Folge. Benötigt werden Testdaten mit der benötigten Varianz und einer Vollständigkeit über alle Applikationen. Das heißt, Vielseitigkeit und Konsistenz der Testdaten ist gefordert. Dazu sind komplexe Regeln zur Selektion notwendig, die häufig nur toolbasiert verwaltet und periodisch ausgeführt werden können.
    Für Performance-Tests ist Subsetting nicht sinnvoll. Hier wird fast immer ein Vollbestand und eine Testumgebung benötigt, die von der Dimensionierung (Sizing) identisch ist mit der Produktivumgebung.
    Der Einsatz von Subsetting-Tools sollte immer durch Data Masking-Tools ergänzt werden.
  • Data Masking
    Tools dieser Kategorie anonymisieren oder pseudonymisieren produktive Daten mittels verschiedener Verfahren. Ausgereifte Tools unterstützen üblicherweise über 20 verschiedene Verfahren, wobei verschiedene Varianten von Shuffle, Reduction, Nulling und Averaging die Häufigsten sind (Siehe dazu Teil 2 dieser Artikelserie).
  • Generator für Testdaten
    Für das Testen von Data-Warehouse- und Business-Intelligence-Systemen sind üblicherweise größere Datenmengen notwendig. Dies übersteigt häufig die Möglichkeiten einer manuellen Testdatenerstellung oder sie ist wirtschaftlich nicht sinnvoll. Testdaten-Generatoren hingegen sind in der Lage Millionen von Datensätzen zu erstellen.
    Bei der Evaluation eines Testdaten-Generators sind zwei Faktoren wichtig: Die Möglichkeit der Parametrisierung von Wertebereichen und Inhalten und die Output-Formate.
  • Infrastruktur Management
    Diese Toolkategorie ermöglicht den effizienten Betrieb einer Testumgebung. Im weiteren Sinne zählen dazu auch Werkzeuge zur Paketierung, Versionierung und Übertragung zwischen den verschiedenen Umgebungen. Weitere Tools übernehmen spezialisierte Aufgaben, wie etwa TimeShiftX, welches das Verändern der Systemzeit in einer gesamten Umgebung ermöglicht und somit zeitabhänge Tests, wie die Umstellung auf Sommer- oder Winterzeit, zulässt. 

Tool-Übersicht

Die nachfolgende Liste ist nur ein kurzer Auszug möglicher Tools. Bewusst nicht aufgeführt wurden Tools, die ausschließlich für die eigene Infrastruktur des Herstellers geeignet sind, wie herstellerspezifische Lösungen von Microsoft oder SAP. Eine ausführliche Liste mit weiteren Lösungen und detaillierten Beschreibungen ist vorhanden.

Summary

Durch den Einsatz von Tools wird das Testen nicht automatisch verbessert. Toolgläubigkeit ist hier fehl am Platz. Zu viele Tools sind sogar eher kontraproduktiv, da der Unterhalt der Tools und der Lernaufwand im Verhältnis zum Nutzen nicht wirtschaftlich sind. Gerade bei selten genutzten Tools kommt es immer wieder zu Bedienfehlern und zu Schwierigkeiten bei der Anwendung. Eine sinnvolle Lernkurve wird nicht erreicht.

Testautomatisierung als Teil des Testmanagements ist somit zuerst eine konzeptionelle Arbeit mit der Identifikation von Automatisierungspotentialen. Erst anschließend erfolgt eine Toolevaluation. Das wichtigste Tool im Testen bleibt weiterhin das menschliche Hirn.

Die BARC unterstützt Sie gerne bei Ihren Herausforderungen im Testen, wie Aufbau von Regressionstests, Erweiterung der Testmethodik und des Testdatenmanagements oder der Testtool-Evaluation. Wir verfügen ebenfalls über Erfahrung im agilen Testen oder der Ermittlung einer zweckmäßigen Testabdeckung. Gerne können Sie uns dazu kontaktieren

Somit sind wir am Schluss der dreiteiligen Serie zum Testen angekommen. Ich wünsche Ihnen nun viel Erfolg beim zukünftigen Testen,

Herbert Stauffer