Es gibt so viele Arten von Tests, von denen viele automatisiert werden können, dass wir sie nicht alle in einem Beitrag zusammenfassen können. Aber hier sind genug, um Ihnen einen guten Ausgangspunkt zu geben.
Code-Analyse
Es gibt tatsächlich viele verschiedene Arten von Code-Analyse-Tools, einschließlich statischer Analyse und dynamischer Analyse. Einige dieser Tests suchen nach Sicherheitslücken, andere prüfen auf Stil und Form. Diese Tests werden ausgeführt, wenn ein Entwickler Code eincheckt. Abgesehen von der Konfiguration von Regeln und der Aktualisierung der Tools gibt es mit diesen automatisierten Tests nicht viel zu schreiben.
Unit Tests
Sie können auch eine Unit-Test-Suite automatisieren. Unit-Tests dienen dazu, eine einzelne Funktion oder Einheit des Betriebs isoliert zu testen. Sie werden normalerweise auf einem Build-Server ausgeführt. Diese Tests hängen nicht von Datenbanken, externen APIs oder Dateispeicher ab. Sie müssen schnell sein und dienen nur zum Testen des Codes, nicht der externen Abhängigkeiten.
Integrationstests
Integrationstests sind eine andere Art von Tier, wenn es um Automatisierung geht. Da ein Integrationstest - manchmal auch als End-to-End-Test bezeichnet - mit externen Abhängigkeiten interagieren muss, ist die Einrichtung komplizierter. Oft ist es am besten, gefälschte externe Ressourcen zu erstellen, insbesondere wenn Sie mit Ressourcen arbeiten, die außerhalb Ihrer Kontrolle liegen.
Wenn Sie beispielsweise über eine Logistik-App verfügen, die von einem Webdienst eines Anbieters abhängt, schlägt Ihr Test möglicherweise unerwartet fehl, wenn der Dienst des Anbieters nicht verfügbar ist. Bedeutet das, dass Ihre App kaputt ist? Möglicherweise, aber Sie sollten genügend Kontrolle über die gesamte Testumgebung haben, um jedes Szenario explizit zu erstellen. Verlassen Sie sich niemals auf einen externen Faktor, um das Ergebnis Ihres Testszenarios zu bestimmen.
Automatisierte Abnahmetests
Heutzutage gibt es mehrere Praktiken, die automatisierte Abnahmetests (AAT) verwenden, aber im Grunde tun sie dasselbe. Die verhaltensgesteuerte Entwicklung (BDD) und die automatisierte akzeptanztestgesteuerte Entwicklung (AATDD) sind ähnlich. Beide folgen der gleichen Vorgehensweise beim Erstellen des Abnahmetests, bevor die Funktion entwickelt wird.
Am Ende wird der automatisierte Abnahmetest ausgeführt, um festzustellen, ob die Funktion die vereinbarten Ergebnisse liefert. Daher ist es für Entwickler, Unternehmen und Qualitätssicherung wichtig, diese Tests zusammen zu schreiben. Sie dienen in Zukunft als Regressionstests und stellen sicher, dass die Funktion den Erwartungen entspricht.
Regressionstests
Ohne AATs müssen Sie nachträglich Regressionstests schreiben. Während beide Formen von Funktionstests sind, ist die Art und Weise, wie sie geschrieben werden, wann sie geschrieben werden und von wem sie geschrieben werden, sehr unterschiedlich. Wie AATs können sie über eine API per Code oder einer Benutzeroberfläche gesteuert werden. Es gibt Tools zum Schreiben dieser Tests über eine GUI.
Leistungstests
Es gibt viele Arten von Leistungstests, aber alle testen einen Aspekt der Leistung einer Anwendung. Wird es extremem Druck standhalten? Testen wir das System auf hohe Hitze? Ist es eine einfache Reaktionszeit unter Last, nach der wir suchen? Wie wäre es mit Skalierbarkeit?
Manchmal erfordern diese Tests die Emulation einer großen Anzahl von Benutzern. In diesem Fall ist es wichtig, eine Umgebung zu haben, die in der Lage ist, eine solche Leistung zu erbringen. Für diese Art von Tests stehen Cloud-Ressourcen zur Verfügung. Es können jedoch auch lokale Ressourcen verwendet werden.
Rauchtests
Was ist ein Rauchtest? Dies ist ein grundlegender Test, der normalerweise nach einem Bereitstellungs- oder Wartungsfenster durchgeführt wird. Mit einem Rauchtest soll sichergestellt werden, dass alle Dienste und Abhängigkeiten betriebsbereit sind. Ein Rauchtest ist kein vollständiger Funktionstest. Es kann als Teil einer automatisierten Bereitstellung ausgeführt oder durch einen manuellen Schritt ausgelöst werden.