1. Minh Nguyen
Erfaringer med modell-
basert testing i SB1
Test Lead / Test Engineer
SB1 Master Data Management (MDM)
2. Om meg...
2
«Alltid på søken etter nye innovative måter å
gjøre testingen mer effektiv og smartere…”
Ø Testprosess, -strategi, testautomatisering,
CI/CT, modellbasert testing, anvendelse av
ML/AI i testarbeid.
Minh Nguyen – doktoringeniør fra NTNU
Principal Test Engineer i Testify
– 25 års arbeidserfaring med test og QA
– Innleid hos SpareBank 1 - Master Data
Management team
3. 04 Erfaringer og videre arbeid
03 Eksempler på gevinster
02 MBT – hva har vi oppnådd?
01 Motivasjon
Agenda
4. Motivasjon
• Tilbakelagt en implementering av testautomatisering (tjenester og verdikjeder)
- DND medlemsmøte 28.04.2021 - https://youtu.be/Gksah7ncJys
• MDM - et komplekst og regel-intensivt system
- Umulig å teste alle kombinasjonene
- Kostbart å regresjon-teste alt
• Hypotese: modellbasert testing kan være en mulig testteknikk
- MEN: det finnes lite praktiske brukserfaringer
- Ønsker å validere hypotesen...
4
5. 5
Modellbasert testing (MBT)
Systemkrav
Modell
Test-
orakel
Testcaser
Eksekverbare
tester SUT
Manuell
Automatisk
generering
Automatisk
generering
Automatisk
kopling
Automatisk
kjøring
Automatisk
evaluering
Testverktøy
Forventede gevinster:
• Automatisk (smart) generering av
testcaser (TC)
• Sporbarhet mellom krav og
testcaser
• Justerbar testdekning – riktige
tester for gitt formål
• Kostnadseffektiv vedlikehold av
tester
6. Eksempel – Samtykke
Krav:
Både person- og bedriftskunde skal kunne avgi eller trekke tilbake ulike samtykke.
6
Samtykke-parameter
- Identifikasjonsnummer: [f.nr, d.nr, org.nr]
- Samtykke-typer: [1, 2, 3]
- Samtykke-gruppe: [BankPM, BankBM]
- Samtykke-språk: [NOB, NNO, ENG]
- Samtykke-svar: [Ja, Nei]
- Samtykke-variant: [<variabel>]
- Samtykke-gittAv: [<fritekst>]
- Samtykke-gittDato: [<gyldig datoformat>]
- gittFraKanal: [NB, CRM, BS]
Regler:
- Identifikasjonsnummer må være gyldig
- Personkunde skal ha type 1 og 2
- Bedriftskunde skal ha type 3 + variant
- Samtykkegruppe må være gyldig
- Samtykkespråk må være gyldig
- Samtykke-variant skal kun angis dersom varians = true
- gittAv-felt har maks 256 tegn
- gittDato må ha gyldig datoformat
- gittFraKanal må være gyldig
10. TC-generering
10
Parameter
Mulige inputverdier
Antall mulige kombinasjoner = 3 x 3 x ... X 3 = 312 = 531.441 rekker
è «Testcase eksplosjon»
Målsetning med TC-generering:
Ø Å finne et sett testcaser som er både nødvendige
og tilstrekkelige for et gitt formål
Algoritmer:
o Nwise – 2 | 3 | .. | n
o Cartesian (full dekning)
o Random
Modell:
o Parametre
o Regler
o TC-filtere
Genererte testcaser:
o (o1, a1, b3, c2, ...)
o (o2, a2, b1, c2, ...)
o ...
13. Gevinster
• Endringer i modell og ikke i test
- Nye verdier i system-parameter
- Endringer på forretningsregler
• Endringer i modell og i test
- Strukturelle systemendringer: nye tjenestekontrakt med nye felter
13
14. Gevinster
14 14
Justerbar
testdekning
q Fritt men bevisst valg av testdekning ved å kombinere algoritme,
regler og TC-filter.
q Samtykke: Cartesian: 1560 TC; Nwise-3: 29 TC;
q Aktiv bruk av TC-filter for å regresjonstest en gitt systemendring
Kostnadseffektiv
vedlikehold
q Kun endring i modellen og ikke i test:
v Nye input-verdier på system-parameter
v Endringer i forretningsregler
v Merk at: Endringer i API-kontrakt (strukturelle) medfører endringer i test
q SoapUI-tester er intakte
15. Erfaringer
15
v Jobbe på modell og testene forblir uendret (som oftest)
v Gode erfaringer så langt men trenger å implementere MBT for flere
tjenester
MBT-teknikk
v Krever en god systemforståelse og evne til å modellere dem
v Definere tilstrekkelig regler og TC-filtre for å kunne justere testdekning
for ulike testformål
v Automatiserte tester må defineres med bruk av parameter
Implementasjon-
prosess
v Enkel integrasjon av ecFeed-API med SoapUI
v ecFeed kunne utbedres for å bli mer intuitiv og mer «testvennlig»
Verktøy og
integrasjon