hvad vi lærer på dette indlæg

test af programmer er processen med at kontrollere programmer for fejl. Det er ikke kun afgørende for et produkts succes, men også for selve udviklingsprocessen. Det kan dog være udfordrende for mange mennesker, fordi programmelprøvning kræver forskellige færdigheder og teknikker end andre områder af programmeludvikling som kodning eller analyse. Denne artikel vil dække, hvordan vi nærmer os test af programmer i sammenhæng med vores teststrategi, og hvordan vi følger op på testresultater.

har du nogensinde spekuleret på, om det er nødvendigt at teste programmet igen? Det gør jeg! Vi ved alle, at omkostningerne ved udvikling af programmer kan være høje. Hvad vi ikke ved, er, hvor ofte vi skal teste vores kode igen for at sikre, at den stadig fungerer. Nå, denne artikel vil forklare begrebet retesting i test af programmer og vil give et par grunde til, at test af din kode efter hver udgivelse måske ikke er sådan en dårlig ide.

Hvad er Retesting?

Retesting er den overordnede proces med at teste noget (i dette tilfælde program) igen for at sikre, at alt fungerer som forventet, og en god en til at bruge, hvis du ønsker at identificere problemer med et program eller computersystem. Det kan bruges på forskellige måder under programudviklingscyklussen, men det er ofte mest nyttigt, når det kommer til fejlrettelse.

test af dit program efter hver udgivelse er meget almindeligt i verden af programudvikling. Dette er dog muligvis ikke nødvendigt for alle – især hvis du arbejder på et lille projekt eller med enkle kodebaser. Når alt kommer til alt er det i de fleste tilfælde ret ligetil at rette fejl og forbedre eksisterende funktioner uden stor indsats involveret: skriv blot nye testsager, der verificerer den korrekte opførsel af nyligt implementeret funktionalitet og sørg for, at de passerer!

der kan dog være tidspunkter, hvor nogle testaktiviteter kræver mere tid end bare at skrive nye tests (og endda rette dem senere). Disse situationer inkluderer fejlrettelser udført af et teammedlem, der endnu ikke er bekendt med kodebasen eller nye funktioner, der kræver omfattende test og dokumentation.

Hvornår Skal Du Bruge Retesting?

så hvordan beslutter vi, hvornår der er behov for gentest? Først og fremmest afhænger det af din projektstørrelse (og hvilke elementer der er værd at teste). For eksempel: hvis du har en stor produktlinje spredt over flere produkter, skal gentestning være en del af din almindelige proces, fordi hver udgivelse kan påvirke andre dele af systemet på forskellige måder.

overvej også, at hver Rettet fejl vil føre til, at der oprettes yderligere tests af udviklere – hvilket betyder, at de kan bruge mere tid på at skrive testsager end at rette fejl. Desuden er der situationer, hvor selvom du er sikker på din kodebase, er det stadig nødvendigt at teste nogle dele af systemet igen efter hver udgivelse.

for eksempel: ny funktionalitet kan introducere uoverensstemmelser og uventede adfærd, der kan være vanskelige at opdage i starten, medmindre de bliver synlige under test eller på brugernes feedback (og dette bør være en regelmæssig del af din kvalitetssikringsproces). Overvej også tilfælde, hvor testautomatisering endnu ikke er implementeret – disse tests viser kun problemer, efter at den ekstra indsats er lagt i at få dem til at passere igen!

i sådanne situationer er det en god ide at opretholde skepsis over nyligt introducerede fejl-hvorfor skal vi stole på vores kodebase, hvis det allerede er bevist, at test kan være upålidelig?

Best Practices if Retesting

hvad er de bedste fremgangsmåder, når man beslutter, om man skal prøve igen, og hvordan gør man det?

