Gjemmer overraskelser for testerne: «Alle elsker påskeegg!»

Sercan Leylek har utvikla Easter Egg Driven Testing (E²DT), og viser deg hvordan du også får engasjerte testere.

Her sitter en gjeng hos Fremtind og leter etter skjulte påskeegg, som Mario ned av et rør. Eller tester, da, som de egentlig gjør.
Publisert

✍ leserinnlegg

Dette er et leserinnlegg fra en ekstern skribent, som betyr at innholdet ikke nødvendigvis speiler kode24s meninger. Vil du også bidra? Send oss en epost på hei@kode24.no, eller les mer her!

Små, skjulte overraskelser kan bli en kreativ strategi for å fremme utforskende testing. Slike initiativer kan også skape mer engasjement i teamet, spesielt i ekspertsystemer eller interne verktøy hvor vanlige testinsentiver ikke strekker til. 

Derfor fant vi opp en ny teknikk vi kalte E²DT (Easter Egg Driven Testing). 

Kort fortalt legger utvikleren av en ny frontend-funksjon inn et påskeegg i sin feature-branch, og mens kollegene prøver å finne dette egget, tester de samtidig den nye funksjonen.

Starta på testfest

Som med de fleste IT-paradigmer, kom også E²DT ut av et faktisk behov. 

I fjor skulle teamet mitt skrive om en mellomstor frontend-applikasjon. Vi kaller denne applikasjonen for “Skjemaadmin”. Det er et internt ekspertverktøy som brukes av omtrent 20 andre ansatte i Fremtind. Skjemaadmin er et skummelt og kjedelig verktøy. Når noen plutselig begynner å snakke om Skjemaadmin i et møte, blir de, som ikke forstår det, stille og lytter til det som blir sagt.

Etter omskrivingsprosessen organiserte teamet vårt en testfest og inviterte ekspertbrukere fra andre team. Deltakerne var nysgjerrige på å teste den nye Skjemaadmin med noen nye funksjoner, men vi måtte motivere dem til å dekke mer av applikasjonen med testing, fordi testfesten var et avgjørende steg. 

Nysgjerrigheten på egget forvandlet testfesten fra å teste en kjedelig og kompleks applikasjon til en spennende utfordring.

Derfor la jeg til et påskeegg i prosjektet og informerte deltakerne om det. Nysgjerrigheten på egget forvandlet testfesten fra å teste en kjedelig og kompleks applikasjon til en spennende utfordring.

Mitt påskeegg var ganske standard. Jeg plasserte det på "Page not found"-siden. Når brukeren går til en ikke-støttet URL, vises en "Page not found"-melding i Breaking Bad-logo-stil. Etter noen sekunder vises brukernavnet med en animasjon. I tillegg kan brukeren skrive inn andre navn i tekstbokser, så dette fungerer som et mini spill. Algoritmen til påskeegget sjekker det skrevne ordet og finner det første passende elementet fra periodesystemet.

Denne erfaringen inspirerte meg til å bruke påskeegg også i andre oppgaver, men denne gangen valgte jeg en mer organisert tilnærming. Her er noen regler å følge før du gjennomfører en E²DT-økt:

Regel #1: E²DT egner seg best for oppgaver som er kjedelige eller skumle

Alle elsker påskeegg. Det er spennende å lete etter dem. De fleste ansatte gjør sitt beste for å unngå å lære kjedelige eller kompliserte funksjoner i et produkt. 

Med E²DT får teamet en mulighet til å lære mer om de mørke krokene i applikasjonen. 

Ofte er disse skumle eller kjedelige delene de mest kritiske, og flere testere kan oppdage flere feil.

Regel #2: Testoppgaven bør være stor nok

Størrelsen på utviklingsoppgaven gir deg plass til å gjemme eggene. 

En feilretting eller liten utvikling oppgave er ikke egnet for E²DT.

Regel #3: Gjem eggene i forskjellige nettlesere

Testing på tvers av nettlesere er viktig. 

Ved å plassere egg i ulike nettlesere fremmer du cross-browser testing. 

La oss si at du legger inn 3 påskeegg for din E²DT-økt. Du bør fordele dem på forskjellige nettlesere og kanskje operativsystemer. Ett for Chrome på Windows, ett for Safari på Mac, og ett for mobil.

