Testning i produktion

Testning i produktion (TIP) är en mjukvaruutvecklingspraxis där nya kodändringar testas på live-användartrafik snarare än i en staging-miljö.

Vad är testning i produktion?

Testning i produktion (TIP) är en mjukvaruutvecklingspraxis där nya kodändringar testas på live-användartrafik snarare än i en staging-miljö. Det är en av de testpraktiker som ingår i kontinuerlig leverans.

Produktionsprogramvara är den version av programvaran som lanseras live till riktiga användare. Däremot är utvecklings-, staging- eller förproduktionsprogramvara fortfarande under utveckling och är ännu inte tillgänglig för slutanvändare.

Varför testa i produktion?

Historiskt sett har företag försökt säkerställa att den programvara de bygger har testats grundligt för buggar i utvecklings-, staging- och förproduktionsmiljöer, långt innan den når användarna i produktion. Att fånga buggar tidigt förhindrar att användarna ser fel, vilket ökar kundernas förtroende och den övergripande tillfredsställelsen med ett varumärke och dess produkter.

Det är dock inte lätt att hitta alla buggar under utveckling och staging. Engineering- och QA-team kan lägga mycket tid och kraft på att bygga enhetstester, testsviter och testautomatiseringssystem, försöka simulera produktionsmiljön, eller manuellt verifiera användarflöden med testdata och testfall för att försöka avslöja buggar – bara för att till slut inse att ett viktigt specialfall förbisågs. I slutändan kan många användare uppleva buggig programvara trots att mycket tid lagts på testning under utveckling.

I många fall är det omöjligt att helt simulera live, verklig programvara i en testmiljö. Med alla beroenden i moderna produktionssystem och de många möjliga specialfallen har produktionstestning blivit en nödvändig del av DevOps och programvarutestning. Ledande programvaruföretag som Google, Netflix och Amazon lanserar ständigt nya funktioner till en bråkdel av sin trafik för att mäta effekten.

Produktionstestning och feature flags

Med framväxten av feature flags (även kända som funktionsväxling och utrullning av funktioner) som gör det möjligt för engineering-team att exponera ny programvara för endast delar av den live-produktionstrafiken, kan företag placera experimentella eller nya funktioner framför en liten del av sin produktionstrafik för att snabbt verifiera att deras programvara fungerar som förväntat i realtid – med en säker möjlighet att rulla tillbaka eventuella oupptäckta buggar med en feature flag-kill switch eller återställning.

Att köra tester i produktion via utrullningar eller feature flags gör det möjligt att ta hänsyn till alla produktdata, beroenden och specialfall i omfattande integrationstester. Att ha verkliga data kan vara särskilt kraftfullt vid prestandatestning eller lasttestning.

Feature flag-verktyg har också den extra fördelen att de möjliggör A/B-testning, där den nya funktionen jämförs med den tidigare versionen av programvaran för att se vilken som ger en bättre användarupplevelse baserat på produktionsdata. Detta gör det möjligt för programvaruingenjörer att inte bara säkerställa att deras nya funktioner är buggfria, utan också använda verkliga data för att validera att förändringen faktiskt förbättrar den övergripande programvaruupplevelsen.

Om ditt team vill utföra tester i produktion erbjuder Optimizely gratis feature flagging obegränsade gratis feature flags och utrullningar byggda på en plattform av företagsklass.