Lars Thorup: Lynhurtige End-to-End Tests

Se video

Oplægget er optaget på Faglig Fredag hos Lund&Bendsen A/S, den 21/08-2020

Automatiserede end-to-end tests bliver ofte anset for et nødvendigt onde. Et eksempel på denne type test er Selenium-baserede browser tests.

Denne type tests har mange ulemper:
– de tager lang tid at køre,
– de kræver kompliceret opsætning af eksterne services som fx database, webserver, servicebus, 3. parts services, etc
– de er skrøbelige, idet de ofte melder ikke-reproducerbare fejl. Men det behøver ikke være sådan!

I mit oplæg vil jeg fortælle om en måde at skrive automatiserede end-to-end tests, som er
– lynhurtige
– ikke kræver mere opsætning end unit tests
– er lige så robuste som unit tests

Teknikken bygger oven på de eksisterende unit tests. Tests for lavere lag (for eksempel server kode) instrumenteres, så alle kald og returværdier opfanges og gemmes. Tests for højere lag (for eksempel klientkode) bliver udstyret med et stub lag som automatisk konfigureres med de tidligere gemte kald og returværdier.

Kom og se eksempler på, hvordan denne teknik kan implementeres, bl.a. ved hjælp af værktøjerne Hoverfly (Java) og PollyJS (JavaScript), og se hvor mange end-to-end tests det er muligt at køre per sekund!