Forrester-Bericht zur kontinuierlichen Automatisierung von Funktionstests: Was Sie über kontinuierliche Tests wissen müssen
Von Joy Ruf
30. Juni 2020
4 min lesen
Testautomatisierung hat Softwaretests seit vielen Jahren vorangetrieben, aber mit kontinuierlichem Testen als neuem Paradigma für Softwaretests sollte jede Softwareorganisation verstehen, wie kontinuierliches Testen am besten implementiert werden kann. Der Forrester Report on Continuous Functional Test Automation erklärt, wie.
Zum Abschnitt springen
Verabschiedung einer besseren Teststrategie
Softwaretests bekommen oft einen schlechten Ruf. Es dauert zu lange, erfordert zu viele Ressourcen und wirkt sich auf den Produktionsplan aus. In verschiedenen Branchenumfragen wird die Testphase als Hauptfaktor für Verzögerungen bei der Softwarebereitstellung genannt. Obwohl das Testen als der größte Engpass anerkannt wird, ist es wichtig sicherzustellen, dass qualitativ hochwertige Software geliefert wird.
Manuelle Tests können unvollständig und zeitaufwändig sein, sind jedoch in vielen Unternehmen immer noch weit verbreitet. Eine unvollständige Testabdeckung kann zu versteckten Fehlern führen. Codefehler, die mit einem umfassenderen Ansatz vermieden werden könnten, können in die Produktion übergehen.
Also, was solltest du dagegen tun?
In The Forrester Wave™: Continuous Functional Test Automation Suites, Q2 2020, sagt Diego Lo Giudice,
„Automatisierung ist der Kern der Anpassungsfähigkeit. Obwohl die Testautomatisierung nicht neu ist, haben frühere Automatisierungsansätze den App-Entwicklerteams nicht geholfen, mit den gestiegenen Anforderungen an die moderne Bereitstellung Schritt zu halten. “
Um Ihre Testleistung zu verbessern und einen hohen Grad an Testautomatisierung zu erreichen, müssen Sie eine Strategie anwenden, die Ihre Testprozesse vereinfacht, beschleunigt und optimiert, um Code mit höherer Qualität zu erstellen und weniger Fehler zu generieren.
Beim automatisierten Testen werden Tools verwendet, die die Funktionen des manuellen Testers erweitern, indem komplexe Testfälle in einer Testumgebung erstellt, ausgeführt und verwaltet werden. Auf diese Weise können Testläufe schneller und häufiger durchgeführt werden, wodurch die Testabdeckung mit aktuellen Testfällen verbessert wird.
Entwickeln Sie eine Strategie und ein Business Case für die Testautomatisierung
Die Testautomatisierung verbessert den Testworkflow, ersetzt jedoch das manuelle Testen nicht vollständig. Während Sie so viel wie möglich automatisieren möchten, müssen Sie sich immer an bestimmten Aspekten des Testprozesses beteiligen. Entwickeln Sie Ihre Strategie entsprechend, um je nach den Anforderungen Ihrer Anwendung sowohl manuelle als auch automatisierte Tests zu integrieren.
Machen Sie den Schritt zum automatisierten Testen
Während es bestimmte Bereiche gibt, in denen manuelles Testen der beste Ansatz ist, gibt es mehrere Möglichkeiten, in denen die Automatisierung das Testen von Anwendungen verbessern kann:
- Hochredundante Aufgaben, User Stories oder Szenarien.
- Wiederholte Aufgaben, die für menschliches Versagen anfällig sind.
- Ziemlich stabile Komponenten der Anwendung, die weniger Änderungen aufweisen.
Eine solide Teststrategie umfasst End-to-End-Funktionstests als Schlüsselkomponente sowie nicht-funktionale Tests für Sicherheit, Last und Leistung. Forrester rät,
„Funktionstests konvergieren mit Last- und Leistungstests, um Zeit bei der Erstellung doppelter Testfälle und Automatisierungs-Bots zu sparen. Suchen Sie nach CFTA-Suiten, die konvergierte Arten von automatisierten Funktionstests anbieten, darunter Leistungstests mit Lastgeschwindigkeit, API-Tests, SVT (Service Virtualization Testing) und mehr. “
Viele Unternehmen erkennen die Bedeutung von Softwaretests an, um die Markteinführungszeit für ihre Anwendungen zu verkürzen und gleichzeitig immer komplexere Compliance- und Sicherheitsanforderungen zu erfüllen. Sie wenden sich den Entwicklungsmethoden von DevOps und Agile zu, um ihre Testprozesse zu aktualisieren und effektive Teststrategien zu implementieren, damit sie mit der Nachfrage nach häufigeren Produktionsergebnissen Schritt halten können. Diese Entwickler-Workflows bieten zwar einige Anleitungen zu Überlegungen zum Codetest, empfehlen jedoch keine spezifischen Schritte oder Best Practices, um Ihre Prozesse tatsächlich zu verbessern.
Die Testautomatisierung ist der erste Schritt zur Erstellung wiederverwendbarer Tests, die viele Anwendungsfälle abdecken und ohne manuelle Eingriffe ausgeführt werden können, um eine bessere Testabdeckung in kürzerer Zeit zu erzielen. Es gibt verschiedene Automatisierungsstufen, die implementiert werden können. Zum Beispiel erfordert die Open Source-Automatisierung manuelles Scripting und die Wartung von Test-Assets, was mehr Personal erfordert. mit mehr Personal.
Wenn Sie Ihre Tests einfacher skalieren möchten, ist es hilfreich, ein automatisiertes Tool zu verwenden, mit dem wiederholbare Testabläufe mit einfacher Wartung erstellt und unterstützt werden können, indem künstliche Intelligenz (KI) und maschinelles Lernen genutzt werden. Ein gutes Testtool erleichtert Ihnen das Generieren und Debuggen der Testskripte und hilft Ihnen, die Tests auf dem neuesten Stand zu halten und zu warten, wenn Änderungen in der Anwendung auftreten.
Glücklicherweise gibt es automatisierte Testlösungen, mit denen Sie Legacy-Workflows aktualisieren und eine effektive Teststrategie entwickeln können. Laut dem Forrester-Bericht
„Intelligente, integrierte Suiten von Testwerkzeugen übertreffen die weniger effektiven, isolierten Best-of-Breed-Suiten. Zusätzlich zu den typischen Integrations- und Wartungsfunktionen bestimmen Funktionen wie KI und maschinelles Lernen (ML), die in das Design und die Ausführung der Testautomatisierung einfließen, kombinierte heterogene Kanäle und API-Tests, welche Anbieter das Rudel anführen werden. “
Sie können Ihren Testfluss nach Codeänderungen optimieren, wenn Ihr Testtool Testausführungsdaten mit Testabdeckungsdaten korreliert und ermittelt, welche Tests zur Validierung der geänderten Bereiche erforderlich sind. Die intelligente Testausführung nur für den betroffenen Code verkürzt Ihre gesamte Testzeit und ermöglicht es Ihnen, sich auf die weitere Entwicklung zu konzentrieren.
Integrieren Sie kontinuierliche Tests
Die Testautomatisierung allein reicht nicht aus, um häufige und umfangreiche Tests in der realen Welt oder die vollständige Abdeckung der gesamten Anwendung zu bewältigen. Kontinuierliches Testen ist das neue Paradigma, das die richtige Mischung aus automatisierten und manuellen Tests beinhaltet, um eine End-to-End-Abdeckung für Entwicklungsprojekte mit kontinuierlicher Integration / kontinuierlicher Bereitstellung (CI/CD) sicherzustellen. Dies verkürzt die Lieferzeit und erhöht gleichzeitig die Softwarequalität, indem die Testautomatisierung auf einen früheren Zeitpunkt im Entwicklungslebenszyklus ausgedehnt wird. Dieses als „Shift Left“ bekannte Verfahren ermöglicht es Testern, früher im Entwicklungsprozess besseres Feedback zu geben, wenn es zur Behebung von Problemen verwendet werden kann, bevor der Code für die Produktion freigegeben wird. Ohne automatisierte Tests können Sie kein echtes CI/CD erreichen.
Die Entscheidung für die Implementierung kontinuierlicher Tests muss eine Top-Down-Entscheidung des Managements sein, das beschlossen hat, die Tests an den Geschäftszielen auszurichten und zu erkennen, dass diese Prozessverbesserungen einen Mehrwert für das Endergebnis darstellen, Kosten senken, Risiken mindern und die Qualität verbessern. Wenn Sie bereit sind, Ihre Anwendungstests zu automatisieren und nach links zu verschieben, um einen kontinuierlichen Testprozess zu implementieren, Wenden Sie sich an Parasoft um zu lernen, wie wir helfen können.
„Parasoft setzt seine starke, engagierte KI-Roadmap um … und plant, KI und ML auf allen Ebenen der Testpyramide zu integrieren. Kontinuierliche Tests von Parasoft glänzt in API-Tests, Service-Virtualisierung und Integrationstests sowie im kombinierten Automatisierungskontext.“ – The Forrester Wave™: Continuous Functional Test Automation Suites, 2. Quartal 2020