SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Softwarequalität mit
               Visual Studio 2010




Präsentation von:
David Tielke
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
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
Ohne (etwas) Theorie geht’s nicht…
Softwarequalität
02.03.2011     5




              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      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“
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,…
02.03.2011      8




          Wo? - Softwarequalität

                              Studien
Analyse
                        Anforderungstests
 Definition
                         Modellverifikation
   Entwurf

     Implementierung   Unit-Tests, Profiling,…


      Inbetriebnahme        Systemtests
02.03.2011      9




    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.
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 dedizierten
 Testkontext auf die korrekte Einhaltung von
 zuvor spezifizierten Anforderungen getestet.“
02.03.2011     12




                      Unit-Tests

   Applikations-Kontext                  Test-Kontext

Klasse ABC       Klasse XYZ




                              Eingaben
Methode1()       Methode1()
Methode2()       Methode2()
Methode3()       Methode3()
Methode4()       Methode4()
02.03.2011   13




              Unit-Tests


ProjectABC   ProjectABCTest       MSTest

KlasseXYZ    KlasseXYZTest

Methode1()   Methode1Test()
Methode2()   Methode2Test()
Methode3()   Methode3Test()
Methode4()   Methode4Test()
02.03.2011                 14




                           Unit-Tests


           ProjectABC                    ProjectABCTest
 Klasse1                Klasse3   Klasse1Test               Klasse3Test

Methode1()          Methode1()    Methode1()                Methode1()
Methode2()          Methode2()    Methode2()                Methode2()

 Klasse2                Klasse4   Klasse2Test               Klasse4Test

Methode1()          Methode1()    Methode1()                Methode1()
Methode2()          Methode2()    Methode2()                Methode2()
DEMO Unit-Tests
 Projektdatei: MSP_TDO2011_UnitTests
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…
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)
                                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%)
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 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      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
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ünf Metriken
  – Maintainability Index
  – Cyclomatic Complexity
  – Depth of Inheritance
  – Class Coupling
  – Lines of Code
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)
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
02.03.2011   28




                Code Metrics
• Depth of Inheritance
  Gibt die Tiefe der Vererbungs-
  struktur an


  Niedrige Werte
  sind besser
02.03.2011      29




               Code Metrics
• Class Coupling
  Anzahl der Abhängigkeiten zu anderen Klassen



 Niedrige Werte
 sind besser
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
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 Varianten
  – Sampling (periodisches Messen von Werten)
  – Instrumentation (Injektion von Messcode)
• Unglaublich umfangreiches Tool!!!
DEMO Profiling
 Projektdatei: MSP_TDO2011_Profiling
02.03.2011                35




Visual Studio 2010 – Die Versionen
Feature         Ultimate        Premium         Professional        Express
Code Metrics
Profiling
Unit Tests
Code Coverage
Code Analysis



  Quelle: http://www.microsoft.com/germany/visualstudio/products/features.aspx
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
02.03.2011   37




Fragen & Antworten

Contenu connexe

En vedette (20)

Presentación Rucamanque
Presentación RucamanquePresentación Rucamanque
Presentación Rucamanque
 
Electricidadbasica
ElectricidadbasicaElectricidadbasica
Electricidadbasica
 
mi presentacion
mi presentacionmi presentacion
mi presentacion
 
Sesión 3
Sesión 3Sesión 3
Sesión 3
 
Estudio Twitter
Estudio TwitterEstudio Twitter
Estudio Twitter
 
La Web 2.0
La Web 2.0La Web 2.0
La Web 2.0
 
Pres Web2.0
Pres Web2.0Pres Web2.0
Pres Web2.0
 
Asturias 2
Asturias 2Asturias 2
Asturias 2
 
Bloque Cero
Bloque CeroBloque Cero
Bloque Cero
 
CCBB en las enseñanzas mínimas
CCBB en las enseñanzas mínimasCCBB en las enseñanzas mínimas
CCBB en las enseñanzas mínimas
 
