Test och kvalitetsrapport

Storlek: px
Starta visningen från sidan:

Download "Test och kvalitetsrapport"

Transkript

1 Test och kvalitetsrapport Projektgrupp 1 Användaranpassat interface till Studiehandboken Version 1.0

2 Sida 2 av 231 Innehållsförteckning 3.1 Parter Dokumenthistorik Inledning Syfte Dokumentöversikt Begrepp Symfony Enhetstest Integrationstest Systemtest Acceptanstest Bugg Testnotation Testspecifikation Testprotokoll Felrapport Testdatabas Planerade tester Enhets- och Integrationstest Kommentarer och tabellförklaringar Arbetsordning till integrationstest Gemensamma (.lib) Studievy Utbildningsledarvy Parser Examensvy Systemtest Tabellförklaring Studievy TNM021 2

3 Sida 3 av Utbildningsledarvy Examensvy Parser Acceptanstest Utförda tester med resultat Enhetstest Databaskopppling Integrationstest Systemtest Kalenderår, akademiska år och studieuppehåll Sökmotor Programsökning med profil Acceptanstest Gemensamma Parser Utbildningsledarvy Examensenhetsvy Studentvy Kvalitet Planerade mätningar Tillförlitlighet Användbarhet Användbarhet Prototyping Frågor och scenarier Användbarhetstester i det färdiga systemet Förberedelser inför tester i det färdiga systemet Sammanfattning av mätningsresultat Utbildningsledarna Studenterna Examensenheten GUI TNM021 3

4 Sida 4 av Översikt Prototyper Ikoner Färgval och illustrationer Hjälp Kontakt Utbildningsledarvy Start Utbildningsledarvy Programplan, ett antagningsår Utbildningsledarvy - Programplan, ett antagningsår, sökresultat Utbildningsledarvy Programplan, flera antagningsår Utbildingsledarvy-Programplan, flera år Sökresultat Utbildningsleadrvy Sök kurser Examination Student Sök kurser Sökmotor (search) Sökmotor Formulärelement Studiehandbok Program Profil Termin Kurskod Kursnamn Huvudområde Block VOF Nivå Högskolepoäng (hp) Sök Dokumentgranskning Syfte TNM021 4

5 Sida 5 av Granskningsprocess Checklistor Felstatistik Jämförelser av felstatistik Sammanfattning Bilagor TNM021 5

6 Sida 6 av Parter Projektgrupp 1, Ht 2007 Linköpings Tekniska Högskola, Institutionen för teknik och naturvetenskap Namn Ansvar Telefon E-post Magnus Adnerhill Dan Eidmark Filip Gruvstad Marcus Andersson Projektledare, Studievy Projektledare, Examensvy Projektledare, Parser Projektledare, Utbildningsledarvy magad271@student.liu.se danei157@student.liu.se filgr175@student.liu.se maran840@student.liu.se Kund: Jonas Detterfelt Kursansvarig: Martin Karlsson Handledare: Sara Johansson TNM021 6

7 Sida 7 av Dokumenthistorik Version Datum Utförda ändringar (utförda av:) Granskad Johan Jörtsö Ett första utkast med rubriker Johan Jörtsö, Daniel Eriksson, Eirik Fredäng, Ulf Davidsson Första versionen för inlämning med planerade tester Johan Jörtsö, Daniel Eriksson, Ulf Davidsson, Eirik, Fredäng, Anna Chung, Isac Jinton, Kristofer Höglund, Mats Karlsson Reviderad version med utförda tester och kvalitetsmätningar. Kund Handledare 3.3 Inledning Syfte Att göra tester är nödvändigt för att kontrollera hur väl systemet utför de uppgifter som förväntas av det. Genom att göra tester kontinuerligt, så detekteras fel av olika svårighetsgrad. Dessa fel kan utvärderas och rättas till i prioritetsordning. Med mätningar på hur ofta ett fel påträffas kan även ett approximativt mått fås, på hur många, ännu inte upptäckta, fel som systemet innehåller. Beräkningar kan även göras på hur återkommande ett fel är och denna information är nödvändig då prioriteringar om vad som i första hand bör åtgärdas ska göras samt i ändamål för förebyggande av fel. Syftet med att skriva en testrapport är att ge utomstående en överblick över vilka tester som gjorts och vilka resultat de gett. Detta presenteras i testspecifikationer och felrapporter, där även åtgärder till uppkomna fel presenteras. Alla tester är beroende av en fungerande testdatabas. Efter i testpecifikation angivna förberedelser, så förklaras vart och hur ett test ska utföras samt för vilka funktioner dessa tester är skrivna för. I dessa anges även indata och förväntade utdata. I en felrapport specificeras uppkomna fel hierarkiskt i en prioritetsskala och vilka åtgärder som måste vidtagas för att felet ska rättas till. TNM021 7

8 Sida 8 av Dokumentöversikt Detta dokument innehåller beskrivningar av vilka tester som är planerade att utföras samt de tester som utförts med tillhörande resultat. Dokumentet innehåller även en sammanställning av det arbete som utförts för att upprätthålla god dokument-, kod-, och produktkvalité under projektets gång. Som bilagor finns med vilka testdata som använts i testdatabasen, testkod, checklistor för dokumentgranskning, felstatistik samt prototyper Begrepp Symfony Symfony är ett ramverk skrivet i programmeringsspråket PHP som underlättar och möjliggör att projektet fokuseras på att implementera den funktionalitet som användaren efterfrågat. Dokumentation och mer information om Symfony finns på Enhetstest Enhetstest skall testa de minsta delarna i systemet. Vilket betyder att varje klass och dess metoder testas separat. Detta för att säkerställa att de fungerar som de ska enligt designspecifikationen. I dessa tester har vi använt Symfonys inbyggda system för automatiserad enhetstestning. Enhetstest och integrationstest kan då på ett enkelt sätt köras genom ett knapptryck Integrationstest Integrationstest är till för att testa flöden av information mellan klasser och dess metoder. Detta används med andra ord för att klasser fungerar tillsammans med varandra och inte bara enskilt. Konflikter mellan olika delar i systemet kan således lättare upptäckas på ett tidigare stadium i projektprocessen. För att integrationstest skall kunna göras bör enhetstest ha utförts tidigare för de klasser som skall integrationstestas Systemtest Efter de use-case (användningsscenarion) som beskrivits i kravspecifikationen skrivs systemtest. De testar om systemet kan utföra vad det skall kunna utföra Acceptanstest Denna typ av test baserar sig på hur användaren eller kunden uppfattar systemet. Gör systemet vad det ska göra enligt kraven? Användbarhet (se under 3.8 Användbarhet) innefattas också här, är systemet lätt och smidigt att använda? Uppfattar till exempel användaren systemet som lätt att använda och lätt att lära sig? Bugg I programmeringssammanhang vanlig benämning på ett fel i koden som gör att systemet inte fungerar som det ska. TNM021 8

9 Sida 9 av Testnotation Testspecifikation En testspecifikation beskriver ett eller flera testfall som skall utföras för att testa något, till exempel en klass. Testspecifikationen skrivs före testet utförs och specificerar hur testet skall utföras, vilka förberedelser som behövs, vad det har för indata och förväntade utdata. Om något speciellt behöver göras när testet har utförts och fel upptäcks, till exempel återställa saker i databasen eller liknande står det också med Testprotokoll För varje test som utförts skrivs ett testprotokoll. Testprotokollet är en utvärdering av testet och skrivs efter att testet är utfört. Testprotokollet beskriver om testet var lyckat eller ej Felrapport Om fel upptäckts skrivs en felrapport som graderar felet enligt: Remark Små lättlösta fel som enkla syntaxfel och väldigt enkla logiska fel. Fault Vanliga logiska fel, det som testas gör inte det som det är meningen att det ska göra. Serious fault Allvarliga fel som resulterar i att designen fallerar och man måste göra om den, eller resulterar i förstörda data eller liknande Felet och hur det sedan eventuellt korrigerats beskrivs sedan tillsammans med kodversion, datum och tid. Om felet har korrigerats noteras tiden som gått åt för detta Testdatabas Under implementation- och testfasen har en databas med testdata använts. Detta för att parsern som är den komponent i systemet som är mest avancerad och därför antogs bli klar sist. Användandet av en testdatabas möjliggör att tester som är beroende av en fungerande databas kan köras innan parsern blivit klar. Tanken med själva testdatan är att med ett antal exempelkurser från programmet Civilingenjör Medieteknik representera så många olika fall som möjligt. Till exempel: Översiktsvy baserat på olika startår (2005, 2006, 2007) och program (Medieteknik TCMEN och Medieteknik master 6CMEN) Valbara kurser (TEIE61 Industriell ekonomi) Profilkurser (TNM053 VR-teknik och TNM067 Vetenskaplig visualisering för Visualisering, TNM065 Dokumentstrukturer för Publicering) Ändringar i kursplanen för olika startår (TNM055 Databaser för MT2 VT2008 byts mot TNG033 Programmering i C++ för MT2 vårterminen 2008) TNM021 9

10 Sida 10 av 231 Testdatan är inte "fullständig", det vill säga, alla kurser finns inte med, men minst en kurs från varje schemablock varje år skall finnas med för Medieteknik startår 2005/2006 programkod TCMEN och 2007 programkod 6CMEN. 3.4 Planerade tester Enhets och Integrationstest Kommentarer och tabellförklaringar Ett enhetstest skall egentligen vara helt oberoende av andra klasser. Enligt den tänkta implementationsordningen skall klasser som ej beror på andra klasser implementeras först och sedan testas. Sedan implementeras de som beror på de klasser som är färdiga. Detta betyder att våra enhetstest egentligen testar både klassens funktioner och till viss del dess interaktion med andra klasser. Förklaring Testspecifikationer Nedan följer förklaringar till testspecifikationerna för enhets- och integrationstesten. Övertabell: Överst i en testspecifikation skall en övertabell finnas som är allmän för en hel klass. TestSpec.[vilken modul].[vilken klass] Förutsättningar Datum Här ska det stå vad som förutsätts för att testet skall kunna köras. Vilken typ av test specifikationen behandlar. När testspecifikationen skrevs. Undertabeller: Efter övertabellen skall det finnas undertabeller för varje funktion i klassen. En undertabell tar upp hur en funktion testas. Om funktionen kan göra flera saker så skall undertabellen delas upp i flera, en för varje sätt funktionen kan användas. TestSpec.[vilken modul].[vilken klass].[vilken funktion]([typ])-[nummer] TNM021 10

