# Bygde en lagdelt automatisert testsuite — 981 Go‑tester, 543 spesifikasjoner for frontend og nettleser, 494 atferdstester i SQL — med mutasjonstesting, egenskapsbaserte tester og en kvalitetsport for universell utforming.

2025

**Situasjon.** En plattform som har forretningslogikken sin i databasen, har et testproblem de fleste prosjekter ikke har. Logikken ligger ikke i språket testrammeverket er godt på — den ligger i SQL, bak funksjonsgrenser, og SQL er nettopp den typen kode som forblir utestet fordi det er klønete å teste den. Legg et Go‑API og en Next.js‑frontend oppå det, så blir «de viktige delene er dekket» stille og rolig til «de delene som var lette å dekke, er dekket».

**Oppgave.** Hvert lag måtte få oppførselen sin kontrollert der oppførselen faktisk hører hjemme, i stedet for at alt ble kontrollert utenfra gjennom en nettleser.

**Handling.** Fire lag fikk fire typer tester. Go‑API‑et har 981 testfunksjoner fordelt på 310 filer. Frontenden har 543 Vitest- og Playwright‑spesifikasjoner, inkludert 48 ende‑til‑ende‑filer og 30 nettleserspesifikasjoner. Databasen har 494 atferdstestfiler — 116 876 linjer SQL som gjør påstander gjennom 6 654 utløste unntak — slik at en lagret funksjon testes i databasen i stedet for gjennom tre lag med applikasjon over den. Over disse ligger testene som tester testene: Stryker‑mutasjonstesting ødelegger med vilje en linje og feiler når ingenting merker det, og fast‑check genererer inndata ingen tenkte på å skrive ned. En kvalitetsport med axe‑core krever null brudd på WCAG 2.0 og 2.1 nivå A og AA, noe som gjør brudd på universell utforming til en byggfeil i stedet for et revisjonsfunn måneder senere. Tersklene for testdekning flyttes bare oppover. Hele testsuiten kjører som 10 jobber i en arbeidsflyt på 612 linjer.

**Resultat.** Å endre noe strukturelt sluttet å være skremmende, og det er det eneste som hindrer en kodebase av denne størrelsen i å forkalkes. Den ærlige kostnaden er tid — testsuiten er treg, den legger en avgift på hver endring, og i denne størrelsen trenger den eget vedlikehold. Det den kjøper, er evnen til å fortsette å bevege seg raskt, og det er verdt mer enn minuttene den tar.

---

- Rolle: Test- og kvalitetsingeniør
- Kategorier: [Backend‑utvikling](https://platform.engineer.company/nb/categories/backend/), [Frontend‑utvikling](https://platform.engineer.company/nb/categories/frontend/), [PostgreSQL](https://platform.engineer.company/nb/categories/postgresql/), [DevOps](https://platform.engineer.company/nb/categories/devops/), [Automatisering og CI/CD](https://platform.engineer.company/nb/categories/automation/), [Pålitelighet og sikkerhetskopier](https://platform.engineer.company/nb/categories/reliability/), [Testing og kvalitetssikring](https://platform.engineer.company/nb/categories/testing/)
- Tjenester: [Backend- og API‑utvikling](https://platform.engineer.company/nb/services/backend-development/), [DevOps og CI/CD‑automatisering](https://platform.engineer.company/nb/services/devops-cicd/), [Teknisk ledelse og rådgivning](https://platform.engineer.company/nb/services/technical-leadership/)

<https://platform.engineer.company/nb/portfolio/built-a-layered-automated-test-suite-across-four-layers-94/>