El sistema Solar
El sistema SolarEl sistema Solar
El sistema Solar
 
DecáLogo
DecáLogoDecáLogo
DecáLogo
 
Medios de Transporte
Medios de TransporteMedios de Transporte
Medios de Transporte
 
LA BASURA
LA BASURALA BASURA
LA BASURA
 
Estatutos Anpa Luis Pardo
Estatutos Anpa Luis PardoEstatutos Anpa Luis Pardo
Estatutos Anpa Luis Pardo
 
Emprendedores
EmprendedoresEmprendedores
Emprendedores
 
Seminario orientadores
Seminario orientadoresSeminario orientadores
Seminario orientadores
 
Patente für Talente
Patente für TalentePatente für Talente
Patente für Talente
 
Lectura en veu_alta2
Lectura en veu_alta2Lectura en veu_alta2
Lectura en veu_alta2
 
Exposición Maxwell
Exposición MaxwellExposición Maxwell
Exposición Maxwell
 

Similaire à Softwarequalität mit Visual Studio 2010

Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...Aberla
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testenmradamlacey
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...Markus Harrer
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10inovex GmbH
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Nico Orschel
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und TestsDaniel Fisher
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes QAware GmbH
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Community ITmitte.de
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Nico Orschel
 
DevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfDevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfCarolinaMatthies
 
Software Metrics and Continuous Integration
Software Metrics and Continuous IntegrationSoftware Metrics and Continuous Integration
Software Metrics and Continuous IntegrationMilena Reichel
 

Similaire à Softwarequalität mit Visual Studio 2010 (20)

Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Hey, wie geht es dir?
Hey, wie geht es dir?Hey, wie geht es dir?
Hey, wie geht es dir?
 
Bi testing media_factory_0.10
Bi testing media_factory_0.10Bi testing media_factory_0.10
Bi testing media_factory_0.10
 
Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013Testmanagement mit Visual Studio 2013
Testmanagement mit Visual Studio 2013
 
2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests2005 - NRW Conf: Design, Entwicklung und Tests
2005 - NRW Conf: Design, Entwicklung und Tests
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013
 
DevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfDevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdf
 
Software Metrics and Continuous Integration
Software Metrics and Continuous IntegrationSoftware Metrics and Continuous Integration
Software Metrics and Continuous Integration
 

Plus de mspgermany

Windows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodetWindows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodetmspgermany
 
Einführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNAEinführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNAmspgermany
 
C# für Fortgeschrittene
C# für FortgeschritteneC# für Fortgeschrittene
C# für Fortgeschrittenemspgermany
 
Einführung in .NET mit C#
Einführung in .NET mit C#Einführung in .NET mit C#
Einführung in .NET mit C#mspgermany
 
Office-Programmierung mit VBA
Office-Programmierung mit VBAOffice-Programmierung mit VBA
Office-Programmierung mit VBAmspgermany
 
Windows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-VWindows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-Vmspgermany
 
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – MöglichkeitenWindows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeitenmspgermany
 
Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2mspgermany
 
Mit Stil ans Ziel
Mit Stil ans ZielMit Stil ans Ziel
Mit Stil ans Zielmspgermany
 
Präsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint KaraokePräsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint Karaokemspgermany
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7mspgermany
 
Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7mspgermany
 
Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7mspgermany
 
Usergroup 02 Berlin Surface
Usergroup 02 Berlin SurfaceUsergroup 02 Berlin Surface
Usergroup 02 Berlin Surfacemspgermany
 
Usergroup02 Berlin IE8
Usergroup02 Berlin IE8Usergroup02 Berlin IE8
Usergroup02 Berlin IE8mspgermany
 

Plus de mspgermany (15)

Windows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodetWindows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodet
 
Einführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNAEinführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNA
 
C# für Fortgeschrittene
C# für FortgeschritteneC# für Fortgeschrittene
C# für Fortgeschrittene
 
