Enhedstest, integrationstest, UAT
It A · STX · A-niveau · Systemudvikling og DevOps
💻 Enhedstest, integrationstest, UAT
Test-pyramiden (Mike Cohn 2009): Mange enhedstest (unit tests) → færre integrationstest → endnu færre E2E (end-to-end) tests → få brugbarhedstests (UAT).
Unit test (enhedstest): tester ÉN funktion eller klasse i isolation. Hurtige (millisekunder). Mange tests (1.000+). Bruger mocks for afhængigheder.
Eksempler — Python pytest: def test_add(): assert add(2, 3) == 5.
JavaScript Jest: test('adds 1+2 to equal 3', () => { expect(sum(1, 2)).toBe(3); }).
Java JUnit: @Test public void testAdd() { assertEquals(5, calculator.add(2, 3)); }.
Test-Driven Development (TDD): Red-Green-Refactor. Skriv test først (fejler — rød). Skriv kode der består (grøn). Forbedr kode (refactor). Kent Beck pioner.
Integrationstest: tester at MULTIPLE komponenter arbejder sammen. Eksempel: API-endpoint kalder database korrekt. Langsomere end unit (sekunder). Færre tests. Brug rigtige databaser (test-instans).
End-to-End test (E2E): tester hele systemet fra brugerens perspektiv. Cypress, Playwright, Selenium. Eksempel: "log ind → navigér til side → klik knap → bekræft resultat". Langsomste (minutter). Færreste tests.
UAT (User Acceptance Testing): rigtige brugere tester før produktions-deployment. Verificerer at systemet opfylder forretningskrav. Sker typisk i staging-miljø.
Test coverage: % af kode dækket af tests. Mål 70-80% er typisk. Tools: Coverage.py (Python), Jest coverage.
Performance test: belastningstest (load testing — JMeter, k6). Hvor mange bruge
Læringsmål
- Redegøre for forskellen mellem enhedstest, integrationstest og UAT
- Skrive en enhedstest for en funktion
- Vurdere hvilken testtype der er relevant i en given situation
Sådan kan du arbejde med emnet
- Skriv enhedstests for en simpel lommeregner-klasse med pytest og dæk alle fire operationer
- Forklar, hvad der adskiller enhedstest, integrationstest og end-to-end-test
- Diskutér, hvad et godt testdækningsniveau er, og om 100% dækning er et fornuftigt mål
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis