Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>
Parasoft hatte schon immer eine Kernaufgabe - die Vereinfachung der Testautomatisierung - und dies zeigt sich in der gesamten Parasoft-Tool-Suite, von der statischen Analyse bis zur Umgebungssimulation mit Service-Virtualisierung. Die Idee von einfach war jedoch noch nie so präsent wie in der neuesten Version von SOAtest. In dieser Version haben wir die mit API-Tests verbundenen Komplexitäten beseitigt, indem wir eine einfache und elegante Lösung erstellt haben, mit der Unternehmen nicht nur mit API-Tests beginnen, sondern auch die Grundlage für eine skalierbare und wartbare API-Teststrategie legen können, die eine agile Entwicklung unterstützt.
Unsere CEO Elizabeth Kolawa hatte eine einfache Richtlinie, als wir über die Entwicklung dieser neuen Testautomatisierungsidee diskutierten. Sie sagte, "mach es einfach." Diese einfache Aussage führte zu einer eingehenden Analyse der aktuellen Herausforderungen, die mit dem Testen in der Neuzeit verbunden sind, und führte zu einer Schlüsselrealisierung:
Die Tools in der Software-Testbranche waren nicht auf Einfachheit für die agile Welt ausgerichtet.
Agile ist in erster Linie eine entwicklungsorientierte Aktivität. Im Grunde genommen ist Agile eine Softwareentwicklungsmethode, bei der typische SDLC-Aktivitäten, die sich traditionell über die Dauer eines Projekts erstrecken, in viel kleinere Teile unterteilt werden, die als Sprints bezeichnet werden. Normalerweise dauert ein Sprint 2 bis 3 Wochen. In einem Sprint konzentrieren sich die Entwicklungsaktivitäten auf neue Funktionen und Verbesserungen.
Ein Sprint sieht ungefähr so aus:
Ein Sprint beginnt mit der Entwurfs- und Erstellungsphase, in der die neue Funktionalität in User Stories aufgeteilt und in den Bereich integriert wird. Anschließend beginnt die Entwicklung sofort mit der Erstellung von etwas. Am Ende des Sprints kann es zu Release-Aktivitäten kommen oder auch nicht, aber egal was passiert, Feedback wird eingeholt und dann beginnt ein weiterer Sprint und der Vorgang wiederholt sich immer wieder.
Mit Agile können Unternehmen einen Cent einschalten, da das während jedes Sprints gesammelte Feedback auf den nächsten Sprint angewendet werden kann und dabei hilft, das Projekt zu leiten, zu gestalten und zu fokussieren. Dies funktioniert gut für die Entwicklung, aber wenn Sie sich den Testabschnitt des Sprints ansehen, wird es langsam kompliziert.
Test erhält erst im Sprint und aus logischen Gründen Zugriff auf die neuen Funktionen und Verbesserungen. Das Testteam muss warten, bis das Entwicklungsteam die volle Funktionalität aufgebaut hat, sodass der Test von Anfang an immer ein wenig hinter der Entwicklung zurückbleibt.
Dieses Problem verschärft sich nur, wenn der Sprint fortgesetzt wird und Tester sich auf UI-Tests verlassen (manuelle Interaktion mit der Benutzeroberfläche). Das Testen von Benutzeroberflächen ist die häufigste Testpraxis, da es einfach zu verwenden ist - es ist einfach, Aktionen in der Benutzeroberfläche mit der User Story zu verknüpfen, es ist einfach, über eine große Anzahl von Testern zu skalieren, und aufgrund von Aufnahme- und WiedergabefunktionEs ist einfach, eine erste Runde der Automatisierung durchzuführen.
Es gibt jedoch viele Probleme beim Testen der Benutzeroberfläche:
Jeder der oben genannten Faktoren kann zu erheblichen Verzögerungen bei einem Sprint führen. Wenn Sie jedoch berücksichtigen, wie ein traditioneller Projektzyklus funktioniert, handelt es sich um eine Reihe dieser Sprints, gefolgt von einem Härtungs- oder Regressionszyklus.
Bei jedem Schritt des Weges bemüht sich der Test, mit der Entwicklung Schritt zu halten. Aufgrund der traditionell verwendeten Testtechniken können sie jedoch nie die gewünschten vollständigen und vollständigen Tests erhalten.
Es sieht ungefähr so aus:
In der Regel können sie die neuen Funktionen und Fähigkeiten validieren, haben jedoch keine vollständige Testabdeckung.
Dies ist für viele Tester frustrierend, aber es ist nicht ihre Schuld - es ist nur die Natur des Tieres angesichts der Fähigkeiten, die auf dem Werkzeugmarkt vorhanden sind. Der gefährliche Teil ist, dass ohne diese Qualitätspraktiken Fehler in die Produktion gelangen und den wahrgenommenen Nutzen von Agilität untergraben.
Alle sind sich einig, dass API-Tests die Grundursache von Fehlern genauer bestimmen können als UI-Tests, da API-Tests näher am Code liegen, einfacher zu automatisieren und widerstandsfähiger gegen Anwendungsänderungen sind. Außerdem bieten API-Tests eine bessere Form der Fehlerreproduktion und Kommunikation zwischen Entwicklung und Test, da das Testartefakt die Konvergenz dieser beiden Bereiche darstellt. (In einem kürzlich erschienenen Blog habe ich API-Tests untersucht, was es ist und wie man eine umfassende API-Teststrategie entwickelt. Das können Sie Lesen Sie es, um weitere Informationen über diese äußerst effektive Testpraxis zu erhalten.)
Das Testen auf API-Ebene ist eine hervorragende Methode für die agile Entwicklung, insbesondere weil es Testern ermöglicht, die Funktionalität anhand der komprimierten Zeitachse zu validieren, und API-Tests in hohem Maße wiederverwendbar sind.
Darüber hinaus bieten API-Tests die folgenden Vorteile, die agile Tests vereinfachen und unterstützen:
Wenn ein API-Test fehlschlägt, können Sie verdammt sicher sein, dass Sie ungefähr wissen, wo Sie im Code suchen müssen. Entwickler lieben es, API-Tests von Testern zu erhalten, da Entwickler sie direkt für ihre Anwendung ausführen können, ohne die gesamte Umgebung anschließen zu müssen. Und sie können sie kontinuierlich wiederholen, während sie beginnen, den Defekt zu beheben.
Die kürzere Zeit bis zur Fehlerbehebung bedeutet, dass die Entwicklung einen Fehler im Allgemeinen schneller beheben kann, wenn ein API-Test im Vergleich zum UI-Test bereitgestellt wird. Wenn wir die Zeitrahmen betrachten, die mit Agilität verbunden sind, ist dies genau das, was wir brauchen. Sobald ein Fehler entdeckt wurde, wird der Entwicklung ein API-Test zur Verfügung gestellt, mit dem sie den Fehler finden, beheben und validieren können, ohne die gesamte Anwendung neu erstellen zu müssen, was enorm viel Zeit spart. Dies ist genau die Geschwindigkeit, die wir für Agilität benötigen
APIs stellen die unsichtbare Kommunikation dar, die hinter den Kulissen einer Anwendung stattfindet. Die Unsichtbarkeit der Kommunikation unterstützt den Automatisierungsprozess. Es ist wesentlich weniger komplex, eine Anwendung so weit zu bringen, dass Sie auf API-Ebene mit ihr kommunizieren können, als dies erforderlich wäre, um eine Anwendung in ihrer Gesamtheit zu aktivieren, damit Sie auf UI-Ebene arbeiten können.
Infolgedessen können API-Tests in früheren Phasen des SDLC problemlos in der Automatisierung ausgeführt werden. Die meisten meiner Kunden führen sie zur gleichen Zeit aus, zu der sie ihre Komponententests als Funktion des Code-Check-ins ausführen. Diese API-Testläufe können auch viel einfacher mit dem Bug-Tracking-System verknüpft werden, sodass die zugehörigen API-Tests bei der Behebung von Fehlern problemlos zwischen Entwicklung und Test hin und her übertragen werden können. Dies reduziert den gesamten Übergabeprozess erheblich, da Tester anstelle der Einreichung des Fehlers, der Bereitstellung der Schritte zur Reproduktion und des Wartens auf einen neuen Build aus der Entwicklung Benachrichtigungen vom Fehlerverfolgungssystem erhalten können, dass ein Fehler behoben wurde, und den automatisierten Test sehen können Fälle, die die Auflösung bestätigen. Diese API-Tests können einfach in eine Regressionssuite integriert und immer wieder verwendet werden.
Als Teil unserer Forschung haben wir festgestellt, dass 80% der Entwicklungszeit für die Verwaltung und Aktualisierung von UI-Tests aufgewendet wurden, die aufgrund von Änderungen fehlerhaft waren. Änderungen sind ein großer Zeitkiller, wenn es um Agilität geht, aber aufgrund der erhöhten Code-Check-Ins und verkürzten Zeitrahmen, die mit Agile eingeführt werden, sind Änderungen konstant.
Wenn sich eine Organisation ausschließlich auf UI-Tests verlässt, kann eine Änderung der Anwendung verheerend sein, da viele der Testfälle, die zur Validierung kritischer Funktionen erstellt wurden, einfach nicht mehr funktionieren. Eines der Hauptprinzipien von Agile ist die Fähigkeit, einen Cent einzuschalten. Dies bedeutet, dass sich Benutzeroberflächen und Funktionen ständig ändern und die Belastung durch die Unterstützung und Wartung dieser Tests für Testteams überwältigend werden kann. Auf der anderen Seite sehen API-Tests nicht einmal die Benutzeroberfläche. APIs verfügen außerdem über spezielle Versionsfunktionen, mit denen Tester die Stabilität beibehalten können, wenn sich die Anwendung ändert. Darüber hinaus werden mit dem Servicevertrag APIs definiert, mit denen Testfälle aktualisiert werden können, wenn die Anwendung diese Änderungen durchläuft.
API-Tests können agil sparen indem einer Organisation die Möglichkeit gegeben wird, eine Anwendung in früheren Entwicklungsstadien einfach zu testen und einen effektiven Kommunikationsmechanismus zwischen Entwicklung und Test bereitzustellen, der äußerst widerstandsfähig gegen Änderungen ist. Unternehmen, die API-Tests als grundlegenden Bestandteil ihrer Teststrategie verwenden, können die von ihnen bereitgestellte Flexibilität nutzen, um den Testherausforderungen wirklich einen Schritt voraus zu sein.
Trotz aller Vorteile, die sich aus API-Tests ergeben, konzentriert sich die Branche immer noch auf UI-Tests:
Wir glauben, dass dies daran liegt, dass die Tester es nicht wissen wie man die API testet und/oder nicht wissen, wie ihre Anwendung die APIs verwendet. Es ist nicht sofort ersichtlich, wo man mit dem API-Testen einer Anwendung beginnen soll, und zu verstehen, wie man alle „Puzzleteile“ sinnvoll zusammensetzt, erfordert Domänenkenntnisse der Anwendung.
Da Unternehmen immer noch dazu neigen, eine zentralisierte Testpraxis zu nutzen, benötigen Tester genaue Kenntnisse über die verschiedenen Anwendungsschnittstellen und wissen, wie sie richtig zusammengefügt werden. Es ist keine triviale Aufgabe.
API-Tests gelten immer noch als Niemandsland. In einer kürzlich durchgeführten Umfrage haben wir eine Reihe von Entwicklern und Testern befragt, die für API-Tests in ihrer Organisation verantwortlich sind.
Wie Sie sehen, gibt es einige Unklarheiten darüber, wer letztendlich für API-Tests verantwortlich ist. Wir waren daran interessiert, dieses Problem zu lösen. Wir glauben, dass API-Tests in unterschiedlicher Form sowohl von Entwicklern als auch von Testern zu verantworten sind. Diese Trennung führt jedoch zu einer geringen Abdeckung von API-Tests.
Das Testen auf API-Ebene erfordert spezielle Fähigkeiten und Tools, um eine umfassende Testabdeckung zu erhalten. Es ist nicht intuitiv. Es gibt Tools auf dem Markt, die Unternehmen beim Aufbau einer API-Teststrategie unterstützen sollen. Die überwiegende Mehrheit von ihnen erfordert jedoch ein hohes Maß an technischem Fachwissen, um umfassende API-Tests zu erstellen. Darüber hinaus müssen Tester noch verstehen, wie die APIs funktionieren, was Domänenkenntnisse erfordert. Infolgedessen tendieren Unternehmen dazu, das Nötigste für API-Tests zu tun, was das Gegenteil von dem ist, was wir für Agilität benötigen.
Warum KI, warum jetzt? Die einzige Möglichkeit, dieses Branchenproblem zu lösen, besteht darin, Tools zu erstellen, die die Komplexität von API-Tests verringern. Wir arbeiten seit drei Jahrzehnten im Bereich der Automatisierung von Softwaretests. In dieser Zeit haben wir viele Daten gesammelt, um zu verstehen, was für die Erstellung eines umfassenden API-Tests erforderlich ist. Künstliche Intelligenz hilft uns heute, dieses Know-how zu nutzen, um die Herausforderung des API-Testens für Tester in der gesamten Branche zu vereinfachen.
Der neue Parasoft SOAtest Smart API-Testgenerator wurde von Grund auf neu entwickelt, um die Komplexität von API-Tests zu verringern. Der Smart API Test Generator ist ein Plugin für Chrome, das künstliche Intelligenz verwendet, um manuelle UI-Tests in automatisierte API-Tests umzuwandeln. Dies verringert die technischen Fähigkeiten, die für die Einführung von API-Tests erforderlich sind, und hilft Unternehmen beim Aufbau einer umfassenden skalierbaren API-Teststrategie.
Wie funktioniert es?
Der Smart Generator überwacht den Hintergrundverkehr, während Sie manuelle Tests ausführen, analysiert diesen Verkehr und verwendet künstliche Intelligenz, um automatisch einen aussagekräftigen Satz von API-Testszenarien zu erstellen. Beim Erstellen dieser API-Tests identifiziert der Smart Generator zuerst API-Aufrufe, erkennt dann Muster und analysiert die Beziehungen zwischen ihnen, sodass vollständige API-Testszenarien generiert werden können, nicht nur eine Reihe von API-Tests.
Der Smart Generator bietet Testern einen einfachen Ort, um mit dem Erstellen von API-Tests zu beginnen, sodass sie nicht die schwierigen Aktivitäten berühren müssen, die mit dem manuellen Erstellen von API-Tests verbunden sind, dh das Finden der richtigen Dienstdefinition, das Verstehen der Datennutzlast oder das Ausführen eines Tests und immer wieder, um die Beziehungen zwischen Anforderungen und Antworten zu verstehen, damit Sie mit dem Erstellen von Aussagen beginnen können.
Stattdessen führt der Smart Generator all dieses schwere Heben automatisch aus, basierend auf der Aktivität, die er beobachtet, während der Tester die Benutzeroberfläche verwendet. Dies hilft Anfängern, die API-Tests im Allgemeinen besser zu verstehen, da sie die Aktivitäten, die sie in der Benutzeroberfläche ausgeführt haben, den erstellten API-Tests zuordnen und ein besseres Verständnis der Beziehung zwischen der Benutzeroberfläche und den zugrunde liegenden API-Aufrufen aufbauen können treiben Sie zukünftige API-Testbemühungen voran.
Obwohl API-Tests eine der effektivsten Methoden zum Testen von Software sind, haben viele Unternehmen diese Praxis nicht erfolgreich übernommen, da hierfür spezielle Fähigkeiten und Tools erforderlich sind. Um Unternehmen bei der Einführung einer umfassenden API-Testpraxis zu unterstützen, bietet Parasoft SOAtest visuelle Tools, die einfach anzuwenden sind, sodass Anfänger von API-Tests in kürzerer Zeit als mit anderen Tools leistungsstarke API-Szenarien erstellen können. Der Smart Generator schließt diese Lücke und bringt unerfahrene Benutzer in die Welt der API-Tests
Die agile Entwicklung hilft Unternehmen dabei, qualitativ hochwertige Software schneller auf den Markt zu bringen. Ohne die erforderliche Technologie, mit der Unternehmen ihre Anwendungen schnell und vollständig testen können, beeinträchtigen die mit einer beschleunigten Bereitstellung verbundenen Risiken die potenziellen Vorteile von Agile. Jetzt ist es an der Zeit, dass Unternehmen sich mit API-Tests vertraut machen.
Mit einer soliden API-Teststrategie können Unternehmen ihre agilen Transformationen optimal nutzen. Um dies zu verwirklichen, sollten Testtools für uns funktionieren, und die neueste Version von Parasoft SOAtest macht genau das. Der neue Smart API Test Generator von SOAtest verringert die Komplexität von API-Tests, senkt die Akzeptanzbarrieren und hilft Unternehmen dabei, eine verwaltbare, wartbare und skalierbare Teststrategie einzuführen. Probieren Sie es aus!
Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.