Med E²DT får teamet en mulighet til å lære mer om de mørke krokene i applikasjonen.

Regel #4: Skriv ned eggene dine

Du må huske hvor eggene er når du gjennomfører E²DT-økten. Skriv derfor en kort oversikt med følgende info:

  • Hvilket device eller nettleser trigger egget?
  • Hvor finner man det?
  • Hvordan trigger man det?

Selvfølgelig bør du sørge for at kollegene dine ikke ser denne listen før økten.

Regel #5: Implementer påskeegg innenfor konteksten av funksjonen

Ikke legg påskeegget tilfeldig i appen. Det bør skjules i den delen du har jobbet med. 

Hvis du for eksempel har jobbet med regnskapssiden, er det der du bør skjule egget – ikke i headeren eller footeren. Dette holder fokuset på endringene dine. 

Du kan gjerne lage egg i forskjellige vanskelighetsgrader: lett, middels og vanskelig å finne.

Regel #6: Lag en egen branch for utviklingen av påskeegget 

Når en utvikler jobber med en ny oppgave, lager han eller hun en ny branch fra hovedkodebasen – en feature branch. Dette er standard. 

La oss si at du har gjort 25 commits for å ferdigstille oppgaven. Du bør da lage en ny branch ut fra feature-branchen for å implementere påskeegget, og ikke blande disse commitene. 

Når all testing er ferdig og feature-branchen skal merges, kan du slette påskeegg-koden.

Regel #7: Book teamet ditt

Organiser et møte for E²DT og inviter teamet ditt. 

Du bør blant annet invitere backend og frontend-utviklere, testere, designere og produkteier. Folk i ulike roller jobber som testere i Easter Egg Driven Testing. 

Varigheten på møtet kan tilpasses antall egg. Hvis du har 3 egg, er 45 minutter passe.

Reglene over forbereder deg og teamet ditt på en E²DT-økt. Under selve økten bør du også tenke på noen ting. Her er mine tips:

Tips #1: Start med en kort introduksjon 

En kort og strukturert intro vil hjelpe deltakerne. Gi informasjon om følgende:

  • Alle må forstå hva problemet feature-branchen din løser.
  • Testing viser tilstedeværelse av feil, ikke deres fravær. Dette er det viktigste testprinsippet ifølge ASTQB.
  • Husk å nevne at påskeeggene er gjemt i ulike enheter og nettlesere.

Tips #2: Hold spillet rettferdig

Noen kolleger vil spørre etter hint. 

Spesielt frontend-utviklere vil bruke "Inspect" i nettleseren for å lese koden. 

Pass på disse “cheater wallhackers”!

Tips #3: Observer 

Når noen oppdager en feil, noter det med en gang og la personen fortsette å teste.

Når noen finner et påskeegg, annonser det umiddelbart. 

E²DT fungerer ikke optimalt med hjemmekontor-deltakere, fordi det gir dem en ulempe (folk snakker i munnen på hverandre, de som er på kontoret viser skjermen sin osv.)

Noen ideer til påskeegg

E²DT er en god måte å få utviklere til å være kreative. Koden du lager til et påskeegg kanskje gjenbrukes i produksjon senere. Det finnes mange måter å lage påskeegg på:

  • Tastaturnavigasjon: Testing med tastaturnavigasjon er viktig for universell utforming (UU). Du kan legge inn et egg som utløser et “jordskjelv” i nettleseren når brukeren trykker tab over en viss knapp eller dropdown. Du kan også legge inn et hint i en stor tekst, som inneholder et passord. Når brukeren skriver det magiske ordet, vises en gif-animasjon. Under ser du et eksempel.
  • Drag and drop: Du kan gjøre et DOM-element “draggable”, og når brukeren drar det, vises en animasjon.
  • Klikke flere ganger: Hvis brukeren klikker på et bilde tre ganger, endres bildet til påskeegget ditt.

Easter Egg Driven Testing har blitt godt mottatt av kollegene mine, og vi synes det er både nyttig og underholdende som team building internt. Deltakerne får et nytt perspektiv på produktet. Folk deler kunnskap om forretningsdomenet med hverandre. 

Påskeegg er en leken og tilgjengelig måte å engasjere brukere på. 

Å implementere og oppdage dem er like spennende – og det gir frontend-utviklere rom for å eksperimentere, lære og vise frem ferdigheter.

Powered by Labrador CMS