Erfahren Sie, wie Sie statische Analysen, Komponententests und andere C- und C++-Softwaretestmethoden einfach in Ihre CI/CD-Pipeline integrieren können. Für Demo registrieren >>

Was ist ein "umweltbasierter" Ansatz für Softwaretests?

Von Chris Colosimo

10. Dezember 2019

5  min lesen

Das isolierte Testen von Anwendungen und Diensten bringt Sie nur so weit, und schließlich müssen Sie in einer Betriebsumgebung testen. Der „umweltbasierte“ 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 „umweltbasierten“ Testansatz, mit dem das gesamte Team seine Anwendung im vollständigen Kontext der realen Umgebung testen kann. Tests werden nach Bedarf in einer aktiven, teilweise virtualisierten oder vollständig virtualisierten Umgebung bereitgestellt. Der umgebungsbasierte Testansatz bietet eine stabilisierte Plattform für die Testausführung.

Umweltbasierte Tests

Der umgebungsbasierte Testansatz bietet mehr Kontext, um besser zu verstehen, wie sich Abhängigkeiten beim Testen der Benutzeroberfläche auf die Anwendung auswirken, und hilft dem Team, die nächste Ebene zu erreichen, indem API- und Datenbanktests für die abhängigen Komponenten erstellt werden. Auf diese Weise können Sie eine umfassendere Testabdeckung für Ihre Anwendung erzielen 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, um das Auffinden von Fehlern zu vereinfachen.

Einige zusätzliche Vorteile, die mit einem umweltbasierten Testansatz verbunden sind, sind:

    • Verschiebungstests durch Testen der Anwendung in der Produktionsumgebung so schnell wie möglich. Dies wird durch die Service-Virtualisierung ermöglicht, indem virtuelle Services erstellt und dann auf Live-Services übertragen werden, sobald diese verfügbar und stabil sind.
    • Reduzieren Sie die Zeit und den Aufwand für die Diagnose von Testfehlern indem Sie genau bestimmen, wo und warum Tests fehlgeschlagen sind.
    • Einfache Erweiterung des Testens von UI-Tests auf API-Tests, die im Kontext der Umgebung sowie als Teil einer CI / CD-Pipeline konfigurierbar ist.
  • Erhöhung der Testabdeckung durch Erstellen von Szenarien, die allein durch UI-Tests nicht implementiert werden könnten

Diese Vorteile reduzieren die Gesamtbelastung für Tester beim Einrichten, Ausführen und Diagnostizieren von Anwendungstests, erhöhen die Testabdeckung und ermöglichen eine frühere und umfassendere Durchführung von Tests.

Umweltbasiertes Testen in Aktion mit Parasoft SOAtest

Schauen wir uns das also in Aktion an. Parasoft SOAtest bietet einen Umgebungsmanager, der die Ausführungsumgebung für die zu testende Anwendung visuell anzeigt. Im Folgenden sehen Sie ein Beispiel für eine Anwendung in ihrer Umgebung, die mit Abhängigkeiten verbunden ist. Jede Komponente in der Umgebung kann je nach Stabilität und Verfügbarkeit dieser Komponenten je nach Bedarf live oder virtualisiert bereitgestellt werden.

Parasoft SOAtest bietet einen Umgebungsmanager, der die Ausführungsumgebung für die zu testende Anwendung visuell anzeigt. Im Folgenden wird ein Beispiel für eine Anwendung in ihrer Umgebung gezeigt, die mit Abhängigkeiten verbunden ist. Jede Komponente in der Umgebung kann live bereitgestellt oder nach Bedarf virtualisiert werden:

Bereitstellungsvoreinstellungen konfigurieren die Umgebung basierend auf den aktuellen Testanforderungen. Unterschiedliche Szenariokategorien erfordern möglicherweise unterschiedliche Voreinstellungen. Diese Voreinstellungen enthalten alle erforderlichen Einstellungen für den Umgebungsmanager:

Sobald eine Umgebung bereitgestellt ist, werden eine Reihe von API- und UI-Interaktionen für die zu testende Anwendung ausgeführt. Die Ergebnisse werden in der IDE und im Parasoft-Webportal erfasst, aufgezeichnet und mit den erwarteten Ergebnissen verglichen. Dort fungiert das Dienstprogramm für den Umgebungsmanager als Hub für Funktionstests.

Fehler werden im Umgebungsmanager hervorgehoben, und es ist möglich, Fehlerberichte von dort in einen detaillierteren Bericht umzuwandeln.

Die generierten API-Testberichte zeigen sowohl Fehler als auch Informationen zur Testabdeckung an. Fehler bedeuten, dass neue Funktionen beschädigt sind oder dass ein Problem mit einem Test vorliegt. Die Hauptursache für diese 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 nicht getesteten Versandcode hinweisen.

Die Rolle der Service-Virtualisierung

Fehler entstehen auch durch fehlende Abhängigkeiten. Das ist wo Service-Virtualisierung kommt ins Spiel. Es ist oft nicht möglich, Live-Abhängigkeiten zum Testen verfügbar zu haben, vielleicht weil sie noch nicht fertig sind oder es schwierig und zeitaufwändig ist, sie aus der Produktionsumgebung zu duplizieren. Aber um qualitativ hochwertige Anwendungen innerhalb von Zeit- und Budgetbeschränkungen sicherzustellen, ist es unerlässlich, uneingeschränkten Zugriff auf eine vertrauenswürdige und realistische Testumgebung zu haben, die die zu testende Anwendung und alle ihre abhängigen Komponenten (z. B. APIs, Dienste von Drittanbietern, Datenbanken, Anwendungen) umfasst , und andere Endpunkte).

Mithilfe der Servicevirtualisierung können Softwareteams auf eine vollständige Testumgebung einschließlich aller kritischen abhängigen Systemkomponenten zugreifen und das Verhalten dieser abhängigen Komponenten auf eine Weise ändern, die in einer bereitgestellten Testumgebung nicht möglich wäre. So können Sie früher und schneller testen und vollständiger. Sie können damit auch verschiedene Ebenen der Anwendung für Debugging- und Leistungstests isolieren, aber darauf werden wir heute nicht mehr so ​​viel 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.

Integration in CI / CD-Pipelines

Manuelle Testbeispiele sind interessant, aber die eigentliche Arbeit findet in einer kontinuierlichen Integrationspipeline statt. Die dynamischen Testumgebungen von Parasoft können von Jenkins als Teil einer kontinuierlichen Integrations- / Bereitstellungspipeline bereitgestellt werden. Das folgende Beispiel zeigt eine "Dynamische Umgebung bereitstellen" 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 Umgebungsmanager verknüpft.

Nach Abschluss des Builds werden die Testergebnisse in Jenkins angezeigt. Fehler werden direkt mit dem Umgebungsmanager und dem Bereitstellungsszenario verknüpft.

Zusammenfassung

Indem Software-Tester zuerst die Betriebsumgebung berücksichtigen und einen umweltbasierten Testansatz nutzen, können sie sicherstellen, dass alles vorhanden ist, um das Testen 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 verbringen.

Kontinuierliche Tests für DevOps - Entwicklung über die Automatisierung hinaus

Von Chris Colosimo

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.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.