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
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
Om meg...
2
«Alltid på søken etter nye innovative måter
å gjøre testingen smartere og mer effektiv”
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 – team Master Data
Management (MDM) / Grunndata
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
04 Erfaringer og videre arbeid
03 Gevinster
02 MBT – hva har vi oppnådd?
01 Motivasjon
Agenda
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
Motivasjon
• Et nytt mål etter å ha etablert et automatisk API testregime på våre tjenester.
‐ DND medlemsmøte 28.04.2021 om automatisert API-testing i SB1
(https://youtu.be/Gksah7ncJys)
• MDM - et komplekst og regel-basert system med høyt krav til datakvalitet
‐ Utfordring med å manuelt styrt testdekning – unødvendig eller mangelfull
‐ Kostbart vedlikehold av testene ved krav- eller regelendringer
• Hypotese: Kan modellbasert testteknikk (MBT) løse utfordringen?
‐ MEN: det finnes lite praktiske brukserfaringer
‐ Ønsker å validere hypotesen med våre egne tjenenester
4
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
5
Modellbasert testing (MBT)
Systemkrav
Modell
Test-
orakel
Testtilfeller
Eksekverbare
tester SUT
Manuell
Automatisk
generering
Automatisk
generering
Automatisk
transformasjon
Automatisk
kjøring
Automatisk
evaluering
Testverktøy
Forventede gevinster:
• Automatisk generering av
testtilfeller
• Sporbarhet mellom krav og
testtilfeller
• Justerbar testdekning gir
optimale tester for gitt
testformål
• Kostnadseffektiv vedlikehold av
tester
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
Eksempel – Samtykke
Krav:
Både person- og bedriftskunde skal kunne avgi eller trekke tilbake ulike samtykketyper.
6
Samtykke-parameter:
‐ Identifikasjonsnummer: [f.nr; d.nr; org.nr]
‐ Typer: [1, 2, 3]
‐ Gruppe: [BankPM, BankBM]
‐ Språk: [NOB, NNO, ENG]
‐ Svar: [Ja, Nei]
‐ Variant: [<variabel>]
‐ GittAv: [<fritekst>]
‐ 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
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
7
Modellbasert testing (MBT)
Systemkrav
Modell
Test-
orakel
Testtilfeller
Eksekverbare
tester SUT
Manuell
Automatisk
generering
Automatisk
generering
Automatisk
transformasjon
Automatisk
kjøring
Automatisk
evaluering
Testverktøy
Grafisk modell-editor
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
Modellering
8
Parameter-design
Testtilfelle-filter
Regel-definisjon
Ekvivalens-
partisjon
Grenseverdi
Beslutnings-
tabell
Logiske
operatorer
identNo:
‐ regularSSN
‐ d-number
‐ companyNo
‐ invalid_IdentNo
givenBy:
‐ length_20
‐ length_255
‐ length_256
‐ length_257
Rule_1:
if (identNo.regularSSN &&givenBy.length_20)
Outcome = true
Rule_2:
if (identNo.regularSSN && givenBy.length_257) {
Outcome = false
Error_msg = «Too long givenBy string»
}
Fixed_value(IdentNo = companyNo &&
type = 3 &&
language = NOB)
Exclude(identNo.d-number ||
language = ENG &&
givenFromChannel = CRM )
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
9
Modellbasert testing (MBT)
Systemkrav
Modell
Test-
orakel
Testtilfeller
Eksekverbare
tester SUT
Manuell
Automatisk
generering
Automatisk
generering
Automatisk
transformasjon
Automatisk
kjøring
Automatisk
evaluering
Testverktøy
Grafisk modell-editor
Testtilfelle-generator
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
Generering av testtilfeller
10
Parameter
Mulige inputverdier
Antall mulige kombinasjoner = 3 * 3 * ... * 3 = 312 = 531.441 rekker
Mål med Testtilfelle-generering:
Å finne et sett av testtilfeller som er både
nødvendige og tilstrekkelige for et gitt testformål
Modell:
o Parametre
o Regler
o Testtilfelle-filtre
Algoritmer:
o Nwise – 2 | 3 | .. | n
o Cartesian (full dekning)
o Random
Genererte testtilfeller:
o (o1, a1, b3, c2, d5, ...)
o (o2, a2, b1, c2, d1, ...)
o ...
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
11
Modellbasert testing (MBT)
Systemkrav
Modell
Test-
orakel
Testtilfeller
Eksekverbare
tester SUT
Manuell
Automatisk
generering
Automatisk
generering
Automatisk
transformasjon
Automatisk
kjøring
Automatisk
evaluering
Testverktøy
Grafisk modell-editor
Testtilfelle-generator
Testverktøy-integrator
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
12
EcFeed
Testparameter mapping
Testcase generator
Eksportere resultat
Evaluere resultat
Eksekvere tjeneste
SoapUI-
test
Parametre +
Regler +
Testtilfelle-filtre +
Algoritme
• CSV
• HTML
• Database tabell
API/SUT
SoapUI integrasjon
Genererte
testtilfeller
(o1, a1, b2, c1, d7, ...)
...
(o2, a1, b3, c2, d4, ...)
(o1, a4, b2, c5, d2, ...)
(o3, a1, b6, c4, d1, ...)
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
Testrapport
13 13
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
Gevinster
14 14
Justerbar
testdekning
Bevisst valg av testdekning isf manuell tuning av testcase parametre
Forstår omfang og risiko av endringer
Effektiv (regresjons)-testing.
Samtykke:
Kombinasjon av regler + filtre + algoritme: 25-50 testtilfeller for et
gitt testformål (verifisering personskunder; lengden på givenBy, ...)
Kostnadseffektiv
vedlikehold
Kun endring i modellen og ikke i testene:
Nye input-verdier på system-parameter, f.eks. «Nytt språk = FIN».
Nye forretningsregler, f.eks. «Egen samtykketype for kunder med d.nr».
Merk at: Endringer i API-kontrakt (strukturelle) krever endringer i test.
SoapUI-testene er intakte / robuste
En modell støtter flere SoapUI-testene på ulike versjoner av tjenesten.
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
Erfaringer
15
Veldig spennende å bli bedre kjent med – etter å ha blitt ISTQB-sertifisert.
Liker best «Endre modellen og ikke testene».
Gode erfaringer så langt men trenger å implementere flere modeller.
MBT-teknikk
Krever en god systemforståelse og evne til å modellere dem.
Tilstrekkelige regler og testtilfelle-filtre for å kunne justere testdekning.
Forutsetter at automatiserte tester er klargjort for MBT.
Stimulerer hele spekteret av testerens ferdighet (test-spesifikasjon,
-design og -automasjon).
Implementasjon-
prosess
Enkel integrasjon av ecFeed-API med SoapUI.
God støtte for modellering men altfor «streng» validering.
GUI kunne blitt mer intuitiv og mer «tester-vennlig».
Testtilfeller blir generert «on-the-fly» og ytelsen er bra.
Verktøy og
integrasjon
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
Veikart for test
Manuell
test
Automatisert
test
Kontinuerlig
test
Modellbasert
test
Adaptiv
test
Tilfeldig og
mangelfull
Gjentakende og
tidseffektiv
Betimelig og
hendelsesbasert
Optimal og
formålstjenlig
Smarte og
lærende
Treningsdata
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
Besøk oss på Testify-stand
for å se ecFeed og SB1-
implementasjon live...
TAKK FOR MEG
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
Notas do Editor
Grafisk modell-editor
Data coverage
Rule/requirement/scenario and conditional coverage
Tippingens mål er å få 12 rette = ha en testcase i TC-settet som avdekker feilen