Unit Testing Roger Boesch Technology Solution Professional Developer Tools Microsoft Schweiz GmbH blogs.msdn.com/rogerboesch © 2004 Microsoft Corporation.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Vorgehensweise Website Besprechung am 11. Februar 2008 Gründung und Partnerunternehmen der Wirtschaftsuniversität Wien.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Einführung von Team System Ein Vorgehensvorschlag
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Kapselung , toString , equals , Java API
Threads Richard Göbel.
Komponentenbasierter Taschenrechner mit CORBA
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Windows Small Business Server 2008
MSDN Webcast Team Foundation Server mit Visual FoxPro nutzen
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
SQL Server 2005 CLR-Integration
Video Streaming mit Silverlight
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Roger Boesch Technology Solution Professional - Visual Studio Team System blogs.msdn.com/rogerboesch Microsoft Schweiz GmbH.
Version 2008 Team Foundation Version Control (TFVC) … ist eine vollständige Neuentwicklung … wurde für große Teams, die auch weltweit verteilt arbeiten,
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
SQL Azure Administration
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Model-View-ViewModel s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Qualitätsmanagement in der Entwicklung !?. artiso solutions GmbH | Oberer Wiesenweg 25 | Blaustein | Agenda 1. Ziele und Probleme.
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
EPROG Tutorium #4 Philipp Effenberger
TDD mit MSTest Stefan Lieser Web:
TDD mit MSTest Stefan Lieser
Einführung OpenSTA. Agenda - über OGVIT - Warum Lasttests - Was ist OpenSTA - Wie arbeitet OpenSTA - Skripte für OpenSTA - OpenSTA Collectors - Tests.
Parallelisierung für Multiprozessor-Maschinen
Die AppDomain Das unbekannte Wesen?
xRM1 Pilot Implementierung
© 2014 Fake the Unfakeable Isolating Code Under Test with Microsoft Fakes ©
Thomas Schissler – artiso solutions GmbH Artur Speth – Microsoft Deutschland GmbH.
…und nun aber zum heutigen Vortrag Die Herausforderung: Krisen und andere Verwerfungen Die Herangehensweise: Kosten senken & Produktivität erhöhen Das.
Mit IT IS enbex Hand in Hand Zeitgemäße Unternehmen sind auf schnellen und sicheren Datenaustausch angewiesen IT IS AG.
Sprachneuerungen des .NET Frameworks 3.5
Best Practices der sicheren Programmierung mit.NET Andrea Janes.
Bernhard Frank Technologieberater Microsoft Deutschland GmbH.
Weg mit Fehlern, die kein Entwickler versteht …
TDD mit MSTest Stefan Lieser Web:
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Arbeiten in einem agilen Team mit VS & TFS 11
Test-Driven Development
Artiso solutions GmbH | Oberer Wiesenweg 25 | Blaustein | Advanced UI-Testing für WPF.
Cubido business solutions gmbh Haidfeldstrasse 33 A-4060 Leonding di(fh) Wolfgang Straßer ° Rundumblick.
C++ FÜR cOMPUTERSPIELENTWICKLER
Azure Active Directory und Azure Active Directory Domain Services
Lync and Learn mit Manfred Helber Thema heute:
Nichts sticht besser Objekte isoliert testen
 Präsentation transkript:

