Gå til innholdet

Forbered en release med databaseendring

Å rulle tilbake koden gjør den ikke automatisk kompatibel med en endret database. Et fullstendig testtilfelle viser hva som må kontrolleres ved bytte og retur.

Philipp Reuter2 min lesetid
Programvarekontakt med fiolette detaljer og kodesymbol samt to separate ringer med ulikt formede utsparinger.

En release endrer noen ganger både applikasjon og database. Returveien må derfor omfatte mer enn den forrige programversjonen. Noter hvilken kombinasjon av kode, konfigurasjon og datastruktur som fungerer sammen.

Det hypotetiske portaleksemplet nedenfor er et planlagt testtilfelle. Det beskriver ingen endring av en virkelig kundedatabase.

Test returen mot samme datatilstand

Den eksisterende applikasjonen V1 leser kundenavn fra customer_name. Den nye applikasjonen V2 skal i stedet lese display_name. I den opprinnelige planen fjernes den gamle kolonnen. Deretter starter ikke den nye applikasjonen på grunn av manglende konfigurasjon.

Trinn

Database etter trinnet

Resultat i eksemplet

Før byttet

Gammel navnekolonne finnes

Eksisterende applikasjon fungerer

Etter den planlagte endringen

Bare den nye navnekolonnen finnes

Ny applikasjon starter ikke på grunn av konfigurasjonen

Rull ut bare den gamle koden igjen

Fortsatt bare den nye navnekolonnen

Gammel applikasjon finner ikke forventet kolonne

Å rulle ut gammel kode igjen gjenoppretter ikke datastrukturen. En rollbackknapp i verktøyet løser ikke selv denne uforenligheten.

Planlegg en kompatibel overgang

Et mulig alternativ er trinnvis: Behold først den gamle kolonnen og legg til den nye. Eksisterende verdier overføres sporbart. Teamet fastsetter hvilket felt som er styrende, og hvordan endringer holdes konsistente under overgangen.

Test begge applikasjonsversjonene mot mellomtilstanden i et separat miljø. Endre et navn og les det riktig tilbake gjennom begge versjonene. En engangskopiering er ikke nok hvis senere verdier bare skrives i ett felt.

Planlegg fjerningen av det gamle feltet først når overgangen er bekreftet og gammel versjon ikke lenger trengs som returvei. Da endres igjen hvilke eldre versjoner som kan brukes. Trinnet trenger sin egen beslutning.

Ta med data etter byttet

En eldre sikkerhetskopi kan inneholde den tidligere strukturen. Hvis nye bestillinger er mottatt i mellomtiden, kan de mangle i kopien. Gjenoppretting må ikke forkaste dem ubemerket. Hvilke data som kommer til, og hvordan de avstemmes, hører til gjenopprettingsplanen.

Avhengig av endringen kan et planlagt vedlikeholdsvindu eller en målrettet rettelse av den nye versjonen passe bedre. Den trinnvise overgangen er ikke et generelt løfte om oppdatering uten avbrudd.

Registrer prøvens resultat

Dokumenter testet versjon, konfigurasjon, datatilstand og hvem som bestemmer ved feil. Følg i test en bestilling frem til bekreftelse i målet, og spill deretter gjennom returen. Noter bevarte data og begrensninger.

Da blir det synlig før produksjonsbyttet om den planlagte returen faktisk passer til applikasjonen og dataene.

Kilder

Skrevet av

  • Philipp ReuterRedaktør for programvarekvalitetPhilipp Reuter skriver om programvaretesting og forberedelse av nye versjoner hos ASES. Artiklene hans handler om feilanalyse, akseptansetester og kontroll av endringer i eksisterende applikasjoner.

Følg ASES

Les videre

Alle artikler

Sky og drift med ASES

Hosting, utrulling, vedlikehold og oppfølging