her er nogle retningslinjer:

  • hver gang du begår en fejlrettelse, skal du medtage nok information om situationen, hvor problemet blev introduceret, så folk kan gengive det og teste igen. Hvis dit KVALITETSSIKRINGSTEAM har mere end et par øjne, der arbejder på et problem, kan de ofte gøre dette hurtigere end udvikling (faktisk skal du ikke glemme, at udviklere har deres eget ansvar – vigtigst af alt at lære af fejl og rette fejl). Også, tjek supportfora på tidspunkter, hvor der er færre ting, der foregår i dem.
  • når du udvikler nye eller gamle funktioner, skal du sørge for, at alle test passerer før udgivelsen er klar til test af KVALITETSSIKRINGSTEAMET. Hvis de ikke gør det-Bed dit KVALITETSSIKRINGSTEAM om at teste dem og sørge for, at fejlene er rettet, skal du huske, at selvom det er muligt for dig selv at rette en fejl (ved hjælp af automatiserede tests eller manuel test), er der altid en chance for at lave fejl, mens du gør det.
  • når du udvikler den nye version af en eksisterende funktion, skal du prøve at inkludere så mange regressionstest som muligt i din kodebase – dette vil i det mindste reducere risici forbundet med fastsættelse af regressioner forårsaget af ændringer foretaget under udviklingen af andre funktioner oven på den.
  • når du frigiver en betaversion af produktet, skal du sørge for, at det er fuldt funktionelt, og at alle fejl er rettet (dette er især vigtigt for fejlrettelser foretaget under udvikling eller test oven på denne nye funktion).
  • når du frigiver stabile versioner, skal du sørge for, at alle fejl er rettet. Dette er især vigtigt for fejlrettelser foretaget under udviklingen af andre funktioner oven på den frigivne funktion – hvis de ikke var inkluderet i deres tilsvarende udgivelser, så når folk prøver at bruge disse nye versioner, kan de støde på problemer forårsaget af disse ændringer. Hvis der stadig er nogle resterende problemer, skal du sørge for, at de er rettet så hurtigt som muligt.

Retesting vs regressionstest

for det første er retesting og regressionstest begge typer validering af programmer, du kan vælge at udføre under din udviklingsproces. De er dog ikke de samme: retesting sker i slutningen af en bestemt fase af arbejdet, ofte når du har et arbejdsprodukt, men skal sørge for, at det ikke stadig er fyldt med fejl eller fejl fra tidlig test. Regressionstest er en type programvalidering, der udføres på forskellige punkter i hele udviklingsprocessen for at sikre, at visse aspekter af din kode fungerer korrekt.

i nogle tilfælde kan genprøvning udføres ved blot at læse tidligere testresultater eller rapporter og kontrollere eventuelle problemer, du ved, er rettet. Hvis du vil have endnu mere grundige resultater, kan du tjekke tidligere problemer en efter en for at sikre, at de er blevet taget hånd om. En IT-tester kan endda gå så langt som at teste dele af programmet, der aldrig blev testet før.

i andre situationer kan regressionstest udføres ved at tage en testplan og køre den på hver version eller opdatering af din applikation, begyndende med den seneste. På denne måde kan du sikre dig, at hver ændring i din applikation testes tilstrækkeligt.

et ord om Duplicate Testing med retesting kommer muligheden for duplicate testing. Dette sker, når nogen tester et element i dit program og finder et problem med det, men så gøres der intet for at rette det eller sørge for, at det ikke sker igen. For at sikre, at dette ikke sker, kan du oprette en database eller tjekliste over problemer fra tidligere test, så testere nemt kan bruge den til at undgå duplikattest.

det er en god ide at have en form for dokumentation på plads for hvert programprodukt, du arbejder på; hvis folk tester ældre produkter igen, kan du bede dem om at gennemgå den originale dokumentation og opdatere den med eventuelle ændringer, de finder.

et af de vigtigste aspekter ved genprøvning er at holde styr på, hvad problemerne var, hvordan de blev fundet, og hvad der blev gjort for at rette dem. Hvis et problem ikke er løst, men i stedet oprettes nye problemer ved at løse et andet problem, vil det være svært for dig eller dit team at vide, hvad der gik galt.

selvom retesting kan være tidskrævende, er det en meget vigtig del af programvalidering og er især nyttig, når den bruges sammen med andre testteknikker. Så længe de problemer, der blev fundet under retest, løses, kan du fortsætte med at prøve igen på ældre produkter for at sikre, at dit seneste arbejde ikke har forårsaget nogen problemer.