Test av funktion

Test av funktion är den mjukvaruutvecklingsprocess där man testar flera variationer av en funktion för att fastställa den bästa användarupplevelsen.

Vad är tester av funktioner?

Test av funktion är den mjukvaruutvecklingsprocess där man testar flera variationer av en funktion för att fastställa den bästa användarupplevelsen.

Med tester av funktioner och produktexperimentering kan du validera om en ny funktion för en webbsida eller app är ett bra val. Samtidigt kan du också fastställa vilken variation av funktionen som kommer att vara mest framgångsrik. Om testet av funktionen avslutas framgångsrikt kan du sedan rulla ut funktionen med konfigurationen från den vinnande variationen.

Hur tester av funktioner fungerar

Tester av funktioner liknar A/B/n-tester som låter dig styra om den associerade funktionen är på eller av för varje variation via feature flags (även kända som funktionsväxlingar). Det låter dig också styra värdena för funktionsvariablerna för de olika variablerna kopplade till funktionen.

När besökare interagerar med din webbplats eller applikation samlar testet av funktionen in mätvärden relaterade till deras engagemang med funktionen. Du kan sedan titta på statistik i analysdashboarden för att avgöra om funktionen leder till positivt eller negativt beteende. Samtidigt kan du också fastställa vilken konfiguration av funktionen som är mest framgångsrik.

Fördelarna med tester av funktioner

Det finns ett antal användningsfall för test av funktion:

Validera funktionens lämplighet

Tester av funktioner låter dig samla in mätvärden och validera om en funktion är ett bra val och uppfyller dina affärskrav.

Genom att konfigurera ett test av funktion kan du aktivera funktionen för en viss del av trafiken och inaktivera den för resten. På detta sätt kan du mäta hur dina mätvärden presterar när funktionen är på och jämföra det med när den är av – och därigenom validera om funktionen kommer att vara lämplig att slutligen rulla ut till alla som använder produkten.

Fastställ den bästa funktionskonfigurationen

Utöver att aktivera/inaktivera funktionen på variationsnivå kan man också köra ett test av funktion för att experimentera med olika konfigurationer och testscenarier för funktionen. På så sätt är det möjligt att fastställa den bästa funktionsupplevelsen.

Upptäck buggar

Utöver standardmetoder för mjukvarutestning som enhetstestning och funktionstestning kan test av funktion vara ett bra sätt att upptäcka buggar och problem som kanske bara uppstår i kantfall i din produktionsmiljö. Genom att omsluta nya funktioner i feature flags kan du snabbt rulla tillbaka buggar utan en kodinstallation.

Iterera mot perfektion

För långsiktiga funktioner kan du köra tester av funktioner på dem om och om igen och fastställa den bästa konfigurationen för dem under deras livstid, vilket leder till den bästa möjliga upplevelsen.

Tester av funktioner och Continuous Delivery

Att introducera tester av funktioner i din funktionsleveransprocess låter dig snabbt validera idéer, titta på mätvärden och avgöra om funktionen är redo att rullas ut till alla – allt utan att du behöver göra ytterligare en koddriftsättning. Du kan också justera olika aspekter av funktionen genom att experimentera med olika konfigurationer.

När du är klar med att samla in mätvärden och är nöjd med resultaten kan du gradvis rulla ut funktionen till alla igen utan behov av att driftsätta kod.

Optimizely och tester av funktioner

Med Optimizelys serversidiga funktionshanteringsfunktioner kan produkt- och teknikteam instrumentera feature flags och köra tester av funktioner på dem. Detta låter dem snabbt validera sina hypoteser, mäta effekten av funktionen och sedan gradvis rulla ut den. Allt detta kan uppnås genom att instrumentera feature flag en gång och sedan använda Feature Experimentation för att experimentera med och rulla ut det.

I Feature Experimentation utvärderas det relaterade testet av funktionen först när en funktion utvärderas, för att avgöra om användaren kan beviljas åtkomst till funktionen genom testet. Om inte utvärderas den relaterade utrullningen för att bestämma funktionsåtkomsten.

Detta fungerar utmärkt för produktutvecklingsteam eftersom risker kan minskas tidigt genom att köra tester av funktioner innan mycket arbete läggs på att bygga och underhålla funktionen. Det passar också väl med bästa praxis för kontinuerlig integration och Continuous Delivery, eftersom tester av funktioner och funktionsutrullningar i Optimizely är tätt kopplade och när testet uppnår önskade resultat kan man rulla ut funktionen utan att behöva göra några kodändringar och omdriftsätta.

Optimizely erbjuder för närvarande gratis feature flags via Optimizely Free Feature Flagging, en helt gratis lösning för kontrollerade funktionssläpp i din produkt eller app. Rollouts erbjuder ett antal SDK:er på GitHub för några av de mest populära programmeringsspråken och ramverken, inklusive Android, C#, Go, Java, JavaScript, PHP, Python, React, Ruby och Swift.

Tester av funktioner är för närvarande tillgängliga som en del av Optimizely Feature Experimentation. Och ett snabbt tips: du kan alltid börja med gratis Optimizely Rollouts och uppgradera din prenumeration för att få tillgång till hela funktionssviten.