Bei den Tests des ArcGIS-Systems sollte überprüft werden, ob das implementierte Design wie erwartet funktioniert und die Workflows, Benutzer und Lasten unterstützt, für die es vorgesehen ist. Systemtests bieten die Möglichkeit, Probleme zu entdecken und zu beheben, bevor sie in der Produktion auftreten. Auch wenn es nicht realistisch ist, jede mögliche Komponente, jedes mögliche Ereignis oder jede mögliche Situation zu testen, sollte ein pragmatischer Ansatz zum Testen der Schlüsselaspekte des Systems definiert werden. Dazu gehört zum Beispiel die Fähigkeit des Systems, definierte Workflows zu unterstützen, nach einem Komponentenausfall den Betrieb fortzusetzen oder eine neue Workload zu bewältigen.
Gezieltes und strukturiertes Testen ist entscheidend für den Erfolg jeder Anwendung, jedes Workflows oder jedes Systems. Es gibt viele verschiedene Arten von Tests, die während des gesamten Entwicklungszyklus relevant sind, einschließlich Funktionstests, Tests der Barrierefreiheit, Akzeptanztests und anderer Arten. Tests sind ein wichtiger Teil des Architekturprozesses, da sie sowohl eine Architekturempfehlung überprüfen, als auch Eingaben liefern, die zu einer vorgeschlagenen Architekturänderung führen können – z. B. wenn eine bestimmte Datenbank- oder Softwareversion deutlich besser oder schlechter abschneidet als ein anderes Angebot.
Für die Zwecke dieses Abschnitts konzentriert sich dieses Thema auf Performance-Tests, d. h. auf die Methoden und Prozesse, mit denen identifiziert werden kann, ob die grundlegenden Performance-Merkmale des Systems erfüllt werden. Die Tests müssen parallel zur Telemetrieüberwachung erfolgen und sollten die Prüfung jeder überwachten Komponente ermöglichen. Wenn Änderungen am System vorgenommen werden, ist es zwingend erforderlich, die Tests erneut durchzuführen, um etwaige Verschlechterungen zu identifizieren. Tests sollten auch verwendet werden, um potenzielle Engpässe in der Architektur auf der Grundlage erwarteter Laständerungen zu ermitteln.
Dieses ideale Maß an iterativen, standardisierten und wiederholbaren Tests erfordert eine erfolgreiche Automatisierung des Prozesses. Bei SaaS-Bereitstellungsmustern erfordert die Implementierung von automatisierten Tests und insbesondere von Performance-Tests auch die Koordination mit anderen Anbietern, Systemen und Projektbeteiligten.
Ein solider Testansatz sollte vor allem die Ziele der Tests, was Sie testen und was nicht (Umfang), was gemessen wird (Telemetrie) und die Erfolgskriterien festlegen.
Während der Performance-Tests beeinflussen viele Faktoren die Leistung eines Workflows, einschließlich der Hardware des End-Clients, der Netzwerkverbindung mit dem Backend-System und der Konfiguration des Backend-Systems. Das Verständnis der Details dieser Komponenten ist entscheidend, um zu verstehen, ob Performance-Messungen in erster Linie von der zu testenden ArcGIS-Software oder von anderen Komponenten wie einem Proxy, einer Datenbank oder einem Netzwerk-Switch beeinflusst werden, die zu Latenz oder Unterbrechungen führen.
Verschiedene Arten von Tests können verwendet werden, um unterschiedliche Ziele zu erreichen. Sie können z. B. Folgendes tun:
Wenn Sie beim Erstellen einer Teststrategie die Ziele klar identifizieren, laufen zusätzliche Schritte effizienter ab.
Viele Systeme verwalten eine “niedrigere” Umgebung (z. B. für Test, Staging oder Vorproduktion), die für Funktions- oder Auslastungstests vorgesehen ist. Weitere Informationen zur erfolgreichen Verwendung von Testumgebungen oder Staging-Umgebungen finden Sie auf der Seite Umgebungsisolation auf dieser Website.
Ein Unternehmenssystem verfügt häufig über mehrere separate Anwendungen, in denen Workflows ausgeführt werden, einschließlich Desktop-, Mobil- und Web-Clients. Es kann sowohl Lese-/Schreib- als auch Berichterstellungs-Workflows sowie Unterstützung für viele verschiedene Arten von Benutzern umfassen. Der einfache Versuch, das “System zu testen”, ohne zuerst diese Grenze zu definieren, führt zu vielen Testfällen und einer geringeren Wahrscheinlichkeit, dass die Informationen für weitere Maßnahmen nützlich sind.
Ein guter Systemtest ahmt die Art und Weise der Verwendung des Systems nach, sodass Sie wissen, dass es wie erwartet und mit der erwarteten Performance funktioniert. Daher sollte der Testumfang Workflows umfassen, die das System speziell unterstützen soll und die so konzipiert sind, dass sie die Kennwerte bereitstellen, die zur Bewertung der Erfolgskriterien erforderlich sind. Wenn Sie z. B. ein Software-Upgrade auf einem vorhandenen System durchführen, sollte der Umfang alle wichtigen Workflows umfassen, die in einer Workload ausgeführt werden und den erwarteten maximalen Vorgängen pro Stunde entsprechen.
Es ist möglich, dass einige Workloads nicht gleichzeitig auftreten, z. B. die nächtliche Verarbeitung von Skripts, mit denen Daten importiert oder exportiert werden, im Gegensatz zu normalen tagsüber ausgeführten Vorgängen. In diesen Fällen kann das System zweimal getestet werden: einmal, um sicherzustellen, dass tagsüber viele Personen auf das System zugreifen, und einmal, um sicherzustellen, dass die nächtliche Verarbeitung in der erforderlichen Zeit abgeschlossen wird. Das System sollte auch nach Änderungen erneut getestet werden, um festzustellen, ob diese negative Auswirkungen hatten.
Telemetrie wird während Systemtests verwendet, um Informationen zur Leistung des Systems in verschiedenen Szenarios zu sammeln, um zu beurteilen, ob das System die Anforderungen erfüllt, und um Probleme oder Anomalien zu identifizieren. Auch wenn viele Benutzer zunächst an Auslastungstests für die ArcGIS Server-Bereitstellung denken, ist es wichtig, Telemetriedaten im gesamten System zu erfassen. Sie können z. B. in der gesamten Serverinfrastruktur Telemetriedaten sammeln, die zeigen, dass das System hochleistungsfähig war, nur um später zu erfahren, dass Endbenutzer Schwierigkeiten hatten, Workflows abzuschließen, weil ihre Desktop-Computer nicht über genügend Ressourcen verfügten, sodass die akzeptable Performance des Backend-Systems für sie wie ein inakzeptabel langsames System aussah.
Ein wichtiges Ziel sollte darin bestehen, das Testskript und die Anforderungen zu modellieren, die in Tests auf der Grundlage von Anforderungen gesendet werden, die über die Telemetrieüberwachung gesammelt wurden – sowohl durchschnittliche Anforderungen als auch Ausreißer. Beim Testen sollte auch versucht werden, einzelne Komponenten zusammen mit End-to-End-Prozessen zu testen. Angesichts der Komplexität der meisten Unternehmenssysteme ist es möglicherweise nicht möglich, ein einzelnes Testwerkzeug zu verwenden, um alle Testfunktionen auszuführen. Anwendungen für die automatisierte Testausführung (z. B. JMeter) sollten jedoch so konfiguriert werden, dass sie die Anpassung von Testroutinen mit standardisierten Testein- und -ausgaben ermöglichen.
Mit guten Erfolgskriterien können Sie feststellen, ob das System einen Test bestanden oder nicht bestanden hat und wo möglicherweise Probleme liegen. Ihre Erfolgskriterien bestimmen den Umfang der Tests sowie die Art und Granularität der von Ihnen erfassten Telemetriedaten. Zu den Kriterien können Kennwerte wie die Anzahl der Vorgänge pro Stunde, gleichzeitige Benutzer, die Hardware-Performance oder die Dauer des Abschlusses von Workflows gehören.
Zu den zusätzlichen Ressourcen im Zusammenhang mit Tests gehören: