Softwareleistungsprüfung

In der Softwaretechnik ist Leistungsprüfung in der allgemeinen Prüfung, die durchgeführt ist, um zu bestimmen, wie ein System in Bezug auf die Ansprechbarkeit und Stabilität unter einem besonderen Arbeitspensum leistet. Es kann auch dienen, um andere Qualitätsattribute des Systems, wie Skalierbarkeit und Quellengebrauch zu untersuchen, zu messen, gültig zu machen oder nachzuprüfen.

Leistungsprüfung ist eine Teilmenge der Leistungstechnik, einer erscheinenden Informatik-Praxis, die sich müht, Leistung ins Design und die Architektur eines Systems vor dem Anfall der wirklichen Codieranstrengung einzubauen.

Leistungsprobetypen

Lastprüfung

Lastprüfung ist die einfachste Form der Leistungsprüfung. Ein Lasttest wird gewöhnlich geführt, um das Verhalten des Systems unter einer spezifischen erwarteten Last zu verstehen. Diese Last kann die erwartete gleichzeitige Zahl von Benutzern auf der Anwendung sein, die eine spezifische Zahl von Transaktionen innerhalb der Satz-Dauer durchführt. Dieser Test wird die Ansprechzeiten aller wichtigen kritischen Geschäftstransaktionen ausgeben. Wenn die Datenbank, Anwendungsserver, auch usw. kontrolliert wird, dann kann dieser einfache Test selbst zu irgendwelchen Engpässen in der Anwendungssoftware hinweisen.

Betonungsprüfung

Betonungsprüfung wird normalerweise verwendet, um die oberen Grenzen der Kapazität innerhalb des Systems zu verstehen. Diese Art des Tests wird getan, um die Robustheit des Systems in Bezug auf die äußerste Last zu bestimmen, und hilft Anwendungsverwaltern zu bestimmen, ob das System genug leisten wird, wenn die aktuelle Last über dem erwarteten Maximum gut geht.

Dauerprüfung (Einweichen-Prüfung)

Dauerprüfung wird gewöhnlich getan, um zu bestimmen, ob das System die dauernde erwartete Last stützen kann. Während Dauertests wird Speicheranwendung kontrolliert, um potenzielle Leckstellen zu entdecken. Auch wichtig, aber häufig überblickt ist Leistungsdegradierung. D. h. um sicherzustellen, dass der Durchfluss und/oder Ansprechzeiten nach einem langen Zeitraum der anhaltenden Tätigkeit so gut oder besser ist als am Anfang des Tests. Es schließt im Wesentlichen Verwendung einer bedeutenden Last zu einem System seit einer verlängerten, bedeutenden Zeitspanne ein. Die Absicht ist zu entdecken, wie sich das System unter dem anhaltenden Gebrauch benimmt.

Spitze-Prüfung

Spitze-Prüfung wird durch das plötzliche Steigern der Zahl, oder Last getan, die durch, Benutzer durch einen sehr großen Betrag und das Beobachten des Verhaltens des Systems erzeugt ist. Die Absicht ist zu bestimmen, ob Leistung leiden wird, wird das System scheitern, oder es wird im Stande sein, dramatische Änderungen in der Last zu behandeln.

Konfigurationsprüfung

Anstatt für die Leistung von der Perspektive der Last zu prüfen, werden Tests geschaffen, um die Effekten von Konfigurationsänderungen zu den Bestandteilen des Systems auf der Leistung und Verhalten des Systems zu bestimmen. Ein allgemeines Beispiel würde mit verschiedenen Methoden des Lastausgleichens experimentieren.

Isolierungsprüfung

Isolierungsprüfung ist zur Leistungsprüfung nicht einzigartig, aber ein Begriff hat gepflegt, das Wiederholen einer Testausführung zu beschreiben, die auf ein Systemproblem hinausgelaufen ist. Häufig verwendet, um das Schuld-Gebiet zu isolieren und zu bestätigen.

Das Setzen von Leistungszielen

