Facebook Twitter
alltechbites.com

Skalierbarkeitstests: 7 Schritte Zum Erfolg

Verfasst am April 5, 2022 von Grant Tafreshi

Systeme, die während der Entwicklung sehr gut funktionieren, die in einem geringen Maßstab eingesetzt werden, können es vernachlässigen, Leistungsziele zu erreichen, sobald der Einsatz in Bezug auf die Unterstützung realer Nutzungsgrade skaliert wird.

Ein praktischer Beispiel für ein bedeutendes Blue -Chip -Unternehmen stammt, das kürzlich die Entwicklung einer vorgedachten Hochtechnologie -Plattform ausgelagert hat. Obwohl die Entwicklung hinter dem Zeitplan stand, wird dies als akzeptabel angesehen. Die Maschine wurde nach und nach funktionelle Komponenten eines einzelnen Akzeptanztests und schließlich schien es so, als ob möglicherweise ein Bereitstellungsdatum festgelegt werden könnte. Der Lieferant begann jedoch Lasttests und Skalierbarkeitstests. Es folgten eine erweiterte und kostspielige Menge an architektonischen Änderungen und Änderungen der maschinellen Anforderungen. Der Lieferant kämpfte heldenhaft darum, ein zufriedenstellendes System zu liefern, bis das Projekt schließlich vermutet wurde.

Dies ist kein Einzelfall. Die Folklore gibt es reichlich mit ähnlichen Geschichten. Von Krankenwagen Versandsystemen bis hin zu Websites für die elektronische Einreichung von Steuererklärungen scheitern die Systeme, da sie den Spitzenanforderungen skalieren und erleben. Alle diese Projekte scheinen die wichtigsten Risiken, mit denen sie konfrontiert waren, nie identifiziert und angeordnet zu haben. Dies kann eine grundlegende Stufe von risikobasierten Tests sein und gilt gleichermaßen für Skalierbarkeitstests oder Lasttests, da dies für Funktionstests oder Geschäftstests der Geschäftskontinuität der Fall ist. Ohne Risikobewertung erkannten sie nicht, dass die Skalierung zwischen den größten Risiken lag, viel mehr, um die gesamte Funktionalität zu liefern

Die jüngsten Trends zur serviceorientierten Architektur (SOA) versuchen, das Problem der Skalierbarkeit anzugehen, aber zusätzlich neue Probleme einführen. Durch die Einbeziehung von extern bereitgestellten Diensten in Ihre aktuelle Lösung hängt Ihre Skalierbarkeit von diesem externen System unter Last ab. Es kann eine anspruchsvolle Aufgabe sein und leider die Dehnungstests und die Stresstests hier oft übersehen.

Eine bessere Praxis wäre, mit der Entwicklung eines großen Softwaresystems mit seiner Leistung eindeutig im Mittelpunkt zu beginnen, insbesondere die Skalierbarkeitstests, Volumentests und Lasttests. So generieren Sie diesen Leistungstestschwerpunkt:

  • Nachforschungen und Quantifizierung des Info -Volumens und der Transaktionsvolumen Der Market Market impliziert. Einige dieser Zahlen könnten Augenöffner sein und den Nutzern der Unternehmensunternehmen helfen, die gesamte Skala der Maschine zu erkennen. Dies allein kann zur Neubewertung der Priorität mehrerer Merkmale führen.
  • Bestimmen Sie, wie Funktionen möglicherweise den Benutzern und der Maschine präsentiert werden können, um die Skalierung der Maschine zu vereinfachen. Versuchen Sie normalerweise nicht, genau die gleiche Funktionalität zu haben, die Sie für eine einzelne Benutzerdesktop -Lösung haben, die eine geeignete skalierbare Alternative bietet.
  • Erkennen Sie einen intrinsischen Bereich des Entwicklungsprozesses sind Lasttests auf repräsentativem Maßstab für jede inkrementelle Software -Version. Dies ist kontinuierliches Testen und konzentriert sich auf das größte Risiko für das Projekt: die Möglichkeit, in vollem Umfang zu arbeiten.
  • Sicherstellen, dass Lasttests sowohl in Umfang als auch in der Strenge angemessen sind. Bei Lasttests geht es nicht nur um die Messung der Reaktionszeiten mit einem Leistungstest. Das Stammtestprogramm muss andere Arten von Lasttests enthalten, einschließlich Spannungstests, Zuverlässigkeitstests und Ausdauertests.
  • Vergessen Sie nicht, dass Fehler auftreten werden. Große Systeme enthalten im Allgemeinen Servercluster mit Ausfallverhalten. Ausfallprüfungen, Ausfallprüfungen und Wiederherstellungstests auf repräsentativen Maßstäben, die unter Last betrieben werden, sollte einbezogen werden.
  • Vergessen Sie nicht, dass ein katastrophales Versagen auftreten kann. Bei großen Problemen sollten Katastrophentests und Disaster Recovery -Tests in repräsentativem Maßstab und Lasten abgeschlossen werden. Diese Aktivitäten können als technische Schichten von Geschäftskontinuitätstests angesehen werden.
  • Erkennen externe Dienste, wenn Sie sie verwenden. Was Ihr Standort für einen SOA -Ansatz verfolgt und daher von externen Diensten beeinflusst wird, sollten Sie sicher sein, dass der Durchsatz und die Umlaufzeit für diese Dienste mit zunehmendem Körperwaagen und seiner eigenen Anforderungen zugenommen bleiben. Eine gute Systemarchitektur umfasst eine anmutige Reaktion und einen Rückfallbetrieb, wenn sich das externe Serviceverhalten verschlechtert oder fehlschlägt.