Ist schnelleres Testen wichtiger als schnelleres Programmieren?

road-sign-1280252_1920Ist in der Softwareentwicklung schnelleres Testen wichtiger als schnellere Codierung? Diese Frage stellt Thorsten Eckert, Sales Director DACH bei Actifio. „Es scheint so, als ob das zumindest für „neue“ Unternehmen wie beispielsweise Uber der Fall sei. CNBC berichtet, dass Uber nicht genug Gebiete findet, in denen das Unternehmen seine selbstfahrenden Autos testen könnte.“

Eine neue faszinierende Software samt komplexen Algorithmen ist fertig, aber sie kann nicht verwendet werden, weil sie nicht in realen Szenarien getestet werden kann. Bis alle Tests in der „realen Welt“ durchgeführt werden, kann es viele Monate oder sogar Jahre dauern. Bis dahin kann niemand von dieser Technologie profitieren, und das gilt auch für die Anbieter selbst. Die Unfähigkeit, reale Daten zu liefern, also Produktionsdaten an Entwickler und QM-Tester, dürfte das Problem Nummer Eins sein, was die meisten Unternehmen, die Softwareentwicklung betreiben, beschäftigt.

Thorsten Eckert von #Actifio zitiert einen Kollege aus dem Software-Engineering: „Im Jahr 2007 stellte mein Entwicklungsteam eine Inline-variable Block-Deduplizierungssoftware fertig. Die größte Herausforderung bestand darin, Gigabytes und Terabytes an Daten an diese Software zu übermitteln. Und die Daten konnten keine „gefälschten“ Daten sein, die aus dem Kopieren und Einfügen der gleichen Information immer und immer wieder erstellt wurden, da der Deduplizierungsalgorithmus sonst übertriebene Deduplizierungsverhältnisse liefern würde, die bedeutungslos wären. Wir hatten somit nie genügend reale Daten, um in der Anfangsphase zu testen. Irgendwann habe ich es geschafft, unser internes IT-Team zu überzeugen, dass wir einige unserer Low-Tier-Applikationsserver mit unserer Software sichern können, sobald wir eine Pre-Beta-Version hatten. Allerdings haben wir sehr schnell festgestellt, dass es fast unmöglich war, tägliche Backups zu erstellen, die Probleme zu debuggen, einen Fix bereitzustellen und dann das Update in der gleichen Umgebung zu testen. Das Zeitfenster, um ein Problem zu analysieren, ein Problem zu beheben und das Update zu testen, war in der Regel nur sechs Stunden lang. Wir fanden viel zu viele Probleme in der späten Pre-Beta-Phase beim Testen mit realen Daten. Einige Performanceprobleme erforderten es, die Software nachzubessern.“

All dies führte zu einem verzögerten Marktstart in einem zunehmend wettbewerbsintensiveren Markt für Software-Deduplizierung im Jahr 2007.

Dieser Beispiel zeigt: Entwickler brauchen einen Weg, um reale Daten frühzeitig in Testzyklen zur Verfügung zu haben, so, dass sie alle diese Probleme bereits früher finden und beheben könnten. Die Software-Entwickler benötigen eine Lösung, um von diesen deduplizierten Backup-Images mehrere Kopien zu erstellen – und das sofort, ohne zusätzlichen Speicherplatz zu verbrauchen und so, dass mehrere Menschen gleichzeitig nach Fehlern suchen, diese beheben und die Software testen könnten.

Gelingt es mittlerweile, diesen Herausforderungen gerecht zu werden, durch den Einsatz von #Copy-Data-Virtualisierung. Entwicklungs- und Qualitätsmanagement-Teams können damit ihre Testzyklen nach Bedarf „konstruieren“. Dies erlaubt ihnen, beispielsweise eine Kopie eines 10-TByte-Produktionsdatensatzes sehr effizient zu erstellen und Daten an Entwickler-, QM-, UAT-, Analytik-, Support- und Sicherheits-Teams sofort zu liefern, ohne zusätzlichen Speicherplatz zu verbrauchen.

Softwareingenieure richten ihre Software auf Parallelität aus. Sie identifizieren Aufgaben, die parallel ausgeführt werden müssen, und mehrere Threads oder Daemons umfassen, um diese Aufgaben möglichst schnell auszuführen. Dies ist genau das, was bei der End-to-End-Prüfung benötigt wird: ein Ansatz, bei dem eine massive Anzahl von Testfällen in paralleler Ausführung auf mehreren Testmaschinen abgebildet werden kann. Solche parallelen, effektiven Tests sind nur möglich, wenn virtuelle Kopien von realen Produktionsdatensätze schnell an alle diese Testumgebungen geliefert werden können.

„Genau dies kann mit Copy-Data-Virtualisierung verwirklicht werden“, fasst Thorsten Eckert abschließend zusammen. „Den besten Entwicklern sind die Hände gebunden, wenn sie durch komplizierte und zeitaufwändige Tests ausgebremst werden. Mit der wachsenden Bedeutung von Software für die allermeisten Geschäftsmodelle sind auch mittelständische Unternehmen angehalten, die Bremsen für ihre Entwickler zu lösen.“

#Netzpalaver