Testautomatisierung: Nachteile

Autotest (automatisierter Test) ist ein Skript, das Benutzerinteraktionen mit einer Anwendung simuliert, um Fehler in der Software zu lokalisieren.

Das ultimative Ziel beim Testen der Automatisierung ist eine Reihe von Autotests, die nacheinander gestartet werden, wenn Sie auf die Schaltfläche „GO!“ Klicken. Gut, oder Sie können jeden Autotest bei Bedarf immer separat ausführen. Jedes dieser Skripte überprüft den korrekten Betrieb eines bestimmten Teils der Anwendung und behebt Fehler, falls etwas nicht funktioniert.
Über wie viel profitabler als die manuelle Prüfung automatisiert zu verwenden, sowie über die Vorteile von automatisierten Tests geschrieben ist in dieserArtikel. Ich möchte die möglichen Probleme beschreiben, auf die ein Tester stoßen kann, der sich für automatisierte Tests entscheidet.


Auswahl von Tests für die Automatisierung


Bei der Auswahl von Testfällen, die automatisiert werden müssen, treten Probleme auf. Nicht alle Testfälle eignen sich für die Automatisierung, und es gibt Situationen, in denen einige von ihnen besser in manuellen Tests verbleiben. Mit anderen Worten, wenn Sie 1000 Testszenarien haben, ist die Wahrscheinlichkeit sehr gering, dass 1000 davon automatisiert werden können. Es ist sehr selten möglich, vollständig von manuellen Tests auf Autotests umzuschalten. Vergessen Sie nicht, dass manuelle und automatisierte Tests sich nicht gegenseitig ausschließen, sondern komplementäre Methoden.
Zum Beispiel ist es unmöglich (sprich: sehr schwierig), das Testen von Dingen wie den folgenden zu automatisieren:
  • Installation des Betriebssystems
  • Überprüfen eines von einem Drucker gedruckten Dokuments
  • Überprüfen Sie den Inhalt des Bildes, Video

Kosten


Es stellt sich nicht immer heraus, dass die Entwicklung und Wartung automatisierter Tests billiger ist als manuelle Tests. Es ist notwendig, in die Entwicklungsumgebung, Systemadministratoren, Einstellungsprogrammierer und deren Informationsunterstützung (dh Unterstützung bei Fragen zum zu testenden System und zu Testfällen) zu investieren, um ihnen Arbeitsplätze zu bieten. All dies führt zu einem erheblichen Betrag und zahlt sich nur beim Testen großer Systeme aus, wenn es möglich ist, eine relativ große Anzahl von Tests zu automatisieren. Nach der Entwicklung der Skripte muss jemand sie ausführen und die Ergebnisse analysieren. Es wird nicht möglich sein, Tests gemäß dem Schema „gestartet - gewartet - das Endergebnis erhalten“ durchzuführen. Wir brauchen eine Person, die die Leistung von Autotests analysieren kann: um festzustellen, ob ein Test zur Überarbeitung gesendet werden soll, Bereitet der vom Autotest gefundene Fehler die Daten wirklich zum Testen vor? Die Vorbereitung der Entwicklungsumgebung und der Entwicklung selbst wird viel Zeit in Anspruch nehmen.

Ein separater Posten der Automatisierungskosten ist die Unterstützung von Autotests.

Unterstützung


Autotests erfordern immer Unterstützung. Da das Schreiben von Autotests programmiert wird, müssen Sie den Quellcode aufrufen, um die Logik von Autotests zu ändern und zu korrigieren. Dazu müssen Sie zusätzliche Spezialisten einstellen, die die schriftlichen Skripte begleiten. Dies sind neue Ausgaben, die nicht vermieden werden können und die Kosten für Autotests erheblich erhöhen. Es gibt zwei Hauptfälle, in denen ein Eingriff in den Quellcode erforderlich sein kann:

1. Ändern Sie die Eingabe in den Test

