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:
| Tid | Aktivitet |
|---|---|
| 10.15 | Gemensam genomgång av uppgifter och frågor |
| 11.00–12.00 | Kalmarstudenter arbetar med lärare på campus |
| 13.00–14.00 | Distansstudenter arbetar med lärare via Zoom |
| 14.00–16.00 | Gemensam 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är | Aktivitet |
|---|---|
| Vecka 46–48 | Kom igång med enhetstestning och Assignment 1 |
| 4 december 2026, kl. 16.00 | Senast visa val av open source-projekt och forskningsartikel |
| Vecka 51 | Seminarium om agentisk testning för Kalmar och distans |
| Januari 2027 | Presentationer av Assignment 2 och 3 |
| Vecka 3, 2027 | Sluttentamen 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.