Vad är egentligen Continuous och DevOps? Men framför allt, hur uppnår man kvalité och vad gör man som testare i ett sånt team?
Hur arbetar man egentligen med test om man släpper kod flera gånger om dagen?
Hur QA säkrar man all automation som krävs i och med devOps?
Create your own testing strategy to move towards Continuous Delivery.
Testare i continuousvärlden - vad gör jag om dagarna.
1. Testare i Continuous världen
Vad gör jag egentligen på dagarna?
ADD
Amanda Johansson & Jan Sahlström
2. Agenda
• Välkomna!
• Introduktion till CI / CD
• Dagligt arbete under CI / CD
• Introduktion till DevOps
• Dagligt arbete under DevOps
• Avslutning | Frågor
10. CI / CD
Continuous
Utveckling Test
Integration Delivery Deploy
Koden kan alltid
skeppas
Hela kedjan är
automatiserad
11. Testning inom CI / CD
• Kvalitetsslussar | Quality Gates
• Kodgranskning
• Enhets och integrationstest vid incheckning
• Feature Toggle
• Servicevirtualisering
• Automatiserade acceptanstester
12. A #1
Master #01 Master #02Master #00
Testa djupt
Branching – När ska man testa?
13. A #1
Master #01 Master #02Master #00
B #1
Master #03
Testa djupt
Testa djupt
Tester som gjorts i A #1 kanske inte
längre gäller efter B #1
Om man inte kör testerna
förrän i Master kanske man
introducerar defekter
Branching – När ska man testa?
14. A #1
Master #01 Master #02Master #00
B #1
Master #03
1. Testa djupt
2. Testa grunt
i.e. Smoke Test
Anpassat tillvägagångssätt
Branching – När ska man testa?
15. A #1
Master #01 Master #02Master #00
B #1
Master #03
Master should always be deployable
Jez Humble, DevOps Researchand AssessmentLLC
Master should never contain known errors
Jakob Alander, Spotify
Branching – När ska man testa?
16. Testa tillsammans med någon annan – testare eller utvecklare
Samla alla framför en stor monitor och kör en mob-session
Image source: Taipei Times Dec 24, 2014. AFP / KCNA via KNS
Par- / Mobtestning
26. Wikipedia
“Ett begrepp som refererar till en praxis som betonar samarbetet och
kommunikationen mellan utvecklare och drifttekniker med automatisering
av både mjukvaruleveranser och förändringar av infrastruktur. Den har
som målsättning att skapa en kultur och miljö där bygga, testa och att
släppa mjukvara kan ske snabbt, ofta och mer tillförlitligt.”
DevOps
DevOps är en kultur, inte (enbart) en roll
27. • Det finns ingen entydig definition
• Framtaget av utvecklare (Dev) och drifttekniker(Ops)
• ”Allt kan automatiseras!”
Finns det några problem med DevOps?
DevOps
30. Alla har en testmiljö.
Några är så lyckligt lottade att de har en annan miljö för sin
produktionskod.
Dev PC PreProd PROD
LOCAL TEST QA PROD
Miljöer
LOCAL TEST STAGING PRODUCTION
Unit Test Smoke Test System Test Load Test(!)
Integration Test RST UAT
Acceptance Test Regression Test Performance Test
4 Eye Principle System Test
Frekvent Starkt kontrolleratKontrollerat
MONITORINGMONITORINGMONITORING
31. Testning under utvecklingen | Automatisering
• Enhetstest, integrationstest, E2E
• Ickefunktionella som tillgänglighet, säkerhet och prestanda
• Testa plattformen, t.ex. verifiera att en deploy har gått som
förväntat på en viss miljö
32. • Ett program som analyserar kod och söker efter potentiella fel
• Börja enkelt och utöka vartefter
Linting
33. Enhetstest / Integrationstest
• Enhetstestermotverkar primärt att defekter kommer in i systemet
• Kör på lokala maskiner och vid commit
• Kodtäckning – %?
• Kodtäckning – Skall inte sjunka
• Skall gå snabbt att köra, om inte - parallellisera
Build Test Set 01
Test Set 02
Test Set 03
Build Test Set 01 Test Set 02 Test Set 03
34. Testdata – Sätta upp och riva ner
Startläge
Sätt upp
Exekvera
Riv ner
Åter till startläget
Testdata
35. Monitorera byggen
• Statusen på byggena ska vara allas högsta prioritet
• Ska alltid vara gröna - undvik “the broken window syndrome”
• Visa på en dedikerad monitor som hela teamet ser
• Allt är grönt != inga defekter…
36. Testning under utvecklingen | Manuellt
• Utforskande
• Sök efter det okända och icke förväntade, agera elakt mot
systemet, sök längs gränserna osv
• Resultatet hanteras bäst genom diskussionså det optimala är
par-testing
• Test Fest – Samla olika roller som får delta i en gemensam
testsession
37. • Granska all kod, även test
• Kör koden, och testerna, under granskningen
• Testare kan delta i kodgranskning även om man inte kan koda
Kodgranskning
38. Verifieringar under produktionssättning
• Monitorering & Loggning
• A/B testning
• Beta testning
• Canarying / Canary Release – Släpp till en del av infrastrukturen
åt gången
• Staged Rollout – Släpp till en användargrupp åt gången
• Dogfooding – Använda sin egen mjukvara
• Dark Launching – Gömt system, kör parallellt med produktion. jmf
AWS Green / Blue
43. Kul samarbete med plattforms teamet
De vill ha en “standard” för framtida team
Vi vill ha en välfungerande roliga infrastruktur att arbeta
med
Gemensamt mål!
45. • e2e testerna, 2ggr timmen, 8 min
• Gatling testerna, varje natt, 1h
• Vid varje incheckning körs enhetstester,
integrationstester och några e2e tester som rör
just den micro tjänsten, 8 min
Automattester
49. Var som en lax - Simma mot källan
Se till att kvalitet finns med hela vägen från idé till produkt
Specialisering; säkerhetstest, prestandatest, back end test, UX
test, script-automatisering, utveckling m.m.
Förgreningar; Scrum Master, QA Coach, Kravanalys
Möjliga förändringar i vardagen
50. • Administrativa Testaren | Koordinerar, slutför
• Tekniska Testaren | Verktyg och kod
• Analytiska Testaren | Modeller och optimala test
• Sociala Testaren | Bygger team med nödvändiga resurser
• Empatiska Testaren | Sympatiserar med användarna
• Användarexpert | Produktexperter
• Utvecklare | Enhetstester och testbarhet
Sju olika typer av testare
James Bach
53. Testare i Continuous världen
Vad gör jag egentligen på dagarna?
ADD
Amanda Johansson & Jan Sahlström
54. Referenser
• https://en.wikipedia.org/wiki/Continuous_int
egration
• https://en.wikipedia.org/wiki/Continuous_deli
very
• https://en.wikipedia.org/wiki/Continuous_de
ployment
• https://en.wikipedia.org/wiki/Service_virtuali
zation
• Jakob Alander, Spotify
• Henrik Andersson,BetssonTechnologies
• Sigurdur Birgisson,Avensia
• Richard Bradshaw, Ministry of Test
• Angie Jones,Twitter
• How Google Tests Software by James A.
Whittaker, Jason Arbon, Jeff Carollo
• Continuous Delivery: Reliable Software
Releases ThroughBuild, Test,and
DeploymentAutomation by Jez Humble
• A Practical Guide to Testing in DevOps by
Katrina Clokie
• Blog post "Continuous Testing in
DevOps…“by Dan Ashby
• Seven Kinds of Testers by James Bach
(satisfice.com/blog/archives/893)