Das Problem ist, dass einige Personen nicht verstehen, dass Automatisierung weder "einfach" noch "schnell" ist.
Ich stimme Ihrer Prämisse hier nicht zu.
Ich bin ein großer Befürworter des automatisierten Testens, egal ob Unit-Test, Integrationstest oder UI-Test. Es gibt viele großartige Tools, um automatisierte Tests durchzuführen.
Vergleichen wir das automatisierte Testen mit dem manuellen Testen anhand des folgenden Beispiels:
Testen Sie in einer Webanwendung die Funktion "Kennwort ändern" eines vorhandenen Benutzers mithilfe eines Browsers.
Manuelle Prüfung :
- Starten Sie die Webanwendung
- Öffnen Sie den Browser
- Verdammt, da ist ein Fehler. Warum? Oh, ich habe vergessen die Datenbank zu starten!
- Okay, schalte die Webanwendung aus
- Starten Sie die Datenbank
- Starten Sie die Webanwendung
- Aktualisieren Sie den Browser
- Hmm, wie war das Passwort unseres Testbenutzers nochmal?
- Ein Blick in die Datenbank
- Oh, die Benutzertabelle ist leer! Ich muss einen neuen Benutzer anlegen.
- Registrieren Sie einen neuen Benutzer in der Webanwendung: Geben Sie Benutzername, Passwort und E-Mail-Adresse ein
- Warum kann ich mich nicht mit meinem neuen Benutzer anmelden? Oh, ich muss auf den Bestätigungslink in der E-Mail klicken!
- Nun, ich habe dem Benutzer eine E-Mail wie "test@example.com" gegeben. Gehen wir zur Datenbank und setzen die Spalte "active" auf "Yes".
- Einloggen. Diesmal funktioniert es!
- Hmm, was wollte ich nochmal testen ...?
Einfach? Nicht wirklich. Es gibt viele mögliche Fallstricke in diesem Prozess.
Schnell? Nein. Manuelle Arbeit braucht Zeit.
Versuchen wir nun, einen automatisierten Test zu schreiben :
- Wir müssen Tools für unsere Programmiersprache finden, um die Datenbank und den Webserver automatisch zu starten. Recherche und Umsetzung brauchen Zeit.
- Die Datenbank muss sich zu Beginn des Tests in einem sauberen Zustand befinden. Das Erstellen der Skripte nimmt Zeit in Anspruch.
- Wir müssen den Test schreiben. Da wir einen Benutzer benötigen, müssen wir auch einen neuen für unseren Test registrieren. Braucht Zeit.
- Schließlich können wir schreiben, was wir testen möchten: Ändern des Passworts des Benutzers. Mit unserem Browser-Test-Tool ist dies im Vergleich zu den vorherigen Aufgaben relativ schnell erledigt.
Einfach? Nein! Wir mussten die Tools untersuchen, implementieren und einige Fehler in unseren Tests beheben.
Schnell? Nein! Es dauert sogar länger als ein manueller Test.
Aber hier gibt es einen großen Unterschied: Für zukünftige Tests müssen Sie nur den Test selbst schreiben , den letzten Aufzählungspunkt in der Liste - was vergleichbar schnell erledigt wurde. Alle Recherchen und Init-Skripte müssen nicht für weitere Tests durchgeführt werden.
Und nachdem Sie den Test geschrieben haben, können Sie ihn einfach starten. In wenigen Sekunden (oder vielleicht Minuten, wenn das Starten der Datenbank und der Webanwendung lange dauert) sehen Sie, ob die Routine "Kennwort ändern" funktioniert oder nicht. Wenn ein Fehler vorliegt, beheben Sie ihn und führen Sie den Test erneut aus. Sie werden sofort feststellen, ob der Fehler behoben ist. Schnell und einfach .
Das Schreiben automatisierter Tests ist in erster Linie weder einfach noch schnell, aber das Ausführen von Tests ist es.
Und hier kommt die investierte Zeit zurück.