Microsoft Visual Studio Team System 2008 Test Edition
Dagens agenda
Inledning
Genomgång av gränssnittet för VSTEST
Test och testverktyg
Webtest – genomgång
MSVSTS2008TE
Databaser
Omvärlden
Bygga lasttestscenarion och monitorering
Belastningstester
Demo av lasttest
Hur går det till
Analys av testresultat
Faror
Genomgång av erfarenheter från tre praktikfall
Tips och trix
Summering och frågor
Microsoft Visual Studio Team System 2008 Test Edition
Handuppräckningsövning • • • • • • • •
Hur många jobbar med test Hur många är utvecklare Hur många är chefer och ledare Hur många har arbetat med VS Hur många har arbetat med TFS Microsoft Visual Studio Team System 2008 Test Edition Hur många anser sig jobba agilt Hur många utför belastningstester
1000 / 200 130 / 65 19/17
Vi levererar det stora företagets ITkompetens med det lilla företagets själ och den enskilde konsultens engagemang.
Know IT:s verksamhet på en bild
Läkemedel Offentlig sektor
Business Intelligence
Industri
Telecom
Integration
CMS
Strategisk rådgivning
Utredare/ upphandlare
Bank/Finan s Försäkring
Metodstöd/ mentor
Systemutveckling
Projektledare
Arkitekt/ designer
r
Test o kvalitet
Förvaltning
Utvecklare/ DBA etc.
Testare/ testledare
Microsoft Visual Studio Team System 2008 Test Edition
Om testning…
Test styrs av standarder på projektledningens uppdrag Exempel på standardprocesser BS 7925-2 (7925-1) IEEE 1008 T-Map/TPI MSF GDF IEEE 1012 PTM IEEE 703 RUP DSDM XP Dessutom finns de som indirekt påverkar ISO 14000 ISO 9000-3 ISO 15026 ISO 12207 ISO 9001 IEEE 829 IEEE 610.12
Testorganisationens motiv
Kontroll på projektet/produkten Riskeliminering Smidigare utvecklingsarbete
Normalt brukar test stå för mellan 30-80% av projektbudgeten.
Dyrt?
Rättningskostnadens exponentiella fördelning exempel
Rätta upp ett krav vid kravfångsten
1kr
Rätta upp ett krav vid kravtecknandet
10kr
Rätta ett fel i enhetstest/komponenttest/programtest/modulte st
100kr
Rätta ett fel i systemtest
1000kr
Rätta ett fel i systemintegrationstest
10000kr
Rätta ett fel i produktion
100000kr
Testorganisationen Uppgift • Bedöma produktens kvalitet och råda projektledningen i frågor om denna • Verifiera kravuppfyllnad • Verifiera (genom att testa) att produkten är byggd enligt specifikationerna • Visa att produkten fungerar enligt sin design • Hitta och dokumentera buggar
Produkt Rapporter av olika slag: Testrapporter Avvikelserapporter Trendrapporter Statusrapporter
Microsoft Visual Studio Team System 2008 Test Edition
Testverktyg…
Vem har nytta av testverktyg?
• Organisationsledningen • Projektledningen • Testledaren • Testaren • ”Kodarna” • Slutanvändarna
∩
∞
Testmognad Optimerad
Kontrollerad
Definierad
Repeterbar
Projektspecifik
Ständig förbättring
Mätning, Styrning, Uppföljning av metodiken
Välbeprövad, reviderbar metodik
Företagsanpassad, erfarenhetsbaserad metodik
Ad hoc, ”Slumpvis”, personberoende testning
Typer av testverktyg
•
Kravhanteringsverktyg
•
Testadministrativa verktyg
•
Testautomatiseringsverktyg
•
Avvikelse-/ärendehanteringsverktyg Arial 18 pt Belastningstestverktyg
• •
Kodgranskningsverktyg (statiska/dynamiska)
•
Analys- och dokumentationshjälpmedel
•
Övervakningsverktyg för miljöer och applikationer
•
Notepad / papper&penna
ρ
Microsoft Visual Studio Team System 2008 Test Edition
Belastningstester med Visual Studio 2008 - Praktikfall
Visual Studio genom applikationens livscykel
Belastningstester med Visual Studio 2008 – Verktygsstöd genom applikationens livscykel
Krav
Design
Implementering
Driftsättning
Test
Spårbarhet Utvecklarnära tester System tester Testledning och kontroll Mätetal och beslutsunderlag Felhantering Versionshantering
•Säkerställa att design, implementering och test utgår från samma underlag
•Säkerställa att designen är korrekt och effektivt implementerad
•Säkerställa att kraven är implementerade enligt specifikationerna
•Planera och följa upp design, implementering och exekvering av tester
•Faktabaserad uppföljning och rapportering
•Rapportera och åtgärda upptäckta fel
•Kontroll av kod, testfall, testresultat och testdata
Produktion
Belastningstester med Visual Studio 2008 - Verktygsstöd genom applikationens livscykel
Krav Externt system Work Items
Design Architecture edition
Developers edition Database edition
Test Team Foundation Server
Test edition
Implementering
Spårbarhet • Kraven kopplas till Work Items (ärenden el. aktiviteter) som kan spåras genom alla utvecklingsfaser • Man kan mäta testtäckning av krav • Integrationen i Team Foundation Server säkerställer att alla aktiviteter utgår från samma underlag
Belastningstester med Visual Studio 2008 - Verktygsstöd genom applikationens livscykel
• • • •
Enhetstester Profilering Kod analys Databas test
• • • •
Web test Lasttest Manuell test Generisk test
Incheckningsregler som bl.a. kan kontrollera graden av kodtäckning
Team Edition for Software Developers
Team Edition for Software Testers
Utvecklarnära tester
Systemtester
• Integrerat stöd i utvecklingsverktyget • Speciellt stöd för test av databaser och framtagning av testdata • Incheckningsregler kontrollerar att alla obligatoriska tester har utförts
• Stöd för att utveckla, organisera och exekvera tester • Automatiserade tester av användargränsnitt finns ej
Belastningstester med Visual Studio 2008 - Verktygsstöd genom applikationens livscykel
Testledning och kontroll • Verktyg för att planera och tilldela arbetsuppgifter • Möjlighet att följa upp status för varje aktivitet inklusive beroende aktiviteter inom andra discipliner • Stöd för att i tid få reda på att planen inte håller och att man därför måste vidta åtgärder
Belastningstester med Visual Studio 2008 - Verktygsstöd genom applikationens livscykel
Mätetal och beslutsunderlag • Skapar faktabaserat beslutsunderlag angående systemets kvalitet • Ger stöd för att kunna ta beslut om när systemets kvalitet är tillräckligt hög för att sätta i produktion • Kan ge indikationer på var i projektet som kvalitetshöjande åtgärder måste sättas in
JD1
När? - W-modellen (testnivåer)
Kravspecifikation
Acceptanstest
Systemspecifikation
Systemtest
Designspecifikation Kodning
Integrationstest Komponenttest
v
Bild 21 JD1
V-modellen används ofta även inom iterativa metoder, för att visa nivåmappningen snarare än att visa något kronologiskt flöde Jörgen Damberg; 2006-10-03
Microsoft Visual Studio Team System 2008 Test Edition
Visual Studio på testverktygsmarknaden…
∑
Aktörer på testsvitsmarknaden
• HP (Mercury Interactives) • Borland (Segue) • IBM Rational • Compuware
• RadView
• Vermont
• Envive • Microsoft • Konsultbolag1 • FitNesse
• Selenium
• Quest • Telelogic • Solstice • Parasoft
• Empirix
• RSW • Freeware
• Tillverkare av • Keynote utvecklingsverkty • Cyrano g/lösningar • Testquest• Hostade tjänster • QES
Microsoft Visual Studio Team System 2008 Test Edition
SDLC Microsoft IBM Borland Compuware
Sviter av integrerade verktyg •
Sparar data i databaser
•
Kan användas separat eller integreras
•
Rapporter kan baseras på data från flera Ljusgrå delverktyg (t.ex. hur många krav har defekter kopplade till sig?)
•
Enterprise-lösningar (licensservrar)
•
Drar nytta av versionshantering, iterationsplanering, stubbar o.s.v.
•
Öppna API:er
•
Anpassningsbart
µ
Microsoft Visual Studio Team System 2008 Test Edition
Var passar Visual Studio? •
Ur ett testperspektiv innehåller VSTS följande ben:
•
Bugghantering Testadministrativt verktyg Testautomatisering Manuella tester Belastningstester Kodtäckning Kodanalys
Gränssnitt
Webb Tung klient
Typer av testverktyg •
Kravhanteringsverktyg
•
Testadministrativa verktyg
•
Testautomatiseringsverktyg
•
Avvikelse-/ärendehanteringsverktyg
•
Arial 18 Belastningstestverktyg
•
Kodgranskningsverktyg (statiska/dynamiska)
•
Analys- och dokumentationshjälpmedel
•
Övervakningsverktyg för miljöer och applikationer
•
Notepad / papper&penna
pt
Microsoft Visual Studio Team System 2008 Test Edition
Belastningstester
Microsoft Visual Studio Team System 2008 Test Edition
Belastningstester - karaktäristika
Kan ske på
Enhetstestnivå Integrationstestnivå Systemtestnivå Systemintegrationstestnivå
Kommunikationsemulering på protokollnivå Snudd på omöjligt/dyrt utan verktyg Komplexa beroenden
Microsoft Visual Studio Team System 2008 Test Edition
Olika typer av belastningstester • • • • • • • • •
Belastningstest - Hur beter sig systemet under last? Stresstest - Vad händer med systemet när det blir överlastat? Prestandatest - Vilka svarstider har vi vid en viss last? Långtidstest - Hur beter sig systemet efter några dagar med normal last? (resursläckage) Volymtest - Hur många användare orkar systemet med innan det blir överlastat? Konfigureringstest - Vilken av två olika konfigureringar ger bäst svarstider vid samma last? Optimeringstest - Man fintrimmar systemet under last. Flaskhalsanalys – Analys av root cause för prestandaproblem Samtidighetstest – Funktionellt test
O.s.v. Dessutom återfinns varianter under olika namn. En viss begreppsförvirring råder.
Microsoft Visual Studio Team System 2008 Test Edition
Generell uppdragsgång Uppdragsinitiering Instudering Testdesign Förberedelser Testimplementation Testutförande Resultatanalys Testrevision Rapport
Microsoft Visual Studio Team System 2008 Test Edition
Terminologi - Några viktiga begrepp: Användarscenario Lastscenario Parameterisering Korrelering Session Virtuell användare Tänketider/väntetider
Microsoft Visual Studio Team System 2008 Test Edition
Skillnader i utförande mellan olika testnivåer Enhetstester • Stubbar • Egenproducerat data • Eventuellt på samma maskin Integrationstester • Ev. stubbar • Ev. egenproducerat data Systemtester • Arbetar mot DB • Separat lastgenerator
Systemintegrationstester • Separat(a) lastgenerator(er) • Varsko noga… • Håll koll på bakgrundsbrus
Enkelt exempelsystem
Ext. källor
Microsoft Visual Studio Team System 2008 Test Edition
AD / LDAP PC-klient
LB Web-server
PDA / Mob. Gateway
Appl.-logik
Webbcache DB Klusterhanterare
SSL Web-klient
Pres.-serv.
DNS / WINS Nätverk
Loggar, debugging, feldesignade databaser, inställningar, dålig arkitektur, programmeringsmissar o.s.v.
Microsoft Visual Studio Team System 2008 Test Edition
Delmoment i lasttestsammanhang
Analys Förutsättningar
Jörgen Damberg
Lastgenerering Testkörning
Omständigheter
Mätetal/ monitorering
Bakgrundslast, datamängder, produktionsplanering, konfigurationshantering, parametrar/settings/inställningar, miljöutseende, nätverkskonfiguration, arkitektur, applikationsimplementation, prestandakrav, användningsfall, användarrättigheter o.s.v.
Microsoft Visual Studio Team System 2008 Test Edition
Lastgenerering
Distribution Var i nätverket Håll koll på lastgeneratorerna (footprint) Tänketider Parameterisering av data Korrelering av data Verifiering av svar Bra scenarion
Microsoft Visual Studio Team System 2008 Test Edition
Mätetal Avancerade tekniker Monitorera ingående HW/SW-komponenters nyttjande: • • CPU (…och processorkö) • • Redirector • • NIC • RAM-användning • I/O • Svarstider och överföringstider • Osv Gör detta samtidigt som man följer lastens progress (antal VU, transaktionstäthet o.s.v.
Paketanalys i nätverket SQL-optimering Osv
Microsoft Visual Studio Team System 2008 Test Edition
Förutsättningar och omständigheter Belastningstesters resultat beror på så många olika parametrar. Det finns inte några prestandakrav som inte måste analyseras och tolkas Ofta arbetar man i ett system under utveckling Testdata förbrukas ofta
Microsoft Visual Studio Team System 2008 Test Edition
Prestanda är en mycket viktig kvalitetsaspekt för upplevd kvalitet
Vanliga beaktanden vid belastningstester på systemtestnivå och över Definiera prestandamåttet Stäm av ofta så att vi gör rätt saker Håll koll på miljön och allt annat som kan påverka prestanda.
Måste utföras av kunnig personal för att få trovärdiga resultat!
Måste utföras med ett för ändamålet passande verktyg
Microsoft Visual Studio Team System 2008 Test Edition
Analys Tack vare stora datamängder och erfarenhet kan man ofta finna flaskhalsar och åtgärdsplaner. Tänk på att om man får bort en flaskhals är det inte säkert att de andra identifierade flaskhalsarna är de rätta längre.
Microsoft Visual Studio Team System 2008 Test Edition
Att tänka på… • • • • • • • • • •
Backa upp SUT innan testen Se upp för spill-laster till andra system När i veckan/månaden/specialtillfällen är lasten ovanligt tung? Parallella processer i systemen; batchar, backup, bakgrundsjobb osv Datamängdernas fördelning över tid – nya system jämfört med efter något år (arkivdata) Inloggninsparameterisering Nätverkskartor (dubbelkolla) Ta hjälp av expertkompetenser (DBA, Applikationsexperter, domänexperter, nätverkstekniker, IT-driften osv) Monitorera eventuellt även brandväggar/routrar och liknande Använd gärna en ”riktig” klient för att mäta upplevd svarstid, och eventuellt för att sprida lasten ytterligare
Microsoft Visual Studio Team System 2008 Test Edition
Prestandaoptimering av applikationer
1.– Karaktäristik Bygger på analyser av vad som är viktig funktionalitet i applikationssystemet 2. Genomförs med belastningstestverktyg (performance tuning) 3. Initieras vanligen tack vare upptäckta besvär efter driftsättning eller ta med sig:prestanda efter ett som ett resultat avViktigt funnaatt undermåliga belastningstest. Ingen kan potentiella kunna allt ensam! 4. Analys av datavolymers framtida storlek (analys av stora tabeller) är centralt 5. Testdata kan vara ett besvär att finna. 6. Samma test flera gånger under olika förutsättningar (inställningar i systemet). Dessa tester jämförs sedan. 7. Kräver hjälp av andra experter (middleware, DBA, nätverk o.s.v.) 8. Resulterar ofta i flera åtgärder. Hjälper ofta så att man slipper dålig respons från applikationssystemets slutanvändare.
Microsoft Visual Studio Team System 2008 Test Edition
Summering
∂
Framgångsfaktorer för effektiv kvalitetssäkring Analys
Design
Utveckling
Versions- och konfigurationshantering
Kontroll på testmiljöerna
Kontroll på förutsättningarna
Visuell kommunikation
Bra testdata
Driftsättning
Förvaltning
Dokumentera lagom
Ändringshantering
Samarbete mellan rollerna i projektet
Verksamhetsmedverkan
Enhetstester
Verktyg
Prioritering genom riskhantering
β Om testning var gratis... • • • • • • • • •
Testa Testa Testa Testa Testa Testa Testa Testa etc.
alla nya funktioner alla rättade buggar allt gammalt när något har ändrats när vi byter någon komponent eller ramverk alla nya versioner när vi patchar servrar och klienter när vi integrerar mot nya backendsystem varje morgon kl 05:01
Microsoft Visual Studio Team System 2008 Test Edition
Frågor?
Microsoft Visual Studio Team System 2008 Test Edition
Fika