Warum manuelles Testen immer noch notwendig ist: 8 Gründe
Auch wenn wir in unseren Alltags-Apps gelegentlich auf Fehler stoßen, ist die Bedeutung von Software-Tests unbestritten. Es gibt verschiedene Ansätze für Software-Tests, die sich im Wesentlichen in manuelle und automatisierte Tests einteilen lassen. Obwohl wir bereits viele Artikel über automatisierte Tests veröffentlicht haben, könnte man denken, dass Automatisierung keine Grenzen kennt und alles automatisiert werden kann.
1. Zeitaufwand
Obwohl automatische Tests schneller ausgeführt werden und weniger Eingriffe des Testers erfordern, kann die Einrichtung der Automatisierungsumgebung zeitintensiv sein. In manchen Fällen wäre manuelles Testen schneller als automatisiertes. Die Einrichtung der automatisierten Umgebung und der automatisierten Tests ist zu Beginn eines Projekts einfacher und weniger zeitaufwendig. Bei komplexen Projekten mit vielen vernetzten Komponenten kann die Einrichtung jedoch mehr Zeit und Ressourcen beanspruchen. In einigen Fällen könnte es bei sehr komplexen Projekten unmöglich oder zu teuer sein, eine Automatisierungsumgebung und automatisierte Tests zu erstellen.
2. Menschliche Wahrnehmung
Automatisierte Tests verfügen nicht über menschliche Sinnesorgane. Letztendlich führt ein Computer die Tests aus und prüft Werte. Für Endnutzer sind jedoch die visuellen Aspekte einer App genauso wichtig wie die korrekte Funktionalität ihrer Funktionen. Automatisierte Tests würden in den meisten Fällen lediglich überprüfen, ob beispielsweise der Text eines Labels auf dem Bildschirm angezeigt wird, nicht aber seine Position. Manuelles Testen ist hier vorteilhaft, da die visuelle Gestaltung von Elementen leicht überprüft werden kann. Bei komplexen Benutzeroberflächen (z.B. mit vielen Animationen oder interaktiven Elementen) ist manuelles Testen oft schneller und kostengünstiger. Die SDK- und/oder API-Komponenten können dann automatisiert werden, um sicherzustellen, dass die Geschäftslogik keine Regressionen aufweist. Es gibt zwar auch visuelle Automatisierungstools zur Bewertung visueller Details von Software, aber deren Einrichtung und Nutzung erfordern Zeit und Aufwand.
3. Erfahrung ist entscheidend
Wenn automatisierte Tests schlecht geschrieben werden, ohne Best Practices zu befolgen, können die Ergebnisse irreführend sein und somit nutzlos. Unsere Erfahrungen aus vielen Test-Automatisierungs-Projekten zeigen: Beauftragen Sie erfahrene Ingenieure mit der Planung und Umsetzung von Test-Automatisierung. Diese Ingenieure sollten Best Practices befolgen, um Testumgebungen zu erstellen, Tests zu schreiben und den Code zu warten. Automatisierte Tests müssen täglich gewartet und überprüft werden.
4. Sicherheit
Bei komplexen Projekten muss man die benötigten Berechtigungen für die Testausführung sorgfältig prüfen. In manchen Projekten haben Test-Automatisierungingenieure nicht vollständigen Zugriff auf das System und es können Einschränkungen bestehen, welche Systeme und Umgebungen dem Tester zugänglich sind. In solchen Fällen ist es wichtig abzuwägen, ob automatisiertes Testen überhaupt sinnvoll ist. Automatisches Testen ist in Systemen nicht möglich, für die nicht der erforderliche Zugriffslevel besteht.
5. Explorative Tests
Explorative Tests sind Tests, bei denen keine Testfälle im Voraus erstellt werden, sondern Tester das System spontan überprüfen. Diese Methode kann helfen, schnell schwerwiegende Fehler zu identifizieren und so ein Produkt zu entwickeln, das tatsächlich benötigt wird. Obwohl explorative Tests sehr einfach durchzuführen sind, lassen sie sich nicht automatisieren. Automatisierte Tests bestehen aus Test-Szenarien, die von einem Testingenieur geschrieben werden. Diese Szenarien sind starr und der Computer prüft nur genau das, was zum Prüfen und Verifizieren festgelegt wurde – nichts mehr und nichts weniger.
6. Nicht alles lässt sich automatisieren
Wie bereits erwähnt, ist es weder empfehlenswert noch möglich, alles zu automatisieren. Wenn Sie ein mobiles Produkt haben und die Funktionalität auf vielen verschiedenen Geräten, Bildschirmgrößen, Betriebssystemversionen und Hersteller testen müssen, ist eine automatisierte Testung nicht praktikabel. Viele ältere Telefone unterstützen keine Automatisierung.
Ein weiteres Beispiel wäre eine Telefon-App, mit der Notrufnummern getestet werden sollen. In diesem Fall ist es wichtig, im Voraus über potenzielle Risiken nachzudenken, die mit der Automatisierung solcher Funktionstests verbunden sind. Hier würde hauptsächlich die Anzeige des Anrufbildschirms getestet werden, nicht der Anruf selbst. Wichtig ist, zu wissen, welche Tests stabil genug für automatisiertes Testen sind, da dieser Szenario möglicherweise fehlschlagen könnte. In diesem Fall könnten solche Tests nicht nur für die Testingenieure, sondern auch für das Unternehmen selbst Probleme verursachen.
Es gibt Situationen, in denen Informationen nur sehr kurz angezeigt werden oder gar nicht detektierbar sind. Daher wäre manuelles Testen besser geeignet, da automatisierte Tests Zeit benötigen würden, um ein Element zu erkennen. Menschen sehen es hingegen sofort. Auch durch die Möglichkeiten des Testframeworks oder der Tools können Einschränkungen beim Lesen und Auffinden von Elementen in Benachrichtigungen bestehen. Dies kann manuell problemlos überprüft werden.
7. Stabilität
Wenn eine Anwendung noch nicht in einer sehr stabilen Version vorliegt, ist es sinnlos, Ressourcen und Zeit in die Erstellung einer Automatisierungsumgebung und automatisierter Tests zu investieren. Die Tests müssten ständig aktualisiert werden, da sich die Anwendung mit jeder Version ändert. Natürlich müssen Testfälle und Szenarien überprüft werden, um die gewünschten Ergebnisse zu erzielen, aber wenn eine Anwendung instabil ist, sind die Ergebnisse der automatisierten Tests wahrscheinlich falsch. Wenn die Anwendung stabil ist, sind die automatisierten Tests auch stabil und objektiv. Vorerst ist es besser, die Anwendung manuell zu testen, um wertvolle Ergebnisse zu erhalten. Sobald ein Produkt auf dem Markt ist und Sie sicherstellen möchten, dass keine Regressionen zwischen inkrementellen Updates auftreten, kann Test-Automatisierung sehr nützlich sein.
8. Validierung von User Stories
Zuletzt lässt sich die Validierung von User Stories ohne manuelles Testen nicht durchführen. In diesem Fall muss die Funktionalität gemäß der vorgegebenen Dokumentation überprüft und verifiziert werden. Dies kann nur durch einen Tester erfolgen, der zunächst einen manuellen Test durchführt und die Funktionalität neu hinzugefügter Funktionen oder Änderungen verifiziert. Wenn ein automatisierter Test sofort erstellt wird, können Fehler entstehen. Erst nachdem manuelle Tests der dokumentierten Funktionalität durchgeführt wurden, können Test-Szenarien geschrieben werden. Um objektiv zu testen, müssen Fehler zuerst behoben werden. Erst danach können automatisierte Tests erstellt werden.
Fazit
Zusammenfassend lässt sich sagen, dass sowohl manuelles als auch automatisiertes Testen ihre Vor- und Nachteile haben. Es liegt an den Testern, die beste Methode für die Projektbedürfnisse in der jeweiligen Phase zu wählen.
Wenn Sie sich bei Ihrem Projekt unsicher sind, kontaktieren Sie uns gerne. Wir vereinbaren eine Beratung und unser Team von über 550 ISTQB zertifizierten Software-Testingenieuren steht Ihnen mit seiner Erfahrung aus hunderten Testprojekten und verschiedenen Testframeworks, Tools und Ansätzen zur Verfügung.