11 Sida 11 av 231 Här ska kraven (om funktionen utgår från några krav) som funktionen utgått från skrivas. Syfte: Varför detta test behövs. Indata : Vad som skickas in till funktionen (om något skickas in). Förväntade utdata: Vad som funktionen returnerar (om något returneras). Kriterier för lyckat test: Vad som gör att testet kan räknas som lyckat. Vad som måste göras innan testet kan utföras. Hur testet, steg för steg, skall utföras. Åtgärder om inga fel upptäckts: Vad som skall göras om inga fel upptäcks. Åtgärder om fel upptäckts: Vad som skall göras om fel upptäcks Arbetsordning till integrationstest För att testa systemet systematiskt så testar man komponenterna i en viss ordning för att man mer exakt ska veta vilken komponent i systemstrukturen som felar. Här använder vi oss av testtypen bottom up, en variant där vi börjar med att testa de klasserna som bara är beroende av enstaka andra klasser för att fungera. Sedan arbetar vi oss uppåt i systemet med de klasser som är beroende av flera klasser, på samma sätt som med implementationsordningen vid enhetstest. Syftet är här att se hur de olika klasserna interagerar med varandra och att flödet med information verkligen flyter utan problem genom systemet. Trädet i fältet struktur förklarar vilka andra underklasser som den behandlade klassen är beroende av och fältet Test refererar till testets testspecifikation. Test no.1: lib.profile Struktur lib.profile lib.course Test TestSpec.lib.Profile TNM021 11

12 Sida 12 av 231 Test no.2: lib.block Struktur lib.block lib.course Test TestSpec.lib.Block Test no.3: lib.period Struktur lib.period lib.block Test TestSpec.lib.Period Test no.4: lib.program Struktur lib.program lib.profile lib.course Test TestSpec.lib.Program Test no.5: lib.extensivecalenderyear Struktur lib.extensivecalenderyear lib.period lib.block Test TestSpec.lib.ExtensiveCalenderYear TNM021 12

13 Sida 13 av 231 Test no.6: lib.simplecalenderyear Struktur lib.simplecalenderyear lib.calenderyear lib.course Test TestSpec. lib.simplecalenderyear Test no.7: lib.coursemapper Struktur lib.coursemapper lib.basemapper lib.course Test TestSpec. lib.coursemapper Test no.8: lib.simplecalenderyearmapper Struktur lib.simplecalenderyearmapper TNM021 13

14 Sida 14 av 231 lib.simplecalenderyear lib.calenderyear lib.course Test TestSpec. lib.simplecalenderyearmapper Test no.9: lib.programmapper Struktur lib.programmapper lib.basemapper lib.profile lib.course lib.program lib.profile lib.course Test TestSpec. lib.programmapper Test no.10: lib.extensivecalenderyearmapper Struktur lib.extensivecalenderyearmapper lib.extensivecalenderyear? lib.period lib.period lib.block lib.block TNM021 14

15 Sida 15 av 231 lib.course lib.course Test TestSpec. lib.extensivecalenderyearmapper Test no.11: lib.studyplan Struktur lib.studyplan lib.program lib.profile lib.course lib.profile lib.course lib.extensivecalenderyear lib.period Test TestSpec. lib.studyplan Test no.12: lib.studyplanmapper Struktur lib.studyplanmapper lib.extensivecalenderyearmapper lib.extensivecalenderyear? lib.period lib.period TNM021 15

16 Sida 16 av 231 lib.block lib.block lib.course lib.course lib.extensivecalenderyear lib.period lib.program lib.profile lib.course lib.profile lib.course Test TestSpec. lib.studyplanmapper Test no.13: shared.sharedactions Struktur shared.sharedactions lib.profilemapper lib.basemapper lib.profile lib.course Test Test no.14: shared.studyplanformsuccess TNM021 16

17 Sida 17 av 231 Struktur shared.studyplanformsuccess symfony.formhelper symfony.ajaxhelper lib.program lib.profile lib.course lib.profile lib.course Test Test no.15: shared.studyplanformcomponent Struktur lib.program lib.profile lib.course lib.programmapper lib.basemapper lib.profile lib.course lib.program lib.profile lib.course lib.profile lib.course lib.profilemapper lib.basemapper lib.profile TNM021 17

18 Sida 18 av 231 lib.course lib.studyplan lib.program lib.profile lib.course lib.profile lib.course lib.extensivecalenderyear lib.period Test Test no.16: search._course Struktur search._course PartialHelper ( Symfony) Test Test no.17: search.simplesearchformsuccess Struktur search.simplesearchformsuccess symfony.formhelper TNM021 18

19 Sida 19 av 231 Test Test no.18: search._simplecalendaryear Struktur search._simplecalendaryear PartialHelper ( Symfony) search._course PartialHelper ( Symfony) Test Test no.19: serach.searchactions Struktur serach.searchactions lib.simplecalendaryearmapper search.searchformcomponent symfony.sfactions TNM021 19

20 Sida 20 av 231 Test Test no.20: search.indexsuccess Struktur search.indexsuccess symfony.partialhelper shared.searchformcomponent.advancedsearchform search._simplecalendaryear PartialHelper ( Symfony) search._course PartialHelper ( Symfony) Test Test no.20: search. advancedsearchformsuccess Struktur search. advancedsearchformsuccess symfony.formhelper lib.program lib.profile lib.course TNM021 20

21 Sida 21 av 231 lib.profile lib.course Test Test no.21: search.searchformcomponent Struktur search.searchformcomponent lib.program lib.profile lib.course lib.programmapper lib.basemapper lib.profile lib.course lib.program lib.profile lib.course lib.profile lib.course lib.profilemapper Test TNM021 21

22 Sida 22 av Gemensamma (.lib) TestSpec.lib.Block Förutsättningar Förutsett att classen Course är skapad. Enhetstest/Integrationstest Datum TestSpec.lib.Block.Block(int)-1 Syfte: För att kunna guppera kurser efter block Indata : Block numret (1-4) Förväntade utdata: - Kriterier för lyckat test: variabeln number ska få det värde som matas in som indata. Kontrollera att classen Course är skapad. 1. skriv konstruktorn Block. 2. Kontrollera om number har blivit tilldelad det värde(samma som indata) som förväntas. TestSpec.lib.Block.getNumber-1 Syfte: För att kunna retunera block numret. Indata: - Förväntade utdata: det indata som används i TestSpec.lib.Block.Block(int)-1 Kriterier för lyckat test: Korrekt utdata retuneras. TNM021 22

23 Sida 23 av 231 Skriv konstruktor lib.block.block(int) 1. skriv getnumber() 2. kontrollera om utdata är korrekt. TestSpec.lib.Block.setNumber-1 Syfte: För att kunna sätta nya blocknummer. Indata: number Förväntade utdata: - Kriterier för lyckat test: Kontrollera med hjälp av getnumber om klassvariabeln number har samma värde som indatan. Förutsätt att getnumber redan är skriven 1. skriv setnumber() 2. kontrollera om klasvariabeln number är den samma som indatan. TestSpec.lib.Block.getCourses-1 Syfte: För att kunna få ut vilka kurser som liggeri ett visst block. Indata: - Förväntade utdata: En array med de kurser som finns i ett block Kriterier för lyckat test: Korrekt utdata retuneras. Skriv konstruktor lib.block.block(int) 1. skriv getcourse() 2. kontrollera om arrayen innehåller alla de kurser som den ska. TNM021 23

24 Sida 24 av 231 TestSpec.lib.Block.addCourse-1 Syfte: För att kuna lägga til len kurs. Indata: En kurs Förväntade utdata: - Kriterier för lyckat test: Kontrollera om indata kursen läggs i arrayen Course[] Skriv konstruktor lib.block.block(int) 1. skriv addcourse() 2. Kontrollera om indata kursen läggs i arrayen Course[]. TestSpec.lib.CalendarYear Förutsättningar Enhetstest Datum TestSpec.lib.CalendarYear.CalendarYear(year : int) -1 Syfte: Kontrollera konstruktorn CalendarYear(year : int) Indata /Use-Case: 2005 Förväntade utdata: - Kriterier för lyckat test: Konstruktorn lagrar årtalet 2005 Implementera getyear() 1. Skapa ett CalendarYear-objekt med konstruktorn CalendarYear(2005) 2. Kontrollera att getyear() returnerar 2005 TNM021 24

25 Sida 25 av 231 TestSpec.lib.CalendarYear.getYear() -1 Syfte: Kontrollera getyear() Indata /Use-Case: - Förväntade utdata: 1984 Kriterier för lyckat test: getyear() returnerar rätt årtal Implementera konstruktorn CalendarYear() 1. Skapa ett CalendarYear-objekt med årtal Kontrollera att getyear() returnerar 1984 TestSpec.lib.CalendarYear.setYear(year : int) -1 Syfte: Kontrollera setyear() Indata /Use-Case: 1985 Förväntade utdata: - Kriterier för lyckat test: setyear() ändrar årtal till 1985 Implementera konstruktorn CalendarYear() och getyear() 1. Skapa ett CalendarYear-objekt 2. Anropa setyear(1985) 3. Kontrollera att getyear() returnerar 1985 TestSpec.lib.Course Förutsättningar Enhetstest Datum TNM021 25

