Agile Entwicklung und Qualitätssteigerung 04.04.2013 Meister werden Training Stufe 2 Bern Logo Partner
Agenda Einführung Referat Pause Agenda Referat Meister-Tools
TechTalk auf einem Blick Agile Software Entwicklung, Beratung und Umsetzung (Nearshoring) Standorte: Zürich, Wien, Budapest Ca. 60 Mitarbeiter Gegründet: 1993
TechTalk Daniel Sack Senior Developer Developer Coach ALM Consultant Email: ds@techtalk.at
Einführung Kapitel 1/3 Logo Partner
Übersicht Trainings Stufe 1 Professionelle Desktop- und App-Entwicklung Application Lifecycle Management Automatische Unittests Team Foundation Server Stufe 2 Agile Entwicklung und Qualitätssteigerung Statische Codeanalyse Testfunktionen mit Codecoverage Aufbau von Virtuellen Testumgebungen Stufe 3 Professionelle Integration von Entwicklung und Betrieb und Architekturanalyse Intellitrace Web- und Performancetesting Automatisches Deployment
Typische Herausforderungen Challenge 1 Challenge 2 Challenge 3
Konkrete Lösungen 1 REQUIREMENTS 3 Storyboarding und priorisiertes Backlog (mit Akzeptanzkriterien) Code Review (Tool basiert) 3 1 Sprint Backlog Taskboard Team Produktivität (Velocity) Implement Monitor Erstellen und Betreiben von virtuellen Testumgebungen Automatisieren von Tests (von Unit- bis Systemtests) 1 2 Requirements-Test Abdeckung Qualitäts Dashboard Frühes Kundenfeedback Zwischenspeichern der Arbeit (Suspend/Resume Work) Dev-Tester Integration WORKING SOFTWARE
Referat Kapitel 2/3 Logo Partner
Fokus Umgang mit Bugs innerhalb eines Sprints Identifikation, Sicherstellung und Vermeidung des erneuerten Auftretens von bereits behobenen Bugs
Scrum Prozess Überblick
Was ist eigentlich ein Bug?
Was ist eigentlich ein Bug? Unerwartetes Fehlverhalten Neue Annahmen aufgrund des Ergebnisses Vergessene implizite Annahmen Vergessene dokumentierte Annahmen Verletzte dokumentierte Annahmen
Anforderungen in agilen Projekten Warum? Ziele, Effekte Epic, Themes isoliertes formalisiertes Beispiel User Stories Akzeptanzkriterien Erinnerung an eine Diskussion Bugs Code Wie? Gut vorab festlegbar Schlecht vorab festlegbar
Einfacher
Was ist eigentlich ein Bug? Wann tritt ein Bug auf?
Wann tritt ein Bug auf? REQUIREMENTS 1 in-sprint bugs Implement Monitor 2 out-of-sprint bugs
Behebung? in-sprint bugs out-of-sprint bugs hinausschiebbar planbar unplanbar
Wasserfall im Sprint Planung Planung Planung Analyse Analyse Analyse Design Design Design Implement. Implement. Implement. Test Test Test Konflikt Deploy Deploy Deploy Sprint 1 Sprint 2 Sprint 3 Die eigentliche Iterationsdauer
Cross-funktionale Teams Mix aus Rollen Schnelles Feedback
Cross-funktionale Arbeit Mitwirkung Definition Akzeptanzkriterien Limitierung WIP gemeinsame manuelle Testausführung US1 Plan Implement & autom. test US2 Plan US3 Plan Implement & autom. Implement test & autom. test Exploratory Test Erweiterung Test Cases + Ziele Explor. Test US4 US5 Plan Plan US6 Implement Plan & autom. Implement test & autom. Implement test & autom. test Zusammenarbeit Automatisierung US7 US8 Plan Plan US9 Implement Plan & autom. Implement test & autom. Implement test & autom. test Spezifikation und Test Sprint 1 Sprint 2 Sprint 3 Kurze Iteration Retrospektive: Optimierung Zusammenarbeit
Besprechung von Akzeptanzkriterien Wir wollen neue Benutzer ermutigen, etwas zu bestellen. Daher bieten wir 10% Rabatt für die erste Bestellung eines Kunden an. public void TestInitialOrderDiscount() { Customer newcustomer = new Customer(); Order neworder = new Order(newCustomer); neworder.addbook( Catalog.Find( ISBN-0955683610 ) ); Assert.Equals(33.75, neworder.subtotal); } Register as bart_bookworm Go to /catalog/search Enter ISBN-0955683610 Click Search Click Add to Cart Click View Cart Verify Subtotal is $33.75 Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com
illustriert mit formalisierten Beispielen Angenommen der Benutzer hat noch keine Bestellung Wenn der Benutzer ein Buch zum Preis von EUR 37,50 in den Einkaufwagen legt Dann zeigt der Einkaufswagen eine Zwischensumme von EUR 33,75. Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com
Aufdeckung impliziter Erwartungen Eigentlich stimmt das nicht ganz: Bücher im Angebot sollen davon ausgenommen werden. Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com
Zusammenarbeit: 3 Amigos Happy Path Technische Machbarkeit Ausnahmen, Grenzfälle Originalidee Illustration: George Dinwiddie http://blog.gdinwiddie.com
Abstrakte Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Bücher können aus dem Warenkorb entfernt werden Der Warenkorb ist zu Beginn leer Das gleiche Buch kann mehrmals hinzugefügt werden
Beispiele für Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Angenommen ich habe einen leeren Warenkorb Wenn ich das Buch Harry Potter in den Warenkorb lege Dann sollte mein Warenkorb 1 Exemplar von Harry Potter enthalten
Beispiele für Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Das gleiche Buch kann mehrmals hinzugefügt werden Angenommen mein Warenkorb enthält 1 Exemplar von Harry Potter Wenn ich das Buch Harry Potter in den Warenkorb lege Dann soll mein Warenkorb 2 Exemplare von Harry Potter enthalten
Spezifikation mit Beispielen Beispiele machen abstrakte Beschreibungen besser verständlich werden normalerweise nicht formalisiert ausgetauscht/ dokumentiert Brian Marick Beispiele bestehen aus Tests beschreiben Anforderungen verifizieren Erfüllung von
Beispiele für Akzeptanzkriterien Als Webshop Besucher will ich Bücher in einen Warenkorb legen weil ich mehrere Bücher auf einmal bezahlen können will. Bücher können dem Warenkorb hinzugefügt werden Das gleiche Buch kann mehrmals hinzugefügt werden Angenommen mein Warenkorb enthält 1 Exemplar von Harry Potter Wenn ich das Buch Harry Potter in den Warenkorb lege Dann soll mein Warenkorb 2 Exemplare von Harry Potter enthalten
Titel: Beschreibt Intention/abstraktes Akzeptanzkriterium Arrange: Kontext, Zustand des Systems vor Ausführung Act: Ausführung des Features Assert: Prüfung beobachtbares Verhalten Das gleiche Buch kann mehrmals hinzugefügt werden Triple-A constraint Checks Angenommen mein Warenkorb enthält 1 Exemplar von Harry Potter Wenn ich das Buch Harry Potter in den Warenkorb lege Dann soll mein Warenkorb 2 Exemplare von Harry Potter enthalten Und eine Warnung wird ausgegeben: Gleiches Buch hinzugefügt Verkettung von Schritten
Fachlich lesbare Automatisierung Angenommen mein Warenkorb enthält 1 Exemplar von Harry Potter Wenn ich das Buch Harry Potter in den Warenkorb lege Dann sollte mein Warenkorb 2 Exemplare von Harry Potter enthalten UI Automatisierung System Automatisierbare Schnittstelle
Scrum Prozess Überblick
Erfolgsrezepte Crossfunktionale Teams Exploratives Testen: Testcharta mit priorisierten Zielen Gemeinsames Ziel: Fertig getestetes Produkt am Sprintende Mix aus Rollen: schnelles Feedback und Fehlerbehebung Spezifikation mit Beispielen Spezifikationstechnik für gemeinsames Verständnis der Details Fachlich lesbare Tests als Spezifikation Lebende Dokumentation des Systems
Demo
Pause Logo Partner
Sensei-Tipp Fehler vermeiden anstatt nur Fehler zu finden!
Vermeidung Erfolgsrezepte Crossfunktionale Teams Spezifikation mit Beispielen kein Wasserfall Testen Identifikation Codeanalyse manuelles/automatisiertes Testing Exploratives Testen
Werkzeuge Visual Studio 2012 Unit Testing mit MS-Test/Nunit/Xunit/SpecFlow UI-Test Automatisierung (Coded UI Testing) Statische Code Analyse Code Metrics Code Clone Analyse Code Coverage Code Review Test Manager 2012 Test Case Verwaltung / Requirements Mapping Manuelles Testen (klassisches Testen) Exploratives Testen Virtual Lab Management
Demo
Regression If something hurts, do it more often! Testautomatisierung (frequency reduces difficulty)
Automatisierbarkeit Testautomatisierungspyramide wenige Exploratives Testen schwieriger Userjourneys Akzeptanzkriterien Units viele einfacher nach Mike Cohn
Testautomatisierung wird teuer, wenn man versucht, manuelle Tests zu automatisieren Tests durch die Automatisierung unlesbar werden man nach Abschluss der Entwicklung automatisiert Struktur Lesbarkeit Zeitpunkt
Automatisierbarkeit Manuelles Testen ist immer notwendig! wenige Nicht entdeckte Akzeptanzkriterien Exploratives Testen Mehr Zeit für Exploration schwieriger Hauptpfade durch Applikation User journeys Wenige Pfade sind ausreichen Manuelle Prüfung wenn User Story Done Akzeptanzkriterien Keine/(wenige) manuelle Regressionschecks Units viele einfacher Source: Mike Cohn
Zusammenfassung Unerwartetes Fehlverhalten Neue Annahmen aufgrund des Ergebnisses Vergessene implizite Annahmen Vergessene dokumentierte Annahmen Verletzte dokumentierte Annahmen
Automatisierbarkeit Einsatz von Werkzeugen schwer exploratives Testen User journeys Test Manager 2012 Virtual Lab Management CodedUI Fachlich lesbare Tests:.NET, JavaScript, C++ leicht Akzeptanzkriterien Units viele CodedUI, Selenium MS-Test, Nunit, XUnit
Zusammenfassung Identifikation Feedback, Exploratives Testen Statische Codeanalyse Code-Clone Analyse Vermeidung Crossfunktionale Teams klare Anforderungen (Akzeptanzkriterien) Codeanalyse Sicherstellung Automatisierung
Wie können wir Ihnen helfen? Wir arbeiten gemeinsam mit Ihnen zusammen bei der Einführung von Visual Studio 2012 und TFS 2012 (Konzeptionierung, Bereitstellung, Customizing und weiterführende Konfigurationen) der Einführung von Testwerkzeugen und Testkonzepten unter Verwendung von Visual Studio 2012 und Test Manager (Unit-Testing, Coded-UI, Manuall Testing, Build-Test-Integration) Kontakt: http://techtalk.ch/agile-tools/alm-tfs-coaching
Ausblick Visual Studio 2012 Update 2 Logo Partner
Ausblick Visual Studio 2012 Update 2 Web based Test Case Management Code Map Debugger Integration and Responsiveness Improvements TDD for Windows Phone Unit Tests Test Explorer group tests by Class Web based version control Explore and Compare Send work items in email Email work items from backlogs Web version control Improvements New Team Explorer Connection dialog display multiple servers, TPCs and projects Advanced SharePoint 2010 Load Testing Team Foundation Server Work Item Tagging Extended cross browser support in Coded UI Testing Microsoft SharePoint 2013 support in Coded UI Testing Test Explorer test details improvements for Coded UI Tests Improvements in Windows Store Applications Unit Testing Test Explorer test playlists Symbol Loading improvements for IntelliTrace and Profiler While not technically part of Update 2: Git as version control on Team Foundation Service Fakes now available in Visual Studio Premium Coded user interface testing support for Internet Explorer 10 on Windows 7 Visual Studio HTML and JavaScript profiler Enable adding attachments to test outcomes in web based test case management Enable pausing and resuming test execution in web based test case management The ability to clone test cases in Microsoft Test Manager Inline editing of text of test steps and results in the test execution of the browser based test management HTML Client and SharePoint support for LightSwitch SharePoint 2013 and SharePoint User Profile diagnostics support with IntelliTrace Customize columns in the Team Foundation Kanban Board Servicing in High Availability SQL Environments http://blogs.msdn.com/b/visualstudioalm/archive/2013/03/04/march-ctp-of-visual-studio-update-2.aspx
VS2012.2 - Web based Test Case Management
VS2012.2 GIT Support (Service)
Meister-Tools Kapitel 3/3 Logo Partner
Mission-critical scale and complexity IntelliTrace Anywhere Web Performance Testing Load Testing Ultimate Architecture Explorer, Progressive Reveal, and Standard Graphs UML 2.0 Compliant Diagrams (Activity, Use Case, Sequence, Class, Component) Layer Diagram and Dependency Validation Microsoft Expression Studio 4 Ultimate Premium Quality enabled team development Code Metrics Code Coverage Coded UI Testing Code Clone Code Review Task Suspend/Resume Microsoft Expression Studio 4 Web Professional Test Professional Continuous quality enablement Test Case Management Manual Testing and Fast-Forward Exploratory Testing Lab Management PowerPoint Storyboarding Backlog Management Sprint Planning Feedback Manager Professional Development productivity everywhere Windows Desktop and Phone Apps Windows 8 Metro Style Apps Web and Cloud Websites and Services Office and SharePoint Development Blend for Visual Studio LightSwitch Extensible Testing Framework Static Code Analysis Advanced Profiling Refactoring Graphics Debugging Third-Party Extensibility Read-Only Diagrams Team Explorer Team Foundation Server Integrated teams continuous value delivery Project Management Work Item Tracking SCM Reporting Build Services PreEmptive Analytics Agile Task Boards System Center Integration
Was braucht s für Stufe 2? $$ Stufe 2 Agile Entwicklung und Qualitätssteigerung Statische Codeanalyse Testfunktionen mit Codecoverage Aufbau von Virtuellen Testumgebungen Devtools Die gezeigten Beispiele setzten folgende Lizenzen voraus Visual Studio Premium w/msdn Visual Studio Test Pro w/msdn Investitionen Für den aufgezeigten Produktivitätsgewinn braucht s: Bsp.: 10 Developer, 5 Tester ca. 440 CHF pro Developer/Monat* ca. 180 CHF pro Tester* * unverbindliches Preisbeispiel
Softwarebeschaffung/-Compliance Softwarebeschaffung Zahlreiche Lizenzprogramme und Lizenzierungsformen Je nach Anforderungen und Rahmenbedingungen des Unternehmens Lizenzberatung Lassen Sie sich durch den Fachhändler beraten! Beste Lösung für Sie für den günstigsten Preis und Sicherstellung der korrekten Lizenzierung http://www.microsoft.com/de-ch/visualstudio/buy
Ihre MSDN Vorteile Software Assurance für Visual Studio Immer die neuesten Werkzeuge und Technologien verwenden können Immer korrekt, legal und günstig lizenziert bleiben Fast alle Microsoft Produkte für Test- und Entwicklungszwecke Team Foundation Server 2012 Alle gängigen Windows-Betriebssysteme, z.b. Windows 8, Windows Server 2012 SQL Server (und alle weiteren Server ab Premium) Office, Visio und Project (ab Premium) Expression Studio (ab Premium) Azure-Serverzeit für Cloud Computing Downgrade-Rechte für ältere Versionen von Visual Studio Profi-Support & Trainingsinhalte msdn
Sensei-Tipp MSDN: Schon ab einer Lizenz mehr Leistung für weniger Geld!
Sparen Sie bis zu 30%! Premium Upgrade Gültig für Kunden von Visual Studio Professional mit MSDN-Abonnement Bis zu 30 % sparen beim Upgrade auf Visual Studio Premium Weltweit gültig bis zum 30. Juni 2013 Über verschiedene Volumenlizenzprogramme erhältlich: Enterprise Agreement, EAP, Select Plus, Open Value und Open Value Subscription Kontaktieren Sie Ihren Software-/Handelspartner für Ihr individuelles Angebot (Stichwort: SA Step Up ) Professional Premium
Ihre Kontakte Für weitere Fragen stehen wir Ihnen jederzeit gerne zur Verfügung. Hansjörg Scherer Technical Solution Professional Developer Tools hansjoerg.scherer@microsoft.com Mobile: +41 (0)78 844 64 30 Corinna Sameli Solution Sales Specialist Developer Tools corinna.sameli@microsoft.com Mobile: +41 (0)78 844 60 24 Microsoft Schweiz Richtistrasse 3 CH-8304 Wallisellen Microsoft Schweiz Richtistrasse 3 CH-8304 Wallisellen
Viel Erfolg beim Erreichen der nächsten Stufe! Logo Partner