Week 1 (46) Course introduction Summary

Kursintroduktion – Mjukvarutestning (1DV609)

This is an AI generated summary from the transcription.

Om kursen

Kursen ger en introduktion till mjukvarutestning med fokus på att planera, genomföra, automatisera och utvärdera testning.

Vi arbetar bland annat med enhetstestning, testdriven utveckling (TDD), systemtestning och forskningslitteratur inom mjukvarutestning.

Ett nytt inslag i årets kurs är agentisk testning, där vi undersöker hur AI-agenter kan användas för att utveckla och testa programvara. En central fråga är hur vi kan avgöra om den kod och de tester som en agent producerar faktiskt fungerar och går att lita på.

Kursen betonar både praktiska färdigheter och förmågan att kritiskt utvärdera testningens kvalitet.

Kursmaterial och kommunikation

Kurshemsidan på CoursePress är den huvudsakliga platsen för kursmaterial. Där finns veckoguider med föreläsningar, inspelningar, läsanvisningar, uppgifter och annat material.

Varje vecka har en egen guide. Studenterna förväntas följa den och ta del av materialet, även sådant som inte behandlas under de schemalagda föreläsningarna.

Zulip är kursens huvudsakliga kommunikationskanal. Där publiceras viktig information, förändringar och meddelanden om undervisningen. Studenterna förväntas läsa informationen regelbundet och i första hand ställa frågor om uppgifter i kursens öppna kanal.

Schemat används för att hitta laborationer, föreläsningar, examinationer och deadlines.

Examinationer

Kursen har tre uppgifter (assignments) och en avslutande tentamen. Alla delar måste vara godkända för att studenten ska bli godkänd på kursen.

Assignment 1 – Enhetstestning och agentisk testning

Uppgiften består av två delar.

Del 1 – Enhetstestning

Studenten väljer mellan två alternativ:

  • Alternativ 1: Fokus på enhetstester, mockning och kodtäckning. Kan ge högst betyget D.
  • Alternativ 2: Ett mer omfattande projekt med testdriven utveckling (TDD), som möjliggör högre betyg, upp till A.

Alternativ 2 kräver mer tid och rekommenderas framför allt för studenter som vill fördjupa sina kunskaper i enhetstestning och TDD. Det går bra att börja med alternativ 1 för att bygga upp kunskaperna och sedan fortsätta med alternativ 2.

Del 2 – Agentisk testning

Denna del är obligatorisk för alla studenter.

Vi använder PromptLab för att låta AI-agenter utföra testning och undersöker hur vi kan bedöma kvaliteten på agenternas arbete.

Arbetet avslutas med ett seminarium där vi diskuterar erfarenheter, testernas tillförlitlighet och metoder för att verifiera AI-genererade resultat.

Assignment 2 – Systemtestning

Studenterna arbetar med ett befintligt open source-projekt och genomför systematisk testning.

Arbetet omfattar att:

  • Undersöka projektets befintliga teststrategi.
  • Planera och genomföra egna tester.
  • Dokumentera och rapportera testresultat.
  • Föreslå förbättringar av testningen.

Uppgiften genomförs i grupp och presenteras under en workshop i januari.

Assignment 3 – Forskningsartikel

Studenterna arbetar med vetenskaplig litteratur inom mjukvarutestning.

Uppgiften innebär att:

  • Söka efter och välja en vetenskapligt granskad artikel.
  • Läsa och förstå artikelns innehåll.
  • Kritiskt granska dess metod, resultat och trovärdighet.
  • Presentera och diskutera slutsatserna vid ett seminarium i januari.

Tentamen

Den avslutande tentamen behandlar kurslitteraturen och föreläsningarnas innehåll, med särskilt fokus på grundläggande begrepp, principer och förståelse för mjukvarutestning.

Laborationer och examination under arbetets gång

En viktig förändring är att examinationen inte längre enbart kan baseras på färdiga inlämningar.

Lärarna behöver observera studenternas arbete och diskutera deras lösningar under laborationerna. Det räcker därför inte att arbeta hemma och sedan lämna in en färdig lösning.

För studenter i Kalmar och på distans gäller följande upplägg på laborationsdagarna:

TidAktivitet
10.15Gemensam genomgång av uppgifter och frågor
11.00–12.00Kalmarstudenter arbetar med lärare på campus
13.00–14.00Distansstudenter arbetar med lärare via Zoom
14.00–16.00Gemensam fortsatt arbetstid, frivillig enligt introduktionen

Närvaro och aktivt arbete under de tilldelade laborationspassen är viktigt för examinationen.

Lärarna följer studenternas utveckling, diskuterar problem och bedömer deras färdigheter under arbetets gång. Studenterna uppmuntras att ställa frågor och diskutera sina lösningar eftersom detta också är ett sätt att visa sina kunskaper.

För TDD-alternativet i Assignment 1 tillkommer en individuell muntlig examination som bokas separat.

Planering och viktiga datum

Det är klokt att påbörja Assignment 1 direkt och försöka bli klar med alternativ 1 under kursens första tre veckor. De senare veckorna innehåller flera parallella uppgifter.

NärAktivitet
Vecka 46–48Kom igång med enhetstestning och Assignment 1
4 december 2026, kl. 16.00Senast visa val av open source-projekt och forskningsartikel
Vecka 51Seminarium om agentisk testning för Kalmar och distans
Januari 2027Presentationer av Assignment 2 och 3
Vecka 3, 2027Sluttentamen enligt veckoguiden

Exakta examinationstider och eventuella ändringar framgår av schemat och Zulip.

Kurslitteratur

Developer Testing: Building Quality into Software – Alexander Tarlinder

Kursens huvudbok, som ger en grund i mjukvarutestning. Föreläsningarna täcker inte hela boken, så självständig läsning är viktig.

Vi börjar med kapitel 7–10 eftersom enhetstestning behövs tidigt i laborationerna.

Test-Driven Development: By Example – Kent Beck

Rekommenderas särskilt för studenter som väljer TDD-alternativet i Assignment 1. Den är inte obligatorisk för övriga studenter.

Det viktigaste att ta med sig

Kursen handlar inte bara om att lära sig skriva tester. Det handlar också om att förstå vad som gör ett test värdefullt, vilka fel det kan upptäcka och hur vi bedömer om testningen ger tillräcklig trygghet.

Det blir särskilt viktigt när AI-agenter kan producera stora mängder kod och tester.

Att en agent säger att något fungerar är inte tillräckligt. Vi måste själva kunna granska och värdera bevisen.