26 Sida 26 av 231 TestSpec.lib.Course.Course() -1 Syfte: Testa klassens konstruktor Indata /Use-Case: code = KOD001, name = Kursnamn, points = 6.0, level = G1, vof = O, areaname = Area, subjectname = Subject, year = 2008, period = { 1, 2 }, block = 1 Förväntade utdata: Ett kursobjekt med instansvariabler satta till indata Kriterier för lyckat test: Korrekt kursobjekt skapas Implementera setcode(), setname(), setpoints(), setareaname(), setyear(), addperiod(), addblock(), getcode(), getname(), getpoints(), getareaname(), getyear(), getperiods() och getblocks() 1. Skapa ett objekt Course( KOD001, Kursnamn, 6.0, G1, O, { Area 1, Area 2 }, Subject, 2008, { 1, 2 }, { 1, 3 }) 2. Kontrollera att koden är KOD001 med getcode() 3. Kontrollera att namnet är Kursnamn med getname() 4. Kontrollera att poängen är 6.0 med getpoints(hp_points) 5. Kontrollera att huvudområdena är Area 1 och Area 2 med getareaname() 6. Kontrollera att året är 2008 med getyear() 7. Kontrollera att perioderna är { 1, 2 } med getperiods() 8. Kontrollera att blocken är { 1, 3 } med getblocks() 9. Skapa ett objekt Course() 10. Kontrollera att samtliga getmetoder ger tomma värden TNM021 26

27 Sida 27 av 231 TestSpec.lib.Course.getCode() -1 Syfte: Kontrollera getcode() Indata /Use-Case: - Förväntade utdata: TNM030 Kriterier för lyckat test: getcode() returnerar rätt kurskod Implementera konstruktorn Course() 3. Skapa ett Course-objekt med kurskod TNM Kontrollera att getcode() returnerar TNM030 TestSpec.lib.Course.setCode() -1 Syfte: Kontrollera setcode() Indata /Use-Case: TNA001 Förväntade utdata: - Kriterier för lyckat test: setcode() ändrar kurskod till TNA001 Implementera konstruktorn Course() och getcode() 1. Skapa ett Course-objekt 2. Anropa setcode( TNA001 ) 3. Kontrollera att getcode() returnerar TNA001 TNM021 27

28 Sida 28 av 231 TestSpec.lib.Course.getName() -1 Syfte: Kontrollera getname() Indata /Use-Case: - Förväntade utdata: BoB Kriterier för lyckat test: getname() returnerar rätt kursnamn Implementera konstruktorn Course() 1. Skapa ett Course-objekt med kursnamn BoB 2. Kontrollera att getname() returnerar BoB TestSpec.lib.Course.setName() -1 Syfte: Kontrollera setname() Indata /Use-Case: Grunken Förväntade utdata: - Kriterier för lyckat test: setname() ändrar kurskod till Grunken Implementera konstruktorn Course() och getname() 1. Skapa ett Course-objekt 2. Anropa setname( Grunken ) 3. Kontrollera att getname() returnerar Grunken TNM021 28

29 Sida 29 av 231 TestSpec.lib.Course.getPoints() -1 Syfte: Kontrollera getpoints() Indata /Use-Case: - Förväntade utdata: 6.0 Kriterier för lyckat test: getpoints() returnerar rätt poäng Implementera konstruktorn Course() 1. Skapa ett Course-objekt med poäng Kontrollera att getpoints(hp_points) returnerar Kontrollera att getpoints(old_points) returnerar 4.0 TestSpec.lib.Course.setPoints() -1 Syfte: Kontrollera setpoints() Indata /Use-Case: points = 12.0, typeofpoints = HP_POINTS Förväntade utdata: - Kriterier för lyckat test: setpoints() ändrar poäng till 12.0 Implementera konstruktorn Course() och getpoints() 1. Skapa ett Course-objekt 2. Anropa setpoints(12.0, HP_POINTS) 3. Kontrollera att getpoints(hp_points) returnerar 12.0 TNM021 29

30 Sida 30 av 231 TestSpec.lib.Course.getAreaName() -1 Syfte: Kontrollera getareaname() Indata /Use-Case: - Förväntade utdata: Secret area Kriterier för lyckat test: getareaname() returnerar rätt huvudområde Implementera konstruktorn Course() 1. Skapa ett Course-objekt med huvudområde Secret area 2. Kontrollera att getareaname() returnerar Secret area TestSpec.lib.Course.addAreaName() -1 Syfte: Kontrollera addareaname() Indata /Use-Case: Area 51 Förväntade utdata: - Kriterier för lyckat test: addareaname()lägger till huvudområde Area 51 Implementera konstruktorn Course() och getareaname() 1. Skapa ett Course-objekt 2. Anropa addareaname( Area 51 ) 3. Kontrollera att getareaname() returnerar Area 51 TNM021 30

31 Sida 31 av 231 TestSpec.lib.Course.getYear() -1 Syfte: Kontrollera getyear() Indata /Use-Case: - Förväntade utdata: 1984 Kriterier för lyckat test: getyear() returnerar rätt årtal Implementera konstruktorn Course() 3. Skapa ett Course-objekt med årtal Kontrollera att getyear() returnerar 1984 TestSpec.lib.Course.setYear() -1 Syfte: Kontrollera setyear() Indata /Use-Case: 1985 Förväntade utdata: - Kriterier för lyckat test: setyear() ändrar årtal till 1985 Implementera konstruktorn Course() och getyear() 1. Skapa ett Course-objekt 2. Anropa setyear(1985) 3. Kontrollera att getyear() returnerar 1985 TNM021 31

32 Sida 32 av 231 TestSpec.lib.Course.getPeriods() -1 Syfte: Kontrollera getperiods() Indata /Use-Case: - Förväntade utdata: { 1, 3, 4 } Kriterier för lyckat test: getperiods() returnerar rätt perioder Implementera konstruktorn Course() 1. Skapa ett Course-objekt med perioder { 1, 3, 4 } 2. Kontrollera att getperiods() returnerar { 1, 3, 4 } TestSpec.lib.Course.addPeriod() -1 Syfte: Kontrollera addperiod() Indata /Use-Case: 2, 1, 4 Förväntade utdata: - Kriterier för lyckat test: addperiod() lägger till samtliga perioder Implementera konstruktorn Course() och getperiods() 1. Skapa ett Course-objekt 2. Anropa addperiod(2) 3. Anropa addperiod(1) 4. Anropa addperiod(4) 5. Kontrollera att getperiods() returnerar { 1, 2, 4 } TNM021 32

33 Sida 33 av 231 TestSpec.lib.Course.getBlocks() -1 Syfte: Kontrollera getblocks() Indata /Use-Case: - Förväntade utdata: { 1, 3, 4 } Kriterier för lyckat test: getblocks() returnerar rätt perioder Implementera konstruktorn Course() 1. Skapa ett Course-objekt med block { 1, 3, 4 } 2. Kontrollera att getblocks() returnerar { 1, 3, 4 } TestSpec.lib.Course.addBlock() -1 Syfte: Kontrollera addblock() Indata /Use-Case: 2, 1, 4 Förväntade utdata: - Kriterier för lyckat test: addblock() lägger till samtliga block Implementera konstruktorn Course() och getblocks() 1. Skapa ett Course-objekt 2. Anropa addblock(2) 3. Anropa addblock(1) 4. Anropa addblock(4) 5. Kontrollera att getblocks() returnerar { 1, 2, 4 } TNM021 33

34 Sida 34 av 231 TestSpec.lib.Course.getLevel() -1 Syfte: Kontrollera getlevel() Indata /Use-Case: Förväntade utdata: G1 Kriterier för lyckat test: getlevel() lägger hämtar G1 från course Implementera konstruktorn Course() och getblocks() 1. Skapa ett Course-objekt med level G1 2. Kontrollera att getlevel() returnerar G1 TestSpec.lib.Course.setLevel() -1 Syfte: Kontrollera setlevel() Indata /Use-Case: G1 Förväntade utdata: Kriterier för lyckat test: setlevel() sätter level till G1 i course Implementera konstruktorn Course() och getblocks() 1. Skapa ett Course-objekt 2. Anropa setlevel(g1) 3. Anropa getlevel() och kontrollera att den returnerar G1 TNM021 34

35 Sida 35 av 231 TestSpec.lib.CourseMapper Förutsättningar Datum Beroende av lib.course och lib.basemapper, test kräver tillgänglig databas med testdata Enhetstest /Integrationstest TestSpec.lib.CourseMapper.existsInDatabase(course : string[]) - 1 Syfte: Kontrollera existsindatabase() Indata /Use-Case: { TNA001 } Förväntade utdata: true Kriterier för lyckat test: existsindatabase() hittar existerande kurs i databasen Kontrollera att sökt kurs finns i databasen 1. Skapa fältet coursedata = array( TNA001 ) 2. Kontrollera att CourseMapper::existsInDatabase(courseData) returnerar true TestSpec.lib.CourseMapper.existsInDatabase(course : string[]) - 2 Syfte: Kontrollera existsindatabase() Indata /Use-Case: { KOD001 } Förväntade utdata: false Kriterier för lyckat test: existsindatabase() hittar ej icke existerande kurs i databasen Kontrollera att sökt kurs inte finns i databasen 1. Skapa fältet coursedata = array( KOD001 ) 2. Kontrollera att CourseMapper::existsInDatabase(courseData) returnerar false TNM021 35

36 Sida 36 av 231 TestSpec.lib.CourseMapper.studiesExistsInDatabase(course : string[]) - 1 Syfte: Kontrollera studiesexistsindatabase() Indata /Use-Case: { "TNA001", "Matematisk grundkurs", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2006", "pb", "TCMEN" } Förväntade utdata: true Kriterier för lyckat test: studiesexistsindatabase() hittar existerande kurstillfälle i databasen Kontrollera att sökt kurs finns i databasen 1. Skapa fältet coursedata = array("tna001", "Matematisk grundkurs", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2006", "pb", "TCMEN") 2. Kontrollera att CourseMapper::studiesExistsInDatabase(courseData) returnerar true TestSpec.lib.CourseMapper.studiesExistsInDatabase(course : string[]) - 2 Syfte: Kontrollera studiesexistsindatabase() Indata /Use-Case: { "TNA001", "Matematisk grundkurs", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "1918", "pb", "TCMEN" } Förväntade utdata: false Kriterier för lyckat test: studiesexistsindatabase() hittar ej icke existerande kurstillfälle i databasen Kontrollera att sökt kurs inte finns i databasen 1. Skapa fältet coursedata = array("tna001", "Matematisk grundkurs", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "1918", "pb", "TCMEN") 2. Kontrollera att CourseMapper::studiesExistsInDatabase(courseData) returnerar false TNM021 36

