Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer...

18
Performance Analyse in einem komplexen Softwaresystem 18.09.2013 Gebhard Ebeling

Transcript of Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer...

Page 1: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse

in einem komplexen Softwaresystem

18.09.2013

Gebhard Ebeling

Page 2: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Fehlverhalten und korrektes Systemverhalten kann nicht unterschieden werden.

Das Ergebnis ist schlecht bis gar nicht analysierbar.

Ziel: Minimierung der Einflussfaktoren um zwischen Fehlverhalten und korrektem Systemverhalten zu unterscheiden

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 2

Problemstellung Systemkomplexität

Antwortzeiten Systemanfragen [ms]

Page 3: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 3

Bereiche der Systemkomplexität

Erwartungen des Auftraggebers sind weich formuliert „Messen Sie die Performance des Systems XY“, „nicht langsamer als das Altsystem“

Externe Sub- Services zeigen schwankendes Antwortzeitverhalten

nicht steuerbarer Einfluss durch Fremdsysteme

Parametrisierbarkeit des zu testenden Systems Unterschiedliche Kundenkonfigurationen, unterschiedliche Ausbaustufen

Hardwareabhängigkeit, Betriebssystemabhängigkeit DLL Caching, Netzwerklatenz, Server Virtualisierung

Page 4: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 4

Bereiche der Systemkomplexität

Erwartungen des Auftraggebers sind weich formuliert „Messen Sie die Performance des Systems XY“, „nicht langsamer als das Altsystem“

Externe Sub- Services zeigen schwankendes Antwortzeitverhalten

nicht steuerbarer Einfluss durch Fremdsysteme

Parametrisierbarkeit des zu testenden Systems Unterschiedliche Kundenkonfigurationen, unterschiedliche Ausbaustufen

Hardwareabhängigkeit, Betriebssystemabhängigkeit DLL Caching, Netzwerklatenz, Server Virtualisierung

Page 5: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 5

Erwartungen des Auftraggebers / Auftragsklärung

Auftragsklärung (schriftlich im Testkonzept -> Testziel, Restrisiko)

Welche Messwerte repräsentieren die Systemperformance? Antwortzeit? Durchsatz? Lastspitzen oder Dauerlast? Min. oder Max?

Welche Performance wird vom System erwartet? z.B. der erwartete Durchsatz hat Einfluss auf das Testdesign

Was ist das zu testende System? Sollen externe Sub- Services mit betrachtet werden? Geht es um die Performance der Software oder auch der Hardware?

Ein schlecht geklärter Auftrag kann nie zur Zufriedenheit des

Auftragsgebers erfüllt werden

Page 6: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 6

Bereiche der Systemkomplexität

Erwartungen des Auftraggebers sind weich formuliert „Messen Sie die Performance des Systems XY“, „nicht langsamer als das Altsystem“

Externe Sub- Services zeigen schwankendes Antwortzeitverhalten

nicht steuerbarer Einfluss durch Fremdsysteme

Parametrisierbarkeit des zu testenden Systems Unterschiedliche Kundenkofigurationen, unterschiedliche Ausbaustufen

Hardwareabhängigkeit, Betriebssystemabhängigkeit DLL Caching, Netzwerklatenz, Server Virtualisierung

Page 7: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 7

Externe Sub- Services / Abgrenzen des Testsystems 1

Reproduzierbarkeit, Vergleichbarkeit ist bei externen Sub- Services nicht gegeben

Aufführen des Einflusses im Testbericht (Management Summary) oder Einsatz von Mocks mit definierten Antwortzeiten

Page 8: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 8

Bereiche der Systemkomplexität

Erwartungen des Auftraggebers sind weich formuliert „Messen Sie die Performance des Systems XY“, „nicht langsamer als das Altsystem“

Externe Sub- Services zeigen schwankendes Antwortzeitverhalten

nicht steuerbarer Einfluss durch Fremdsysteme

Parametrisierbarkeit des zu testenden Systems Unterschiedliche Kundenkonfigurationen, unterschiedliche Ausbaustufen, unterschiedliche Anforderungen des Kunden

Hardwareabhängigkeit, Betriebssystemabhängigkeit DLL Caching, Netzwerklatenz, Server Virtualisierung

Page 9: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 9

Parametrisierbarkeit des zu testenden Systems

Systeme können durch Parametrisierung an den Kunden angepasst werden Anzahl aufgerufener Sub- Services, Kombination der Sub- Services, Cache- Verhalten

Wählen einer exemplarischen Konfiguration, die einen repräsentativen Bereich des Systems abdeckt.

Konstant halten dieser Konfiguration so lange bis reproduzierbare, analysierbare Ergebnisse vorliegen.

