1. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Minh Nguyen, Testify
Erfaringer med testautomatisering
med SoapUI hos SB1
Testleder / Testutvikler
SB1 Master Data Management (MDM)
2. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
04 Videre arbeid
03 Gevinster - oppsummering
02 Arbeid med testautomatisering
og erfaringer
01 SB1 Utvikling, MDM og motivasjon
Bakgrunn
Agenda
3. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Sparebank 1 Utvikling
• Utvikler og forvalter IT-systemer for SB1 allianse bestående av 15 banker, Fremtind og
produktselskaper (bl.a. Kreditt og LO-favør).
• Over 20 autonome DevOps-team – over 200 ansatte/innleide.
• Sterkt fokus på agil utvikling, kontinuerlig test og produksjonssetting.
• Mange initiativer med testautomatisering avhengig av teknologi og løsning
‐ FitNesse + Selenium
‐ Appium
‐ Playwright
‐ SoapUI
• Kontinuerlig utprøving og anvendelse av nye teknologier.
03.12.2021
3
4. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
MDM – Master Data Management
(Grunndata)
03.12.2021
4
SB1-MDM
Offentlige
registre
Oppdatering
Konsolidering
SB1
Fagsystemer
SB1
Fagsystemer
SB1
Enterprise Systems
Data:
• Kundedata
• Kontaktinformasjon (adresser,
email, telefonnumre)
• Samtykke
• Banktilhørighet
• Familierelasjoner
Produsent
Tilgjengelig
SB1
Systemer
SB1
Systemer
SB1
løsninger
MDM-API
Konsument
Produsent
Tjenester:
• Regelbasert konsolidering av data
• Datavalidering og -integritet
«BEST og mest OPPDATERT data lagret
på ETT sted»
5. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Systemintegrasjon
03.12.2021
SB1-MDM
FREG
MATCHIT
POSTEN
Offentlig registre
NICE
PROLIFE
Fremtind - Forsikring
PRIME
BANQSOFT
LO-FAVØR
Produktselskaper
EVRY
Core bank
(A)DVH
Banksystemer
EVRY
Core bank
Betjente
kanaler
Selvbetjente
Online bank, apper
Konsumenter
MDM-API
6. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Noen fakta…
03.12.2021
6
Testmiljø: 2xDev, 2xTest, QA og ProdInt
Test artefakter in 2018: ~ 500 manuelle tester
og ~ 100 Fitnesse tester
Nå: ~ 25 SoapUI test-prosjekter
Technologi: Informatica MDM;
Active MQ, Java, Kotlin, Kafka, SOAP,
REST, Oracle DB, …
MDM-løsning:
- 12 eksponerte mikro-tjenester
> 300 regler/arbeidsflyt for konsolidering,
validering og integritetssjekk, adresse-
transformation, etc…
Release: per 3.uke for forvaltning +
2-3 paralelle pågående prosjekter Ukentlig datavask: ≈ 80.000 oppdateringer
fra FREG. Pågående arbeid for daglig og
datavask I sanntid
Utvikling og samhandling:
Informatica dev-toolset, Jenkins, Git,
Humio, Confluence, Jira/Zephyr, etc…
≈ 25 Konsumenter (Apper)
# Kall: ≈ 2 millioner per dag
# Kunder: Bank ≈ 2,5M
Forsikring ≈ 2,5M
Produktselskaper ≈ 1,5M
7. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Motivasjon Fokus på riktig test…
03.12.2021
8
• Ende-til-ende
• Systemintegrasjon
• Komponent/tjeneste
8. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Testformål og testtyper
03.12.2021
9
SB1-MDM
Offentlige
registre
Oppdatering
Konsolidering
SB1
Fagsystemer
SB1
Fagsystemer
SB1
Enterprise Systems
Produsenter
Tilgjengelig
SB1
Systemer
SB1
Systemer
SB1
løsninger
MDM-API
Konsumenter
Produsenter
Verifisere at eksponerte
tjenester leverer data iht.
konsumentenes spesifiserte krav.
Tjeneste-orientert test
Komponent-test
Verifisere at endringer på persondata
eller livshendelser blir riktig oppdatert
i MDM og konsistent forplantet i ALLE
fagsystemene.
Ende-til-ende test
Verifisere at endringer fra et fagsystem
blir validert, konsistent lagret i MDM
og forplantet til andre fagsystemer.
Systemintegrasjonstest
9. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Test artefakter
03.12.2021
10
SB1-MDM
Offentlige
registre
Oppdatering
Konsolidering
SB1
Fagsystemer
SB1
Fagsystemer
SB1
Enterprise Systems
Produsenter
Tilgjengelig
SB1
Systemer
SB1
Systemer
SB1
løsninger
MDM-API
Konsumenter
Produsenter
MDM-API:
• CustomerService
• ConsentService
• CustomerRelationService
• BankRelationService
• ChangeAdapterService
• ContactInformationService
• CodeLibraryService
• SupportService
• …
Systemintegrasjonstest
FREG
(mockup)
MDM
System 1
System N
Ende-til-ende test
Tjeneste-orientert test
Komponent-test
Delta
(fra ES til MDM)
Writeback
(fra MDM til ES)
Konsolidering
(konflikt, merge)
10. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Testverktøy
03.12.2021
• Soap/REST protocol,
HTTP/HTTPS request,
• JDBC (20 drivers)
• Groovy/Java-script
(generering input-verdier,
filhåndtering, shell-script,
og med mer…)
Komponent
test
System
integrasjonstest
Ende-til-ende test
11. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Utfordringer – vår tilnærming
1. Kjøre samme tester i ulike
testmiljøer
2. Lage tester som er uavhengige
av testdata
3. Øke testdekning uten å lage nye
tester
4. Ha kostnadseffektiv vedlikehold
av tester
03.12.2021
1. Miljø-konfig fil for spesifikt testmiljø
2. «On-the-fly» uthenting av testdata vha
JDBC støtte
3. Utstrakt bruk av parametre i testcasen
for å verifisere ulike scenarier
4. Testutvikling for og med gjenbruk +
Kollektivt vedlikeholdsansvar
12. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
1. Miljø-konfig fil
03.12.2021
13
En konfig-fil
for hvert testmiljø
Groovy script
Parametersetting
Inne i teststeg
13. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
2. «On-the-fly» uthenting av testdata
03.12.2021
14
14. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
3. Utstrakt bruk av parametre for økt testdekning
03.12.2021
15
Dokumentasjon
Prosesseres
og produserer
forventet resultat
15. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
4. Utvikling og vedlikehold av tester
03.12.2021
Tester er i kontinuerlig utvikling i takt med nye funksjoner og
alvorlige hendelser i produksjon.
Tester blir utviklet for og med gjenbruk:
gjenbrukbare og autonome teststeg
standardisert navngivning (keyword-drevet)
Stimulere til kollektivt vedlikeholdsansvar:
Tester versjoneres i Git samme med koder.
Endringer følger derfor samme rutine med (review/approval) med
pull-request
16. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Bruksområder
Testfaser:
‐ Systemtest
‐ Regressjonstest
‐ Mer og mer i utviklertest
Testtyper:
‐ Funksjonell test
‐ Enkel ytelsestest
(advansert test krever lisensiert
ReadyAPI)
Overvåking:
‐ Enkel helsesjekk på ulike
testmiljøer
03.12.2021
17. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Gevinster – Oppsummering
03.12.2021
19
Kvalitet
Tidlig og virkningsfull verifisering av endringer
Bevissthet om testdekning og trygghet for å commit endringer
Gode tester gir gode kvalitet på løsningen
Effektivitet
Skriver en test og kjøre den i flere testmiljøer (Miljø-konfig)
Kjører tester uavhengig av “hard-coded” testdata
Rask uthenting av ekvivalens partisjon for inndata
Utstrakt bruk av parameterisering for økt testdekning
Tid og kost besparelse
Vedlikehold
Kostnadseffektiv vedlikehold av tester (testutvikling for og med gjenbruk)
Kollektivt ansvar for vedlikehold av tester på lik linje som koder
18. I N T E R N - A L L I A N S E N
I N T E R N - A L L I A N S E N
Videre arbeid
03.12.2021
20
Økt grad av
automasjon
Kontinuerlig reg.test - Skedulering av testkjøringer med
SoapUI.TestRunner
Integrert test i kontinuerlig bygg - Bygge inn SoapUI tester i Jenkins
https://blog.sysco.no/testing/soapui-tests-on-jenkins/
Intelligent
analyse
Erfaringsbasert testing - Lære fra data innsamlet av kontinuerlig
testkjøringer og Humio logger for å forbedre testeffektivitet (f.eks.
prioritering, testdekning, bruksmønster, etc…)
Model-based testing (f.eks. med ecFeed) for å generere
kombinatorisk inndata og test oracle
Intro om meg selv
Erfaringsrapport – hvordan vi har løst de typiske utfordringer knyttet til testautomatisering – med muligheter i SoapUI men de kunne ha vært løst i andre testverktøy
Håper at dette innlegget vil inspirere dere til å ta tak i de tilsvarende utfordringene dere måtte komme bort i deres organisasjoner.
Grunndata har som hovedformål å møte forventningene om oppdaterte, konsistente og tilgjengelige kundedata for å sikre sterke kunderelasjoner.
Dette oppnås ved å
samle kundemassen til det enkelte finanshus på tvers av selskaper og fagsystemer
en konsistent sannhet for kundens data på tvers av kanaler
øke kundedatakvaliteten i fagsystemene
redusere kostnaden av å forvalte kundedata ved å synkronisere kundedata på tvers av fagsystemer samt å tilby felles regelmessig vask fra offentlige registre
Grunndata har som hovedformål å møte forventningene om oppdaterte, konsistente og tilgjengelige kundedata for å sikre sterke kunderelasjoner.
Dette oppnås ved å
samle kundemassen til det enkelte finanshus på tvers av selskaper og fagsystemer
en konsistent sannhet for kundens data på tvers av kanaler
øke kundedatakvaliteten i fagsystemene
redusere kostnaden av å forvalte kundedata ved å synkronisere kundedata på tvers av fagsystemer samt å tilby felles regelmessig vask fra offentlige registre
SB1 has in the last few years moved from monolithic to micro-service architectures
Grunndata har som hovedformål å møte forventningene om oppdaterte, konsistente og tilgjengelige kundedata for å sikre sterke kunderelasjoner.
Dette oppnås ved å
samle kundemassen til det enkelte finanshus på tvers av selskaper og fagsystemer
en konsistent sannhet for kundens data på tvers av kanaler
øke kundedatakvaliteten i fagsystemene
redusere kostnaden av å forvalte kundedata ved å synkronisere kundedata på tvers av fagsystemer samt å tilby felles regelmessig vask fra offentlige registre
Grunndata har som hovedformål å møte forventningene om oppdaterte, konsistente og tilgjengelige kundedata for å sikre sterke kunderelasjoner.
Dette oppnås ved å
samle kundemassen til det enkelte finanshus på tvers av selskaper og fagsystemer
en konsistent sannhet for kundens data på tvers av kanaler
øke kundedatakvaliteten i fagsystemene
redusere kostnaden av å forvalte kundedata ved å synkronisere kundedata på tvers av fagsystemer samt å tilby felles regelmessig vask fra offentlige registre