Introduktion till testning

Introduktion till testning i Java

Maria Milusheva

Senior Software Engineer

Vad är testning?

Mjukvarutestning:

  • Processen att utvärdera mjukvara för att avgöra om den uppfyller specificerade krav

Testning kan vara:

  • Manuell – nödvändig men begränsad och mindre tillförlitlig
  • Automatiserad – ett kraftfullt sätt att köra hundratals tester på sekunder

Vi använder JUnit 5 för automatiserad testning

Grafik av en programmerare

Introduktion till testning i Java

Gränsfall

"If it's not tested, it's broken."$^1$

Gränsfall – indata eller villkor som befinner sig i utkanten av vad som anses typiskt eller förväntat

Exempel: variabler vid maxkapacitet, null- eller tomma variabler, negativa värden

Grafik som symboliserar ett test

1 Citat ursprungligen av Bruce Eckel
Introduktion till testning i Java

Exempel på oväntat beteende vid ett gränsfall

Ta en titt på följande kod:

public int addTwoNumbers(int a, int b) {
    return a + b;
}

⚠ Tänk på indatan 2147483647 (heltalets maxvärde) och 1

➡ Resultatet är -2147483648 (heltalets minvärde)

Introduktion till testning i Java

Kom ihåg: Variabelstorlekar – primitiver har begränsad storlek

Tabell som sammanfattar primitiva typer – byte, short, int, long, float, double, char och boolean

Introduktion till testning i Java

Exempel: Ariane 5-uppskjutningen

Ariane 5-raketens jungfruflygning 1996:

  • Mer än 8 års utveckling
  • Kostade över 370 miljoner dollar
  • Exploderade 37 sekunder efter uppskjutningen
  • Explosionen orsakades av ett programvarufel: short-spill

Europeiska rymdorganisationens Ariane 5-raket under uppskjutning.

Introduktion till testning i Java

Fördelar med testning

  • Skyddar mot gränsfallsbuggar
  • Ger bättre förståelse för projektet och dess krav
  • Påskyndar utvecklingen på sikt
  • Automatiserar kontroll av krav
  • Skyddar mot mänskliga misstag

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Introduktion till testning i Java

Nu kör vi en övning!

Introduktion till testning i Java

Preparing Video For Download...