Testning i produktion
Innehållsförteckning
Vad är testning i produktion?
Testning i produktion (TIP) är en metod för programvaruutveckling där nya kodändringar testas på liveanvändartrafik snarare än i en stagingmiljö. Det är en av de testmetoder som finns i kontinuerlig leverans.
Produktionsprogramvara är den version av programvaran som släpps live till riktiga användare. Däremot är utvecklings-, staging- eller förproduktionsprogramvara under uppbyggnad och är ännu inte tillgänglig för slutanvändare.
Varför testning i produktion?
Historiskt sett har företag försökt se till att den programvara de bygger har testats noggrant för buggar i utvecklings-, staging- och förproduktionsmiljöer, långt innan den når användare i produktion. Genom att upptäcka buggar tidigt förhindras användarna från att se fel, vilket ökar kundernas förtroende och den övergripande tillfredsställelsen med ett varumärke och dess produkter.
Men det är inte lätt att hitta alla buggar i utvecklings- och stagingmiljöerna. Teknik- och QA-team kan ägna mycket tid och kraft åt att bygga enhetstester, testsviter och testautomatiseringssystem, försöka simulera produktionsmiljön eller manuellt verifiera användarflöden med fingerade användardata och testfall för att försöka upptäcka buggar, bara för att upptäcka att ett viktigt hörnfall har förbisetts. I slutändan kan många användare uppleva buggig programvara även efter att mycket tid har lagts på testning under utvecklingen.
I många fall är det omöjligt att helt simulera en verklig programvara i en testmiljö. Med alla de beroenden som finns i moderna produktionssystem och de många möjliga kantfallen har produktionstestning blivit en nödvändig del av devops och mjukvarutestning. Stora mjukvaruföretag som Google, Netflix och Amazon släpper ständigt nya funktioner till en bråkdel av sin trafik för att mäta effekten.
Testning i produktion och feature flags
Med feature flags (även kallat feature toggles och utrullning av funktioner) som gör det möjligt för ingenjörsteam att exponera ny programvara för endast bråkdelar av produktionstrafiken, kan företag lägga experimentering 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 samtidigt som de har ett säkert sätt att rulla tillbaka eventuella oupptäckta buggar med hjälp av en feature flag kill switch eller rollback.
Att köra tester i produktion via utrullningar av funktioner eller feature flags gör att alla produktdata, beroenden och extremfall kan beaktas i omfattande integrationstester. Att ha data från den verkliga världen kan vara särskilt kraftfullt vid prestandatester eller belastningstester.
Verktyg för feature flags 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 resulterar i en bättre användarupplevelse baserat på produktionsdata. På så sätt kan programvaruingenjörer 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 upplevelsen av programvaran.
Om ditt team vill göra testning i produktion erbjuder Optimizely Rollouts obegränsade gratis utrullningar av funktioner och utrullningar byggda på en plattform i företagsklass.