pipeline stagePASS

Test Automation

Automatiserede teststrategier i CI/CD-pipelines fra unit tests til end-to-end tests.

Automatiserede tests der kører med grønne checkmarks på en monitor
Foto: Headway / Unsplash

Automatiseret testning er rygraden i en pålidelig CI/CD-pipeline. Uden tests er Continuous Delivery en illusion, da der ikke er nogen garanti for at kode virker korrekt. En veldesignet teststrategi balancerer hastighed, dækning og vedligeholdelsesomkostninger.

Testpyramiden beskriver forholdet mellem testtyper. Bunden er unit tests: hurtige, isolerede tests af individuelle funktioner og klasser. De udgør typisk 70-80% af alle tests. Midten er integration tests: tests der verificerer samspillet mellem komponenter, databaser og eksterne services. Toppen er end-to-end tests: langsomme men realistiske tests der simulerer brugerflows.

I en CI/CD-pipeline struktureres tests typisk i faser. Unit tests og linting kører først (sekunder til minutter). Integration tests kører derefter med testdatabaser og mock-services (minutter). End-to-end tests kører sidst, ofte i et staging-miljø (minutter til timer). Hurtige tests giver hurtig feedback, langsomme tests giver dybere sikkerhed.

Code coverage måler, hvor stor en del af koden der testes. 80% coverage er et udbredt mål, men kvaliteten af tests er vigtigere end kvantiteten. 100% coverage med dårlige assertions giver falsk tryghed. Mutation testing (med tools som Stryker eller PIT) tester testenes kvalitet ved at indføre fejl og verificere at tests fanger dem.

Flaky tests (tests der fejler intermittent) er en alvorlig trussel mod CI/CD. De underminerer tilliden til test-suiten og fører til at teams ignorerer fejl. Strategier mod flaky tests inkluderer: isolation af test-state, deterministisk test-data, retry-mekanismer med logging, og dedikerede sprints til test-stabilisering.

video // Test Automation strategier