Unit Testing Roger Boesch Technology Solution Professional Developer Tools Microsoft Schweiz GmbH blogs.msdn.com/rogerboesch © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Agenda Einführung in Unit Testing Unit Testing mit Visual Studio Team System Unit Testing Framework (Not so) Simple Unit Testing Data Driven Unit Testing Unit Testing Best Practices BICEP – Das richtige Testen CORRECT – Boundary Conditions Mock Objekte Plattform Unit Testing ASP.Net, Silverlight 2.0, Windows Mobile © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Unit Testing lohnt sich immer… © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Was sind eigentlich Unit Tests? Einführung in Unit Testing Prüfen von Units (Modulen) Autarke Code Einheiten (Bsp. Methode) Nur sinnvolle Tests (Bsp. Keine Getter/Setter) Automatisierbar und wiederholbar Whitebox Testing (Einblick in Code) Einspeisen von verschiedenen Werten Vergleichen des Ergebnisses Kombination von Unit Tests Bilden von Szenarios © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Die 10 besten Ausreden Einführung in Unit Testing Es braucht viel zu viel Zeit um die Tests zu schreiben! Die Tests laufen zu lassen dauert zu lange! Wir verwenden viel Legacy Code, der nicht getestet werden kann! Es ist nicht meine Aufgabe meinen Code zu testen! Ich weiss nicht, was der Code genau tun muss, wie soll ich da Tests schreiben? Der Code lässt sich doch compilieren! Ich werde bezahlt um Code zu schreiben, nicht Tests! Unsere Tester müssen ja auch noch Arbeit haben! Meine Firma erlaubt keine Unit Test auf Live-Systemen! Ja ja, ich schreibe doch bereits Unit Tests! © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Was bewirkt Unit Testing? Einführung in Unit Testing Frühes und ständiges Testen wird ermöglicht Stehen nach jeder Änderung zur Verfügung Sind in ihrer Gesamtheit aussagekräftig Unterstützen und fördern Refactoring Fördert Einfachheit der einzelnen Methoden Sorgt für einen verbesserten Software Entwicklungs Prozess Kombination von Code und Unit Tests fördert Wartbarkeit und Austauschbarkeit © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Ist es wirklich so einfach? Einführung in Unit Testing Sinnhaftigkeit der Tests ( Was testet man?) Problembereiche Testen von Benutzeroberflächen schwierig MVC Design Pattern hilft ein wenig weiter  Schwierige Abgrenzungen (Bsp. Datenbanken) Nebenläufigkeit (Threads) bereiten Probleme Lösungsansatz: Mock-Objekte (to mock: engl. für nachahmen) Einschränkung Testen des “grossen Ganzen” nicht möglich Ersetzen keine Integrations- und Akzeptanz -Tests © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Test Driven Development Einführung in Unit Testing Motto: Rot  Grün  Refactoring Schreibe einen kleinen Test für den nächsten zu implementierenden Funktionalitätshappen. Dieser Test sollte nicht funktionieren. Erfülle den Test mit möglichst wenig Code, um schnell wieder zum "grünen Balken" (alle Tests laufen) zurückzukehren. Räume den Code auf! Dazu gehört das Entfernen von Duplikaten, Einführung von notwendigen Abstraktionen und Umsetzen der Code Konventionen. Ziel dieses Aufräumens ist die einfache Form des Codes. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Ein erstes Beispiel Unit Testing mit Visual Studio Team System using System; public class Cmp { public static int Largest(int[] list) … } Welche Tests sind notwendig/sinnvoll? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Zu testende Varianten Unit Testing mit Visual Studio Team System Reihenfolge unabhängig 7,8,9  9 8,7,9  9 9,8,7  9 Mehrere gleiche Einträge 7,9,8,9  9 Nur eine Nummer 1  1 Negative Nummern -9,-8,-7  -7 Leere Liste null  ? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Visual Studio Team System Unit Testing mit Visual Studio Team System Roger Boesch Technology Solution Professional Developer Tools Microsoft Schweiz GmbH © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Data Driven Unit Tests Unit Testing mit Visual Studio Team System Vorteile Schnell erweiterbar durch zusätzliche Datensätze Einfach zu implementieren Komplett ins Testing Framework von VSTS integriert Durch „Nicht“-Programmierer erweiterbar Aufbau der Datenbank Die notwendigen Felder Programmierung Einsatz des DataSource Properties Zugriff auf die Daten: Der TestContext © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Data Driven Unit Tests mit Visual Studio Team System Roger Boesch Technology Solution Professional Developer Tools Microsoft Schweiz GmbH © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Das richtige Testen! Unit Testing Best Practices Right BICEP Right: Sind die Testergebnisse korrekt? B: Sind die Boundary Conditions korrekt? I: Kann invers getestet werden? C: Kann Cross-Check getestet werden? E: Können Fehler (Errors) erzeugt werden? P: Liegt die Performance in der Toleranz? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Das richtige Testen! Unit Testing Best Practices CORRECT Boundaries Conformance: Stimmt das Format? Ordering: Spielt die Reihenfolge eine Rolle? Range: Liegt der Wert in einem definierten Bereich? Reference: Nutzt der Code externe Ressourcen? Existence: Existiert ein bestimmter Wert? Cardinality: Stimmt die Anzahl? Time: Geschieht alles in der Zeit, zur Zeit? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Manchmal ist es nicht so einfach… Unit Testing Best Practices Mock Objekte Stubs Implementieren eines Interfaces und liefern von Dummy-Werten Fakes Erlaubt die Simulieren des echten Verhaltens Frage Dich immer! Ist ein Mock Objekt wirklich notwendig? Hilft ev. ein Refactoring/Redesign? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Manchmal ist es nicht so einfach Unit Testing Best Practices Mock Objekte Stubs Implementieren eines Interfaces und liefern von Dummy-Werten Fakes Erlaubt die Simulieren des echten Verhaltens Frage Dich immer! Ist ein Mock Objekt wirklich notwendig? Hilft ev. ein Refactoring/Redesign? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Zeit ist nicht gleich Zeit… Unit Testing Best Practices public static string DaysFromNow(DateTime last) { TimeSpan span = DateTime.Now - last; switch (span.Days) case 0: return "Heute"; case 1: return "Gestern"; default: return span.Days + " Tage vorher"; } Was ist hier am Sinnvollsten ? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Merkmaler guter Unit Tests Unit Testing Best Practices Tests müssen schnell sein Ansonsten werden sie nicht so oft gestartet Separieren oder simulieren von Abhängikeiten  Immer Mock-Objekte oder Stubs einsetzen Limitieren des Scopes  Ein Test testet jeweils nur einen Fall Tests müssen isoliert ablaufen können  Die Reihenfolge der Tests darf keine Rolle spielen Tests sollten selbsterklärend sein  Erkenne ich sofort was getestet wird? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Plattform Unit Testing Silverlight 2.0, Windows Mobile, ASP.Net … … solange die Zeit reicht  Roger Boesch Technology Solution Professional Developer Tools Microsoft Schweiz GmbH © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Unit Tests: Was bleibt noch? Unit Testing Best Practices Wie oft soll ich meine Tests laufen lassen? Nach dem Schreiben einer neuen Methode (TDD) Bei einem Fehler Schreibe einen Test der den Fehler aufzeigt Bereinige den Fehler Lass alle Unit Tests erneut laufen! Nach erfolgreichem Kompilieren bei jeder Code Änderung Vor dem Einchecken in die Versions Kontrolle VSTS kennt Check-In Policies! © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Weiterführende Informationen zum Thema Links Software Tester Team Center http://msdn2.microsoft.com/en-us/teamsystem/aa718941.aspx Working with Unit Tests http://msdn2.microsoft.com/en-us/library/ms182515(VS.80).aspx Guidelines for Test Driven Development http://msdn2.microsoft.com/en-us/library/aa730844(VS.80).aspx Unit Testing für C++ Code http://www.codeguru.com/columns/kate/article.php/c11893/ Bücher zum Thema Software Testing with Visual Studio Team System (ISBN 0470149787 ) Pragmatic Unit Testing (http://pragprog.com/starter_kit) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.