Softwarequalität mit               Visual Studio 2010Präsentation von:David Tielke
02.03.2011   2           Über mich: David Tielke   M. Sc. Informatik / Universität Marburg   Microsoft Student Partner s...
02.03.2011   3                        Agenda•   Was/Wie/Wo Softwarequalität•   Unit Tests•   Code Coverage•   Code Analysi...
Ohne (etwas) Theorie geht’s nicht…Softwarequalität
02.03.2011     5              Was? - Softwarequalität„Unter Softwarequalität versteht man dieGesamtheit der Merkmale und M...
02.03.2011      6         Was? - Softwarequalität• An jedes Softwaresystem gibt es Anforderungen  – Funktionale Anforderun...
02.03.2011   7         Wie? - Softwarequalität• Maßnahmen zur Qualitätssicherung  – Konstruktiv    z.B. Richtlinien, Werkz...
02.03.2011      8          Wo? - Softwarequalität                              StudienAnalyse                        Anfor...
02.03.2011      9    VS 2010 und SoftwarequalitätVisual Studio 2010 ermöglicht es uns mit analytischen    Tools und Addins...
Ist Software die Software korrekt?Unit-Tests
Unit-Tests• Was sind Unit-Tests? „Beim Unit-Testing werden unabhängige Module (Klasse, Komponenten, etc.) in einem dedizie...
02.03.2011     12                      Unit-Tests   Applikations-Kontext                  Test-KontextKlasse ABC       Kla...
02.03.2011   13              Unit-TestsProjectABC   ProjectABCTest       MSTestKlasseXYZ    KlasseXYZTestMethode1()   Meth...
02.03.2011                 14                           Unit-Tests           ProjectABC                    ProjectABCTest ...
DEMO Unit-Tests Projektdatei: MSP_TDO2011_UnitTests
02.03.2011   16                   Unit-Tests• Weiteres zu dem Thema  – Datengetriebene Tests  – Testinput generieren (Pex)...
Wie „gut“ sind meine Unit-Tests?Code Coverage
Code Coverage• Metrik wie viel Code von Tests ausgeführt wird• Kann aussagekräftig sein (muss aber nicht)                 ...
DEMO Code Coverage  Projektdatei: MSP_TDO2011_CodeCoverage
Hält sich der Entwickler an die Abmachungen?Code Analysis
02.03.2011          21                     Code Analysis• Coding Guidelines  –   Beschreiben wie Code geschrieben werden s...
02.03.2011      22               Code Analysis• Coding Guidlines werden oft nicht von allen  Entwicklern eingehalten• Micr...
DEMO Code Analysis  Projektdatei: MSP_TDO2011_CodeAnalysis
Zahlen, Zahlen, Zahlen,…Code Metrics
02.03.2011   25                Code Metrics• Eigenschaften von Code durch Zahlen  ausgedrückt• VS 2010 unterstützt „nur“ f...
02.03.2011                    26                                 Code Metrics• Maintainability Index  Gibt an, wie gut Cod...
02.03.2011   27                 Code Metrics• Cyclomatic Complexity  misst strukturale Komplexität des Codes  – If  – For/...
02.03.2011   28                Code Metrics• Depth of Inheritance  Gibt die Tiefe der Vererbungs-  struktur an  Niedrige W...
02.03.2011      29               Code Metrics• Class Coupling  Anzahl der Abhängigkeiten zu anderen Klassen Niedrige Werte...
02.03.2011       30                Code Metrics• Lines of Code  Anzahl Zeilen Code in einer Methode auf Basis  des IL-Code...
DEMO Code Metrics  Projektdatei: MSP_TDO2011_CodeMetrics
Wie schnell ist mein Code?Profiling
02.03.2011   33                    Profiling• Profiler überwachen das Zeit- und  Speicherverhalten von Anwendungen• Zwei V...
DEMO Profiling Projektdatei: MSP_TDO2011_Profiling
02.03.2011                35Visual Studio 2010 – Die VersionenFeature         Ultimate        Premium         Professional...
02.03.2011   36    Weiter SQ-Tools in Visual Studio 2010•   Intelli Trace•   Load Tests•   Manual Testing•   Coded UI Test...
02.03.2011   37Fragen & Antworten
Nächste SlideShare
Wird geladen in …5
×

