Was ist automatisiertes Testen von Software?
Die Software wird getestet, um zu bestätigen, dass alle gültigen Eingaben korrekt interpretiert und ausgeführt werden, während falsche Eingaben verworfen werden. Tests bestätigen auch, dass die Ergebnisse effizient generiert werden und dass eine große Datenmenge ohne Probleme verarbeitet werden kann. Die Prüfung kann manuell oder elektronisch erfolgen. Beim automatisierten Softwaretest wird spezielle Software zum Testen des in der Entwicklung befindlichen Codes verwendet. Solche Tests kommen dem Softwareentwicklungsprozess zugute, wenn sie mit Bedacht angewendet werden.
Manuelle Tests hängen von der Sorgfalt der Personen ab, die die Tests durchführen. Das manuelle Testen von Software ist zeitaufwändig und erfordert für die meisten Anwendungen ein erhebliches Verhältnis von Testern zu Entwicklern. Dies erhöht die Entwicklungskosten. Darüber hinaus haben manuelle Tests die Einschränkung, dass große Datenmengen oder eine große Anzahl gleichzeitiger Benutzer oder Eingaben nicht einfach getestet werden können.
Automatisierte Softwaretests steuern programmgesteuert die Testausführung und die Auswertung der Ausgabe. Die Testsoftware stellt der zu bewertenden Software Eingaben zur Verfügung, die unterschiedlichen Bedingungen entsprechen. Für jeden Satz von Bedingungen vergleicht die Testsoftware die tatsächlichen Ergebnisse mit den gewünschten Ergebnissen und führt Statistiken zum Gesamtverhalten der Zielsoftware. Nach einem „Durchlauf“ liefert die Testsoftware in der Regel zusammenfassende Ergebnisse, sodass die Benutzer schnell feststellen können, was zu beheben ist.
Beim automatisierten Softwaretest werden die mühsamen Aufgaben beim Testen wie Anmelden oder Eingeben von Daten wie Postanschriften mechanisiert. In jedem Lauf können große Kombinationen von Bedingungen getestet werden. Da zum automatisierten Testen Computer und Software verwendet werden, können auch große Mengen von Eingabedaten oder extrem schnelle Eingaben simuliert werden. Jeder Durchlauf einer Reihe von Testbedingungen kann in wenigen Stunden abgeschlossen werden. Daher ist das automatisierte Testen sehr nützlich für Regressionstests, mit denen sichergestellt wird, dass eine neue Funktion oder eine Fehlerbehebung nicht versehentlich den zuvor funktionierenden Code beschädigt hat.
Einige neuere Entwicklungsmethoden wie Extreme Programming legen Wert darauf, dass Tests vor dem Codieren verfügbar sind. Die Entwicklungsmethoden legen Wert darauf, dass Regressionstests mehrmals täglich durchgeführt werden, um die Richtigkeit der Software während der Entwicklung sicherzustellen. Wenn das Softwareteam diese Methodik für eine wichtige Software einhalten muss, muss zwingend ein automatisierter Softwaretest durchgeführt werden.
Der Automatisierungstestsoftware müssen die gewünschten Ein- und Ausgänge zugeführt werden. Eine Möglichkeit, dies zu tun, besteht darin, manuelle Testbedingungen in der Software zu speichern. Eine andere Möglichkeit besteht darin, Code zu schreiben, um verschiedene Bedingungen innerhalb der zulässigen Grenzen der zu testenden Software zu generieren. Die Grundlage für automatisierte Softwaretests ist also definitiv menschlicher Aufwand. Die automatisierte Prüfsoftware kann nicht alleine darüber hinausgehen.
Automatisierte Softwaretests verursachen erhebliche Kosten für die zu beschaffende Software sowie für deren Verwendung. Ob automatisiert werden muss und welcher Teil der Tests automatisiert werden muss, sind wichtige Entscheidungen. Automatisierte Tests eignen sich nicht für Features und Umgebungen, von denen erwartet wird, dass sie sich erheblich ändern. In den meisten Anwendungen ist eine Mischung aus manuellen und automatisierten Tests geeignet.