Modellbaserad Test del 1: Hitta felen tidigt!

Modellbaserad Test del 1: Hitta felen tidigt!

Bästa sättet att lära sig saker på är oftast att prova på själv och jag blev nyfiken efter att ha läst om Modell-baserad test i en tidigare artikel av Kristian Karl här på Test Zonen att göra ett försök själv. För enkelhetens skull valde jag Test Zonens Bli medlem sidor då dom flesta läsarna av denna artikel med stor sannolikhet redan “testat” dessa sidor.

1: Hemsidan
På denna sida finns Bli medlem länken som tar en till registreringssidan.
2: Registreringssidan
Här matas valt användarnamn, lösenord och ett gitligt captcha in. Du kan även få captchan uppläst och mer captcha info.
3: Recaptchasidan
På denna externa sida finns mer captcha info.
4: Logga-in sidan
Inmatning av giltigt kontoinfo  sker på denna sida. Val av auto-login, registrering och hjälp med glömt lösenord  kan göras här också.
5: Glömt lösenord sidan
Här matar man in sin e-post adress och får ett nytt lösenord utskickat. Här finns även länk till logga-in och registrerings sidorna.
6: Adminsidan
Efter inloggning kommer man till ‘Panel’ sidan vilken är en adminsida för Test Zonens medlemmar.

Steg för steg – skapa en modell
1. Börja med att i yED skapa en tillståndsruta(vertex) för varje sida som finns i Bli medlem sidorna.

2. Namnge och dra en handlingspil(edge) för varje handling som får en att gå ifrån ett tillstånd till ett annat för alla sidorna (hiarkisk vy vald i yED).

3. Avsluta med att verifiera att modellen inte innehåller felaktigheter såsom:
– Brutna handlingspilar
– Mellanslag i edge och vertex namnen
– Loopar som gör att det inte går att få 100% testtäckning av modellen.

Verifieringen sker genom att köra igenom modellen med hjälp av Graphwalker i offline-läge, 100% traversering(EDGE_COVERAGE:100), kortaste vägen (A_STAR).

Använd följande kommandorad:

java -jar graphwalker-2.5.10-SNAPSHOT-standalone.jar offline -f TestZonen_Registrering.graphml -g A_STAR -s EDGE_COVERAGE:100

resultatet blir följande lista på 65 teststeg genom modellen:

e_Init
v_TestZonen
e_TZ >Registrera
v_Registrera
e_Registrera >Login
v_LoggaIn
e_LoggaInFel
v_LoggaIn
e_LoggaIn >Registrera
v_Registrera
e_Registrera >GL
v_GlömtLösenord
e_GL >LoggaIn
v_LoggaIn
e_LoggaInOK
v_AdminPanel
e_Admin >LoggaIn
v_LoggaIn
e_LoggaInFel >GL
v_GlömtLösenord
e_GL >Registrera
v_Registrera
e_CaptchaInfo
v_ReCaptchaInfo
e_Captcha >Registrera
v_Registrera
e_RegistreraFel
v_Registrera
e_CaptchaLjud
v_Registrera
e_CaptchaNy
v_Registrera
e_RegistreraOK
v_LoggaIn
e_LoggaIn >GL
v_GlömtLösenord
e_GLFel
v_GlömtLösenord
e_GL >TZ
v_TestZonen
e_TZ >Registrera
v_Registrera
e_Registrera >TZ
v_TestZonen
e_TZ >Registrera
v_Registrera
e_RegistreraLOGO >TZ
v_TestZonen
e_TZ >Registrera
v_Registrera
e_Registrera >GL
v_GlömtLösenord
e_GLLOGO >TZ
v_TestZonen
e_TZ >Registrera
v_Registrera
e_RegistreraOK
v_LoggaIn
e_LoggaInLOGO >TZ
v_TestZonen
e_TZ >Registrera
v_Registrera
e_RegistreraOK
v_LoggaIn
e_LoggaIn >TZ
v_TestZonen

Var är felen?
Titeln på denna artikel “utlovar” att vi skall hitta eventuella fel tidigt men vi har ännu inte automatiserat modellen? När vi skapade modellen använde vi utforskande testning på Bli medlem sidorna för att kunna göra en modell av all funktionalitet och följande tio fel hittades innan vi ens har hunnit köra våra automatiserade tester:

Fel #1

Fel #2

Fel #3-6 (finns tre till ställen som saknar eller har konstig kommentar i infoboxen)

Fel #7

Fel #8

Fel #9

Fel #10

Nu är det din tur

Jag hoppas denna artikel inspirerar och att om du är intresserad av modellbaserad testning men inte börjat ännu gör ett försök själv det är inte svårt och vem vet du kanske hittar felen tidigt!

About Alexander Andelkovic

Testare på Spotify. Brinner för utforskande och automatiserad testning med inriktning på testmetoderna session och modell baserad testning.