Dessutom räcker det inte med att köra igenom sina testfall en enda gång. Varje gång man gjort en ändring i programmet, till exempel för att rätta ett fel, kan man ha haft sönder något annat. Därför bör man köra igenom alla testfallen åtminstone en gång efter varje ändring.
Det är opraktiskt att skriva in alla testfallen för hand varje gång. Därför vill man så långt som möjligt automatisera testerna.
I verkligheten kan man behöva särskilda verktyg för att kunna köra tester automatiskt, till exempel om man testar ett grafiskt gränssnitt med fönster och knappar. I den här övningen ska vi prova på ett ganska enkelt sätt att provköra en funktion i ett C-program, nämligen genom att helt enkelt skriva en main-funktion som får anropa funktionen ett antal gånger, och kontrollera att resultatet blir det förväntade.
Man behöver två punkter för att ange en rektangel, till exempel de två punkterna (x = -1.5, y = 2) och (x = 5, y = 4.9) i den här figuren:
Punkten (x = 1, y = 3) ligger inuti den rektangeln, och punkten (x = 2, y = 0.5) ligger utanför.
Funktionen inuti avgör om en punkt ligger inuti eller utanför en rektangel. Som parametrar tar den sex flyttal med dubbel precision (double): först x- och y-värdena för en punkt, och sen x- och y-värdena för två punkter som anger en rektangel. Den ska returnera heltalet 1 om punkten ligger inuti rektangeln, och heltalet 0 om den ligger utanför.
Exempel:
Ändra main-funktionen så att den provkör ett antal testfall mot funktionen, utan inblandning av användaren. Den ska jämföra resultatet av funktionen med de förväntade resultaten, och så fort den hittar ett testfall som misslyckades (dvs, gav ett annat resultat än det förväntade) ska den skriva ut ett meddelande om detta.
Använd de testfall som du anser behövs för att testa funktionen på ett bra sätt.
Om samarbete på inlämningsuppgifterna: Varje grupp (som normalt består av en eller två studenter) ska göra en egen lösning, och skicka in den, men det är inte förbjudet att samarbeta eller fråga andra studenter om hjälp. Däremot ska man i så fall tydligt ange vilka som man samarbetat med. Varje lösning måste ange namnet på alla som bidrog i arbetet. Samarbete är alltså tillåtet, men måste redovisas. |