Leistungsprüfung kann verschiedenen Zwecken dienen.

  • Es kann demonstrieren, dass das System Leistungskriterien entspricht.
  • Es kann zwei Systeme vergleichen, um zu finden, der besser leistet.
  • Oder es kann das messen, welche Teile des Systems oder Arbeitspensums das System veranlasst, schlecht durchzuführen.

Viele Leistungstests werden ohne erwartete Rücksicht zur Einstellung von realistischen Leistungsabsichten übernommen. Die erste Frage von einer Geschäftsperspektive sollte immer sein "warum sind wir Leistungsprüfung?". Diese Rücksichten sind ein Teil des Geschäftsfalls der Prüfung.

Leistungsabsichten werden sich unterscheiden abhängig von der Technologie und Zweck des Systems jedoch sollten sie immer etwas vom folgenden einschließen:

Parallelität/Durchfluss

Wenn ein System Endbenutzer durch eine Form des Anmeldungsverfahrens dann erkennt, ist eine Parallelitätsabsicht hoch wünschenswert. Definitionsgemäß ist das die größte Zahl von gleichzeitigen Systembenutzern, die, wie man erwartet, das System in jedem gegebenen Moment unterstützt. Der Arbeitsablauf Ihrer scripted Transaktion kann wahre Parallelität besonders zusammenpressen, wenn der wiederholende Teil die Anmeldung und Abmeldungstätigkeit enthält

Wenn das System kein Konzept von Endbenutzern dann hat, wird Leistungsabsicht wahrscheinlich auf einem maximalen Durchfluss oder Transaktionsrate basieren. Ein allgemeines Beispiel würde das zufällige Durchsuchen einer Website wie Wikipedia sein.

Server-Ansprechzeit

Das bezieht sich auf die für einen Systemknoten genommene Zeit, um auf die Bitte von einem anderen zu antworten. Ein einfaches Beispiel würde ein HTTP sein 'BEKOMMEN' Bitte vom Browser-Kunden zum Webserver.

In Bezug auf die Ansprechzeit ist das, was alle Lastprobewerkzeuge wirklich messen.

Es kann wichtig sein, Server-Ansprechzeitziele zwischen allen Knoten des Systems zu setzen.

Machen Sie Ansprechzeit

Ein schwieriges Ding für Lastprobewerkzeuge, um sich zu befassen, weil sie allgemein kein Konzept dessen haben, was innerhalb eines Knotens abgesondert vom Erkennen einer Zeitspanne geschieht, wo es keine Tätigkeit 'auf der Leitung' gibt. Um zu messen, machen Ansprechzeit es ist allgemein notwendig, Funktionsprüfungsschriften als ein Teil des Leistungstestdrehbuches einzuschließen, das eine durch viele Lastprobewerkzeuge nicht angebotene Eigenschaft ist.

Leistungsspezifizierungen

Es ist kritisch, über Leistungsspezifizierungen (Voraussetzungen) ausführlich zu berichten und sie in jedem Leistungsprüfplan zu dokumentieren. Ideal wird das während der Voraussetzungsentwicklungsphase jedes Systementwicklungsprojektes vor jeder Designanstrengung getan. Sieh Leistungstechnik für mehr Details.

Jedoch wird Leistungsprüfung oft gegen eine Spezifizierung nicht durchgeführt, d. h. keiner wird ausgedrückt haben, wie die maximale annehmbare Ansprechzeit für eine gegebene Bevölkerung von Benutzern sein sollte. Leistungsprüfung wird oft als ein Teil des Prozesses der Leistungsprofil-Einstimmung verwendet. Die Idee ist, die "schwächste Verbindung" zu identifizieren - es gibt unvermeidlich einen Teil des Systems, das, wenn es gemacht wird, schneller zu antworten, auf das gesamte System hinauslaufen wird, das schneller läuft. Es ist manchmal eine schwierige Aufgabe sich zu identifizieren, welcher Teil des Systems diesen kritischen Pfad vertritt, und einige Testwerkzeuge einschließen (oder Erweiterungen haben kann, die zur Verfügung stellen) Instrumentierung, die auf dem Server (Agenten) und Berichtstransaktionszeiten, Datenbankzugriffszeiten, Netz oben und andere Server-Monitore läuft, die zusammen mit der rohen Leistungsstatistik analysiert werden können. Ohne solche Instrumentierung könnte man jemanden haben müssen hat über den Windows-Aufgabe-Betriebsleiter am Server gehockt, um zu sehen, wie viel Zentraleinheitslast die Leistungstests erzeugen (das Annehmen, dass ein Windows-System unter dem Test ist).

