Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>

Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>
Zum Abschnitt springen
Was ist umgebungsbasiertes Testen und warum ist es beim Softwaretesten wichtig? Hier finden Sie eine ausführliche Behandlung des Themas und einige der Vorteile eines umgebungsbasierten Testansatzes.
Zum Abschnitt springen
Zum Abschnitt springen
Das isolierte Testen von Anwendungen und Diensten bringt Sie nur bedingt weiter und schließlich müssen Sie die Tests in einer Betriebsumgebung durchführen. Der „umgebungsbasierte“ Testansatz von Parasoft ermöglicht es Teams, ihre Anwendungen im Kontext aller Abhängigkeiten zu testen, die in der realen Umgebung bestehen.
Oft betrachten Tester und Entwickler ihre Bereitstellungsumgebung und ihre Komponenten individuell und testen diese Teile isoliert. Dies funktioniert bis zu einem gewissen Grad, testet jedoch nicht genug des Systems. Eine andere Version davon ist das Testen auf der Ebene der Benutzeroberfläche an einem Punkt, an dem die Hauptursachen für Fehler schwer zu diagnostizieren sind. Auf dem Mittelweg können Anwendungen in einer möglichst realistischen Umgebung mit virtuellen Diensten getestet werden, um Abhängigkeiten nachzuahmen, die zum Testen nicht verfügbar oder konsistent genug sind. Wenn mehr Abhängigkeiten online gehen, können Sie von virtualisierten Diensten zu Live-Versionen wechseln.
Bei Parasoft nennen wir dies einen „umgebungsbasierten“ Testansatz, der es dem gesamten Team ermöglicht, seine Anwendung im vollständigen Kontext der realen Umgebung zu testen. Tests werden je nach Bedarf in einer Live-, teilweise virtualisierten oder vollständig virtualisierten Umgebung bereitgestellt. Der umgebungsbasierte Testansatz bietet eine stabilisierte Plattform für die Testausführung.
Der umgebungsbasierte Testansatz bietet mehr Kontext, um besser zu verstehen, wie sich Abhängigkeiten auf die Anwendung während des UI-Tests auswirken, und hilft dem Team, durch die Erstellung von API- und Datenbanktests für die abhängigen Komponenten auf die nächste Ebene vorzudringen. Auf diese Weise können Sie eine umfassendere Testabdeckung für Ihre Anwendung erreichen und Tests von der Benutzeroberfläche entkoppeln, sodass beide zusammen oder unabhängig voneinander ausgeführt werden können. Testfehler werden in der Umgebung hervorgehoben, was die Lokalisierung von Fehlern erleichtert.
Einige zusätzliche Vorteile, die mit einem umweltbasierten Testansatz verbunden sind, sind:
Diese Vorteile verringern den Gesamtaufwand für Tester beim Einrichten, Ausführen und Diagnostizieren von Anwendungstests, erhöhen gleichzeitig die Testabdeckung und ermöglichen eine frühere und umfassendere Durchführung von Tests.
Wie viele Tester wissen, ist eine Testumgebung lediglich eine kontrollierte Struktur, die es Systemen und Software ermöglicht, Tests auf Zuverlässigkeit, Funktionalität und Kompatibilität durchzuführen. Diese simulieren in der Regel reale Szenarien und Bedingungen, um potenzielle Fehler oder Verstöße vor der Bereitstellung zu beheben. Daher kann jede Testumgebung auf die Art der Tests und Ergebnisse zugeschnitten werden, die ein Team wünscht.
Eine browserübergreifende Testumgebung ist ein perfektes Beispiel für eine Testumgebung zum Testen auf verschiedenen Browsern und Browserversionen. Testteams nutzen die Umgebung, um die Qualität und Auswirkung der Anwendung zu überprüfen, bevor Benutzer mit ihr interagieren.
Es gibt mehrere wichtige Arten von Testumgebungen, darunter:
Beim Erstellen einer guten Testumgebung geht es nicht nur darum, realistische Szenarien zu verwenden. Es umfasst alles von der Betrachtung von Randfällen über den Schutz der Datensicherheit bis hin zur Nachahmung oder Nutzung realer Informationen. Obwohl jedes Team unterschiedliche Ziele und Anforderungen hat, können bestimmte Best Practices befolgt werden, um die beste Testumgebung für Ihr Projekt sicherzustellen.
Eine gute Testumgebung ähnelt der Live-Produktionsumgebung, in der die Software oder das System sehr gut funktionieren wird. Es muss den gleichen Code, das gleiche Betriebssystem, die gleichen Daten, die gleiche Funktionalität und die gleiche Konfiguration verwenden.
Zu den Schlüsselfaktoren für die Schaffung einer guten Testumgebung gehören die folgenden:
Zusätzlich zu den oben genannten mechanischen Grundsätzen basieren Testumgebungen auch auf allgemeinen immateriellen Richtlinien.
Die Verwaltung Ihrer Testumgebungen kann große Kopfschmerzen bereiten oder sich als unverzichtbarer Teil Ihres SDLC erweisen, der unschätzbar wertvolle Informationen und Daten bereitstellt. Der Schlüssel liegt in der Art und Weise, wie Sie dieses Management angehen. Indem Sie einen Teil der Arbeit und Organisation von vornherein übernehmen, können Sie eine einfacher zu wartende Einrichtung schaffen und dennoch von den Vorteilen häufiger Tests profitieren.
Behandeln Sie die Leute in den Entwicklungsteams vom erfahrensten Entwickler bis zum frischgebackenen QS-Tester als wichtige Mitglieder des Projekts. Die Nutzung einer einzigen Quelle oder einer goldenen Kopie für Umgebungen und Bereitstellungen, die für jedermann im Rahmen des Zumutbaren zugänglich ist, fördert eine Umgebung, in der die Kommunikation offen, gefördert und konstruktiv ist.
Die Verwaltung der Wissensdatenbank – sei es mit Confluence, JIRA oder anderen Tools – trägt dazu bei, Missverständnisse zu vermeiden und Telefonspiele zu reduzieren. Teammitglieder können in der Dokumentation nach grundlegenden Informationen suchen, Änderungen nachverfolgen, sehen, wer woran gearbeitet hat und mehr.
Zusammen mit den oben genannten Grundsätzen trägt die Bereitstellung dieser Informationen für Stakeholder zusätzlich zur Aufrechterhaltung von Testumgebungen bei. Dies gilt jedoch auch für Dinge wie Bereitstellungspläne, Ausfallpläne und andere Aspekte der Entwicklung.
Menschen machen Fehler. Es ist eine Tatsache. Manuelle Aktualisierungen unterliegen dieser Realität. Daher kann die Integration der Testumgebungsverwaltung in die von Ihnen verwendete Toolchain dazu beitragen, manuelle Fehler zu reduzieren.
Es ist ein Muss, mit den von Ihren Testfällen generierten Daten interagieren zu können. Noch besser ist es, dies auf eine schlanke und einfache Weise tun zu können. Mit der Virtualisierung können Sie Snapshots erstellen, Ihre Umgebung durchgängig replizieren und vieles mehr. Tatsächlich hat Parasoft ein eigenes Branchenführende Service-Virtualisierung Lösung nur für diesen Zweck.
Das scheint vielleicht nicht unbedingt erwähnenswert zu sein, aber die Verfolgung von KPIs wie der Anzahl ungeplanter Dienstunterbrechungen, der Umgebungsverfügbarkeit und anderen Variablen kann Ihnen dabei helfen, Ihre Testumgebungen zu verbessern. Überprüfen Sie die Daten nach umfangreichen Testzyklen, um zu sehen, was funktioniert, was geändert werden muss und wie die Ressourcen zugewiesen sind oder anders sein könnten.
Schauen wir uns das also in Aktion an. Parasoft SOAtest stellt einen Umgebungsmanager bereit, der die Ausführungsumgebung für die zu testende Anwendung visuell anzeigt. Unten sehen Sie ein Beispiel einer Anwendung in ihrer Umgebung, verbunden mit Abhängigkeiten. Jede Komponente in der Umgebung kann je nach Bedarf live oder virtualisiert bereitgestellt werden, abhängig von der Stabilität und Verfügbarkeit dieser Komponenten.
Bereitstellungsvoreinstellungen konfigurieren die Umgebung basierend auf aktuellen Testanforderungen. Unterschiedliche Szenariokategorien erfordern möglicherweise unterschiedliche Voreinstellungen. Diese Voreinstellungen enthalten alle erforderlichen Einstellungen für den Environment Manager:
Einmal Testumgebung wird bereitgestelltwird eine Reihe von API- und UI-Interaktionen für die zu testende Anwendung ausgeführt. Die Ergebnisse werden erfasst, aufgezeichnet und mit den erwarteten Ergebnissen in der IDE und im Parasoft-Webportal verglichen, wo das Environment Manager-Dienstprogramm als Drehscheibe für Funktionstests fungiert.
Fehler werden im Environment Manager hervorgehoben und es ist möglich, Fehlerberichte von dort aus in einem detaillierteren Bericht zu verfolgen.
Die generierten API-Testberichte geben sowohl Fehler als auch Informationen zur Testabdeckung an. Fehler bedeuten, dass neue Funktionen fehlerhaft sind oder dass bei einem Test ein Problem vorliegt. Die Grundursache dieser Fehler kann vom Fehler hier bis zur entsprechenden API zurückverfolgt werden. Informationen zur Testabdeckung sind wichtig, da sie auf fehlende Tests und möglicherweise die Auslieferung von ungetestetem Code hinweisen.
Fehler entstehen auch durch fehlende Abhängigkeiten. Das ist wo die Servicevirtualisierung ins Spiel kommt. Es ist oft nicht möglich, Live-Abhängigkeiten zum Testen zur Verfügung zu haben, vielleicht weil sie noch nicht bereit sind oder es schwierig und zeitaufwändig ist, sie aus der Produktionsumgebung zu duplizieren. Um jedoch qualitativ hochwertige Anwendungen innerhalb der Zeit- und Budgetvorgaben sicherzustellen, ist es wichtig, uneingeschränkten Zugriff auf eine vertrauenswürdige und realistische Testumgebung zu haben, die die zu testende Anwendung und alle ihre abhängigen Komponenten wie APIs, Dienste von Drittanbietern, Datenbanken und Anwendungen umfasst und andere Endpunkte.
Servicevirtualisierung ermöglicht es Softwareteams Erhalten Sie Zugriff auf eine vollständige Testumgebung, einschließlich aller kritischen abhängigen Systemkomponenten, und ändern Sie das Verhalten dieser abhängigen Komponenten auf eine Weise, die mit einer abgestuften Testumgebung nicht möglich wäre, sodass Sie früher, schneller und vollständiger testen können. Es ermöglicht Ihnen auch, verschiedene Ebenen der Anwendung zum Debuggen und Leistungstesten zu isolieren, aber darauf werden wir hier nicht so ausführlich eingehen.
Einzelne Dienste können live oder virtualisiert konfiguriert werden. Bereitstellungskonfigurationen, bei denen es sich um Kombinationen aus aktiven und virtualisierten Abhängigkeiten handelt, können als Voreinstellungen gespeichert werden.
Beispiele für manuelle Tests sind interessant, aber die eigentliche Arbeit findet in einer kontinuierlichen Integrationspipeline statt. Die dynamischen Testumgebungen von Parasoft können von Jenkins aus als Teil einer kontinuierlichen Integrations-/Bereitstellungspipeline bereitgestellt werden. Das folgende Beispiel zeigt „Deploy Dynamic Environment“ als Jenkins-Build.
Mit dem Parasoft Jenkins-Plugin werden Build-Schritte hinzugefügt, um Testsuiten aus dem Build bereitzustellen. Die Ergebnisse werden erfasst und mit dem Environment Manager verknüpft.
Nach Abschluss des Builds werden die Testergebnisse in Jenkins angezeigt. Fehler sind direkt mit dem Umgebungsmanager und dem Bereitstellungsszenario verknüpft.
Indem Softwaretester zunächst die Betriebsumgebung berücksichtigen und einen umgebungsbasierten Testansatz nutzen, können sie sicherstellen, dass alles vorhanden ist, um Tests produktiv und effizient zu gestalten. Anstatt Zeit damit zu verbringen, Anwendungen isoliert oder in einer pseudorealistischen Umgebung zu testen, können Tester mehr Zeit mit dem eigentlichen Testen selbst verbringen.