"Wissen ist Macht" - Was wie der Leitspruch eines heutigen Internetkonzerns klingt, wurde bereits im 16. Jahrhundert vom englischen Philosophen Francis P. Bacon formuliert, jedoch schon seit Anbeginn der Menschheitsgeschichte zur Anwendung gebracht.
Dieses geflügelte Wort hat allerdings nichts von seiner Gültigkeit eingebüsst. Ganz im Gegenteil! In Zeiten stetiger Veränderungen und immer kürzeren Aufmerksamkeitsspannen, muss ein Unternehmen wissen wer seine Kunden sind, was sie wollen und was in Zukunft angesagt sein wird.
Jedes Unternehmen hat Zugang zu Daten über seine Kunden, deren Verhalten und weiteren geschäftsrelevanten Informationen. Die grösste Menge dieser Daten stammt wahrscheinlich aus den beiden Q-SMAC Disziplinen Social und Mobile, aber auch schon bevor der "SMAC Stack" mit in die Architekturentscheide von Applikationen eingeflossen ist, wurden Daten gesammelt – allerdings nicht im heutigen Umfang. Die Rolle und gleichzeitige Herausforderung von Analytics ist es nun, daraus für das Digital Testing, die richtigen Schlüsse zu ziehen, um fundierte Entscheidungen im Business treffen zu können.
Basierend auf den vorhandenen Daten lässt sich das Kundenverhalten vorhersagen, personalisiertes Marketing betreiben und das vorhandene Portfolio optimieren.
Heute sind Big Data und BI (Business Intelligence) jedem in der IT ein Begriff. Ein Unternehmen das vorhandene Daten nicht oder ohne passende Strategie nutzt, bedient entweder einen Nischenmarkt oder wird schnellstmöglich grundlegend umdenken müssen.
Daten und Analytics - zwei Herausforderungen im Testing
Vor diesem Hintergrund ist es wichtig, dass die Entscheide auf Basis der Analysen korrekt sind. Um dies sicherzustellen, bedarf es einer gründlichen Anforderungsanalyse und Abgleich mit den Zielen, die mit Analytics erreicht werden sollen. Gegen die ermittelten Anforderungen muss die Analytics Lösung dann validiert werden. Diese verantwortungsvolle Aufgabe ist am ehesten der Rolle des Test Engineers zuzuordnen.
Analytics Applikationen stellen den Test Engineer vor zwei Herausforderungen:
- der Prüfung der verwendeten bzw. zu verwendenden Daten
- der Verifikation der BI Applikation
Das Ziel der ersten Herausforderung ist es, die Qualität der Daten sicherzustellen, um überhaupt korrekte Analysen durchführen zu können. Bei der Zweiten müssen die BI Applikation und die zugrundeliegenden Prozesse geprüft werden. Nur wenn beide Herausforderungen zusammen gemeistert werden, können mit Hilfe der ausgewerteten Daten geschäftsorientierte Ergebnisse erzielt werden. Und nur so wird Analytics in der Lage sein digitales Testen zum Erfolg zu bringen.
Bevor planlos möglichst viele Daten gesammelt werden, sollte sich ein Unternehmen Gedanken darüber machen was mit diesen Daten erreicht werden soll, auch wenn Datenspeicherung immer günstiger wird. Hier hilft es, sich über die V's von Big Data Gedanken zu machen. Manche Publikationen sprechen von bis zu 10, aber mindestens die folgenden 5 sollten betrachtet werden.
Die 5 V's von Big Data
- "Volumes" - Menge der Daten
- "Variety" - Vielfalt der Daten und Quellen
- "Velocity" - Geschwindigkeit der Datengenerierung bzw. -verarbeitung
- "Value" - Mehrwert der Daten
- "Veracity" oder "Validity" - Richtigkeit und Glaubwürdigkeit der Daten
Beim Testing einer Analytics Lösung müssen alle Teile des SMACK-Stack mit einbezogen werden.
Die meisten Nutzerdaten kommen heutzutage aus den Kanälen Social Media und Mobile. Damit der Gültigkeit und Richtigkeit dieser Daten vertraut werden kann, sollte eine enge Zusammenarbeit mit den verantwortlichen Teams gewährleistet werden.
Dazu braucht ein Test Engineer nicht nur Kenntnis über seine eigene Applikation, sondern muss auch die Schnittstellen zu anderen Applikationen kennen.
Sind die Daten gesammelt, werden sie über sogenannte Machine Learning Funktionalitäten aufbereitet. Dabei kommen verschiedene Algorithmen zum Einsatz, um beispielsweise Personen auf Bildern zu erkennen oder Informationen aus Fliesstexten zu extrahieren.
Die Algorithmen an sich müssen dabei nicht verstanden werden, aber die zugrundeliegende Logik sollte sich dem Test Engineer erschliessen.
In den meisten Fällen liegen die im Rahmen von Big Data verwalteten Daten heute in der Cloud, um eine einfache Skalierbarkeit und hohe Verfügbarkeit zu gewährleisten. Ob die BI Applikation in der Cloud bereitgestellt wird oder auf eigenen Systemen betrieben wird, ändert wenig an der Teststrategie. Die Kritikalität von nicht-funktionalen Tests wie z.B. Security, Scalability und Performance, ist für jegliche Art der Bereitstellung hoch.
BI methodisch testen
Bei den meisten BI Applikationen handelt es sich um Standardsoftware (Crystal Reports, SAP BW oder IBM Cognos), welche in der Entwicklungsphase und auch im Betrieb hochgradig angepasst werden müssen, damit sie den Anforderungen des Business entsprechen. Spezifische Analyse-Algorithmen müssen erfasst, die Report Generierung eingerichtet und Schnittstellen angebunden werden.
Nur wenn die Analysen zeitnah bereitstehen und auf aktuellen Daten basieren, kann das Business fundierte Entscheidungen treffen. Die Kritikalität der nicht-funktionalen Anforderungen an solche Applikationen und damit einhergehende Tests ist dementsprechend hoch:
- Load & Performance – Viele Daten sollen innerhalb kürzester Zeit verarbeitet werden
- Failover/Availability – Die Funktionalität soll auch bei eingeschränkter Leistungsfähigkeit sichergestellt sein
- Security – Analysen und Daten sind vertraulich
- Usability – Berichte sind einfach zu erstellen und lesbar
Nicht-funktionalen Tests werden in den meisten klassischen Softwareprojekten entweder stiefmütterlich behandelt oder an externe Dienstleister vergeben, welche kein fachbezogenes Wissen mitbringen. Bei einer BI Applikation sollte dies vermieden und der Test Engineer zum einen frühestmöglich mit einbezogen und zum anderen fachlich geschult werden.
Neben den ganzen nicht-funktionalen Tests muss aber auch die Funktionalität der Analytics Lösung überprüft werden. Hier kann der Test Engineer sein klassisches Handwerk ausüben: Testfälle designen, Testdaten aufbereiten und schliesslich die Funktionalität testen.
Der Test Engineer muss wissen was mit den Daten während der Analyse geschieht, um gezielt Daten aufzubereiten und das erwartete Ergebnis definieren zu können.
Typische Tools für das Big Data- oder BI Applikation-Testing gibt es nicht. Für die unterschiedlichen Testtechniken, welche bei einem solchen Projekt zum Einsatz kommen, gibt es kein einzelnes Tool das alle Bedürfnisse abdeckt. Daher ist es notwendig, sich vorgängig über die geeignete Auswahl und Integration der Test Tool Landschaft Gedanken zu machen.
Dabei spielen nicht nur die üblichen ALM Tools eine Rolle (HP ALM, Jira), sondern auch Entwicklerwerkzeuge zum Manipulieren von Daten (MS Server Management Studio) oder Design Tools für Big Data (Enterprise Architect). Vor dem Hintergrund das die Menge und Varianz der zu verarbeitenden Daten in der Zukunft in jedem Fall zunimmt werden die heutigen BI Lösungen darauf ausgelegt skalierbar und einfach erweiterbar zu sein, um auch in Zukunft geschäftsrelevante Analysen daraus zu erzeugen. Dem damit einhergehenden Bedarf an die Sicherstellung der Qualität kann nur mit automatisierten Regressionstests begegnet werden.
Das Test Engineer Profil für Analytics
Betrachtet man die Anforderungen an die Testressourcen ergibt sich ein komplexes Bild aus Skills und Know-How:
Der Test Engineer muss
- Nicht-Funktionale Testmethodiken wie Performance, Security oder Failover kennen und anwenden können
- Die Grundlagen der Testautomatisierung verstehen und die Tests hinsichtlich ihres Automatisierungspotentials bewerten können
- Verschiedene Schnittstellentechnologien kennen
- Grundlegende Programmierkenntnisse haben und die Struktur von Algorithmen verstehen
- Mit unterschiedlichen Datenbanktechnologien vertraut sein
- Nicht-testspezifische Werkzeuge im Application Lifecycle bedienen können
Dedizierte Test Engineers werden auch im SMAC Stack eine Aufgabe haben, aber stehen vor erweiterten Anforderungen. Sie müssen nicht nur ein solides technisches Grundwissen mitbringen, sondern auch die Zusammenhänge innerhalb von Q-SMAC verstehen und diese in ihrem Test Design berücksichtigen.
Wer sich also in diesem Bereich behaupten will muss weg vom rein fachlichen manuellen Tester, hin zum technisch versierten und breit aufgestellten Test Engineer - Dem sogenannten T-shaped Profil. So wird er in der Lage sein, einen substantiellen Beitrag zum digitalen Testen zu leisten.
Fazit
Analytics wird immer mehr eine tragende Rolle in sämtlichen Sparten einnehmen und zentraler Bestandteil der Wettbewerbsfähigkeit eines Unternehmens sein. Betrachtet man Internetgiganten wie Facebook oder Google sind es sogar ganze Unternehmensteile, für die Analytics das zentrale Dienstleistungsprodukt ist.
Und um erneut Francis P. Bacon zu bemühen: "Wer keine neuen Heilmittel anwendet, muss neue Übel akzeptieren: Denn die Zeit ist der größte Neuerer. "