Leistungsprüfung kann über das Web durchgeführt, und sogar in verschiedenen Teilen des Landes getan werden, da es bekannt ist, dass sich die Ansprechzeiten des Internets selbst regional ändern. Es kann auch innerbetrieblich getan werden, obwohl Router dann würden konfiguriert werden müssen, um den Zeitabstand einzuführen, was normalerweise in öffentlichen Netzen vorkommen würde. Lasten sollten ins System von realistischen Punkten eingeführt werden. Zum Beispiel, wenn 50 % einer Benutzerbasis eines Systems auf das System über eine 56K Modemverbindung und die andere Hälfte über einen T1 zugreifen werden, dann sollten die Lastinjektoren (Computer, die echte Benutzer vortäuschen) entweder Last über dieselbe Mischung von Verbindungen (Ideal) einspritzen oder die Netzlatenz solcher Verbindungen im Anschluss an dasselbe Benutzerprofil vortäuschen.

Es ist immer nützlich, eine Behauptung der wahrscheinlichen Maximalzahlen von Benutzern zu haben, die, wie man erwarten könnte, das System in Spitzenzeiten verwendet haben. Wenn es auch eine Behauptung dessen geben kann, was die maximale zulässige 95-Prozentanteil-Ansprechzeit einsetzt, dann konnte eine Injektor-Konfiguration verwendet werden, um zu prüfen, ob das vorgeschlagene System dieser Spezifizierung entsprochen hat.

Fragen zu fragen

Leistungsspezifizierungen sollten die folgenden Fragen an einem Minimum stellen:

  • Im Detail wie ist das Leistungstestspielraum? Welche Subsysteme, Schnittstellen, Bestandteile, usw. in und aus dem Spielraum für diesen Test sind?
  • Für die Benutzerschnittstellen (UIs) schloss ein, wie viele gleichzeitige Benutzer für jeden erwartet werden (geben Sie Spitze gegen den Nominalwert an)?
  • Wie was sieht das Zielsystem (Hardware) aus (geben Sie den ganzen Server und Netzgerät-Konfigurationen an)?
  • Wie ist die Anwendungsarbeitspensum-Mischung jedes Systembestandteils? (zum Beispiel: 20-%-Anmeldung, 40-%-Suche, 30-%-Artikel ausgesuchte 10-%-Abreise).
  • Wie ist die Systemarbeitspensum-Mischung? [Vielfache Arbeitspensen können in einem einzelnen Leistungstest] vorgetäuscht werden (zum Beispiel: 30-%-Arbeitspensum A, 20-%-Arbeitspensum B, 50-%-Arbeitspensum C).
  • Wie sind die Zeitvoraussetzungen für irgendwelche/ganzen Zurückende-Gruppe-Prozesse (geben Sie Spitze gegen den Nominalwert an)?

Vorbedingungen für die Leistungsprüfung

Ein Stall baut des Systems, das der Produktionsumgebung so nahe ähneln muss, wie möglich ist.

Die Leistungsprobeumgebung sollte mit der Benutzerakzeptanz-Prüfung (UAT) oder Entwicklungsumgebung nicht mit einer Keule geschlagen werden. Das ist gefährlich, als ob ein UAT oder Integrationstest oder andere Tests in derselben Umgebung weitergehen, dann können die bei der Leistungsprüfung erhaltenen Ergebnisse nicht zuverlässig sein. Als eine beste Praxis ist es immer ratsam, eine getrennte Leistung zu haben, die Umgebung prüft, die der Produktionsumgebung so viel wie möglich ähnelt.