37 Sida 37 av 231 TestSpec.lib.CourseMapper.insertInDatabase(course : string[]) - 1 Syfte: Kontrollera insertindatabase() Indata /Use-Case: { "KOD001", "Kursnamn", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2008", "pb", "TCMEN" } Förväntade utdata: - Kriterier för lyckat test: insertindatabase() lagrar medskickad kurs i databasen Kontrollera att den kurs som ska läggas till inte redan finns i databasen 1. Skapa fältet coursedata = array("kod001", "Kursnamn", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2008", "pb", "TCMEN") 2. Kör CourseMapper::insertInDatabase(courseData) 3. Kontrollera att kurs och kurstillfälle lagrats korrekt i databasen: a. I course: "KOD001", "Kursnamn", 4, 5.0, "B", "G1" b. I educationarea: areaid, "Area" c. I belongstoeducation: "KOD001", areaid d. I studies: "pb", "TCMEN", 2008, 1, 1, "KOD001", "1", "O" TestSpec.lib.CourseMapper.storeInDatabase(course : string[]) - 1 Syfte: Kontrollera storeindatabase() Indata /Use-Case: { "KOD001", "Kursnamn", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2008", "pb", "TCMEN" } Förväntade utdata: - Kriterier för lyckat test: storeindatabase() lagrar medskickad kurs i databasen Kontrollera att den kurs som ska läggas till inte redan finns i databasen TNM021 37

38 Sida 38 av Skapa fältet coursedata = array("kod001", "Kursnamn", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2008", "pb", "TCMEN") 2. Kör CourseMapper::storeInDatabase(courseData) 3. Kontrollera att kurs och kurstillfälle lagrats korrekt i databasen: a. I course: "KOD001", "Kursnamn", 4, 5.0, "B", "G1" b. I educationarea: areaid, "Area" c. I belongstoeducation: "KOD001", areaid d. I studies: "pb", "TCMEN", 2008, 1, 1, "KOD001", "1", "O" TestSpec.lib.CourseMapper.storeInDatabase(course : string[]) - 2 Syfte: Kontrollera storeindatabase() Indata /Use-Case: { "KOD001", "Kursnamn", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2008", "vi", "TCMEN" } Förväntade utdata: - Kriterier för lyckat test: storeindatabase() lägger till information om att ett program läser en kurs som redan finns i databasen Kontrollera att den kurs som ska läggas till redan finns i databasen 1. Skapa fältet coursedata = array("kod001", "Kursnamn", "1", "1", "O", "1", "6.0", "G1", "B", "Area", "2008", "vi", "TCMEN") 2. Kör CourseMapper::storeInDatabase(courseData) 3. Kontrollera att data lagrats korrekt i databasen: a. I studies: "vi", "TCMEN", 2008, 1, 1, "KOD001", "1", "O" TestSpec.lib.ExtensiveCalendarYear Förutsättningar Beror av lib.period, den måste vara implementerad Enhetstest/Integrationstest Datum TNM021 38

39 Sida 39 av 231 TestSpec.lib.ExtensiveCalendarYear.ExtensiveCalendarYear() -1 Syfte: Testa klassens konstruktor Indata /Use-Case: Förväntade utdata: Ett ExtensiveCalendarYear-objekt Kriterier för lyckat test: Korrekt objekt skapas 1. Skapa ett ExtensiveCalendarYear-objekt med värdet Kontrollera med getyear att värdet är Kontrollera att ExtensiveCalendarYear skapar korrekt objekt. TestSpec.lib.SimpleCalendarYear.setYear () -1 Syfte: Testa metoden setyear Indata /Use-Case: integer: 1972 Förväntade utdata: NULL Kriterier för lyckat test: NULL returneras Implementera setyear() 1. Sätt Year till 1972 med hjälp av setyear 2. Kontrollera att setyear returnerar NULL TestSpec.lib.ExtensiveCalendarYear.getYear() -1 Syfte: Testa metoden getyear Indata /Use-Case: Förväntade utdata: integer: 1984 Kriterier för lyckat test: getyear returnerar korrekt år TNM021 39

40 Sida 40 av 231 Implementera setyear() 1. sätt år till 1984 med metoden setyear(). 2. Kontrollera att getyear() hämtar en integer. 3. Kontrollera att getyear() hämtar korrekt year: 1984 Åtgärder om inga fel upptäckts: Åtgärder om fel upptäckts: Skriv felrapport ErrorRep.lib.ExtensiveCalendarYear.getYear-[datum,tid]. Korrigera felet. Kör ny testomgång. TestSpec.lib.ExtensiveCalendarYear.getPeriod() -1 Syfte: Testa metoden getperiod Indata /Use-Case: Förväntade utdata: periodobjekt Kriterier för lyckat test: Korrekt periodobjekt ska hämtas. Implementera getperiod(). TNM021 40

41 Sida 41 av Hämta period Kontrollera att ett periodobjekt returneras. 3. Kontrollera att korrekt period hämtats. 4. Hämta period 2 5. Kontrollera att ett periodobjekt returneras. 6. Kontrollera att korrekt period hämtats. 7. Hämta period Kontrollera att ett periodobjekt returneras. 9. Kontrollera att korrekt period hämtats. 10. Hämta period Kontrollera att ett periodobjekt returneras. 12. Kontrollera att korrekt period hämtats. 13. Hämta period Kontrollera att NULL returneras. 15. Hämta period Kontrollera att NULL returneras. TestSpec.lib.ExtensiveCalendarYearMapper.buildSQL Förutsättningar Att indata till funktionen inte är felaktig i förhållande till förväntad indata. Enhetstest Datum TestSpec.lib. ExtensiveCalendarYearMapper.buildSQL-1 Syfte: Verifiera att funktionen bygger en korrekt SQL-fråga då användaren inte valt någon profil. Indata: årtal = 2006, programkod = TCMEN, terminer = 1,2 Förväntade utdata: En sträng (SQL-fråga). Kriterier för lyckat test: Att SQL-frågan följer korrekt SQL-syntax och att frågan kan användas för att hämta ut data för programmet TCMEN under år 2006, termin 1 och 2. TNM021 41

42 Sida 42 av Matcha den returnerade strängen mot en förväntad sträng. TestSpec.lib. ExtensiveCalendarYearMapper.buildSQL-2 Syfte: Verifiera att funktionen bygger en korrekt SQL-fråga då användaren valt profil Indata: årtal = 2006, programkod = TCMEN,, profilkod = vi, terminer = 1,2 Förväntade utdata: En sträng (SQL-fråga). Kriterier för lyckat test: Att SQL-frågan följer korrekt SQL-syntax och att frågan kan användas för att hämta ut data för programmet TCMEN med profil Visualisering under år 2006, termin 1 och Matcha den returnerade strängen mot en förväntad sträng. TestSpec.lib. ExtensiveCalendarYearMapper.buildSQL-3 Syfte: Verifiera att funktionen bygger en korrekt SQL-fråga då användaren valt profil och en viss sorteringsordning på kurser. Indata: årtal = 2006, programkod = TCMEN,, profilkod = vi, terminer = 1,2, sortera på kurskod, sorteringsordning = fallande Förväntade utdata: En sträng (SQL-fråga). Kriterier för lyckat test: Att SQL-frågan följer korrekt SQL-syntax och att frågan kan användas för att hämta ut data för programmet TCMEN med profil Visualisering under år 2006, termin 1 och 2 och sorterar kurserna på kurskod i fallande ordning. 1. Matcha den returnerade strängen mot en förväntad sträng. TNM021 42

43 Sida 43 av 231 TestSpec.lib.ExtensiveCalendarYearMapper.getYearWithPeriodsBlocksCourses Förutsättningar En fungerande databas-koppling till en databas med testdata i. Enhetstest Datum :25 TestSpec.lib.ExtensiveCalendarYearMapper. getyearwithperiodsblockscourses-1 Syfte: Verifiera att en korrekt och fullständig instans av ett kalenderårsobjekt (ExtensiveCalendarYear) returneras. Indata: Årtal = 2006, programkod = TCMEN, profilkod = vi, period = 1 Förväntade utdata: En instans av ExtensiveCalendarYear Kriterier för lyckat test: 1. Att en instans av ExtensiveCalendarYear returneras 2. Att kalenderår-objektet har korrekt årtal 3. Att kalenderår-objektet innehåller rätt kurser utifrån år, program, profil och termin Sätt upp databaskoppling, skapa instans utav klassen. 1. Kontrollera att det som returnerats är en instans av klassen ExtensiveCalendarYear 2. Kontrollera att objektet har korrekt årtal = Hämta kurser från de perioder och block som ingår i termin 2, år Kontrollera att de kurser-objekten har samma kurskod som de i databasen. TNM021 43

44 Sida 44 av 231 TestSpec.lib.Period Förutsättningar beror av lib.block, den måste vara implementerad Enhetstest/Integrationstest Datum TestSpec.lib.Period.Period() -1 Syfte: Testa klassens konstruktor Indata /Use-Case: period: 1 integer Förväntade utdata: Ett periodobjekt med instansvariabler satta till indata Kriterier för lyckat test: Korrekt periodobjekt skapas Implementera 1. Sätt period till 1 i konstruktorn 2. Kontrollera att ett periodobjekt skapas med värdet 1 som integer med getnumber() TestSpec.lib.Period.setNumber() -1 Syfte: Testa metoden setnumber Indata /Use-Case: integer: 2 Förväntade utdata: Kriterier för lyckat test: Period sätts till 2 Implementera setnumber() 1. Sätt period till 2 med hjälp av setnumber() 2. Kontrollera att setnumber() returnerar NULL TNM021 44

45 Sida 45 av 231 TestSpec.lib.CalendarYear.getNumber() -1 Syfte: Testa metoden getnumber Indata /Use-Case: Förväntade utdata: integer: 2 Kriterier för lyckat test: Period återges som 2 Implementera getyear() 1. Kontrollera att getnumber() hämtar en integer 2. Kontrollera att getnumber() hämtar korrekt period, 2 TNM021 45

46 Sida 46 av 231 TestSpec.lib.Period.getBlock() -1 Syfte: Testa metoden getblock Indata /Use-Case: integer: 1, 2, 3, 4, -1 och 5 Förväntade utdata: integer: 1, 2, 3 och 4 Kriterier för lyckat test: Blockobjekt återges med nummer 1, 2, 3 och 4, samt värdet NULL Implementera getblock() 1. Kontrollera att getblock() hämtar ett blockobjekt 2. Kontrollera att getblock() hämtar blockobjekt nummer kontrollera att getblock() hämtar ett blockobjekt. 4. Kontrollera att getblock() hämtar blockobjekt nummer Kontrollera att getblock() hämtar ett blockobjekt. 6. Kontrollera att getblock() hämtar blockobjekt nummer Kontrollera att getblock() hämtar ett blockobjekt. 8. Kontrollera att getblock() hämtar blockobjekt nummer Kontrollera att getblock() returnerar NULL om block nummer 5 försöker hämtas. 10. Kontrollera att getblock() returnerar NULL om block nummer -1 försöker hämtas. TNM021 46

47 Sida 47 av 231 TestSpec.lib.Period.getBlocks() -1 Syfte: Testa metoden getblocks Indata /Use-Case: Förväntade utdata: array: blockobjekt Kriterier för lyckat test: Array med periodobjekt återfås. Implementera getblocks() 1. Kontrollera att getblocks() hämtar en array bestående av blockobjekt. 2. Kontrollera att getblock() hämtar korrekt array. TestSpec.lib.Period.addCourse() -1 Syfte: Testa metoden addcourse Indata /Use-Case: Förväntade utdata: Kriterier för lyckat test: En kurs läggs till i period. Implementera addcourse() 1. Skapa ett kursobjekt. 2. Sätt kursobjektet till TNA skapa ett kursobjekt. 4. Sätt kursobjektet till TNA Skapa ett kursobjekt. 6. Sätt kursobjektet till TNA Lägg till kursen TNA005 med addcourse(). 8. Kontrollera att kursobjektet läggs till. TNM021 47

48 Sida 48 av 231 TestSpec.lib.Period.getCourses() -1 Syfte: Testa metoden getcourses Indata /Use-Case: Förväntade utdata: kursobjekt Kriterier för lyckat test: En kurs återfås som TNA005. Implementera getcourses() 1. Kontrollera att ett kursobjekt hämtas. 2. Kontrollera att korrekt kurs hämtas, TNA005. TestSpec.lib.Period.getCoursesInBlocks() -1 Syfte: Testa metoden getcoursesinblocks Indata /Use-Case: Förväntade utdata: kursobjekt Kriterier för lyckat test: Korrekta kurser returneras. Implementera addcourse() 1. Lägg till kurs TNA001 i block 1 med getblock() och addcourse(). 2. Lägg till kurs TNA002 i block 2 med getblock() och addcourse(). 3. Kontrollera att korrekt kursobjekt returneras för kurserna TNA001 och TNA002. TNM021 48

49 Sida 49 av 231 TestSpec.lib.Profile Förutsättningar Profile beror av lib.course, den måste vara implementerad Enhetstest/Integrationstest Datum TestSpec.lib.Profile.Profile -1 Syfte: Testa klassens konstruktor Indata /Use-Case: code = pb, name = Publicering Förväntade utdata: Ett profilobjekt med code = pb, name = Publicering Kriterier för lyckat test: Korrekt profilobjekt skapas Implementera getcode() och getname() 1. Skapa ett objekt Profile( pb, Publicering ) 2. kontrollera att koden är pb med getcode() 3. kontrollera att namnet är Publicering med getname() 4. Skapa ett objekt Profile() 5. kontrollera att koden är med getcode() 6. kontrollera att namnet är med getname() TNM021 49

50 Sida 50 av 231 TestSpec.lib.Profile.getCode() -1 Syfte: Kontrollera getcode() Indata /Use-Case: - Förväntade utdata: pb Kriterier för lyckat test: getcode() returnerar rätt profilkod Implementera konstruktorn Profile() och getcode() 3. Skapa ett Profile-objekt med profilkod pb 4. Kontrollera att getcode() returnerar pb TestSpec.lib.Profile.setCode() -1 Syfte: Kontrollera setcode() Indata /Use-Case: vi Förväntade utdata: - Kriterier för lyckat test: setcode() ändrar profilkod till vi Implementera konstruktorn Profile() och getcode() 1. Skapa ett Profile-objekt med profilkod pb 2. anropa setcode( vi ) 3. Kontrollera att getcode() returnerar vi TNM021 50

51 Sida 51 av 231 TestSpec.lib.Profile.getName() -1 Syfte: Kontrollera getname() Indata /Use-Case: - Förväntade utdata: Publicering Kriterier för lyckat test: getname() returnerar rätt profilnamn Implementera konstruktorn Profile() och getname() 1. Skapa ett Profile-objekt med profilkod Pb 2. Kontrollera att getname() returnerar Publicering TestSpec.lib.Profile.setName() -1 Syfte: Kontrollera setname() Indata /Use-Case: Visualisering Förväntade utdata: - Kriterier för lyckat test: setname() ändrar profilnamn till Visualisering Implementera konstruktorn Profile() och getname() 1. Skapa ett Profile-objekt med profilnamn Publicering 2. anropa setname( Visualisering ) 3. Kontrollera att getname() returnerar Visualisering TNM021 51

52 Sida 52 av 231 TestSpec.lib.Profile.addCourse() -1 Syfte: Indata /Use-Case: Förväntade utdata: Kriterier för lyckat test: Klassen Course måste vara implementerad. Implementera getcourses() 1. Skapa flera Course-objekt 2. Skapa ett Profile-objekt 3. Lägg till kurserna i profilen med addcourse() 4. Kontrollera att kurserna blev tillagda med getcourses() TestSpec.lib.Profile.getCourses() -1 Syfte: Kontrollera att getcourses() returnerar om inga kurser lagts till Indata /Use-Case: Förväntade utdata: En tom variabel för kurser ( ) Kriterier för lyckat test: getcourses returnerar och inte NULL Implementera Profile() 1. Skapa ett Profile-objekt 2. Kontrollera getcourses() returnerar en tom variabel för kurser ( ) TNM021 52

53 Sida 53 av 231 TestSpec.lib.ProfileMapper Förutsättningar Beroende av lib.profile och lib.basemapper Enhetstest/Integrationstest Datum TestSpec.lib.ProfileMapper.existsInDatabase(profile : string[])-1 Syfte: Testa om en profil finns i databasen Indata: array( pb, Visualisering, TCMEN ) Förväntade utdata: true Kriterier för lyckat test: databasfrågan returnerar minst en rad, dvs profilen finns Kolla att Profile( pb, visualisering, TCMEN ) existerar i databasen 7. Skapa fältet: array( pb, visualisering, TCMEN ) 8. Anropa ProfileMapper::existsInDatabase() med fältet som argument och kontrollera att returvärdet är true TestSpec.lib.ProfileMapper.existsInDatabase(profile : string[])-1 Syfte: Testa om en profil finns i databasen Indata: array( df, digital teknik i film och video, 6CMEN ) Förväntade utdata: false (nya Medieteknik MsC har inga profiler) Kriterier för lyckat test: databasfrågan returnerar 0 rader, dvs profilen finns inte Kolla att Profile( pb, visualisering, 6CMEN ) inte existerar i databasen 1. Skapa fältet: array( df, digital teknik i film och video, 6CMEN ) 2. Anropa ProfileMapper::existsInDatabase() med fältet som argument 3. Kontrollera att returvärdet är false TNM021 53

54 Sida 54 av 231 TestSpec.lib.ProfileMapper.insertInDatabase(profile: string[])-1 Syfte: Testa om en profil går att lägga in i databasen Indata: array( df, digital teknik i film och video, 6CMEN ) Förväntade utdata: true Kriterier för lyckat test: ProfileMapper::existsInDatabase() för profilen returnerar true, profilen har blivit inlagd i databasen. Implementera ProfileMapper::existsInDatabase() 1. Skapa fältet array( df, digital teknik i film och video, 6CMEN ) 2. Kontrollera med ProfileMapper::existsInDatabase() att profilen inte redan är inlagd (skall returnera false) 3. Anropa ProfileMapper::insertInDatabase() med fältet som argument 4. Kontrollera med ProfileMapper::existsInDatabase() att profilen blivit inlagd (skall returnera true) 5. Återställ databasen genom att ta bort Profile( df, digital teknik i film och video, 6CMEN ) (6CMEN har eg inte profiler, men det är bra testfall) TestSpec.lib.ProfileMapper.storeInDatabase(profile: string[])-1 Syfte: Testa om en profil går att lägga in i databasen Indata: array( vi, Visualisering, 6CMEN ) Förväntade utdata: true Kriterier för lyckat test: Implementera: ProfileMapper::existsInDatabase(), ProfileMapper::insertInDatabase() 1. Skapa fältet array( vi, Visualisering, 6CMEN ) 2. Kontrollera med ProfileMapper::existsInDatabase() att profilen inte redan är inlagd (skall returnera false) TNM021 54

55 Sida 55 av Anropa ProfileMapper::storeInDatabase() med fältet som argument 4. Kontrollera med ProfileMapper::existsInDatabase() att profilen blivit inlagd (skall returnera true) 5. Anropa ProfileMapper::storeInDatabase() med samma fält som argument igen och kontrollera i databasen att ingen ändring skett 6. Återställ databasen genom att ta bort Profile( vi, Visualisering, 6CMEN ) (6CMEN har eg inte profiler, men det är bra testfall) TestSpec.lib.ProfileMapper.getProfile(profileCode: string, programcode: string)-1 Syfte: Testa om en det går att få ut ett Profile-objekt från databasen Indata: profilecode = pb, programcode = TCMEN Förväntade utdata: ett Profile-objekt Kriterier för lyckat test: Rätt Profile-objekt returneras Implementera: ProfileMapper::existsInDatabase(), ProfileMapper::insertInDatabase() Profile 1. Skapa ett objekt från ProfileMapper::getProfile( pb, Publicering ) 2. Kontrollera att ett Profile-objekt skapats 3. Kontrollera att profilecode är pb med profilobjekt.getcode() 4. Kontrollera att profilename är Publicering med profilobjekt.getname() TNM021 55

56 Sida 56 av 231 TestSpec.lib.Program Förutsättningar Program beror av lib.profile, den måste vara implementerad Enhetstest/Integrationstest Datum TestSpec.lib.Program.Program -1 Syfte: Testa klassens konstruktor Indata /Use-Case: code = TCMEN, name = Medieteknik Förväntade utdata: Ett programobjekt med code = TCMEN, name = Medieteknik Kriterier för lyckat test: Korrekt programobjekt skapas Implementera getcode() och getname() 1. Skapa ett objekt Program( TCMEN, Medieteknik ) 2. kontrollera att koden är TCMEN med getcode() 3. kontrollera att namnet är Medieteknik med getname() 4. Skapa ett objekt Profile() 5. kontrollera att koden är TCKTN med getcode() 6. kontrollera att namnet är Kommunikations- och Transportsystem med getname() TestSpec.lib.Program.getCode() -1 Syfte: Kontrollera getcode() Indata /Use-Case: - Förväntade utdata: TCMEN Kriterier för lyckat test: getcode() returnerar rätt programkod TNM021 56

57 Sida 57 av 231 Implementera konstruktorn Program() och getcode() 1. Skapa ett Program-objekt med programkod TCMEN 2. Kontrollera att getcode() returnerar TCMEN TestSpec.lib.Program.setCode() -1 Syfte: Kontrollera setcode() Indata /Use-Case: TCKTN Förväntade utdata: - Kriterier för lyckat test: setcode() sätter profilkod till TCKTN Implementera konstruktorn Program() och getcode() 1. Skapa ett Program-objekt med programkod TCKTN 2. anropa setcode( TCKTN ) 3. Kontrollera att getcode() returnerar TCKTN TestSpec.lib.Profile.getName() -1 Syfte: Kontrollera getname() Indata /Use-Case: - Förväntade utdata: Kommunikations- och Transportsystem Kriterier för lyckat test: getname() returnerar rätt programnamn Implementera konstruktorn Program() och getname() 1. Skapa ett Program-objekt med programkod TCKTN 2. Kontrollera att getname() returnerar Kommunikations- och Transportsystem TNM021 57

58 Sida 58 av 231 TestSpec.lib.Program.setName() -1 Syfte: Kontrollera setname() Indata /Use-Case: Kommunikations- och Transportsystem Förväntade utdata: - Kriterier för lyckat test: setname() ändrar programnamn till Kommunikationsoch Transportsystem Implementera konstruktorn Program() och getname() 1. Skapa ett Program-objekt med profilnamn Kommunikations- och Transportsystem 2. anropa setname( Kommunikations- och Transportsystem ) 3. Kontrollera att getname() returnerar Kommunikations- och Transportsystem TestSpec.lib.Program.addProfile() -1 Syfte: Indata /Use-Case: Förväntade utdata: Kriterier för lyckat test: Klassen Profile måste vara implementerad. Implementera getprofiles() 1. Skapa flera Program-objekt 2. Skapa ett Program-objekt 3. Lägg till profilerna i programmet med addprofile() 4. Kontrollera att kurserna blev tillagda med getprofiles() TNM021 58

59 Sida 59 av 231 TestSpec.lib.Program.getProfiles() -1 Syfte: Kontrollera att getprofiles() returnerar om inga profiler lagts till Indata /Use-Case: Förväntade utdata: En tom variabel för profiler ( ) Kriterier för lyckat test: getprofiles returnerar och inte NULL Implementera Program() 1. Skapa ett Program-objekt 2. Kontrollera getprofiles() returnerar en tom variabel för profiler ( ) TestSpec.lib.SimpleCalendarYear Förutsättningar Enhetstest Datum TestSpec.lib.SimpleCalendarYear.SimpleCalendarYear() -1 Syfte: Testa klassens konstruktor Indata /Use-Case: Förväntade utdata: Ett SimpleCalendarYear-objekt Kriterier för lyckat test: Korrekt objekt skapas 1. Skapa ett SimpleCalendarYear-objekt med värdet Kontrollera med getsimplecalendaryear att värdet är Kontrollera att SimpleCalendarYear skapar korrekt objekt. TNM021 59

60 Sida 60 av 231 TestSpec.lib.SimpleCalendarYear.setYear () -1 Syfte: Testa metoden setyear Indata /Use-Case: integer: 1972 Förväntade utdata: NULL Kriterier för lyckat test: NULL returneras Implementera setyear() 1. Sätt Year till 1972 med hjälp av setyear 2. Kontrollera att setyear returnerar NULL Åtgärder om inga fel upptäckts: Åtgärder om fel upptäckts: Skriv felrapport ErrorRep.lib.SimpleCalendarYear.setYear.-[datum,tid]. Korrigera felet. Kör ny testomgång. TestSpec.lib.SimpleCalendarYear.getYear() -1 Syfte: Testa metoden getyear Indata /Use-Case: Förväntade utdata: integer: 1972 Kriterier för lyckat test: getyear returnerar korrekt år Implementera getyear() 1. Kontrollera att getyear() hämtar en integer 2. Kontrollera att getyear() hämtar korrekt year: 1972 TNM021 60

Objektsamlingar i Java

Objektsamlingar i Java 1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(0) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 05 31, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

TBMT41-Projekt i medicinsk teknik

TBMT41-Projekt i medicinsk teknik 1 (7) TBMT41-Projekt i medicinsk teknik Sändlista Håkan Örman Torun Berlind Elin Önstorp Matilda Leinsköld Håkan Örman Göran Salerud Göran Salerud Kurskod TBMT41 Examinator Göran Salerud Kursen gavs Årskurs

Läs mer

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

Förskollärar- programmet 210 hp

Förskollärar- programmet 210 hp Förskollärar- programmet 210 Sökanvisningar och kursutbud vt 2014 Detta material vänder sig till dig som läser på Förskollärarprogrammet i Uppsala. För dig som läser samma program på Campus Gotland finns

Läs mer

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP. Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär

Läs mer

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

Läs mer

RS01 Resultat på prov

RS01 Resultat på prov Studentavdelningen/Ladokgruppen 1 (8) RS01 Resultat på prov Detta dokument uppdaterades senast den 29 oktober 2008. Syfte I funktionen kan man rapportera resultat på prov, tillgodoräkna, ändra och ta bort

Läs mer

HexaFlip. Kravspecifikation

HexaFlip. Kravspecifikation HexaFlip Kravspecifikation Dokumentversion 1.0 Martin Larsson marla316@student.liu.se Carl Lindwall carli914@student.liu.se Senast modifierad 2009 02 17 Sammanfattning Detta dokument skall ligga som grund

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER TPFD Beskrivning Rev 4 1(10) TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER Anv.krav Terminologi Detaljkrav Konfigdok Hantera Utgåvor Projektplan Testplan Test-o-felrättning Ändringslogg Återst.

Läs mer

PROGRAMRÅD INTERAKTIONSDESIGN

PROGRAMRÅD INTERAKTIONSDESIGN PROGRAMRÅD INTERAKTIONSDESIGN Tid: 2010-11-17, Klockan 10.00 Plats: Kalmar Nyckel i sal NY110 samt via Skype Kallade: Morgan Rydbrink, Dennis Larsson, Sara Elebro, Hannes Johansson, Linus Knutsen, Wilaiwan

Läs mer

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Introduktion till integrering av Schenkers e-tjänster. Version 2.0 Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen

Läs mer

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14. Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

Tentamen TEN1 HI1029 2014-05-22

Tentamen TEN1 HI1029 2014-05-22 Tentamen TEN1 HI1029 2014-05-22 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Föreläsning 7. Träd och binära sökträd

Föreläsning 7. Träd och binära sökträd Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Läsanvisningar och

Läs mer

Några grundläggande begrepp

Några grundläggande begrepp Några grundläggande begrepp Validering bygger vi rätt system? Uppfyller kravspecifikationen de verkliga behoven? Verifiering bygger vi systemet rätt? Uppfyller det färdiga systemet kravspecifikationen?

Läs mer

Introduk+on +ll programmering i JavaScript

Introduk+on +ll programmering i JavaScript Föreläsning i webbdesign Introduk+on +ll programmering i JavaScript Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Språk Naturliga språk Mänsklig kommunika+on T.ex. Svenska, engelska,

Läs mer

Introduktion till arv

Introduktion till arv Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering

Läs mer

Föreläsning 2: Avlusning och antilustekniker

Föreläsning 2: Avlusning och antilustekniker 2D1458, Problemlösning och programmering under press Föreläsning 2: Avlusning och antilustekniker Datum: 2007-09-11 Skribent(er): Emil Hesslow, Stefan Pettersson Föreläsare: Per Austrin Föreläsningen handlade

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Selma Manual Utbildningsplan. Studentcentrum/Ladokgruppen

Selma Manual Utbildningsplan. Studentcentrum/Ladokgruppen Selma Manual Utbildningsplan Innehållsförteckning Innehållsförteckning -------------------------------------------------------------------------------------------------- 2 Logga in och logga ut - CAS ----------------------------------------------------------------------------------------

Läs mer

Slutrapport YUNSIT.se Portfolio/blogg

Slutrapport YUNSIT.se Portfolio/blogg Slutrapport YUNSIT.se Portfolio/blogg RICKARD HANSSON 2012-06-04 Abstrakt Rapporten du har i din hand kommer handla om mitt projektarbete som jag genomfört under tio veckor för utbildningen Utvecklare

Läs mer

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

STUM. Övergripande Testplan. Sammanfattning. Redaktör: Thomas Janowski Version: Syntetiskt tal utan modulering

STUM. Övergripande Testplan. Sammanfattning. Redaktör: Thomas Janowski Version: Syntetiskt tal utan modulering STUM Syntetiskt tal utan modulering Övergripande Testplan Redaktör: Version: 1.1 Sammanfattning Detta är en övergripande testplan som i stora drag beskriver planerade testfaser och testaktiviteter under

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

LiTH. WalkCAM 2007/05/15. Testrapport. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs Testrapport Mitun Dey Version 1.0 Status Granskad Godkänd 1 PROJEKTIDENTITET Reglerteknisk projektkurs, WalkCAM, 2007/VT Linköpings tekniska högskola, ISY Namn Ansvar Telefon E-post Henrik Johansson Projektledare

Läs mer

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg

Läs mer

Chapter 3: Using Classes and Objects

Chapter 3: Using Classes and Objects Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Hjälpmedel för kompilatorkonstruktion, DVB004

Hjälpmedel för kompilatorkonstruktion, DVB004 Hjälpmedel för kompilatorkonstruktion, DVB004 Version 4.2 021104 Göran Fries 031104 GF Kompilatorn kan lämpligen konstrueras i tre ganska fristående pass (p1,p2,p3). Första passet gör en lexikalisk analys,

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym

Läs mer

TSTE05-Elektronik och mätteknik

TSTE05-Elektronik och mätteknik " " 1 (" 7) TSTE05-Elektronik och mätteknik Sändlista Håkan Öhrman Torun Berlind Elin Önstorp Sandra Gustavsson Mikael Olofsson Tomas Svensson Kurskod Examinator TSTE05 Mikael Olofsson Kursen gavs Årskurs

Läs mer

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Lund U niversity Computer Science Jonas W isbrant ETSA01 Ingenjörsp ro cessen metodik V-modellen för programvaruutvecking

Läs mer

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter Datavetenskap Opponenter: Daniel Jansson Mikael Jansson Respondenter: Mats Almgren Erik Hansen Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter Oppositionsrapport,

Läs mer

Testning av program. Verklig modell för programutveckling

Testning av program. Verklig modell för programutveckling Fel i program När man skriver program uppkommer alltid fel. Felen kan indelas i följande kategorier: Under kompileringen upptäcker kompilatorn fel som handlar om att man använt konstruktionerna i programspråket

Läs mer

Konsekvensanalys av införande av kandidatarbete inom EF-nämndens civilingenjörsprogram. Utkast Ver 1.

Konsekvensanalys av införande av kandidatarbete inom EF-nämndens civilingenjörsprogram. Utkast Ver 1. Konsekvensanalys av införande av kandidatarbete inom EF-nämndens civilingenjörsprogram. Utkast Ver 1. Inledning Detta dokument utgör EF-nämndens svar på uppdraget att undersöka möjligheterna att införa

Läs mer

Lokala regler för kurs på grundnivå och avancerad nivå vid Linnéuniversitetet

Lokala regler för kurs på grundnivå och avancerad nivå vid Linnéuniversitetet Dnr: 2010/3067 Regeldokument Lokala regler för kurs på grundnivå och avancerad nivå vid Linnéuniversitetet Beslutat av Organisationskommittén, 2009-12-15 Reviderad 2010-02-16 Reviderad 2010-04-28 Reviderad

Läs mer

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal

Läs mer

Lär dig sökmöjligheterna i Disgen 8

Lär dig sökmöjligheterna i Disgen 8 Det har blivit dags att titta på sökmöjligheterna i Disgen. Det finns egentligen två olika sökfunktioner i Disgen, Välj person och Sök personer. Här behandlas dessa båda funktioner. Välj person och Sök

Läs mer

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java. Laboration 1 Avsikt Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java. Del 1 Ta fram dokumentet NetBeans5_5.pdf från kurssidan och arbeta med

Läs mer

Grundlärarprogrammet. 240 hp

Grundlärarprogrammet. 240 hp Grundlärarprogrammet 240 hp CAMPUS GOTLAND Sökanvisningar och kursutbud vt 2016 Detta material vänder sig till dig som läser på grundlärarprogrammet med studieort Campus Gotland. För dig som läser Grundlärarprogrammet

Läs mer

Testning. 1. Inledning

Testning. 1. Inledning Testning 1. Inledning I all ingenjörsmässig verksamhet är testning en vedertagen metod för att fastställa om en hypotes, konstruktion eller produkt är korrekt och fungerar som avsett. Datorprogram är ofta

Läs mer

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Lars-Henrik Eriksson Fredag 5 april 2013, kl 14:00 17:00, i Polacksbackens skrivsal Hjälpmedel: Inga. Inte heller elektronisk

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

2014-2015 Alla rättigheter till materialet reserverade Easec 1 2 Innehåll Introduktion... 4 Standarder... 5 Översikt: Standarder... 6 1058.1-1987 IEEE Standard för Software Project Management Plans... 7 Ingående dokument... 8 Syfte och struktur... 9 ITIL... 10 ITIL

Läs mer

No Oscillations Corporation. Efterstudie. Optimal Styrning av Autonom Racerbil. Version 0.1 Författare: Sofia Johnsen Datum: 20 december 2013

No Oscillations Corporation. Efterstudie. Optimal Styrning av Autonom Racerbil. Version 0.1 Författare: Sofia Johnsen Datum: 20 december 2013 No Oscillations Corporation Efterstudie Optimal Styrning av Autonom Racerbil Version 0.1 Författare: Sofia Johnsen Datum: 20 december 2013 Status Granskad Sofia Johnsen 2013-12-12 Godkänd Projektidentitet

Läs mer

Marie Andersson, IKT-centrum E-post: iktcentrum@mdh.se 2012-06-10 (Bb Learn 9.1.8) Wikis i Blackboard

Marie Andersson, IKT-centrum E-post: iktcentrum@mdh.se 2012-06-10 (Bb Learn 9.1.8) Wikis i Blackboard Marie Andersson, IKT-centrum E-post: iktcentrum@mdh.se 2012-06-10 (Bb Learn 9.1.8) Wikis i Blackboard Innehåll Om Wiki- funktionen... 1 Skapa en Wiki... 1 Lägg till/ redigera innehåll i en Wiki... 3 Läsa/skriva

Läs mer

Sammanställning kursutvärdering

Sammanställning kursutvärdering Kulturgeografiska institutionen Sammanställning kursutvärdering Kurs: Destinationer, 15 hp Termin: ht 2014 Kursansvarig lärare: Erika Sörensson 26 studenter har regelbundet deltagit på kursen. Av dessa

Läs mer

Senaste version kan hämtas från Internet i PDF 1 format Http://www.e.kth.se/~e92_sli/exjobb/projektplan/projektplan.pdf

Senaste version kan hämtas från Internet i PDF 1 format Http://www.e.kth.se/~e92_sli/exjobb/projektplan/projektplan.pdf SPECIFIKATION 1(11) Projektplan Distribution Detta dokument är ej under kontrollerad distribution. Innehavaren ansvarar själv för att den senaste utgåvan av detta dokument används och att inaktuella kopior

Läs mer

Frågebanker, frågeuppsättningar och slumpvisa block

Frågebanker, frågeuppsättningar och slumpvisa block Frågebanker, frågeuppsättningar och slumpvisa block Innehåll Frågebanker... 1 Skapa frågebank... 1 Importera en frågebank... 3 Lägg till frågor i frågebank... 3 Skapa frågeuppsättning... 3 Skapa slumpvist

Läs mer

Tidigt uppföljningssystem Skövde

Tidigt uppföljningssystem Skövde Tidigt uppföljningssystem Skövde TUSS Bakgrund rev 2, 2012-08-10 Inledning Det tidiga uppföljningssystemet TUSS är ett verktyg för de programansvariga (eller motsvarande befattning) att arbeta med studentuppföljning,

Läs mer

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning Daniel Leonardsson dale0010@student.umu.se Kajsa Persson kape0038@student.umu.se I samarbete med Svensk Maskinprovning,

Läs mer

Selma Manual Kurstillfälle, kurspaket, programtillfälle. Studentcentrum/Ladokgruppen

Selma Manual Kurstillfälle, kurspaket, programtillfälle. Studentcentrum/Ladokgruppen Selma Manual Kurstillfälle, kurspaket, programtillfälle Innehållsförteckning Innehållsförteckning -------------------------------------------------------------------------------------------------- 2 Logga

Läs mer

Grafisk visualisering av en spårbarhetslösning

Grafisk visualisering av en spårbarhetslösning Datavetenskap Opponenter Johan Kärnell och Linnea Hjalmarsson Respondenter Agni Rizk och Tobias Eriksson Grafisk visualisering av en spårbarhetslösning Oppositionsrapport, C-nivå Report 2011:06 1. Generell

Läs mer

Riktlinjer för examination på grundnivå och avancerad nivå vid Försvarshögskolan

Riktlinjer för examination på grundnivå och avancerad nivå vid Försvarshögskolan Sida 1(8) Riktlinjer för examination på grundnivå och avancerad nivå vid Försvarshögskolan Fastställd av FoUN 2001-01-09, reviderad 2013-09-11 och 2015-06-09. Tidigare versioner upphör att gälla. Se även

Läs mer

1. Hur många timmar per vecka har du i genomsnitt lagt ner på kursen (inklusive schemalagd tid)?

1. Hur många timmar per vecka har du i genomsnitt lagt ner på kursen (inklusive schemalagd tid)? Skoglig planering ur ett företagsperspektiv SG0060, 20013.1112 7.5 Hp Studietakt = 100% Nivå och djup = Avancerad Kursledare = Ola Eriksson Värderingsresultat Värderingsperiod: 2012-01-20-2012-02-03 Antal

Läs mer

THTY41 - Teknisk kommunikation på tyska 2 - del 1

THTY41 - Teknisk kommunikation på tyska 2 - del 1 1 (6) THTY41 - Teknisk kommunikation på tyska 2 - del 1 Sändlista Svante Gunnarsson Torun Berlind Elin Önstorp Fredrik Wiklund Christoph Röcklingsberg Johan Holström Kurskod THTY41 Examinator Christoph

Läs mer

REGEL FÖR UTBILDNINGSPLANER

REGEL FÖR UTBILDNINGSPLANER MITTUNIVERSITETET Styrdokument Bilaga 3 REGEL FÖR UTBILDNINGSPLANER DNR MIUN 2009/830 Publicerad: 2014-06-24 Beslutsfattare: Handläggare: Maud Albertsson Beslutsdatum: 2014-06-24 Giltighetstid: Tillsvidare

Läs mer

Här får du en kort beskrivning av vad det nya utbildningssystemet innebär för dig som studerar vid Göteborgs universitet. OBS! Extra viktigt för dig

Här får du en kort beskrivning av vad det nya utbildningssystemet innebär för dig som studerar vid Göteborgs universitet. OBS! Extra viktigt för dig Här får du en kort beskrivning av vad det nya utbildningssystemet innebär för dig som studerar vid Göteborgs universitet. OBS! Extra viktigt för dig som läser fristående kurser. Europa din nya studieort!

Läs mer

Att komma igång med FirstClass (FC)!

Att komma igång med FirstClass (FC)! Att komma igång med FirstClass (FC)! Vi har tillgång till FC genom vårt samarbete med folkhögskolor och därigenom med Folkbildningsnätet. FC kan användas på en dator på två sätt (dessutom kan du använda

Läs mer

Beslut Utbildningsplanen är fastställd av Nämnden för konstnärligt utvecklingsarbete (KUnämnden)

Beslut Utbildningsplanen är fastställd av Nämnden för konstnärligt utvecklingsarbete (KUnämnden) Utbildningsplan Kandidatprogrammet i Inredningsarkitektur och möbeldesign Beslut Utbildningsplanen är fastställd av Nämnden för konstnärligt utvecklingsarbete (KUnämnden) 2015-12-09 Gäller studenter antagna

Läs mer

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen? ICT LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen? Daniel Lindfors 12/9/07 dlindf@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Denna laboration

Läs mer

THSP41 - Teknisk kommunikation på spanska II - del 1

THSP41 - Teknisk kommunikation på spanska II - del 1 1 ( 6) THSP41 - Teknisk kommunikation på spanska II - del 1 Sändlista Kurskod Examinator Marisol Arias Abrahamsson Johan Holtström THSP41 Marisol Arias Abrahamsson Kursen gavs Årskurs 2 Termin Period 2

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Uppgifter Giriga algoritmer (Greedy algorithms)

Läs mer

Kommunal vuxenutbildning: elever, kursdeltagare och utbildningsresultat, första halvåret 2016.

Kommunal vuxenutbildning: elever, kursdeltagare och utbildningsresultat, första halvåret 2016. Maj 2016 1 (7) Kommunal vuxenutbildning: elever, kursdeltagare och utbildningsresultat, första halvåret 2016. Uppgifterna ska vara SCB tillhanda senast 15 september 2016 och kan endast lämnas via Internet

Läs mer

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp. Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Att instansiera en klass Objekt I Man instansierar (skapar

Läs mer

Björn Abelli Programmeringens grunder med exempel i C#

Björn Abelli Programmeringens grunder med exempel i C# Björn Abelli Programmeringens grunder med exempel i C# Övningshäfte (bearbetning pågår) Senaste uppdatering: 2004-12-12 I denna version finns övningar för de mest centrala avsnitten. Häftet kommer att

Läs mer

Marknadsöversikt utvärdering

Marknadsöversikt utvärdering Rapport 2012:8 2012-05-28 201 Marknadsöversikt utvärdering Med förslag till arbetsgång och finansiering vid framtida uppdatering Ida Sylwan, JTI Institutet för jordbruks- och miljöteknik Kunskapscentrum

Läs mer

Laborationsanvisning. Digital väckarklocka. Steg 2, laborationsuppgift 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Laborationsanvisning. Digital väckarklocka. Steg 2, laborationsuppgift 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Laborationsanvisning Digital väckarklocka Steg 2, laborationsuppgift 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning

Läs mer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

Läs mer

Uppdragsbeskrivning. Markeringssystem. Version 1.0 Mats Persson

Uppdragsbeskrivning. Markeringssystem. Version 1.0 Mats Persson Version 1.0 Distributionslista Befattning Bolag/enhet Namn Åtgärd Info. Student KaU Niklas Ivarsson Student KaU Andreas Bergman Konsult/huvudhandledare Sogeti Konsultchef Sogeti Åsa Maspers Konsult/handledare

Läs mer

Antagningsordning för Röda Korsets Högskola Studiestart läsåret 2013/2014

Antagningsordning för Röda Korsets Högskola Studiestart läsåret 2013/2014 1 Antagningsordning för Röda Korsets Högskola Studiestart läsåret 2013/2014 Dnr: 62/12 Reviderad 2013-10-28 och ersätter antagningsordning från 2012-09-12 2 Innehåll 1. INLEDNING... 3 2. TILLTRÄDE/BEHÖRIGHET...

Läs mer

Direkt. Ett nytt och modernt basläromedel i svenska för årskurs 7 9.

Direkt. Ett nytt och modernt basläromedel i svenska för årskurs 7 9. Svenska Direkt direkt! Gå in på www.bonnierutbildning.se/svenskaex och beställ ditt tjänsteexemplar senast 20 december. Svenska Direkt Ett nytt och modernt basläromedel i svenska för årskurs 7 9. SVENSKA

Läs mer

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper. Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

Slutexamensarbete i psykologi 30 hp ht 2015-vt 2016

Slutexamensarbete i psykologi 30 hp ht 2015-vt 2016 KAROLINSKA INSTITUTET Institutionen för Klinisk Neurovetenskap Sektionen för Psykologi Psykologprogrammet Examensarbete i psykologi; 30 hp Slutexamensarbete i psykologi 30 hp ht 2015-vt 2016 Schema Uppdaterat

Läs mer

Projektarbete 2: Interaktiv prototyp

Projektarbete 2: Interaktiv prototyp Projektarbete 2: Interaktiv prototyp Jonatan Hilmarch (Grupp 13) 880427-5595 hilmarch@skip.chalmers.se Kurs: Människa-Datorinteraktion TIG061 HT 2010 Projekt 1 - en tillbakablick Enligt projektets systemdefinition

Läs mer

Torun Berlind Elin Önstorp Sandra Gustavsson Klas Nordberg. Föreläsningar Lektioner Laborationer Projekt

Torun Berlind Elin Önstorp Sandra Gustavsson Klas Nordberg. Föreläsningar Lektioner Laborationer Projekt 1 (6) TSBB09-Bildsensorer Sändlista Håkan Örman Torun Berlind Elin Önstorp Sandra Gustavsson Klas Nordberg Kurskod TSBB09 Examinator Klas Nordberg Kursen gavs Årskurs 4 Termin 1 Period 2 Kursens delar

Läs mer

Gemensamma riktlinjer fo r genomfo rande av Examensarbete Hing Elkraftteknik

Gemensamma riktlinjer fo r genomfo rande av Examensarbete Hing Elkraftteknik Uppdatering: Datum för anmälan för boende samt datum för middag. Gemensamma riktlinjer fo r genomfo rande av Examensarbete Hing Elkraftteknik Examensarbetet ska ni genomföra på det universitet som ni är

Läs mer

Testplan Cykelgarage

Testplan Cykelgarage Testplan Cykelgarage Stefan Johansson D08 (dt08sj7@student.lth.se) Johan Anderholm D08 (dt08ja5@student.lth.se) Angelica Gabasio D08 (dt08ag8@student.lth.se) Marcus Carlberg D08 (dt08mc4@student.lth.se)

Läs mer

Administrationsverktyg för marinvåg

Administrationsverktyg för marinvåg Computer Science Opponent(s): Ewelina Helmersson & Mollin Widegren Respondent(s): Christer Oscarsson & Jonas Larsson Administrationsverktyg för marinvåg Opposition Report, C-level 2010:VT 1 En generell

Läs mer

GAFE Google Apps For Education. Vt 16 Guldkroksskolan Annika Andréasson

GAFE Google Apps For Education. Vt 16 Guldkroksskolan Annika Andréasson GAFE Google Apps For Education Vt 16 Guldkroksskolan Annika Andréasson LATHUND GAFE = Google Apps For Education www.google.se är startsidan där man kan hitta alla sidor i GAFE. Om man inte vill skriva

Läs mer

Fakulteten för samhälls- och livsvetenskaper. Utbildningsplan. Miljövetarprogrammet XGMVE. Miljövetarprogrammet. Environmental Science Programme

Fakulteten för samhälls- och livsvetenskaper. Utbildningsplan. Miljövetarprogrammet XGMVE. Miljövetarprogrammet. Environmental Science Programme Fakulteten för samhälls- och livsvetenskaper Utbildningsplan Miljövetarprogrammet Programkod: Programmets benämning: XGMVE Miljövetarprogrammet Environmental Science Programme Högskolepoäng/ECTS: Beslut

Läs mer

JURIDISKA INSTITUTIONEN

JURIDISKA INSTITUTIONEN JURIDISKA INSTITUTIONEN HRS290 Teoretisk affärsjuridik - Rollperspektiv på rätten, 15 högskolepoäng Theoretical business law - Role Fastställande Kursplanen är fastställd av Juridiska institutionen 2014-09-10

Läs mer

Slutrapport för Pacman

Slutrapport för Pacman Slutrapport för Pacman Datum: 2011-05-30 Författare: cb222bj Christoffer Bengtsson 1 Abstrakt Jag har under våren arbetat med ett projekt i kursen Individuellt Mjukvaruutvecklingsprojekt. Målet med mitt

Läs mer

Enkla variabler kontra referensvariabel

Enkla variabler kontra referensvariabel Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som används för att representera en primitiv datatyp kallas för enkel variabel. Deklarationssatsen

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer