Dawid Gierut, Testleiter

Lesezeit: 6 Minuten

Auf dem globalen IT-Markt beobachten wir trotz spürbarer Einschränkungen ein kontinuierliches Wachstum der technologischen Trends. Der dynamische Fortschritt in Bereichen wie künstliche Intelligenz, mobile Anwendungen oder klassische Webanwendungen erfordert eine ständige Anpassung der mit ihrer Entwicklung verbundenen Prozesse. Dies gilt auch für das Testen. Bei der Auswahl eines Testtyps für ein neues Projekt ist die Bereitschaft, sich vielen Herausforderungen zu stellen, entscheidend. 

Die effektive Anpassung des Testprozesses an die Merkmale des Projekts erhöht die Effizienz des Entwicklungsteams, trägt zur Optimierung der Ressourcen bei und verkürzt die Markteinführungszeit. Auf welche Aspekte sollte sich ein guter Testprozess angesichts der Besonderheiten und der Art des Projekts konzentrieren? Die Antwort darauf möchte ich im folgenden Artikel geben. 

Worum geht es beim Testen von Software wirklich?

Jeder, der mit Softwaretests zu tun hat, hat diese Frage schon mindestens einmal gehört (und kennt hoffentlich die Antwort 😉 ). Für alle anderen werde ich diese Angelegenheit kurz erläutern.

Das gängige Klischee über Tests reduziert sie oft auf das "Durchklicken der Anwendung" und das Melden von Fehlern, wenn etwas nicht funktioniert. Das stimmt teilweise - bei Softwaretests geht es darum, so viele potenzielle Fehler wie möglich zu entdecken. Dieser Prozess ist jedoch viel komplexer und beinhaltet die Überprüfung, ob die Software den Geschäftsanforderungen und den Erwartungen der Benutzer entspricht. Um diese Ziele zu erreichen, verwenden wir einen Testprozess, der aus standardisierten Phasen besteht.

Testphasen

Es ist wichtig zu betonen, dass das Testen so früh wie möglich beginnen sollte, idealerweise während der Dokumentationsphase.

Die Bedeutung der Abstimmung von Testtypen auf verschiedene Projekttypen

IT-Projekte lassen sich in viele Kategorien einteilen: mobile Anwendungen, Webanwendungen, Desktop-Anwendungen, eingebettete Systeme, Cloud-basierte Lösungen oder Microservice-Anwendungen. Jede Kategorie hat ihre wichtigen operativen Aspekte, sodass die Tester die richtigen Testtypen anwenden müssen, um die besten Ergebnisse zu erzielen.

Wir haben viele Optionen zur Verfügung. Ein umfassender Überblick über die einzelnen Optionen würde einen eigenen Artikel erfordern, deshalb werde ich sie hier kurz beschreiben.

Funktionelle Tests - Ihr Hauptzweck besteht darin, die Übereinstimmung der Anwendung mit den Anforderungen zu überprüfen. Dazu gehören u.a. Unit-Tests, Integrationstests, Systemtests und explorative Tests.

Nicht-funktionale Tests - Dazu gehören Leistungstests, Belastungs- und Stresstests, Tests zur Benutzerfreundlichkeit, Sicherheitstests und Kompatibilitätstests.

Strukturelle Tests - Im Zusammenhang mit der Überprüfung des Codes zielen sie darauf ab, zu überprüfen, ob die in den Methoden implementierten Operationen korrekt ausgeführt werden. Sie werden als Prozentsatz in Bezug auf die Abdeckung eines bestimmten Teils der Codestruktur ausgedrückt.

Darüber hinaus unterscheiden wir auch Regressionstests, Rauchversuche und  automatische Tests.

Webanwendungen

Wenn man bedenkt, welche Tests im Falle einer Webanwendung durchgeführt werden sollten, lohnt es sich, nach den Besonderheiten der Anwendung zu fragen. Neben den klassischen funktionalen, explorativen oder Regressionstests müssen wir auch die Antwort auf mehrere wichtige Fragen wissen, z. B. wie die Anwendung mit zahlreichen gleichzeitigen Sitzungen umgeht, ob sie gegen externe Angriffe resistent ist (aufgrund ihrer "Exposition" im Netz, insbesondere wenn sie wichtige Daten, z. B. Finanzdaten, speichert) und ob sie intuitiv und einfach zu bedienen ist.

Wir wissen also bereits, dass wir Leistungs-, Sicherheits- und UI/Benutzbarkeitstests durchführen müssen. Ein weiterer wichtiger Punkt ist die Kompatibilität mit den erforderlichen Browsern, Systemen oder mobilen Geräten. Klare geschäftliche Anforderungen für all diese Aspekte sind entscheidend und bilden eine solide Grundlage für unsere Tests. Wir können auch den Einsatz automatisierter Tests in Betracht ziehen, zum Beispiel für Regressionstests.

Mobile Anwendungen

Das Testen mobiler Anwendungen weist viele Ähnlichkeiten mit den oben beschriebenen Tests für Webanwendungen auf. Auch für Webanwendungen sind aufgrund der großen Vielfalt an mobilen Geräten und Bildschirmgrößen Kompatibilitätstests erforderlich. Außerdem müssen wir UI-Tests, Leistungstests (in Bezug auf den Batterieverbrauch), Sicherheitstests und Tests zur Benutzerfreundlichkeit durchführen. Da wir es mit einem mobilen Gerät zu tun haben, dürfen wir nicht vergessen zu testen, ob alle Aspekte im Zusammenhang mit Standortänderungen (wie Uhrzeit oder GPS-Nutzung) korrekt funktionieren.