Versuchsbedingungen

In der Leistungsprüfung ist es häufig entscheidend (und häufig schwierig sich zu einigen) für die Versuchsbedingungen, dem erwarteten wirklichen Gebrauch ähnlich zu sein. Das ist jedoch in der wirklichen Praxis, nicht völlig möglich. Der Grund besteht darin, dass die Arbeitspensen von Produktionssystemen eine zufällige Natur haben, und während die Testarbeitspensen ihr Bestes tun nachzuahmen, was in der Produktionsumgebung geschehen kann, ist es unmöglich, diese Arbeitspensum-Veränderlichkeit - außer im einfachsten System genau zu wiederholen.

Lose verbundene architektonische Durchführungen (z.B: SOA) haben zusätzliche Kompliziertheiten mit der Leistungsprüfung geschaffen. Unternehmensdienstleistungen oder Vermögen (die eine allgemeine Infrastruktur oder Plattform teilen) verlangen, dass koordinierte Leistungsprüfung (mit allen Verbrauchern, die Produktion ähnliche Transaktionsvolumina und Last auf geteilten Infrastrukturen oder Plattformen schaffen) Produktion ähnliche Staaten aufrichtig wiederholt. Wegen der Kompliziertheit und finanziell und Zeitvoraussetzungen um diese Tätigkeit verwenden einige Organisationen jetzt Werkzeuge, die kontrollieren und Produktion ähnliche Bedingungen (auch verwiesen als "Geräusch") in ihren Leistungsprobeumgebungen (PTE) schaffen können, um Kapazität zu verstehen, und Quellenvoraussetzungen und / nachzuprüfen, Qualitätsattribute gültig machen.

Timing

Es ist zur Kostenleistung eines neuen Systems kritisch, dieser Leistungstest, den Anstrengungen am Beginn der Entwicklung beginnen, springt vor und streckt sich durch bis zu die Aufstellung aus. Je später ein Leistungsdefekt, desto höher die Kosten der Wiedervermittlung entdeckt wird. Das ist im Fall von der funktionellen Prüfung, aber noch mehr mit der Leistungsprüfung, wegen der Länge nach Natur seines Spielraums wahr.

Werkzeuge

Im diagnostischen Fall verwenden Softwareingenieure Werkzeuge wie profilers, um zu messen, welche Teile eines Geräts oder Software am meisten zur schlechten Leistung beiträgt oder Durchfluss-Niveaus (und Schwellen) für die aufrechterhaltene annehmbare Ansprechzeit zu gründen.

Technologie

Leistungsprobetechnologie verwendet einen oder mehr Server von PCs oder Unix, um als Injektoren - jeder zu handeln, mit der Anwesenheit von Zahlen von Benutzern und jedem Laufen einer automatisierten Folge von Wechselwirkungen (registriert als eine Schrift, oder als eine Reihe von Schriften wetteifernd, um mit verschiedenen Typen der Benutzerwechselwirkung wettzueifern), mit dem Gastgeber, dessen Leistung geprüft wird. Gewöhnlich handelt ein getrennter PC als ein Testleiter, koordinierend und Metrik von jedem der Injektoren sammelnd und Leistungsdaten kollationierend, um Zwecke zu melden. Die übliche Folge soll sich die Last aufrichten - mit einer kleinen Anzahl von virtuellen Benutzern anfangend und die Zahl im Laufe einer Periode zu etwas Maximum steigernd. Das Testergebnis zeigt, wie sich die Leistung mit der Last ändert, die als Zahl von Benutzern gegen die Ansprechzeit gegeben ist. Verschiedene Werkzeuge, sind verfügbar, um solche Tests durchzuführen. Werkzeuge in dieser Kategorie führen gewöhnlich ein Gefolge von Tests durch, die mit echten Benutzern gegen das System wetteifern werden. Manchmal können die Ergebnisse Kuriositäten z.B offenbaren. Das, während die durchschnittliche Ansprechzeit annehmbar sein könnte, gibt es outliers von einigen Schlüsseltransaktionen, die beträchtlich länger nehmen, um - etwas zu vollenden, was durch ineffiziente Datenbankabfragen, Bilder usw. verursacht werden könnte.