Es ist gut, wenn Sie während mehrerer Iterationen des Testens der Anwendung immer dieselben Daten zur Eingabe an die Autotests senden können. Überprüfen Sie beispielsweise den Eintrag in der Datenbank oder das Öffnen eines Menüs, in dem überhaupt keine Eingabe erforderlich ist.
Es kommt aber auch vor, dass vor jedem Start von Autotests Daten erneut aufbereitet werden müssen. Bei einer großen Anzahl von Tests kann die Vorbereitung von Eingabedaten viel Zeit in Anspruch nehmen. Wenn Sie beispielsweise das Bankensystem testen, benötigen Sie möglicherweise Konten in Rubel, Dollar oder Euro. Konten mit unterschiedlichen Beträgen, die sowohl Einzelpersonen als auch Organisationen gehören. Nach dem Ausführen einer Reihe von Autotests haben alle Konten möglicherweise einen Saldo von Null. Einige von ihnen werden geschlossen, andere werden gesperrt. Für nachfolgende Tests müssen andere Konten verwendet werden. In einigen Fällen können die Daten in Autotestskripten in Hardcodes geschrieben werden. Dies ist möglicherweise nicht der Fall, weil der Entwickler zu faul war, um sein Skript flexibler zu gestalten, sondern einfach, weil ein solcher Hardcode für einen Testfall erforderlich war.

2. Änderung der Funktionalität

Besonders relevant für Regressionstests - Testen neuer Versionen. Jedes Mal, wenn die Schnittstelle oder Funktionalität der getesteten Software aktualisiert wird, müssen Autotests abgeschlossen werden. Autotests selbst können sich nicht an die neue Benutzeroberfläche anpassen. Um den korrekten Betrieb fortzusetzen, müssen Sie alles manuell ändern. Je mehr Tests durchgeführt wurden und je mehr Innovationen in der Software vorgenommen wurden, desto länger dauert die Aktualisierung.
Beispiel: In der alten Version des Programms gab es ein Menü "Datei -> Optionen", in der neuen Version wurde dieses Element in zwei Teile unterteilt: "Datei -> Einstellungen" und "Datei -> Optionen". Autotest sucht weiterhin nach dem Element "Optionen", und selbst wenn Sie knacken, werden die "Einstellungen" nicht gefunden.
Beispielsweise kann sich die Ladezeit der getesteten Seite ändern. Wenn es vorher sofort geladen wurde, dauert es jetzt eine Minute. Angenommen, die Verbindungsgeschwindigkeit ist jetzt schwach oder die Basis ist langsam. Der Autotest weiß dies nicht, wartet 10-15 Sekunden auf das Laden der Seite und zeigt die Meldung "Fehler: Die Seite wurde nicht geladen" an. Auch hier müssen Sie den Quellcode des Skripts verfeinern.

In beiden Fällen hängt vieles von den Entwicklern ab: Das Schreiben von Autotests erfordert nicht weniger Wissen und Aufwand als das Erstellen anderer Software. Daher manifestieren sich hier alle mit der Entwicklung verbundenen Probleme: die Komplexität der Qualitätskontrolle und Zuverlässigkeit, die Verschiebung der Fristen, die Änderung des Budgets und viele andere.

Und doch


Diese Nachteile bedeuten nicht, dass Autotests um jeden Preis vermieden werden sollten. Sie sind auch nützlich.
Wie Sie in der Grafik sehen können, liefert der Einsatz von Automatisierung die besten Ergebnisse bei gleichen Kosten. Ich wiederhole jedoch, dass diese Ergebnisse nur dann am besten sind, wenn das Testen großer Projekte automatisiert wird.

Bild

Einige weitere Vorteile der Automatisierung:
  • Autotests funktionieren schneller als Menschen
  • Automatische Tests wurden mit größerer Genauigkeit durchgeführt
  • Testautomatisierung verbessert die Produktqualität
  • Die Automatisierung kann in fast allen Testprozessen eingesetzt werden.
  • Autotests können nachts durchgeführt werden.



Jetzt auch beliebt: