”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific...
Transcript of ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific...
![Page 1: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/1.jpg)
”Som att börja arbeta på ett nytt jobb”
Testautomatisera med Modell-baserad testning
SAST Q1
Christina Nordström Kristian Karl
![Page 2: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/2.jpg)
Christina Nordström
• Test sedan 1996
• Aldrig testautomatiserat
• Enhetschef Testenheten It-avdelningen PPM
• Tf chef It-avdelningen PPM (fr o m januari 2009)
![Page 3: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/3.jpg)
Kristian Karl
• Testautomatiserat sedan 1994
• Modell-baserad test sedan 2004
• Arbetar på Prolore[Specialiserat på Testautomatisering, Prestanda samt Utbildningar inom dessa områden]
![Page 4: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/4.jpg)
Agenda
• PPM• Projektet• Testautomatisering• Modell-baserad test (MBT)• MBT på PPM• Reflektioner• Framgångsfaktorer
![Page 5: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/5.jpg)
PPM
![Page 6: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/6.jpg)
PPM + FK = nästan sant
Pensionsmyndigheten
PPM 315 dagar kvar
![Page 7: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/7.jpg)
PPM idag
• Ca 220 anställda– 77 på it-avdelningen
– 11 på testenheten
• 6,1miljoner kunder– 560 000 pensionärer
• Fondvärde ca 300 miljarder kronor
• 500 miljoner rader i transaktionstabellen
![Page 8: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/8.jpg)
PPM enl Regleringsbrevet
PPMs uppgift är bl a
• Administrera och förvalta premiepensionssystemet
• Verka för ökad kunskap om premiepensionen
![Page 9: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/9.jpg)
Syftet med 2K
Externa aktörer
• Ge information om innehav på sitt premiepensionskonto på extern aktörs webbplats
• Möjliggöra fondbyten, på sitt premiepensionskonto, via en extern aktörs webbplats
• Skapa en säker lösning för att hantera stora mängder fondbyten som förvaltningsföretag gör för p-sparares räkning
![Page 10: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/10.jpg)
Tekniken i projektet
• Synkrona- samt asynkrona meddelanden
• Webservices (SOAP)
• Filöverföringar (batchkörningar)
• XML fram och tillbaka, hit och dit
![Page 11: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/11.jpg)
Syftet med 2K - IT-projektet
Utveckla och produktionssätta tekniskt gränssnitt och infrastruktur som gör detta möjligt!
![Page 12: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/12.jpg)
Projektets förutsättningar
• Budget IT - 25,8 miljoner kronor• Ca 28 000 mantimmar (blir 35 000)• Ca 20 konsulter och 10 anställda• Scrumprojekt!!! (4 team)
![Page 13: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/13.jpg)
Varför testautomatisera?
• Testa varje gång det har skett en förändring!
• Hitta fel så snabbt som möjligt
• Bli lika agila som utveckling (!?)
Naturligtvis finns det tester som inte kommer att automatiseras.
![Page 14: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/14.jpg)
Tidigare försök...
• Försök har gjorts
• Underskattat insatsen – inte avsatt så mycket tid och resurser som verkligen krävs
• Verktygsinriktat
![Page 15: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/15.jpg)
Varför gick det bättre nu?
• Testautomatisering är inget verktyg
• Det är en process
• Verktyg, metoder och personer är lika viktiga
![Page 16: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/16.jpg)
Modell-baserad testning
![Page 17: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/17.jpg)
Wikipedia
Vad är MBT?
Test case generation by:
• theorem proving
• constraint logic programming
• model checking
• symbolic execution
• using an event-flow model
• using an Markov chains model
![Page 18: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/18.jpg)
Varför MBT?
• Modeller är enklare än de system som de avbildar, därmed enklare att förstå
• Visuella!
• Enklare att designa tester
• Lyfter bort logiken från skripten
• Lättare att underhålla
![Page 19: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/19.jpg)
MBT Crash course - Process
![Page 20: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/20.jpg)
MBT Crash course - Process
![Page 21: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/21.jpg)
MBT Crash course - Design
Avancerad
Standard
![Page 22: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/22.jpg)
MBT Crash course - Design
![Page 23: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/23.jpg)
MBT Crash course - Design
![Page 24: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/24.jpg)
MBT Crash course - Design
![Page 25: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/25.jpg)
MBT Crash course - Process
![Page 26: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/26.jpg)
MBT Crash course - Koda
'@Description Implements the Edge 'e_Scientific'Public Function e_Scientific()
Window("Calculator").WinMenu("Menu").Select "View;Scientific"
End Function
Exempel på funktion e_Scientific implementerad i QTP
![Page 27: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/27.jpg)
MBT Crash course - Process
![Page 28: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/28.jpg)
MBT Crash course - Exekvering
![Page 29: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/29.jpg)
Generering av testfallssekvenser
MBT Crash course - Exekvering
Generering Slumpat
(Fyllegång) Optimerat
Stopkriteria Samtliga övergångar Tid Längd Specifikt tillstånd Specifikt övergång
![Page 30: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/30.jpg)
Offline vs. Online
MBT Crash course - Exekvering
Offline (statisk)
Testsekvensen genereras före testet.
• Samma sekvens varje test
• Lätta att implementera
Online (Dynamisk)
Testsekvensen genereras vid varje test
• Unik sekvens för varje test
• Skapar bättre testtäckning
![Page 31: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/31.jpg)
e_Initializev_Stopped_stde_Startv_Running_stde_Scientificv_Running_scie_Stopv_Stopped_scie_Startv_Running_sci
Testfallssekvens
MBT Crash course - Exekvering
![Page 32: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/32.jpg)
MBT på PPM
Design av tillståndsmodeller
• Med hjälp av krav och verksamhetskunskap ritas en tillståndsgraf i yEd (editor)
• Kraven noteras i modellen (för spårbarhet och testrapportering)
1(4)
![Page 33: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/33.jpg)
MBT på PPM
Gemensam granskning av modellerna
• Innan man börjar koda, så granskas modellen.
2(4)
![Page 34: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/34.jpg)
MBT på PPM
Implementering av kod
• Klient byggd i java testas mha QTP
• Tester mot webben tillverkas i Selenium
• Mocka bort beroenden!!!
3(4)
![Page 35: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/35.jpg)
MBT på PPM
Leverans av testerna till Integrationsteamet
• När testerna förväntas fungera i den integrerade testmiljön, så levereras dom
• Testerna anpassas för att köras integrerat, dvs med beroenden av andra system
4(4)
![Page 36: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/36.jpg)
MBT på PPM
En sprintEn sprint
CVS
Utv. / Test
Utv. / Test
Utv. / Test
Utv. / Test
Utv.
Tid
![Page 37: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/37.jpg)
MBT på PPM
Nattliga byggen
• Körs varje natt
• Testar allt som är incheckat
• Testerna går i en integrerad miljö (omockad)
![Page 38: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/38.jpg)
Reflektioner från omgivningen
• Nattliga byggen exponerar fel tidigt. Detta kan leda till frustration, då man kan tycka att: ”Ingenting fungerar!”
• Överflöd av tester. Vadå 238.000 testfall?
• Begreppet 'Planerade testfall' existerar inte
• Test och utveckling har fått en ny relation
• Mätetal! Hur redovisar man resultat på ett vettigt sätt?
![Page 39: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/39.jpg)
Resultat
• 69 felrapporter, på 8 månader, på 10 testare
• Om vi hade skrivit 1.000 felrapporter, och om varje felrapport kostat 2 timmar?
• Många fel löstes enkelt, utan att behöva skriva felrapporter
• Icke-experter designar tester
• Varje natt testas allt:► Enhetstester► Funktionella API-tester► GUI-tester► Prestandatester
![Page 40: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/40.jpg)
Framgångsfaktorer
• En duktig Scrum master
• Experthjälp
• Nyfikna, öppna, intresserade och "villiga" testare
• MBT - Modellerna
• Mockade (stubbade) testmiljöer
• Vid sprintplanering: 1 timme utv = 1 timme test
• Fungerande nattliga byggen och deploy
![Page 41: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/41.jpg)
Verktygen
http://mbt.tigris.org
http://www.yworks.com
Model-Based Testing
http://www.geocities.com/model_based_testing/
http://www.goldpractices.com/practices/mbt/index.php
http://en.wikipedia.org/wiki/Model-based_testing
Resurser
![Page 42: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/42.jpg)
Litteratur
Model-Based Software Testing and Analysis with C#by Jonathan Jacky, Margus Veanes, Colin Campbell, Wolfram Schulte 2008
Practical Model-Based Testing: A Tools Approachby Mark Utting and Bruno Legeard, Morgan-Kaufmann 2006
Video
Model-Based Testing: Black or White? - Google Talk (Utting)
http://video.google.com/videoplay?docid=5521890509476590796&q=mark+utting&total=545&start=0&num=10&so=0&type=search&plindex=0
Litteratur och annat
![Page 43: ”Som att börja arbeta på ett nytt jobb” · 2009. 2. 21. · Exempel på funktion e_Scientific implementerad i QTP. MBT Crash course - Process. ... Stopkriteria Samtliga övergångar](https://reader034.fdocuments.net/reader034/viewer/2022052102/603c7b83ea23bc76ae3c0d48/html5/thumbnails/43.jpg)
Frågor