Leistungsprüfung kann mit der Betonungsprüfung verbunden werden, um zu sehen, was geschieht, wenn eine annehmbare Last überschritten wird - tut den Absturz? Wie lange nimmt es, um zu genesen, wenn eine große Last reduziert wird? Scheitert es in einem Weg der verursacht Nebenschaden?

Das analytische Leistungsmodellieren ist eine Methode, das Verhalten eines Systems in einem Spreadsheet zu modellieren. Das Modell wird mit Maßen von Transaktionsquellenanforderungen (Zentraleinheit, Platteneingabe/Ausgabe, LAN, BLASS) gefüttert, durch die Transaktionsmischung (Geschäftstransaktionen pro Stunde) beschwert. Die belasteten Transaktionsquellenanforderungen werden belaufen erhalten die stündlichen Quellenanforderungen und geteilt durch die stündliche Quellenkapazität, die Quellenlasten zu erhalten. Mit der responsetime Formel (R=S / (1-u), R=responsetime, S=servicetime, U=load), kann responsetimes berechnet und mit den Ergebnissen der Leistungstests kalibriert werden. Das analytische Leistungsmodellieren erlaubt Einschätzung von Designoptionen und System nach Größen ordnend gestützt auf dem wirklichen oder hat Geschäftsgebrauch vorausgesehen. Es ist deshalb viel schneller und preiswerter als Leistungsprüfung, obwohl es das gründliche Verstehen der Hardware-Plattformen verlangt.

Aufgaben zu übernehmen

Aufgaben, solch einen Test durchzuführen, würden einschließen:

  • Entscheiden Sie, ob man innere oder äußerliche Mittel verwendet, die Tests, abhängig vom innerbetrieblichen Gutachten durchzuführen (oder an davon Mangel zu haben)
,
  • Sammeln Sie oder entlocken Sie Leistungsvoraussetzungen (Spezifizierungen) Benutzern und/oder Wirtschaftsanalytikern
  • Entwickeln Sie einen Plan auf höchster Ebene (oder Projekturkunde), einschließlich Voraussetzungen, Mittel, Zeitachsen und Meilensteine
  • Entwickeln Sie einen ausführlichen Leistungsprüfplan (einschließlich ausführlicher Drehbücher, und prüfen Sie Fälle, Arbeitspensen, Umgebungsinfo, usw.)
  • Wählen Sie Testwerkzeug (s)
  • Geben Sie Testdaten erforderlich und Charter-Anstrengung (häufig überblickt, aber häufig der Tod eines gültigen Leistungstests) an
  • Entwickeln Sie Schriften des Beweises des Konzepts für jede Anwendung/Bestandteil unter dem Test, mit gewählten Testwerkzeugen und Strategien
  • Entwickeln Sie ausführlich berichteten Leistungstestprojektplan, einschließlich aller Abhängigkeiten und vereinigter Zeitachsen
  • Installieren Sie und konfigurieren Sie Injektoren/Kontrolleur
  • Konfigurieren Sie das Testumfeld (ideal identische Hardware zur Produktionsplattform), Router-Konfiguration, ruhiges Netz (wir wollen Ergebnisse nicht, die von anderen Benutzern umgeworfen sind), die Aufstellung der Server-Instrumentierung, Datenbanktestsätze entwickelt, usw.
  • Führen Sie Tests - wahrscheinlich wiederholt (wiederholend) durch, um zu sehen, ob ein unerklärter Faktor die Ergebnisse betreffen könnte
  • Analysieren Sie die Ergebnisse - entweder, gehen Sie oder Untersuchung des kritischen Pfads und Empfehlung von der Verbesserungshandlung/fehlen Sie

