Blog

QS-Dilemma: Manuelles oder automatisiertes Testen

Frau, die an Smartphone und Laptop arbeitet
Inhalt

    Es gab langjährige Debatten unter Qualitätssicherungsspezialisten (QS) über Vor- und Nachteile von dem manuellen und automatisierten Testen und den Unterschied zwischen diesen beiden Ansätzen. Der Grund dafür ist ziemlich logisch: Softwaretesten ist eine wichtige Phase, wenn Sie ein IT-Produkt entwickeln. In Innowise verstehen wir genau, warum Testen wirklich wichtig ist. Deshalb bieten wir Leistungen für Testen von Web-Apps und mobilen Apps auf Nachfrage.
    Wir hoffen, dass Sie nach dem Lesen dieses Artikels entscheiden können, welche von beiden Optionen — „Manuelles oder Automatisiertes Testen“ — besser für Sie ist. Lassen Sie uns zuerst über diese beiden Begriffe sprechen.

    Was ist der Unterschied zwischen Automatisierung und manuellem Testen?

    Während des manuellen Testens (MT) führt ein QS-Ingenieur oder ein Tester jeden Testfall von Hand durch, es werden keine Skripte verwendet. Beim automatisierten Testen (AT) ist alles umgekehrt: ein Tester verwendet Skripte, Tools und Software, um alle Testfälle auszuführen. Da wir jetzt beide Konzepte verstehen, wollen wir uns in Details vertiefen.

    Automatisiertes Testen

    Test-Driven Entwicklung (TDD) ist ohne automatische Tests nicht möglich. In TDD schreibt man zuerst Unit-Tests und dann erscheint der echte Code. Sobald der Entwickler den Code fertiggestellt hat, ist die Zeit für die Ausführung von Unit-Tests gekommen (in der Regel werden Unit-Tests von den Entwicklern durchgeführt). Dann wird entweder dieser Code refaktorisiert oder es werden andere Tests hinzugefügt und ausgeführt, wobei die Reihenfolge der nachfolgenden Aktionen vom Ergebnis abhängt.

    Hier ist die Liste von Testarten, bei denen die Automatisierung besser als der manuelle Ansatz ist:

    Regressionstests

    Automatisiertes Testen eignet sich perfekt für Regressionstests, da die Entwickler den Code von Zeit zu Zeit ändern und die Regressionen prompt ausgeführt werden können

    Funktionales Testen

    Die effektive Kapazität der Funktionsspezifikationen einer App wird beim Testen der Software bestimmt. Dabei werden im Allgemeinen die Übereinstimmung, Kompatibilität, Genauigkeit, Sicherheit und Relevanz berücksichtigt

    Testen der grafischen Benutzeroberfläche (GUI)

    Das umfasst UI-Testen, um festzustellen, ob die GUI alle erforderlichen Anforderungen erfüllt

    Wiederholte Ausführung

    Wenn eine Aufgabe wiederholt ausgeführt werden soll, ist diese Art von Testen eine gute Wahl

    Leistungstests

    Ähnlich wie im vorherigen Fall: Wenn eine große Anzahl von Benutzern gleichzeitig simuliert werden soll, ist automatisiertes Testen die Option.

    Wann wähle ich automatisiertes Testen?

    1. Wenn die Aufgaben, die Sie haben, viel Zeit in Anspruch nehmen.
    Nachdem Sie eine Phase erreicht haben, wann bereits alle erforderlichen Änderungen und Modifikationen vorgenommen wurden, müssen Sie überprüfen, ob alle richtig funktionieren. Natürlich möchten Sie nicht immer wieder die gesamte App-Funktionalität überprüfen, da das nicht nur viel besser ist, sondern auch den Aufwand für die Durchführung von Regressionstests verringert. So finden Sie die neuesten Fehler und sparen Zeit und Mühe.

    2. Wenn Sie sich mit wiederholenden Aufgaben beschäftigen müssen.
    Es gibt Fälle, wenn Sie immer neue Features hinzufügen, die sehr ähnlich oder sogar identisch sind, oder kontinuierlich führen Sie identische Vorgänge für Ihr Projekt aus. Überlassen alle Ihren Problemen dem automatisierten Testen und sparen Sie Zeit.

    3. Wenn kein menschlicher Fehler auftreten soll.
    Alle automatisierten Tests werden mit Hilfe von speziellen Tools und Skripten ausgeführt. Daher ist das Risiko, dass ein Fehler übersehen wird, minimal. Aus diesem Grund spart das Zeit und ist etwas, worauf man sich verlassen kann.

    4. Wenn komplexe GUI-Tests erwartet werden.
    AT nicht bloß identifiziert, sondern protokolliert auch Wege, wie sich Plattformen unterschiedlich verhalten. Das Testen der grafischen Benutzeroberfläche eignet sich auch für die Fälle, in denen nach Regressionsfehlern gesucht werden muss.

    5. Wenn Last und Leistung getestet werden sollen.
    Ehrlich gesagt gibt es keine Möglichkeit, Last und Leistung manuell zu testen. Während des AT werden Tausende von gleichzeitigen Benutzern simuliert.

    Beachten Sie Folgendes: Wenn Sie sicher sind, dass sich keine Funktionen während der Projektentwicklung wesentlich ändern sollen, ist das automatisierte Testen eine gute Wahl. Wenn Sie jedoch erwarten, dass sich die Funktionalität häufig ändert, ist es einfacher, Tests manuell durchzuführen.

    Manuelles Testen

    Jetzt überlegen Sie wahrscheinlich, warum MT existiert. Unterschätzen Sie es nicht, da MT jedenfalls ausgeführt werden soll, bevor Sie zum AT weitergehen. Es stimmt, dass es viel Mühe kostet, aber es gibt keinen anderen Weg, um sicherzustellen, dass automatisierte Tests überhaupt nicht unmöglich sind.

    Wir haben eine Liste von Tests vorbereitet, die man nicht automatisieren kann oder die schwer zu automatisieren sind:

    Usability-Tests

    Ein QS-Ingenieur analysiert, wie einfach, bequem und handlich die Software oder ein Produkt für den Endbenutzer ist. Bei Usability-Tests ist die Prüfung durch einen Menschen ein wesentlicher Bestandteil. Deshalb sollen diese Art von Tests manuell durchgeführt werden.

    Exploratives Testen

    In diesem Fall sind analytische und logische Fähigkeiten, Wissen, Kreativität, Erfahrung und Intuition eines Testers ein Muss. In der Regel begleiten solche Tests eine schlechte Spezifikationsdokumentation, und Sie können es sich nicht leisten, viel Zeit dem Ausführen zu widmen. Dieses Szenario erfordert menschliche Fähigkeiten und Kenntnisse, um die Tests durchzuführen.

    Ad-hoc-Tests

    Es gibt keinen „richtigen“ Weg bei dieser Art von Tests. Ein Tester erstellt keine Pläne und die Systemfunktionalität wird planlos getestet. Die Herausforderung in diesem Fall besteht darin, so erfinderisch und kreativ wie möglich zu sein und sein Bestes zu tun, um das System abzustürzen, um Fehler zu finden.

    Wann ist manuelles Testen eine bessere Wahl?

    1. Wenn es sich um ein kurzfristiges Projekt handelt.
    Einerseits liegt der Schwerpunkt des AT dabei, nicht viel Zeit und Mühe aufzuwenden, andererseits ist die Erstellung automatisierter Tests und deren Unterstützung sowohl energie- als auch zeitaufwändig. Wenn Sie eine kleine Website für die Werbung erstellen möchten, ist AT kaum erforderlich.

    2. Wenn Sie UI-Abnahmetests benötigen.
    Das ist der häufigste Fall, wenn MT zu bevorzugen ist, weil die Benutzeroberfläche und ihre visuellen Elemente getestet werden sollen. Der Grund dafür ist ganz einfach: Automatisierte Tests können Gesten, Bildfarben, Textmarkierungen, Schriftgrößen und Links nicht identifizieren. Stellen Sie sich vor, Sie haben eine App erstellt und es gibt einen Fehler: Ein Link ist sehr klein, sodass der Benutzer ihn nicht sehen kann. Ein Mensch wird einen solchen Fehler innerhalb von Sekunden bemerken, während ein automatisierter Test nicht erkennen wird, dass es hier ein Problem liegt.

    3. Wenn sich Ihr Projekt in der Anfangsphase der Entwicklung befindet.
    In dieser Phase können manuelle Tester helfen, die Engpässe im Projekt zu finden. Dies führt zur Reduzierung des Zeit- und Arbeitsaufwands für die spätere Fehlerbehebung. Einige halten automatisierte Tests für zu teuer und ressourcenintensiv für diese volatile Phase der Produktentwicklung. Andere sagen, dass automatisierte Tests in jeder Entwicklungsphase vorhanden sein sollten.

    4. Wenn das Testen nicht automatisiert werden kann.
    Es gibt Fälle, in denen eine Automatisierung nicht möglich ist. In der Regel handelt es sich hierbei um Tests in Bezug auf Hardware. Es ist kaum möglich, Skripte zum Testen von Touchpads, Bildschirmen und Sensoren zu erstellen. Ein weiterer Punkt ist, dass es Daten gibt, die Sie nur von Hand testen können. Natürlich ist es möglich, einen automatisierten Test durchzuführen, um festzustellen, ob ein Drucker tatsächlich druckt. Die manuelle Vorgehensweise ist jedoch wahrscheinlich besser, wenn Sie sich um die Qualität eines gedruckten Bildes kümmern.

    Zusammenfassung

    Nach all den Diskussionen können wir im Großen und Ganzen sagen, dass es keine Antwort auf die Frage gibt, ob die Testautomatisierung besser als manuelles Testen ist oder umgekehrt. Die Auswahl muss je nach Ihrem Projekt getroffen werden. Der beste Ansatz besteht darin, manuelle und automatisierte Tests zu kombinieren. Das ist gerade was wir in Innowise machen.

    Im Falle einer bestimmten Anfrage oder Technologie, die hier nicht aufgeführt ist, können Sie das mit einem Experten unter contact@innowise-group.com order in Skype Innowise besprechen.

    KONTAKTIEREN SIE UNS