Einführung in .NET mit C#
Einführung in .NET mit C#Einführung in .NET mit C#
Einführung in .NET mit C#
 
Office-Programmierung mit VBA
Office-Programmierung mit VBAOffice-Programmierung mit VBA
Office-Programmierung mit VBA
 
Windows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-VWindows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-V
 
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – MöglichkeitenWindows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
 
Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2
 
Mit Stil ans Ziel
Mit Stil ans ZielMit Stil ans Ziel
Mit Stil ans Ziel
 
Präsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint KaraokePräsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint Karaoke
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7
 
Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7
 
Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7
 
Usergroup 02 Berlin Surface
Usergroup 02 Berlin SurfaceUsergroup 02 Berlin Surface
Usergroup 02 Berlin Surface
 
Usergroup02 Berlin IE8
Usergroup02 Berlin IE8Usergroup02 Berlin IE8
Usergroup02 Berlin IE8
 

Softwarequalität mit Visual Studio 2010

  • 1. Softwarequalität mit Visual Studio 2010 Präsentation von: David Tielke
  • 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. 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. Ohne (etwas) Theorie geht’s nicht… Softwarequalität
  • 5. 02.03.2011 5 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)
  • 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. 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. 02.03.2011 8 Wo? - Softwarequalität Studien Analyse Anforderungstests Definition Modellverifikation Entwurf Implementierung Unit-Tests, Profiling,… Inbetriebnahme Systemtests
  • 9. 02.03.2011 9 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.
  • 10. Ist Software die Software korrekt? Unit-Tests
  • 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. 02.03.2011 12 Unit-Tests Applikations-Kontext Test-Kontext Klasse ABC Klasse XYZ Eingaben Methode1() Methode1() Methode2() Methode2() Methode3() Methode3() Methode4() Methode4()
  • 13. 02.03.2011 13 Unit-Tests ProjectABC ProjectABCTest MSTest KlasseXYZ KlasseXYZTest Methode1() Methode1Test() Methode2() Methode2Test() Methode3() Methode3Test() Methode4() Methode4Test()
  • 14. 02.03.2011 14 Unit-Tests ProjectABC ProjectABCTest Klasse1 Klasse3 Klasse1Test Klasse3Test Methode1() Methode1() Methode1() Methode1() Methode2() Methode2() Methode2() Methode2() Klasse2 Klasse4 Klasse2Test Klasse4Test Methode1() Methode1() Methode1() Methode1() Methode2() Methode2() Methode2() Methode2()
  • 15. DEMO Unit-Tests Projektdatei: MSP_TDO2011_UnitTests
  • 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. Wie „gut“ sind meine Unit-Tests? Code Coverage
  • 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. DEMO Code Coverage Projektdatei: MSP_TDO2011_CodeCoverage
  • 20. Hält sich der Entwickler an die Abmachungen? Code Analysis
  • 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. 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. DEMO Code Analysis Projektdatei: MSP_TDO2011_CodeAnalysis
  • 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. 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. 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. 02.03.2011 28 Code Metrics • Depth of Inheritance Gibt die Tiefe der Vererbungs- struktur an Niedrige Werte sind besser
  • 29. 02.03.2011 29 Code Metrics • Class Coupling Anzahl der Abhängigkeiten zu anderen Klassen Niedrige Werte sind besser
  • 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. DEMO Code Metrics Projektdatei: MSP_TDO2011_CodeMetrics
  • 32. Wie schnell ist mein Code? Profiling
  • 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. DEMO Profiling Projektdatei: MSP_TDO2011_Profiling
  • 35. 02.03.2011 35 Visual Studio 2010 – Die Versionen Feature Ultimate Premium Professional Express Code Metrics Profiling Unit Tests Code Coverage Code Analysis Quelle: http://www.microsoft.com/germany/visualstudio/products/features.aspx
  • 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. 02.03.2011 37 Fragen & Antworten