dc.description.abstract
Zusammenhang: Softwaretests sind seit langem eine der wichtigsten Säulen der Softwareentwicklung, da sie sicherstellen, dass die Lösung ein korrektes Ergebnis liefert und sich wie beabsichtigt verhält. Fortschritte im Cloud Computing und DevOps haben den Weg für neue Möglichkeiten zur Automatisierung des Testprozesses geebnet. Angesichts der Unvermeidlichkeit von Softwaretests kann durch Automatisierung der Prozess erleichtert und weniger mühsam gemacht werden, indem manuelle Eingriffe aus dem Prozess entfernt werden. Cloud Computing ermöglicht On-Demand-Zugriff auf Hardwareressourcen, die genutzt werden können, um vorübergehend eine virtuelle Umgebung zu erstellen, in der Tests durchgeführt werden können. Infrastruktur als Code ermöglicht die Automatisierung der Infrastrukturbereitstellung in der Cloud und der Softwarekonfiguration derselben Infrastruktur. In Kombination können wir eine virtuelle Umgebung in der Cloud erstellen, Tests durchführen und eine Bereinigung durchführen, die keine Ressourcenrückstände hinterlässt, und das alles ohne menschliches Eingreifen. Motivation: Dies kann sich als nützlich erweisen, wenn das Entwicklungsteam sicherstellen muss, dass sich die Lösung in der bereitgestellten Umgebung auf der Clientseite korrekt verhält. Wir können die Clientumgebung simulieren, indem wir virtuelle Maschinen, Netzwerke und Router erstellen und alle erforderlichen Softwarekonfigurationen durchführen, indem wir sie durch Code angeben. Die Ausführung dieses Codes kann in einer CI/CD-Pipeline automatisiert werden, die ausgelöst wird, wenn Änderungen an der Softwarelösung vorgenommen wurden, um sicherzustellen, dass diese Änderungen die Lösung selbst nicht negativ beeinflussen. Ziele und Methodiken: Die Open-Source-Community hat dies möglich und zugänglich gemacht, indem sie viele Technologien bereitstellt, die von Unternehmen auf der ganzen Welt ohne Einstiegskosten und Lizenzen verwendet werden können. Wir möchten verschiedene Praktiken und Tools in der Open-Source-Community abdecken und erklären, die Tests in der Cloud ermöglicht haben. Um die aktuellen Tools und Praktiken abzudecken, werden wir verschiedene Interviews mit Experten durchführen, die Einblicke in das Thema und die Tools geben. Da es unser Ziel ist, auch die Verwendung dieser Technologien zu demonstrieren, werden wir einen Pipeline-Prototyp gemäß dem oben beschriebenen Szenario des Testens in der Cloud implementieren, der auf einen realen Anwendungsfall angewendet wird, um diesen Ansatz zu bewerten. Abschließend werdenwir ein besseres Verständnis der Cloud-Testfunktionen vermitteln und gleichzeitig Vorteile und Herausforderungen skizzieren. Ergebnisse: Wir haben erfolgreich einen Prototyp entwickelt und ihn sowohl auf einen f iktiven (Server-Client-Kommunikation) als auch auf einen realen Anwendungsfall (Hitachi Rail, Moving Block System) angewendet, um ihn zu bewerten. Wir haben festgestellt, dass automatische Cloud-Tests in verschiedenen Bereichen Verbesserungen bringen (z. B. geringerer Testaufwand, Zugänglichkeit der Testnutzung usw.), jedoch auch einen höheren Aufwand bei der Einrichtung sowie höhere Einstiegshürden in Bezug auf Wissen und zusätzliche Hardwareressourcen mit sich bringen. Am wichtigsten sind die Vorteile, die wir skizzieren, wie den viel geringeren Aufwand bei der Verwendung zuvor manueller Tests, die automatisiert werden können, sowie die Idempotenz, die durch die ständige Neubereitstellung und Zerstörung der für Tests erforderlichen Infrastruktur sichergestellt werden kann. Fazit: Die Migration in die Cloud bietet viele Vorteile (z. B. beliebige Anzahl gleichzeitiger Testumgebungen), aber auch Nachteile (z. B. Wissen und Ressourcen, die zum Hosten der Cloud erforderlich sind), die bei der Entscheidung darüber berücksichtigt werden müssen. Trotzdem bietet die Durchführung von Tests in der Cloud viel Potenzial und öffnet die Tür zu mehr Möglichkeiten der Automatisierung des Testprozesses sowie der Simulation von Testumgebungen. Takeaway: Cloud-Tests verdienen Beachtung, wenn nach Möglichkeiten zur Automatisierung des Testprozesses gesucht wird. Bei der Entscheidung für diesen Ansatz müssen jedoch der Migrationsprozess und die benötigten Ressourcen berücksichtigt werden. Schlüsselwörter: Softwaretests, Cloud Computing, Infrastruktur als Code, CI/CD, Open-Source
de