Hvis du nogensinde har skullet spore en fejl i din kode, så ved du, hvor frustrerende det kan blive. Denne frustration øges kun, hvis du arbejder på en stor kodebase.

Test giver dig mulighed for at kontrollere, om resultaterne af din kode svarer til dine forventninger. På denne måde kan du nemt identificere og løse et problem, før du implementerer din applikation. Udover at hjælpe dig med at opdage kodefejl hurtigere, tvinger test dig også til at skrive god kode.

1. Statisk test

Statisk test refererer til test, der kører uden at udføre kode. Dette sker ved at sammenligne koden med tidligere fastsatte kodningsregler. De almindelige måder at udføre statisk test på inkluderer fnug og typekontrol.

Linting involverer kontrol af koden for programmerings- og stilistiske fejl. En linter analyserer koden og markerer potentielle fejl. Eksempler på fnugværktøjer er EsLint, PyLint og CSSLint.

Typekontrol er processen med at håndhæve indtastningsregler og begrænsninger på værdier. Nogle programmeringssprog er stærkt indtastede, hvilket betyder, at de giver fejl, når værdierne ikke er velskrevne.

instagram viewer

Men nogle sprog som JavaScript har et svagt skrivesystem og er mere tilgivende. På disse sprog er fejl svære at fange, og et typekontrolbibliotek er afgørende. For JavaScript kan du brug TypeScript til at gennemtvinge stærk skrivning.

Du kan også bruge statiske analyseværktøjer til at analysere kode automatisk. Disse værktøjer verificerer kodekvaliteten og rapporterer om eventuelle problemer, de finder. Eksempler på statiske analyseværktøjer på markedet er SonarQube, DeepSource og SpotBugs. Når du vælger en statisk analysator, skal du sikre dig, at den understøtter dit programmeringssprog.

2. Enhedstests

Enhedstest kontrollerer de mindste testbare dele af en applikation for at afgøre, om de fungerer som forventet. Du kan skrive enhedstests for funktioner, moduler, objekter mv.

Selvom enhedstest kan være tidskrævende, burde de spare mere tid, end du ville bruge fejlretning af applikationen efter du har skrevet al koden.

Generelt består enhedstest af fire trin:

  • Oprettelse af testene
  • Gennemgang af testen
  • Baselining
  • Udførelse af testen.

Du kan skrive enhedstest manuelt eller automatisere dem ved hjælp af en enhedstestramme. I en manuel test ville du skrive kode for at teste den funktion eller enhed, du har brug for, og senere slette testkoden.

Hvis du bruger en ramme, skal du angive den enhed, du tester, og de forventede resultater, og derefter køre testen. Testrammen vil derefter logge de manglende og beståede prøver. Det er generelt bedre at bruge et framework, fordi det er hurtigere.

Når du skriver en enhedstest, skal du sikre dig, at den enhed, du tester, er uafhængig. Hvis den er afhængig af eksterne data som variabler, kan du bruge mocks. Spot erstatter de manglende data, der bruges i enheden.

For eksempel, hvis du tester en funktion, der er afhængig af data hentet fra en API, kan du oprette et falsk dataobjekt til testformål.

3. Integrationstest

Integrationstests kontrollerer, hvordan forskellige komponenter fungerer sammen. Dette er i modsætning til enhedstests, der tester uafhængige komponenter. Du skriver integrationstest efter enhedstest.

Integrationstest er afgørende, da de sikrer, at din applikationslogik holder.

Overvej for eksempel to moduler: et, der henter data fra en API, og et andet, der analyserer det. Du vil gerne sikre dig, at din kode hentede de korrekte data og analyserede dem korrekt.

Det er her integrationstest kommer ind. Det sikrer ingen fejl i det logiske flow fra det ene modul til det andet.

4. End-to-end tests

End-to-end test kontrollerer applikationsflowet fra slutbrugerens perspektiv. Processen tester applikationen fra start til slut, da brugeren vil bruge applikationen. Disse tests giver mere dækning end enhedstests eller integrationstests.

End-to-end-tests definerer applikationens afhængigheder, databaser og ekstern kommunikation. De kopierer et scenarie i den virkelige verden så præcist som muligt.

For eksempel, når du tester en tilmeldingsformular, vil en ende-til-ende-test teste forskellige scenarier som:

  • En bruger, der indsender både e-mail og adgangskode
  • En bruger, der bruger en svag adgangskode
  • En bruger, der bruger en ugyldig e-mail
  • En bruger, der kun sender en e-mail
  • En bruger, der kun indsender en adgangskode

End-to-end-testene sikrer, at applikationen opfører sig som forventet i disse scenarier.

At skrive test vs. Skrive kode

Det er vigtigt at teste din ansøgning tidligt i udviklingsprocessen. Selvom alle disse tests er vigtige, er det vigtigt at finde en balance, der virker for dig. Ellers vil du bruge for meget tid på at skrive test i stedet for kode.

Enhedstest er afgørende for de fleste applikationer, og du vil måske bruge nok tid til det. Når du har udført enhedstest, kan du være sikker på, at byggestenene i din applikation fungerer korrekt.