Testing i produksjon

Testing i produksjon (TIP) er en programvareutviklingspraksis der nye kodeendringer testes på live brukertrafikk i stedet for i et testmiljø.

Hva er testing i produksjon?

Testing i produksjon (TIP) er en programvareutviklingspraksis der nye kodeendringer testes på live brukertrafikk i stedet for i et testmiljø. Det er en av testpraksisene som inngår i continuous delivery.

Produksjonsprogramvare er den versjonen av programvaren som er utgitt live til ekte brukere. Derimot er utviklings-, staging- eller forhåndsproduksjonsprogramvare under utvikling og ikke ennå tilgjengelig for sluttbrukere.

Hvorfor teste i produksjon?

Historisk sett har selskaper forsøkt å sikre at programvaren de bygger har blitt grundig testet for feil i utvikling, staging og forhåndsproduksjonsmiljøer, lenge før den når brukerne i produksjon. Å avdekke feil tidlig forhindrer at brukerne ser feil, og øker kundetilliten og den generelle tilfredsheten med et merke og dets produkter.

Det er imidlertid ikke enkelt å avdekke alle feil under utvikling og staging. Engineering- og QA-team kan bruke mye tid og ressurser på å bygge enhetstester, testsuiter og testautomatiseringssystemer, forsøke å simulere produksjonsmiljøet, eller manuelt verifisere brukerflyt med testdata og testtilfeller for å forsøke å avdekke feil – bare for å oppdage at et viktig grensetilfelle ble oversett. Til syvende og sist kan mange brukere oppleve feilbeheftet programvare selv etter at mye tid er brukt på testing under utvikling.

I mange tilfeller er det umulig å fullstendig simulere live, virkelighetsnær programvare i et testmiljø. Med alle avhengighetene som finnes i moderne produksjonssystemer og de mange mulige grensetilfellene, har produksjonstesting blitt en nødvendig del av DevOps og programvaretesting. Ledende programvareselskaper som Google, Netflix og Amazon lanserer kontinuerlig nye funksjoner til en brøkdel av trafikken sin for å måle effekten.

Produksjonstesting og feature flags

Med fremveksten av feature flags (også kjent som feature toggles og feature rollouts) som lar engineering-team eksponere ny programvare for kun deler av den live produksjonstrafikken, kan selskaper plassere eksperimentelle eller nye funksjoner foran en liten del av produksjonstrafikken for raskt å verifisere at programvaren fungerer som forventet i sanntid, mens de har en sikker måte å rulle tilbake eventuelle uoppdagede feil ved hjelp av en feature flag-bryter eller tilbakestilling.

Å kjøre tester i produksjon via utrullinger eller feature flags gjør det mulig å ta hensyn til alle produktdata, avhengigheter og grensetilfeller i omfattende integrasjonstester. Det å ha virkelige data kan være spesielt verdifullt ved ytelsestesting eller lasttesting.

Feature flag-verktøy har også den ekstra fordelen at de muliggjør A/B-testing, der den nye funksjonen sammenlignes med den forrige versjonen av programvaren for å se hvilken som gir en bedre brukeropplevelse basert på produksjonsdata. Dette gjør at programvareingeniører ikke bare kan sikre at deres nye funksjoner er feilfrie, men også bruke reelle data for å validere at endringen faktisk forbedrer den samlede programvareopplevelsen.

Hvis teamet ditt ønsker å kjøre tester i produksjon, tilbyr Optimizely gratis feature flagging ubegrenset gratis feature flags og utrullinger bygget på en plattform av bedriftskvalitet.