Hva er funksjonstester?
Funksjonstesting er programvareutviklingsprosessen der man tester flere variasjoner av en funksjon for å finne den beste brukeropplevelsen.
Med funksjonstester og produkteksperimentering kan du validere om en ny funksjon for en nettside eller app er et godt valg. Samtidig kan du også fastslå hvilken variasjon av funksjonen som vil være mest vellykket. Når funksjonstesten er fullført med godt resultat, kan du rulle ut funksjonen med konfigurasjonen fra den vinnende variasjonen i funksjonstesten.
Slik fungerer funksjonstester
Funksjonstester ligner på A/B/n-tester, der du kan styre om den tilknyttede funksjonen er på eller av for hver variasjon via feature flags (også kjent som feature toggles). Det gir deg også mulighet til å styre verdiene for funksjonsvariablene for de ulike variablene knyttet til funksjonen.
Når besøkende interagerer med nettstedet eller applikasjonen din, samler funksjonstesten inn beregninger relatert til deres engasjement med funksjonen. Du kan deretter se statistikk i analysedashbordet for å avgjøre om funksjonen fører til positiv eller negativ atferd. Samtidig kan du også fastslå hvilken konfigurasjon av funksjonen som er mest vellykket.
Fordelene med funksjonstester
Det finnes en rekke brukstilfeller for funksjonstesting:
Valider funksjonens egnethet
Funksjonstester gjør det mulig å samle inn beregninger og validere om en funksjon passer godt og oppfyller dine forretningsmessige krav.
Ved å sette opp en funksjonstest kan du aktivere funksjonen for en bestemt andel av trafikken og deaktivere den for resten. På denne måten kan du måle hvordan beregningene dine presterer når funksjonen er på, og sammenligne det med når den er av – og dermed validere om funksjonen vil egne seg for en gradvis utrulling til alle som bruker produktet.
Finn den beste funksjonskonfigurasjonen
I tillegg til å aktivere/deaktivere funksjonen på variasjonsnivå, kan man også kjøre en funksjonstest for å eksperimentere med ulike konfigurasjoner og testscenarioer for funksjonen. På den måten er det mulig å finne den beste funksjonsopplevelsen.
Oppdag feil
I tillegg til standard programvaretestpraksis som enhetstesting og funksjonell testing, kan funksjonstesting være en god måte å oppdage feil og problemer som kanskje bare dukker opp i kanttilfeller i produksjonsmiljøet ditt. Ved å pakke inn nye funksjoner i feature flags kan du raskt rulle tilbake feil uten å måtte gjøre en ny kodeutrulling.
Iterer mot perfeksjon
For langsiktige funksjoner kan du kjøre funksjonstester på dem igjen og igjen og fastslå den beste konfigurasjonen for dem over levetiden, noe som fører til den best mulige opplevelsen.
Funksjonstester og Continuous Delivery
Å innføre funksjonstester i funksjonsleveringsprosessen din gjør det mulig å raskt validere ideer, se på beregninger og avgjøre om funksjonen er klar til å rulles ut til alle – uten at det krever en ny kodeutrulling. Du kan også justere ulike aspekter av funksjonen ved å eksperimentere med forskjellige konfigurasjoner.
Når du er ferdig med å samle inn beregninger og er fornøyd med resultatene, kan du gradvis rulle ut funksjonen til alle – igjen uten behov for å deploye kode.
Optimizely og funksjonstester
Med Optimizelys serverside funksjonsstyringsfunksjoner kan produkt- og utviklingsteam instrumentere feature flags og kjøre funksjonstester på dem. Dette gjør det mulig for dem å raskt validere hypotesene sine, måle effekten av funksjonen og deretter gradvis rulle den ut. Alt dette kan oppnås ved å instrumentere feature flagget én gang og deretter bruke Feature Experimentation til å eksperimentere med og rulle det ut.
I Feature Experimentation, når en funksjon evalueres, evalueres den relaterte funksjonstesten først for å avgjøre om brukeren kan gis tilgang til funksjonen gjennom testen. Hvis ikke, evalueres den relaterte utrullingen for å bestemme funksjonstilgangen.
Dette fungerer utmerket for produktutviklingsteam, siden risiko kan reduseres tidlig ved å kjøre funksjonstester før det legges ned mye arbeid i å bygge og vedlikeholde funksjonen. Det passer også godt med beste praksis for kontinuerlig integrasjon og Continuous Delivery, ettersom funksjonstester og funksjonsutrullinger i Optimizely er tett koblet, og når testen oppnår ønskede resultater, kan man rulle ut funksjonen uten å måtte gjøre endringer i koden og re-deploye.
Optimizely tilbyr for øyeblikket gratis feature flags gjennom Optimizely Free Feature Flagging, en helt gratis løsning for kontrollerte funksjonsleveranser i produktet eller appen din. Rollouts tilbyr en rekke SDK-er på GitHub for noen av de mest populære programmeringsspråkene og rammeverkene, inkludert Android, C#, Go, Java, JavaScript, PHP, Python, React, Ruby og Swift.
Funksjonstester er for øyeblikket tilgjengelig som en del av Optimizely Feature Experimentation. Og et raskt tips: du kan alltid starte med gratis Optimizely Rollouts og oppgradere abonnementet ditt for å få tilgang til hele funksjonssettet.