softwarequalität mit visual studio 2010
TRANSCRIPT
![Page 1: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/1.jpg)
Präsentation von:
Softwarequalität mit Visual Studio 2010
David Tielke
![Page 2: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/2.jpg)
Über mich: David Tielke
02.03.2011 2
M. Sc. Informatik / Universität Marburg Microsoft Student Partner seit 2008
Fokus: .NET, Verteilte Systeme, Architektur, Bildverarbeitung
Kontakt: • E-Mail: [email protected] • Web: www.David-Tielke.de • Twitter: davidtielke
![Page 3: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/3.jpg)
Agenda
• Was/Wie/Wo Softwarequalität
• Unit Tests
• Code Coverage
• Code Analysis
• Code Metrics
• Profiling
• Visual Studio 2010 – Die Editionen
• Fragen & Antworten
02.03.2011 3
![Page 4: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/4.jpg)
Softwarequalität Ohne (etwas) Theorie geht’s nicht…
![Page 5: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/5.jpg)
Was? - Softwarequalität
„Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen“ (wikipedia)
02.03.2011 5
![Page 6: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/6.jpg)
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“
02.03.2011 6
![Page 7: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/7.jpg)
Wie? - Softwarequalität
• Maßnahmen zur Qualitätssicherung
– Konstruktiv z.B. Richtlinien, Werkzeuge, Standards,…
– Analytisch z.B. Profiling, Unit-Tests, Code Coverage,…
02.03.2011 7
![Page 8: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/8.jpg)
Wo? - Softwarequalität
02.03.2011 8
Analyse
Definition
Entwurf
Implementierung
Inbetriebnahme
Studien
Anforderungstests
Modellverifikation
Unit-Tests, Profiling,…
Systemtests
![Page 9: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/9.jpg)
VS 2010 und Softwarequalität
Visual Studio 2010 ermöglicht es uns mit analytischen Tools und Addins die Softwarequalität in der
Implementierungsphase zu messen und zu steigern.
02.03.2011 9
![Page 10: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/10.jpg)
Unit-Tests Ist Software die Software korrekt?
![Page 11: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/11.jpg)
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.“
![Page 12: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/12.jpg)
Unit-Tests
02.03.2011 12
Applikations-Kontext
Klasse ABC
Methode1() Methode2() Methode3() Methode4()
Test-Kontext
Ein
gaben
Klasse XYZ
Methode1() Methode2() Methode3() Methode4()
![Page 13: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/13.jpg)
Unit-Tests
02.03.2011 13
ProjectABC
KlasseXYZ
Methode1() Methode2() Methode3() Methode4()
ProjectABCTest
KlasseXYZTest
Methode1Test() Methode2Test() Methode3Test() Methode4Test()
MSTest
![Page 14: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/14.jpg)
Unit-Tests
02.03.2011 14
ProjectABC
Klasse1
Methode1() Methode2()
ProjectABCTest
Klasse2
Methode1() Methode2()
Klasse3
Methode1() Methode2()
Klasse4
Methode1() Methode2()
Klasse1Test
Methode1() Methode2()
Klasse2Test
Methode1() Methode2()
Klasse3Test
Methode1() Methode2()
Klasse4Test
Methode1() Methode2()
![Page 15: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/15.jpg)
DEMO Unit-Tests Projektdatei: MSP_TDO2011_UnitTests
![Page 16: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/16.jpg)
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…
02.03.2011 16
![Page 17: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/17.jpg)
Code Coverage Wie „gut“ sind meine Unit-Tests?
![Page 18: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/18.jpg)
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%)
![Page 19: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/19.jpg)
DEMO Code Coverage Projektdatei: MSP_TDO2011_CodeCoverage
![Page 20: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/20.jpg)
Code Analysis Hält sich der Entwickler an die Abmachungen?
![Page 21: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/21.jpg)
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
02.03.2011 21
![Page 22: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/22.jpg)
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
02.03.2011 22
![Page 23: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/23.jpg)
DEMO Code Analysis Projektdatei: MSP_TDO2011_CodeAnalysis
![Page 24: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/24.jpg)
Code Metrics Zahlen, Zahlen, Zahlen,…
![Page 25: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/25.jpg)
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
02.03.2011 25
![Page 26: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/26.jpg)
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)
02.03.2011 26
![Page 27: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/27.jpg)
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
02.03.2011 27
![Page 28: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/28.jpg)
Code Metrics
• Depth of Inheritance Gibt die Tiefe der Vererbungs- struktur an Niedrige Werte sind besser
02.03.2011 28
![Page 29: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/29.jpg)
Code Metrics
• Class Coupling Anzahl der Abhängigkeiten zu anderen Klassen Niedrige Werte sind besser
02.03.2011 29
![Page 30: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/30.jpg)
Code Metrics
• Lines of Code Anzahl Zeilen Code in einer Methode auf Basis des IL-Codes Keine Kommentare, Klammern, usw. Niedrige Werte sind besser
02.03.2011 30
![Page 31: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/31.jpg)
DEMO Code Metrics Projektdatei: MSP_TDO2011_CodeMetrics
![Page 32: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/32.jpg)
Profiling Wie schnell ist mein Code?
![Page 33: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/33.jpg)
Profiling
• Profiler überwachen das Zeit- und Speicherverhalten von Anwendungen
• Zwei Varianten
– Sampling (periodisches Messen von Werten)
– Instrumentation (Injektion von Messcode)
• Unglaublich umfangreiches Tool!!!
02.03.2011 33
![Page 34: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/34.jpg)
DEMO Profiling Projektdatei: MSP_TDO2011_Profiling
![Page 35: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/35.jpg)
Visual Studio 2010 – Die Versionen
02.03.2011 35
Feature Ultimate Premium Professional Express
Code Metrics
Profiling
Unit Tests
Code Coverage
Code Analysis
Quelle: http://www.microsoft.com/germany/visualstudio/products/features.aspx
![Page 36: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/36.jpg)
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
02.03.2011 36
![Page 37: Softwarequalität mit Visual Studio 2010](https://reader033.vdocuments.mx/reader033/viewer/2022052323/558cb2e0d8b42a4f7a8b4607/html5/thumbnails/37.jpg)
Fragen & Antworten
02.03.2011 37