Lektionsplanering
Årskurs: Gymnasiet
Ämne: Programmering 1
Tema: Tester och kvalitetssäkring
Koppling till styrdokument
Lektionsplaneringen avser att täcka centrala innehållsområden kring vikten av tester och kvalitetssäkring i programmering, inklusive enheter av tester, testmetoder och hur man arbetar med testdriven utveckling (TDD).
Kunskapskrav
Eleven kan beskriva och tillämpa grunderna i testning av programvara samt utföra olika typer av tester för att säkerställa programkvalitet.
Lärarledda instruktioner
Introduktion till tester (10 min)
- Definiera vad tester är och varför de är viktiga i programutveckling.
- Diskutera hur tester kan bidra till att hitta och åtgärda buggar.
- Presentera de olika typerna av tester (enhetstester, integrationstester, systemtester).
Enhetstester (15 min)
- Förklara vad enhetstester är och hur de används för att testa individuella komponenter.
- Visa exempel på hur man skriver enhetstester för en funktion i ett programmeringsspråk.
- Diskutera verktyg och ramverk som stödjer enhetstestning (t.ex. JUnit, NUnit).
Testdriven utveckling (TDD) (10 min)
- Introducera konceptet testdriven utveckling och dess fördelar.
- Gå igenom stegen i TDD-processen: skriva test, implementera kod, refaktorera.
- Visa exempel på hur en TDD-cykel fungerar.
Integrationstester och systemtester (10 min)
- Förklara skillnaden mellan integrationstester och systemtester.
- Diskutera hur och när dessa tester används i utvecklingsprocessen.
- Ge exempel på hur man kan skriva integrationstester för att verifiera samverkan mellan olika systemkomponenter.
Reflektion kring kvalitetssäkring (5 min)
- Avsluta med en diskussion om hur testning och kvalitetssäkring kan förbättra programvara och underlätta framtida underhåll.
- Ställ frågor som: Hur kan man säkerställa en hög kvalitet på sin kod?
Aktivitet
Eleverna kommer att arbeta i par för att utveckla en enkel funktion och skriva tillhörande enhetstester för den. De ska använda ett testverktyg för att köra testerna och dokumentera resultaten. Användaren kan skriva “Aktivitet” så tar jag fram en fullständig aktivitetsbeskrivning.
Exit-ticket
- Vad är syftet med tester i programvara?
- Att identifiera och åtgärda buggar samt att säkerställa programkvalitet.
- Vad kännetecknar enhetstester?
- De testar enskilda komponenter i programmet isolerat.
- Vad innebär testdriven utveckling (TDD)?
- Att skriva tester innan man implementerar koden.
- Nämn ett verktyg för enhetstestning.
- JUnit eller NUnit.
- Vad är skillnaden mellan integrationstester och systemtester?
- Integrationstester kontrollerar samverkan mellan komponenter, medan systemtester testar hela systemet som en helhet.
Hemuppgift
Som hemuppgift ska eleverna välja en av sina tidigare programmeringsuppgifter och skapa en uppsättning enhetstester för den. De ska dokumentera testerna, resultaten samt reflektionsfrågor kring vad de lärde sig under processen. Denna hemuppgift kan fungera som en läxa för alla och som en kompletteringsuppgift för frånvarande. Användaren kan skriva “Hemuppgift” så tar jag fram en färdig hemuppgift baserat på detta förslag.
Citat
“If you’re not testing, you’re guessing.” – Testers Community, 2012. Citatet understryker vikten av att testa programvara för att säkerställa dess funktionalitet och kvalitet. Utan tester riskerar man att basera sina antaganden på osäkerhet.
Nästa lektion
För nästa lektion föreslås temat “Versionshantering med Git”. Detta är relevant eftersom versionshantering är ovärderligt för samarbeten mellan utvecklare och för att spåra förändringar i koden. Användaren kan skriva “Nästa” så tar jag fram en lektionsplanering baserat på detta förslag.