Optimization glossary

Test av funksjoner

Hva er funksjonstester?

Feature-testing er programvareutviklingsprosessen der man tester flere varianter av en funksjon for å finne den beste brukeropplevelsen.

Med funksjonstester og produkteksperimenter kan du validere om en ny funksjon for en nettside eller app passer godt. Samtidig kan du også finne ut hvilken variant av funksjonen som vil være mest vellykket. Hvis funksjonstesten er vellykket, kan du deretter rulle ut funksjonen med konfigurasjonen av den vinnende varianten av funksjonstesten.

Slik fungerer funksjonstester

Funksjonstester ligner på A/B/n-tester som lar deg kontrollere om den tilknyttede funksjonen er av eller på for hver variasjon via funksjonsflagg (også kalt funksjonsbrytere). Du kan også kontrollere funksjonsvariabelverdiene for de ulike variablene som er knyttet til funksjonen.

Etter hvert som besøkende samhandler med nettstedet eller applikasjonen din, samler testen inn data om hvordan de bruker funksjonen. Du kan deretter slå opp statistikk på analyseinstrumentbordet for å finne ut om funksjonen fører til positiv eller negativ atferd. Samtidig kan du også finne ut hvilken konfigurasjon av funksjonen som er mest vellykket.

Fordelene med funksjonstester

Det finnes en rekke bruksområder for funksjonstester:

Valider funksjonens egnethet

Med funksjonstester kan du samle inn data og validere om en funksjon passer godt inn og oppfyller forretningskravene dine.

Ved å sette opp en funksjonstest kan du aktivere funksjonen for en viss del av trafikken og deaktivere den for resten. På denne måten kan du måle hvordan beregningene dine presterer når funksjonen er aktivert, og sammenligne med når den er deaktivert. Dermed kan du validere om funksjonen er god nok til at du til slutt kan rulle ut den nye funksjonaliteten til alle som bruker produktet.

Bestem den beste funksjonskonfigurasjonen

I tillegg til å aktivere/deaktivere funksjonen på variasjonsnivå, kan man også kjøre en funksjonstest for å eksperimentere med ulike konfigurasjoner og testscenarier for funksjonen. På den måten vil det være mulig å finne den beste funksjonsopplevelsen.

Oppdag feil

I tillegg til standard praksis for programvaretesting, som enhetstesting og funksjonstesting, kan funksjonstesting være en god måte å oppdage feil og problemer som kanskje bare oppstår i unntakstilfeller i produksjonsmiljøet. Ved å pakke inn nye funksjoner i funksjonsflagg kan du raskt tilbakestille eventuelle feil uten å distribuere koden.

Iterere til perfeksjon

Når det gjelder langsiktige funksjoner, kan du kjøre tester på dem om og om igjen og finne den beste konfigurasjonen for dem i løpet av levetiden, slik at du får en best mulig opplevelse.

Funktionstester og kontinuerlig levering

Ved å introdusere funksjonstester i prosessen for funksjonslevering kan du raskt validere ideer, se på beregninger og avgjøre om funksjonen er klar til å rulles ut til alle, uten at du trenger å gjøre en ny kodedistribusjon. Du kan også finjustere ulike aspekter ved funksjonen ved å eksperimentere med forskjellige konfigurasjoner.

Når du er ferdig med å samle inn beregninger og er fornøyd med resultatene, kan du rulle ut funksjonen gradvis til alle igjen uten å måtte distribuere kode.

Optimizely og funksjonstester

Med Optimizelys funksjoner for funksjonsadministrasjon på serversiden kan produkt- og ingeniørteam instrumentere funksjonsflagg og kjøre funksjonstester på dem. På denne måten kan de raskt validere hypotesene sine, måle effekten av funksjonen og deretter gradvis rulle ut funksjonen. Alt dette kan oppnås ved å instrumentere funksjonsflagget én gang og deretter bruke Feature Experimentation til å eksperimentere med det og rulle det ut.

Når en funksjon evalueres ved hjelp av Feature Experimentation, evalueres først den relaterte funksjonstesten for å avgjøre om brukeren kan få tilgang til funksjonen gjennom testen. Hvis ikke, evalueres den relaterte utrullingen for å avgjøre om brukeren har tilgang til funksjonen.

Dette fungerer utmerket for produktutviklingsteam, siden risikoer kan reduseres tidlig ved å kjøre funksjonstester før mye arbeid går med til å bygge og vedlikeholde funksjonen. Det passer også godt sammen med beste praksis for kontinuerlig integrasjon og kontinuerlig levering, siden funksjonstester og funksjonsutrullinger i Optimizely er tett koblet sammen, og når testen oppnår de ønskede resultatene, kan man rulle ut funksjonen uten å måtte gjøre noen endringer i koden og distribuere den på nytt.

Optimizely tilbyr for øyeblikket gratis funksjonsflagging gjennom Optimizely free feature flagging, en helt gratis løsning for kontrollerte funksjonsutgivelser 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 tilgjengelige 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 alle funksjonene.