Testen in der Tiefe vor dem Testen in der Breite.

Page 10: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 10

Parametrisierbarkeit des zu testenden Systems

Systeme werden in verschiedenen Ausbaustufen angeboten Classic, Advanced, Premium, …

Wählen einer exemplarischen Ausbaustufe, die einen möglichst großen Bereich des Systems abdeckt.

Kombinationen erst testen, wenn das Verhalten der einzelnen Ausbaustufe bekannt ist.

Die Ergebnisse verschiedener Ausbaustufen nicht mischen Mittelwert der Antwortzeit über verschiedene Ausbaustufen Durchsatz von Systemanfragen über verschiedene Ausbaustufen Allein die Anzahl der verwendeten Anfragen pro Kombination verändert das Testergebnis.

Page 11: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 11

Bereiche der Systemkomplexität

Erwartungen des Auftraggebers sind weich formuliert „Messen Sie die Performance des Systems XY“, „nicht langsamer als das Altsystem“

Externe Sub- Services zeigen schwankendes Antwortzeitverhalten

nicht steuerbarer Einfluss durch Fremdsysteme

Parametrisierbarkeit des zu testenden Systems Unterschiedliche Kundenkonfigurationen, unterschiedliche Ausbaustufen, unterschiedliche Anforderungen des Kunden

Hardwareabhängigkeit, Betriebssystemabhängigkeit DLL Caching, Netzwerklatenz, Server Virtualisierung

Page 12: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Beispiele für die Beeinflussung der Systemperformance DLL Caching bei Windows Systemen

Auf einem neu gestarteten Windows System wird die Performance des ersten Durchlaufs schlechter sein als bei allen weiteren Durchläufen

Just In Time Kompilierung bei Java führt dazu, das die erste Ausführung des Java Codes länger braucht als alle folgenden

Garbage Collection bei Java stoppt die Codeausführung und führt zu sporadischen Laufzeitbeeinflussungen

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 12

Hardwareabhängigkeit, Betriebssystemabhängigkeit

Page 13: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Schaffen von möglichst gleichen Testvorbedingungen. Systemneustart, Warmlauf vor dem eigentlichen Test. Vermeiden von zeitgesteuerten Services wie Virenscanner auf dem Testsystem

Performance Tests mehrfach ausführen, die Abweichungen beachten um die Aussagekraft des Ergebnisses einschätzen zu können

Verwenden von Zeitstempeln und Systemmonitoren die den Einfluss auf die Performance aufzeigen

Vermeiden von Performancetests auf virtualisierten Systemen

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 13

Hardwareabhängigkeit, Betriebssystemabhängigkeit

Page 14: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren die das primäre Testergebnis beeinflussen.

Fehlverhalten und korrektes Systemverhalten kann nicht unterschieden werden.

Das Ergebnis ist schlecht bis gar nicht analysierbar.

Ziel: Minimierung der Einflussfaktoren um zwischen Fehlverhalten und korrektem Systemverhalten zu unterscheiden

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 14

Problemstellung Systemkomplexität (Wiederholung)

Antwortzeiten Systemanfragen [ms]

Page 15: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Durch die geschaffene Analysefähigkeit werden Fehlermuster im Antwortverhalten sichtbar

Die einzelnen Fehlermuster können gezielt analysiert, behoben und validiert werden

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 15

Erfolge durch verbesserte Analysefähigkeit

Page 16: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Klären des Auftrags mit dem Auftraggeber. Festhalten dessen, was getestet wird -> Testkonzept/Testziel Festhalten dessen was nicht getestet wird ->Testkonzept/Restrisiko

Sauberes Abgrenzen des Testsystems Verwenden von Mocks mit definiertem Antwortverhalten

Testen in der Tiefe vor Testen in der Breite

Verwenden von exemplarischen Konfigurationen und Ausbaustufen

Systemumgebung beachten, gleiche Testvorbedingungen schaffen

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 16

Fazit

Page 17: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Vielen Dank für Ihre Aufmerksamkeit!

Vielen Dank für Ihre Aufmerksamkeit!

arvato infoscore

Risk Management

Ebeling, Gebhard

Testmanager

[email protected]

www.arvato-infoscore.de

Page 18: Performance Analyse in einem komplexen Softwaresystem · Bei der Performance Analyse komplexer Softwaresystemen gibt es viele Einflussfaktoren, die das primäre Testergebnis beeinflussen.

Beispiel einer Systemanfrage und seiner Sub- Services

Teilweise parallele Aufrufe, teilweise sequentiell

Performance Analyse in einem komplexen Software System | Gebhard Ebeling | 18.09.2013 18

Beispielsystem im WEB Umfeld

Interne Services Externe Services