In diesem Fall werden wir auch funktionale, explorative, Smoke- und Regressionstests durchführen, und ähnlich wie bei den oben genannten Tests können wir uns auf die Automatisierung verlassen.

Desktop-Anwendungen

Beim Testen von Desktop-Anwendungen haben wir es nicht nur mit verschiedenen Betriebssystemen zu tun, mit denen die Lösung zusammenarbeiten muss, sondern auch mit der größten Herausforderung - einer großen Vielfalt an Hardwarekonfigurationen. Folglich müssen die hier erforderlichen Kompatibilitätstests umfassender sein. Ein weiterer Unterschied zu z. B. Webanwendungen ist die Notwendigkeit, Tests zur Installation/Deinstallation durchzuführen.

Die anderen Testarten, wie Funktions-, Leistungs-, Sicherheits-, Benutzeroberflächen-/Benutzbarkeitstests und Regressionstests, bleiben unverändert.

Cloud-Anwendungen

Es ist wichtig zu bedenken, dass Cloud-Anwendungen in komplexen und sich dynamisch verändernden Umgebungen betrieben werden, was einen flexiblen Ansatz für den Testprozess und die Implementierung aktueller Tools erfordert. Im Gegensatz zu den oben beschriebenen Anwendungen ist die Überprüfung der Skalierbarkeit (wie die Anwendung auf sich ständig ändernde Ressourcen reagiert) in diesem Fall entscheidend.

Zu den neuen, bisher nicht diskutierten Testarten gehören auch Tests zur Datenmigration, z. B. von lokalen Anwendungen in die Cloud - sie dienen der Überprüfung, ob die migrierten Daten vollständig sind. Außerdem werden Tests zur Sicherung und Wiederherstellung von Anwendungen hilfreich sein. Aufgrund der externen Exposition, ähnlich wie bei mobilen Anwendungen, ist die Überprüfung der Sicherheit und der Widerstandsfähigkeit gegenüber externen Einflüssen entscheidend.

Eingebettete Systeme

Bei eingebetteten Systemen sind wir mit strengen Hardwarebeschränkungen und spezifischen Betriebsbedingungen konfrontiert. Ihre Zuverlässigkeit ist von größter Bedeutung, da eingebettete Systeme häufig integraler Bestandteil eines Geräts sind (z. B. Spielkonsolen), ohne die es nicht funktionieren würde. Daher konzentrieren sich die Funktionstests auf die Interaktion mit der Hardware.

In diesem Fall sind weitere Tests wie Leistungstests, Stresstests, Integrationstests und standardmäßige, aber wichtige Sicherheitstests erforderlich.

Microservices-Anwendungen

Um Tests für eine auf Microservices basierende Anwendung durchzuführen, müssen wir zunächst verstehen, wie sie funktioniert.

Bei der Planung von Tests sollten wir die Integration von zusammenarbeitenden Komponenten und mehreren unabhängigen Diensten berücksichtigen. Daher muss ein wesentliches Element des Prozesses in diesem Fall die Planung und Durchführung von Tests sowohl für diese Komponenten in Isolation (Unit-Tests) als auch für ihre Integrationstests sein.

Außerdem ist es wichtig, End-to-End-Tests (E2E) zu planen und durchzuführen, um festzustellen, ob die Anwendung nach der Integration der Komponenten korrekt funktioniert.

Darüber hinaus müssen Leistungs-, Sicherheits- und Lasttests durchgeführt werden, z. B. zur Überprüfung der Funktionsfähigkeit der Anwendung nach einem Ausfall der Infrastruktur, der nur einen Microservice betrifft.

Sehr oft wird im Rahmen der Tests eine absichtliche Simulation von Ausfällen einzelner Microservices durchgeführt, um zu überprüfen, ob diese unabhängig voneinander neu starten können (Microservices sollen von Haus aus eine solche Funktion haben).

Die Rolle der Testauswahl bei der Gewährleistung hochwertiger Anwendungen

Zusammenfassend lässt sich sagen, dass jedes Projekt einen individuellen Testansatz erfordert, der auf die einzigartigen Merkmale des jeweiligen Anwendungstyps zugeschnitten ist. Die Entwicklung eines soliden Testverfahrens und die Auswahl der geeigneten Testarten gewährleisten die höchste Qualität unserer Anwendung.

Benötigen Sie fachkundige Unterstützung bei der Erstellung einer plattformübergreifenden mobilen Anwendung?

Weitere Informationen
Ailleron - Anpassung des Testtyps an die Besonderheiten der Anwendung

Dawid Gierut Testleiter

Ein erfahrener Manager, der ein Testteam leitet und am Aufbau und der Implementierung von Testprozessen, der Erstellung von Testdokumenten einschließlich Testplänen, Berichten und UAT-Strategien, der Risikoanalyse und der Berichterstattung über Testfortschritte und -probleme beteiligt ist. Er unterstützt die Durchführung von User Acceptance Tests, um die Qualität und Funktionalität der Lösung sicherzustellen. Arbeitet im Rahmen von Kanban und Scrum.

abstrakte Linien

Lassen Sie uns gemeinsam finanzielle Erfahrungen im Finanzsektor leicht und angenehm gestalten.

Sagen Sie uns, was Sie brauchen, und wir werden uns umgehend mit Ihnen in Verbindung setzen.

Sagen Sie uns, was Sie brauchen, und wir werden uns umgehend mit Ihnen in Verbindung setzen.