Methodik

Leistung, die Webanwendungen prüft

Gemäß dem Microsoft Developer Network besteht die Leistungsprobemethodik aus den folgenden Tätigkeiten:

  • Tätigkeit 1. Identifizieren Sie das Testumfeld. Identifizieren Sie das physische Testumfeld und die Produktionsumgebung sowie die Werkzeuge und für die Testmannschaft verfügbaren Mittel. Die physische Umgebung schließt Hardware, Software und Netzkonfigurationen ein. Ein gründliches Verstehen des kompletten Testumfeldes am Anfang zu haben, ermöglicht effizienteres Testdesign und Planung und hilft Ihnen, Probeherausforderungen früh im Projekt zu identifizieren. In einigen Situationen muss dieser Prozess regelmäßig überall im Lebenszyklus des Projektes wieder besucht werden.
  • Tätigkeit 2. Identifizieren Sie Leistungsannahmekriterien. Identifizieren Sie die Ansprechzeit, den Durchfluss, und die Quellenanwendungsabsichten und die Einschränkungen. Im Allgemeinen ist Ansprechzeit eine Benutzersorge, Durchfluss ist eine Firma, und Quellenanwendung ist eine Systemsorge. Identifizieren Sie zusätzlich Projekterfolg-Kriterien, die durch jene Absichten und Einschränkungen nicht gewonnen werden dürfen; zum Beispiel prüft das Verwenden der Leistung, um zu bewerten, welche Kombination von Konfigurationseinstellungen auf die wünschenswertesten Leistungseigenschaften hinauslaufen wird.
  • Tätigkeit 3. Plan und Designtests. Identifizieren Sie Schlüsseldrehbücher, bestimmen Sie Veränderlichkeit unter vertretenden Benutzern, und wie man diese Veränderlichkeit vortäuscht, Testdaten definiert, und zu sammelnde Metrik einsetzt. Konsolidieren Sie diese Information in ein oder mehr Modelle des durchzuführenden Systemgebrauchs, durchgeführt und analysiert.
  • Tätigkeit 4. Konfigurieren Sie das Testumfeld. Bereiten Sie das Testumfeld, die Werkzeuge und die Mittel vor, die notwendig sind, um jede Strategie als Eigenschaften durchzuführen, und Bestandteile werden verfügbar für den Test. Stellen Sie sicher, dass das Testumfeld für die Quelle instrumentiert wird, die als notwendig kontrolliert.
  • Tätigkeit 5. Führen Sie das Testdesign durch. Entwickeln Sie die Leistungstests in Übereinstimmung mit dem Testdesign.
  • Tätigkeit 6. Führen Sie den Test durch. Geführt und Monitor Ihre Tests. Machen Sie die Tests gültig, prüfen Sie Daten und Ergebnis-Sammlung. Führen Sie gültig gemachte Tests auf die Analyse durch, während Sie den Test und das Testumfeld kontrollieren.
  • Tätigkeit 7. Analysieren Sie Ergebnisse, Melodie und testen Sie Wieder. Analysieren Sie, Konsolidieren Sie und teilen Sie Ergebnis-Daten. Nehmen Sie eine stimmende Änderung vor und testen Sie wieder. Verbesserung oder Degradierung? Jede Verbesserung hat Testament-Rückkehr kleinere Verbesserung gemacht als die vorherige Verbesserung. Wann halten Sie an? Wenn Sie einen Zentraleinheitsengpass erreichen, sind die Wahlen dann entweder verbessern den Code oder fügen mehr Zentraleinheit hinzu.

Siehe auch

  • Betonungsprüfung (Software)
  • Abrisspunkt, (rechnend)
  • Webserver, der bewertet
  • Anwendungsansprechmaß

Außenverbindungen


Source is a modification of the Wikipedia article Software performance testing, licensed under CC-BY-SA. Full list of contributors here.
Zeitkrise / Kommunikationstakt-Gesetz
Impressum & Datenschutz