Testen von Ressourcenbeschränkungen in zusammengesetzten Apps
Von Rami Jaamour
26. August 2010
3 min lesen
Ressourcenbeschränkungen, die den heutigen heterogenen Unternehmensumgebungen inhärent sind, können die Fähigkeit eines QS- / Entwicklungsteams beeinträchtigen, Testsuiten zu erstellen. Dies beeinträchtigt letztendlich die Fähigkeit des Teams, sichere, zuverlässige und konforme Anwendungen pünktlich und im Rahmen des Budgets bereitzustellen und weiterzuentwickeln. Da Anwendungen immer komplexer und sicherlich verteilter werden, verschärft sich dieses Problem erheblich.
Die Bemühungen, die Qualität der heutigen heterogenen Anwendungen sicherzustellen, werden nicht nur durch Systemverfügbarkeitsbeschränkungen behindert, die den verteilten Architekturen der Anwendungen innewohnen, sondern auch durch menschliche Einschränkungen, die mit der Art und Weise verbunden sind, wie solche Systeme entwickelt, getestet und weiterentwickelt werden.
Systembeschränkungen
Die heutigen heterogenen Anwendungen umfassen eine Reihe von Komponenten. Betrachten Sie beispielsweise das folgende Diagramm einer allgemeinen Unternehmensanwendungsarchitektur:
Die Bemühungen, solche Anwendungen zu testen, werden häufig verzögert (und häufig abgebrochen), da eine oder mehrere Komponenten unvollständig sind, sich weiterentwickeln, instabil, unzugänglich oder auf andere Weise nicht zum Testen verfügbar sind. Solche Schwierigkeiten ergeben sich aus folgenden Einschränkungen:
- Zugriff auf verteilte Anwendungen
Geschäftsprozesse werden durch ein komplexes Zusammenspiel verteilter Systeme ermöglicht. Das Testen eines Anwendungsfalls, der ein einzelnes System nutzt, ist komplex. Wenn der Anwendungsfall mehrere verteilte Systeme aufruft, steigt die Komplexität exponentiell an. - Zugang zu Partnerdiensten
Serviceorientierte Architekturen ermöglichen es Unternehmen, „Arbeitseinheiten“ zu nutzen, die als Services über Unternehmensgrenzen hinweg verteilt sind. Um interne Anwendungen ausführen zu können, muss die Organisation die Möglichkeit haben, das Verhalten dieser Dienste (Arbeitseinheiten) zu modellieren, um sie bequem testen zu können. - Zugang zu neuen oder sich weiterentwickelnden Diensten
Eine serviceorientierte Architektur führt eine Organisation in einen ständigen Wandel ein. Aus Testsicht kann sich dies als sehr frustrierend erweisen, da der Zugriff auf sich entwickelnde Dienste möglicherweise eingeschränkt oder gar nicht verfügbar ist. - Fähigkeit, Fehler und Leistungsprobleme zu simulieren
Serviceorientierte Systeme müssen unter fehlerhaften Bedingungen getestet werden, um sicherzustellen, dass Anwendungen ordnungsgemäß fehlschlagen, wenn eine abhängige Komponente nicht reagiert oder die erforderlichen Leistungsqualitätsmetriken aus Sicht der Leistung nicht erfüllt. Wenn die abhängigen Anwendungen verwendet oder repliziert werden, ist es sehr schwierig, solche Bedingungen in einer Testumgebung zu simulieren. Außerdem ist es teuer, die abhängigen Systeme in Leistungstestumgebungen zu replizieren. Daher ist es wichtig, die Leistungsmerkmale des abhängigen Systems sowie seine Geschäftsfunktionalität zu virtualisieren.
Menschliche Zwänge
Darüber hinaus verschärfen die folgenden menschlichen Einschränkungen die Schwierigkeit, gründliche Tests mit dem gegebenen Zeitrahmen und den gegebenen Ressourcen durchzuführen:
- Ändern von Diensten oder Anwendungskomponenten
Die Auswirkungen der Änderung von Diensten können unbekannte Auswirkungen haben, wenn bestimmte Funktionen geändert oder veraltet sind. Die Fähigkeit, Tests zu modellieren und Was-wäre-wenn-Szenarien basierend auf den geplanten Änderungen auszuführen, ist wichtig, um das Projekt auf Kurs zu halten. - Enge Frist und Entwicklung ist spät
Es ist bekannt, dass Softwareentwicklung keine exakte Wissenschaft ist. In seltenen Fällen liefert die Entwicklung ihre Anwendung vor Ablauf der Frist für den Projektplan an die Qualitätssicherung. Die Fähigkeit, die verhaltensspezifischen Funktionen zu emulieren, um Regressionssuiten zu erstellen, um die sich ändernden Funktionen zu „testen“, ist entscheidend für die Qualitätssicherung, die die vorgegebenen Projektzeitpläne erfüllt. - Last-Minute-Änderungen an der Anwendung
Last-Minute-Änderungen an der Anwendung sind in jedem Softwareentwicklungszyklus sehr häufig. Der Testplan sollte nicht unbedingt warten müssen, um die Anwendung im Kontext der geplanten Änderungen auszuführen.
Überwinden von Testbeschränkungen mit Service-Virtualisierung
Service-Virtualisierung ist der Schlüssel zur Überwindung von Testbeschränkungen, unter denen Wassergrabenprojekte leiden. Durch die Simulation von Diensten, die außerhalb Ihrer Kontrolle liegen oder nicht verfügbar sind, ermöglicht die Dienstvirtualisierung Benutzern den Zugriff auf vollständige und realistische Testumgebungen, sodass Teams ihre Anwendungen früher und vollständiger entwickeln und testen können. Durch die Anwendung der Service-Virtualisierung in Testumgebungen können Unternehmen die Abhängigkeit von nicht verfügbaren, instabilen oder kostspieligen Abhängigkeiten wie Diensten, Datenbanken, Mainframes usw. von Drittanbietern verringern oder beseitigen. Parasoft Virtualisieren Die intuitive Service-Virtualisierungslösung erleichtert Benutzern das Erstellen, Skalieren und Freigeben virtueller Services.
Die Verwendung virtueller Dienste bedeutet eine schnellere Wiederherstellung nach Änderungen, die genauso schnell (oder schneller) erfolgt wie die tatsächlichen. Tester können automatisierte Workflows verwenden, um betroffene virtuelle Dienste einfach zu aktualisieren und Daten nach Bedarf zu testen. Automatisierte Tools können bei der Versionierung auch alle diese Änderungen verfolgen, indem sie alle relevanten Daten als vergleichbare Dateien speichern, die mit Standardversionskontrollsystemen kompatibel sind.
Ein wesentlicher Aspekt der Testautomatisierung und Servicevirtualisierung ist die Erstellung und Wiederverwendung von Testressourcen nicht nur für Funktionstests, sondern auch für andere kritische Tests wie Sicherheits- und Leistungstests. Darüber hinaus ist es möglich, virtuelle Dienste im laufenden Betrieb schnell zu erstellen und ihnen Geschäftslogik und Testdaten hinzuzufügen, um die lokale API-Entwicklung zu unterstützen. Virtuelle Dienste profitieren von einer dateibasierten Konfiguration, sodass sie für die Fehlerreproduktion und den Support problemlos zwischen Entwicklung und Qualitätssicherung ausgetauscht werden können.