Softwarequalität mit Visual Studio 2010

1.845 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.845
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
14
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Softwarequalität mit Visual Studio 2010

  1. 1. Softwarequalität mit Visual Studio 2010Präsentation von:David Tielke
  2. 2. 02.03.2011 2 Über mich: David Tielke M. Sc. Informatik / Universität Marburg Microsoft Student Partner seit 2008 Fokus: .NET, Verteilte Systeme, Architektur, Bildverarbeitung Kontakt: • E-Mail: david.tielke@studentpartners.de • Web: www.David-Tielke.de • Twitter: davidtielke
  3. 3. 02.03.2011 3 Agenda• Was/Wie/Wo Softwarequalität• Unit Tests• Code Coverage• Code Analysis• Code Metrics• Profiling• Visual Studio 2010 – Die Editionen• Fragen & Antworten
  4. 4. Ohne (etwas) Theorie geht’s nicht…Softwarequalität
  5. 5. 02.03.2011 5 Was? - Softwarequalität„Unter Softwarequalität versteht man dieGesamtheit der Merkmale und Merkmalswerteeines Softwareprodukts, die sich auf dessenEignung beziehen, festgelegte oder vorausgesetzteErfordernisse zu erfüllen“(wikipedia)
  6. 6. 02.03.2011 6 Was? - Softwarequalität• An jedes Softwaresystem gibt es Anforderungen – Funktionale Anforderungen „Der Benutzer muss xyz können“ – Nicht-funktionale Anforderungen „Das System muss leicht erweiterbar sein“ „SQ beschreibt, wie gut eine Software die an sich gestellten Anforderungen erfüllt“
  7. 7. 02.03.2011 7 Wie? - Softwarequalität• Maßnahmen zur Qualitätssicherung – Konstruktiv z.B. Richtlinien, Werkzeuge, Standards,… – Analytisch z.B. Profiling, Unit-Tests, Code Coverage,…
  8. 8. 02.03.2011 8 Wo? - Softwarequalität StudienAnalyse Anforderungstests Definition Modellverifikation Entwurf Implementierung Unit-Tests, Profiling,… Inbetriebnahme Systemtests
  9. 9. 02.03.2011 9 VS 2010 und SoftwarequalitätVisual Studio 2010 ermöglicht es uns mit analytischen Tools und Addins die Softwarequalität in der Implementierungsphase zu messen und zu steigern.
  10. 10. Ist Software die Software korrekt?Unit-Tests
  11. 11. Unit-Tests• Was sind Unit-Tests? „Beim Unit-Testing werden unabhängige Module (Klasse, Komponenten, etc.) in einem dedizierten Testkontext auf die korrekte Einhaltung von zuvor spezifizierten Anforderungen getestet.“
  12. 12. 02.03.2011 12 Unit-Tests Applikations-Kontext Test-KontextKlasse ABC Klasse XYZ EingabenMethode1() Methode1()Methode2() Methode2()Methode3() Methode3()Methode4() Methode4()
  13. 13. 02.03.2011 13 Unit-TestsProjectABC ProjectABCTest MSTestKlasseXYZ KlasseXYZTestMethode1() Methode1Test()Methode2() Methode2Test()Methode3() Methode3Test()Methode4() Methode4Test()
  14. 14. 02.03.2011 14 Unit-Tests ProjectABC ProjectABCTest Klasse1 Klasse3 Klasse1Test Klasse3TestMethode1() Methode1() Methode1() Methode1()Methode2() Methode2() Methode2() Methode2() Klasse2 Klasse4 Klasse2Test Klasse4TestMethode1() Methode1() Methode1() Methode1()Methode2() Methode2() Methode2() Methode2()
  15. 15. DEMO Unit-Tests Projektdatei: MSP_TDO2011_UnitTests
  16. 16. 02.03.2011 16 Unit-Tests• Weiteres zu dem Thema – Datengetriebene Tests – Testinput generieren (Pex) – Check-In Policy im Team Foundation Server – Coded UI-Tests – Test Impact Analysis – Unit-Tests für Datenbanken – Und…
  17. 17. Wie „gut“ sind meine Unit-Tests?Code Coverage
  18. 18. Code Coverage• Metrik wie viel Code von Tests ausgeführt wird• Kann aussagekräftig sein (muss aber nicht)  Zu Beginn 0% Überdeckung  Test 1: Typ(1,2,2) => 4 Zeilen (57%)  Test 2: Typ(1,1,2) => 5 Zeilen (71%)  Test 3: Typ(1,2,3) => 6 Zeilen (85%)  Test 4: Typ(0,0,0) => 7 Zeilen (100%)
  19. 19. DEMO Code Coverage Projektdatei: MSP_TDO2011_CodeCoverage
  20. 20. Hält sich der Entwickler an die Abmachungen?Code Analysis
  21. 21. 02.03.2011 21 Code Analysis• Coding Guidelines – Beschreiben wie Code geschrieben werden soll – Erleichtern Verständnis im Team – Können Fehler verhindern – Nicht einfach durchsetzbar• Microsoft .NET Framework Design Guidelines for Class Library Developers http://msdn.microsoft.com/en-us/library/czefa0ke(v=vs.71).aspx
  22. 22. 02.03.2011 22 Code Analysis• Coding Guidlines werden oft nicht von allen Entwicklern eingehalten• Microsoft verwendet intern seit langem FxCop• Seit VS 2005 Team System integriert als Managed Code Analysis• Durch eigene Regeln erweiterbar• Seit VS 2010 umbenannt in Code Analysis
  23. 23. DEMO Code Analysis Projektdatei: MSP_TDO2011_CodeAnalysis
  24. 24. Zahlen, Zahlen, Zahlen,…Code Metrics
  25. 25. 02.03.2011 25 Code Metrics• Eigenschaften von Code durch Zahlen ausgedrückt• VS 2010 unterstützt „nur“ fünf Metriken – Maintainability Index – Cyclomatic Complexity – Depth of Inheritance – Class Coupling – Lines of Code
  26. 26. 02.03.2011 26 Code Metrics• Maintainability Index Gibt an, wie gut Code in Zukunft gewartet werden kann. MAX(0,(171-5,2*ln(Halstead Volume) – 0.23*(Cyclomatic Complexity)-16,2*ln(Lines of Code)*100/171)• Wert nicht linear, daher farbliche Visualisierung – Grün: Hohe Wartbarkeit (Wert 20 – 100) – Gelb: Mittlere Wartbarkeit (Wert 10-20) – Rot: Niedrige Wartbarkeit (Wert 0-9)
  27. 27. 02.03.2011 27 Code Metrics• Cyclomatic Complexity misst strukturale Komplexität des Codes – If – For/While/Do-While – Switch – Try/Catch (Seit VS 2010) Niedrige Werte sind besser
  28. 28. 02.03.2011 28 Code Metrics• Depth of Inheritance Gibt die Tiefe der Vererbungs- struktur an Niedrige Werte sind besser
  29. 29. 02.03.2011 29 Code Metrics• Class Coupling Anzahl der Abhängigkeiten zu anderen Klassen Niedrige Werte sind besser
  30. 30. 02.03.2011 30 Code Metrics• Lines of Code Anzahl Zeilen Code in einer Methode auf Basis des IL-Codes Keine Kommentare, Klammern, usw. Niedrige Werte sind besser
  31. 31. DEMO Code Metrics Projektdatei: MSP_TDO2011_CodeMetrics
  32. 32. Wie schnell ist mein Code?Profiling
  33. 33. 02.03.2011 33 Profiling• Profiler überwachen das Zeit- und Speicherverhalten von Anwendungen• Zwei Varianten – Sampling (periodisches Messen von Werten) – Instrumentation (Injektion von Messcode)• Unglaublich umfangreiches Tool!!!
  34. 34. DEMO Profiling Projektdatei: MSP_TDO2011_Profiling
  35. 35. 02.03.2011 35Visual Studio 2010 – Die VersionenFeature Ultimate Premium Professional ExpressCode MetricsProfilingUnit TestsCode CoverageCode Analysis Quelle: http://www.microsoft.com/germany/visualstudio/products/features.aspx
  36. 36. 02.03.2011 36 Weiter SQ-Tools in Visual Studio 2010• Intelli Trace• Load Tests• Manual Testing• Coded UI Testing• Lab Management• Visual Studio Test Professional 2010• Team Foundation Server 2010
  37. 37. 02.03.2011 37Fragen & Antworten

×