ALM Live: Testfokus – bättre mjukvarukvalitét med Visual Studio 2008 Team System Magnus Juvas Qwise
Om oss: Qwise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System. Vi erbjuder hjälp med installation, anpassning, utökning, utbildning och rådgivning. www.qwise.se
Ämnet för dagen Nästan 90 % av IT-investeringar lönar sig inte Stockholm, 27 oktober 88 % tycker att IT-investeringar inte lönar sig och närmare hälften av alla IT-projekt lyckas inte hålla budget eller klara tidsplanen. Samtidigt har många företag svårt att se kopplingen mellan gjord investering och lönsamheten. Det visar en ny undersökning från KPMG och Information Age Magazine, där IT-chefer, Informationschefer och annan ledning har intervjuats om företags IT-investeringar. [Källa: www.kmpg.se]
Den gamla hederliga projekttriangeln Bra Snabbt Billigt
programvara snabbare och billigare? Ämnet för dagen Hur bygger jag bättre programvara snabbare och billigare?
Vilka problem finns idag? Vi är alldeles för dåliga på kravhantering!
Kravhantering – ur beställarperspektiv [Bild från www.volvocars.com]
Kravhantering
Vilka problem finns idag? Vi jobbar fortfarande inte metodiskt!
Det är delvis en kreativ process, men... // Hello1.cs public class Hello1 { public static void Main() System.Console.WriteLine("Hello,World!"); }
Visst behövs struktur!
Vilka problem finns idag? Det är ofta för dålig kvalitet i det som levereras!
En klassisk bild Relativ kostnad att fixa buggar 30 25 20 15 10 5 Krav Utveckling Integration Beta Test Post-Release
Vilka problem finns idag? Vi använder oss inte av de hjälpmedel som finns.
Använd moderna verktyg!
Team Foundation Server Vad är Team System? Kravställare Programmerare Testare Arkitekt Projektledare Team Foundation Server Databasutvecklare
Hur kan Team System hjälpa oss? Metod Team System
Olika typer av tester Typ av test Beskrivning Enhetstest Test av enskild komponent i mjukvaran för att säkerställa att dess beteende är korrekt. Integrationstest Test av flera komponenter tillsammans för att säkerställa att systemet fungerar. Systemtest Test av ett komplett system för att säkerställa att det uppfyller kraven. Acceptanstest Validering av produkten i samband med överlämning till slutkund/användare.
Enhetstester
Enhetstester Automatiska Repeterbara Tillgängliga Oberoende Kontrollerar sitt eget resultat Repeterbara Går att köra om och om igen, av olika personer Tillgängliga Följa med koden de testar så att det är lätt att köra dem Oberoende Inte ha externa beroenden
Varför enhetstesta? Kvalitet Kedjan är inte starkare... Skulle du vilja köra en bil där inte delarna testats? Stabilitet Enkla regressionstester. Mod! Våga göra ändringar! Förutsägbarhet Kodtäckningsanalys Statistik
Stöd för enhetstester i Team System Attribut-drivet ramverk för enhetstester Automatiserad verifiering med Assert-klasserna: Assert StringAssert CollectionAssert Och attributet ExpectedException Kör enhetstester från koden, via TestView, via kommandoraden Inbyggt stöd för kodtäckningsanalys. Datadrivna tester. Generera tester från kod.
Demo – enhetstester
Enhetstestning av databasobjekt Finns numera i VSTS Team Edition for Developers Säkerställ att databasändringar inte förstör befintlig kod Automatisera tester Skriv tester i T-SQL, VB och C# Hänger ihop med övriga enhetstester i Team System Använd färdiga conditions, RAISEERROR eller skriv egna
Demo – databasenhetstester
...men det funkade på min dator
Integrationstest/röktest Testa att systemet är körbart innan vi lämnar över till systemtest. Testa de viktigaste funktionella flödena. Kombinera med lättare lasttester. Ingen Mockning. Automatisera! En Best Practice som är prisvärd!
Webbtestverktygen i Team System Finns i VSTS Team Edition for Software Testers Snyggt integrerad i Visual Studio Två typer av tester: Inspelade tester Kodade tester Datadrivna tester Stödjer även AJAX
Demo - webbtester
Lasttester med hjälp av Team System Återanvänd dina enhetstester och webbtester Köra i liten skala, eller STOR Skapa lastmönster Sätt upp acceptanskriterier och tröskelvärden Samla in räknare från servrarna Analysera resultat direkt, eller över tid Integrera i dina byggen
Demo - Lasttester
Det behövs en puls i alla projekt!
Fördelar med att ha puls Tätt återkommande och automatiserade byggen har många fördelar: Fel upptäcks direkt = mindre debugging Integrationsproblem upptäcks direkt Okompatibel eller felaktigt kod upptäcks tidigt Ändringar som orsakar konflikt upptäcks tidigt Direkt enhetstestning av alla ändringar Körbara versioner av systemet finns hela tiden tillgängligt Det fostrar ett inkrementellt arbetssätt
Med en puls i projektet kan du följa upp
Demo – Köra tester i byggen
Uppföljning Följ upp ditt arbete Med rätt verktyg behöver det inte vara speciellt jobbigt heller
Ordning och reda Sharepoint TFS Requirement Testfall Task Task Krav-dokument Testfalls-beskrivning TFS Requirement Logga in Testfall Skriv krav Logga in Task Skriv krav Logga in Task Bygg Logga in Test Task Kör testfall Logga in
Ordning och reda – light! TFS Requirement Logga in Task Skriv krav Logga in Task Bygg Logga in Task Kör testfall Logga in
Vi kan lära oss av vår historia
Mäta är roligt!
Demo – Uppföljning
Team System Till sist...
Uppdateringar Att ladda ner Exempel på vad du får VS 2008 TFS Service Pack 1 Windowa Server 2008 support SQL Server 2008 support Bättre prestanda VSTS Web Access 2008 SP1 Power Tool WIWA Bättre sökfunktion VSTS 2008 Database Edition Power Tools SQL Static Code Analysis i byggen Förbättrad datagenerering Nya Test Conditions VSTS 2008 TFS Power Tools – July 2008 Release Alerts-verktyg TFS SCOM Management Pack VSTS 2008 TFS Power Tools – kommande release Members-funktionalitet File Explorer extension PowerShell
Dagens boktips
Och vad händer framöver? Available now: Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview (CTP) Visual Studio 2010 Camano Virtual Servers Stöd för WPF, WinForms Webbaccess-gränssnittet integrerat i Sharepoint
Och glöm inte... Se till att det finns ett puls i utvecklingsarbetet Automatisera integrationstester/röktester Jobba enligt någon process Börja med enhetstester, om än i liten skala Håll ordning på krav och testfall Använd moderna verktyg!
Tack för mig! magnus.juvas@qwise.se