2. Om meg
• Gründer og kvalitetsingeniør i Questigate.
• 26+ års arbeidserfaring med varierte roller innen Test
og QA – derav 10+ år med API-testing.
• Doktorgrad i Computer Science fra NTH/NTNU 1997.
• Trives med å dele erfaringer for å inspirere andre.
«Alltid på søken etter nye og innovative tilnærminger å
utføre test og QA på en smart og effektiv måte.»
Testautomatisering (CI/CT) - Efficient test
Testdesign (MBT, ML-støtte, ...) - Effective test
3. • Forretningsområder:
• Boligutvikling, boligforvaltning, medlem og bank (NO/SE)
• Systemportefølje
• 100+ systemer
• Team Digital Tjeneste Plattform
• Master Data Management (MDM)
• Dataeier og konsumenter
• Integrasjoner og tjenester sikrer best mulig datakvalitet
• Skal erstatte IBM Mainframe AS400
• Teknologi MDM
• MS Azure
• Hendelsesdrevet integrasjon med Azure ServiceBus
Datakvalitet
Integrasjon
Tjenestearkitektur
5. 1. Testrammeverk
Test
rammeverk
Grunnlag for
valg av
retning
Testobjekt
Testbehov
Organisering
Testmiljø/
Testdata
Teknologi
Prosess
Forretingsfokus
Systemfokus
Bruksomfang
Kritikalitet
Verdikjede
Portefølje
Avhengighet
Plattform
Integrasjon
Tjenester
Testtype
Testnivå
Endringstakt
Risiko
Datakvalitet
Stabilitet
Datakonsistens
Bruksområde
Bygg/deploy
Utvikling
Test
Roller/ansvar
Testmodenhet
6. Og resultat er ...
API Test-
automatisering Brukes tidlig og hyppig
Funksjonell test. Integrasjonstest, Reg.test, E2Etest
Integreres med utviklingsplattform
Uavhengig av testressurser
Sentral plattform med kritiske tjenester
Høy endringstakt i alle lag
Testobjekt
Rammebetingelser
Behov
7. 2. Testutvikling for gjenbruk
03
Standardisering
01
Testdata on demand
02
Gjenbruksbare
komponenter
04
Testscenario
toggling
8. Testdata-on-demand
• Grunnet mangel på konsistent testdata
Skaper nødvendig testdata ved behov
Rydde opp ved å slette testdata etter kjøring
Gevinster:
• Gjenbruke tester uten å avhenge av hard-kodet testdata
• Kjøre samme test i alle testmiljøene
• Sikre korrekt og varierte testdata
9. Gjenbrukbare komponenter
• En sekvens av teststeg som har et definert mål og har en
repeterende bruksmønster
• Opprette en personkunde/medlemskap
• Opprette et eierforhold til et boligselskap
Gevinster:
• Kan kjøres separat for kontinuerlig verifisering eller
• Inngår i en kombinasjon av flere tester for å sette opp testscenario eller
verifisere en verdikjede
• Eierskifte: i) opprette borettslag; ii) opprette leiligheter; iii) opprette personer som eier;
iv) opprette ny eier som har medlemskap
10. Standarisering
• Navnegivningstandard
• Navn på Testsuite, testcase, teststeg, skript, osv...
• Parameter- og variabelnavn
Gevinst:
• Enkelt å søke og gjenfinne for gjenbruk
• Selvforklarende
• Lesbarhet
11. Testscenario toggling
• Målet er at en testcase kan verifisere flere scenarier
• Parameter som styrer mulige forgreninger i en test-sekvens
Gevinst:
• Fleksibelt å teste ulike scenarier
• dfsdf
12. Testutvikling for gjenbruk
Mulig at testutvikling med gjenbruk medfører ekstra
kostnad men det vil kompenseres med:
✓Tidsbesparende for testutvikling
✓ Redusere sannsynlighet for feil i test
✓ Fokus på verifisering av aktuelle endringer
✓ Effektivt vedlikehold ved å endre kun på felles generiske tester
✓ Testdekning kan enkelt skaleres
13. 3. Kontinuerlig API test
Behov:
• Utvikler ønsker å kunne manuelt kjøre api-reg.tester for å verifisere endringer.
• Utvikler ønsker å kjøre alle relevante reg.testene ved bygg/merge/commit.
• Tester ønsker å kunne ha en "hygiene-status" på alle tjenestene i hvert
testmiljø.
14. Kontinuerlig test
Test Engine
Azure DevOps
Service.AgentListener
Developer
Azure repo
Azure repo
Azure repo
Test Tool
Tester
Azure repo
1a.Manuelt eller
trigges av bygg
3. Kjøre test
1b. Planlagt
kjøreplan
2. Utsjekk av
testkode
4. Rapportere
evt. feil
16. Utviklingsprosess tilpasset CI/CT
• Tidlig og iterativ test under utvikling
• Utvikle test i tett dialog med utvikler i utviklingsmiljø
• Overlate 85-90% ferdig test til utvikler
• Fullfør test når endringen er kommet til testmiljø
• Inkrementell utrulling av endring
• Uferdig implementasjon testes og rulles i test/prod – merket «Preview»
• Tidlig feedback fra konsumenter og fortløpende utrulling av utbedring
• Tester i ulike ferdiggrad blir brukt hyppig
• Definition of Done
• Kvalitetskrav til DevOps prosjekt: alle reg.test må pass
17. Hvorfor gir dett en bedre hverdag...
• For tester:
• Effektiv utvikling og vedlikehold av tester
• Fokus på viktig ting som risiko knyttet til endringer
• Gradvis modning under utvikling av test sammen med utvikler
• For utvikler:
• Tidlig, rask og effektiv verifisering av endringer (reg.test og nye test)
• Trygg å merge og deploye endringer videre produksjon-pipeline