TDP003 Projekt: Egna datormiljön

Relevanta dokument
TDP003 Projekt: Egna datormiljön

TDP003. Föreläsning 2. Filip Strömbäck

Projektet. TNMK30 - Elektronisk publicering

Projektuppgift.

TDP003. Föreläsning 1. Filip Strömbäck

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

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

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Kursplan Webbutveckling 2, 100p Läsår

Webbserverprogrammering

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Kursplanering Objektorienterad programmering

WEBBSERVERPROGRAMMERING

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

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

TUTORIAL: SAMLING & KONSOLL

Kursplanering Utveckling av webbapplikationer

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Inlämningsuppgifter, EDAF30, 2015

PROJEKT Kurs om hållbar utveckling

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Grupper; Gruppindelningar; Vanliga inställningar för modul

Laboration 1. Webbprodution Struktur & innehåll HT2015

Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014

Slutrapport. APFy.me

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

Handhavandeguide: Kursbevis Innevarande version vid senaste uppdatering:

Labora&on 7 Syfte med laborationen:

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte

Omtentamen i OOSU2, 21 augusti 2014

För dig som lärare har vi placerat nya inkomna svar från elever under Följ upp uppgifter medan elev på samma ställer ser alla sina aktiva Uppgifter.

Berättelser Scenarios Presentationer Skisser Formella modeller Mjukvaruprototyper Kartong modeller etc.

Tentamen, EDAA10 Programmering i Java

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

SKOLFS. beslutade den XXX 2017.

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser.

Word-guide Introduktion

Avancerade Webbteknologier

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

TDP003 Projekt: Egna datormiljön

Handhavandeguide: Utdata Innevarande version vid senaste uppdatering:

Under Kurser visas dina kurser som kort och om där finns nya uppgifter eller anslag visas antalet i kurskortet.

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Användarmanual för Content tool version 7.5

Filhanterare med AngularJS

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

Axalon Process Navigator SP Användarhandledning

Laboration 2. Webbproduktion En stiligare webbsida HT2015

Praktikum i programvaruproduktion

Projekt Foreläsning VI

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Introduktionsmöte Innehåll

Att hämta organisationers publikationsposter ur DiVA

SKOLFS. På Skolverkets vägnar. GENERALDIREKTÖREN Enhetschef

Introduk+on +ll programmering i JavaScript

Chaos om datorprojekt..

Genom alternativet Utsökning kan du ta fram och exportera listor och förteckningar av publikationer i DiVA utifrån person, organisation, ämne m.m.

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Manual: Rapporter v.3

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

APA för nybörjare. Innan du börjar. Översikt

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

1. Enkel sökning Globalsökning Avancerad sökning Historik Söka via klassificeringsstruktur 14

Handhavandeguide: Attestera resultat Innevarande version vid senaste uppdatering:

Sovra i materialet. Vad är viktigt? Vad kan tas bort? Korta ner långa texter.

Laboration 1: Design av applikation för uthyrning av maskeradkläder

Laboration 4. Laboration 4, Formulärvalidering. Inledning. Observera. Mål. Genomförande

Webbprogrammering, grundkurs 725G54

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Kom igång med LUPP 6.1

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

Om lathunden. Vad lathunden inte beskriver Systemdokumentationen och dess funktionsbeskrivningar på wikin beskriver systemet som helhet.

SLUTRAPPORT WEBBPROJEKT 1

Föreläsning 4. CSS Stilmallar för webben

Manual Webb-admin för evenemang

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Inlämning i Studentportalen

Wireframe när, vad, hur och varför?

Kursledare och övriga föreläsare och övningsassistenter. Antal undervisningstimmar uppdelat på föreläsningar, övningar och andra undervisningsformer

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Föreläsning 2. Operativsystem och programmering

Introduktion till git

Projektuppgift- Mashup- Applikation

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Hjälp till MV-Login Administration Elevdata AB

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Skriva utbildningsbeskrivningar

ANVÄNDARMANUAL, INTERAXO

LUVIT Utbildningsadministration Manual

TDP003 Projekt: Egna datormiljön. Kursmål. Om kursen. Planering/Schema. Kursens organisation Översikt. Få kunskap om och erfarenhet av

Transkript:

TDP003 Projekt: Egna datormiljön Systemspecifikation av portfoliosystemet Kursmaterial till kursen TDP003 Höstterminen 2014

Innehållsförteckning 1 Revisionshistorik...3 2 Översikt...3 2.1 Deldokument i översikt...3 3 Kravspecifikation...4 3.1 Presentation...5 3.2 Data...5 3.3 Icke-funktionella krav...6 4 Arbetsprocess...8 4.1 Förbered...8 4.2 Konstruera...9 4.3 Överlämna...10 4.4 Hela arbetsprocessen som UML-diagram...11 5 Arkitektur...12 5.1 Delsystem Presentation...12 5.2 Delsystem Data...12 5.3 Kommunikation mellan delsystemen...12 6 Systemdesign...13 6.1 Programgränssnitt...13 7 Testning...13

2014-09-08 3 1 Revisionshistorik Ver. Revisionsbeskrivning Datum 1.1 Smärre språkliga korrigeringar. Numreringen av datakrav och ickefunktionella kraven korrigerades. Nytt krav 3.7. Utvidgning av kapitel 7 med en beskrivning av hur utvärderingen av systemen ska göras. 1.2 Smärre språkliga korrigeringar. Tagit bort delar om KID. 1.3 Ändrat överlämningsförfarandet, numera enbart till assistent. 140826 1.4 Ändrat csv till json som lagringsformat. 140827 2.0 Uppdaterat innehåll. Förbättrat text. Förnyat layout. Katalogstruktur för Flask uppdaterad. 2.1 Fortsatt uppdaterad layout. Renskrivning. Uppdelning av krav samt borttagning av detaljbeskrivning i dokumentationskrav. 140903 140908 2 Översikt I portfolioprojektet ska du arbeta utifrån en given specifikation av systemet. Dokumentationen följer gängse traditionell standard för hur man specificerar ett system, om än i liten skala. Du kommer att komplettera denna dokumentation med detaljer som rör implementation och användning. 2.1 Deldokument i översikt Kravspecifikation: Arbetsprocess: projektet har. Arkitektur: Systemdesign: Testning: Här beskrivs de krav som finns på hur systemet ska fungera sett ur ett användar- och sjösättningsperspektiv. Här står vilken arbetsordning ni ska följa och vilka leverabler Beskriver arkitekturen för portfoliosystemet som ni ska följa. Preciseras detaljer om programgränssnitt till delsystemet Data. Kort om hur systemtestet ska utföras.

2014-09-08 4 3 Kravspecifikation Med en kravspecifikation menar vi en sammanställning av de krav som finns på hur systemet ska fungera (funktionella krav) samt övriga krav på system och projekt (icke-funktionella krav). Kravspecifikationen för portfoliosystemet är givet av kursledningen. Att omsätta denna kravlista till ett fungerande system är studentens arbete. I de fall kraven inte säger uttryckligen vad som gäller finns en frihet för studenterna att själva välja design/teknik/implementationsstil. Detta gäller till exempel exakt hur användargränssnittet ska se ut. Bara vissa grundläggande krav är ställda. Ett av målen för projektkursen är att bygga ert eget portfoliosystem där ni skapar en webbplats som ni under utbildningens gång kan lägga in projekt ni arbetar med, både inom och utanför utbildningens ramar. På vägen lär ni er om användbara webbtekniker så som HTML5 och CSS. Programmeringsmässigt handlar det främst om att lära sig Python. Portfoliosystemet är en webbplats med en statisk och tre dynamiskt skapade webbsidor, enligt följande lista: index: statisk eller dynamisk förstasida list: dynamisk sida som listar projekten project: dynamisk sida som visar information för ett specifikt projekt techniques: dynamisk sida som visar en sammaställning över de tekniker som används i projekten Nedan följer en lista med specifika krav som ställs på portfoliosystemet. Kraven är numrerade i x.y där x är siffran på underkapitlet och y är ett löpnummer för kraven under rubrik x. Se nästa sida för faktiska krav.

2014-09-08 5 3.1 Presentation ID Krav Tillagd Ändrad 1.1 Förstasida med bilder. URL: / 140908 1.2 Söksida som visar en lista över projekt med kort information om varje projekt och gör det möjligt att sortera dessa samt söka bland dem genom ett formulär på sidan. URL: /list 1.3 Projektsida som visar fullständig information om ett projekt. GET-variabel för att ange projekt-id: id. URL: /project/id - där id är projektets nummer 1.4 Tekniksida som visar information om alla projekt utifrån använda tekniker. URL: /techniques 1.5 För varje projekt ska en liten bild visas på söksidan och en stor på projektsidan. Det behöver inte vara samma bild. Bildtext för varje bild skall finnas. 1.6 Vid fel ska systemet skriva ut informativa meddelanden till användaren på en lämplig nivå för en slutanvändare. (Det vill säga, systemet ska fånga och omvandla felkoder och statuskoder till begripliga meddelanden.) 140908 140908 140908 3.2 Data ID Krav Tillagd Ändrad 2.1 Systemet ska kunna hantera följande information om projekt: projektnamn, projekt-id-nummer, startdatum, slutdatum, kurskod och -namn, kurspoäng, använda tekniker, kort beskrivning, lång beskrivning, liten och stor bild (snapshot), gruppstorlek och slutligen en länk till projektsida. Projektnamn och projekt-id är obligatoriska i projektinformationen, övriga fält kan lämnas tomma. 2.2 Projekt-id ska vara ett unikt heltal för varje projekt. 2.3 Varje projekt kan ha en sekvens av tekniker angivna. 2.4 Sökning ska kunna göras på godtycklig projektinformation. Sökning kan ske på flera fält samtidigt. Sortering ska kunna göras på ett fält, i valfritt stigande och fallande träffordning. Man ska kunna filtrera utifrån använda tekniker i sökningen. Observera att allt ska fungera tillsammans, så att man kan söka på ett sökord, filtrera till vissa tekniker och sortera söklistan i en viss ordning samtidigt.

2014-09-08 6 2.5 Loggning av varje anrop ska ske till en loggfil. Loggen ska ange tidpunkt, vilken typ av anrop det är och relevant information till exempel data i sökning, vilket projekt som slås upp etcetera. 2.6 Systemet ska hantera statuskoder som skickas till presentationslagret och där vid behov översätts till lämpliga medddelanden. Tre statuskoder används: 0 = Ok, 1= fel vid access av databasfil, 2=angiven projekt identitet existerar inte. 2.7 Data lagras med JavaScript Object Notation (JSON) värden i filen data.json. (Se Wikipedia för mer information om detta format: JSON (http://sv.wikipedia.org/wiki/json). Filen ska lagras med UTF-8 teckenkodning. 140908 2.8 Data läggs till i JSON-filer manuellt (eller av andra verktyg) i systemet. 140908 2.9 Förändring av data.json ska slå igenom direkt i systemet utan omstart av webbserver. 2.10 (Frivilligt) Utvidga systemet med en administrativ sida för redigering av data. 140908 140908 3.3 Icke-funktionella krav ID Krav Tillagd Ändrad 3.1 Pythonskriptens utdata ska formateras med en HTML-mall, via Jinja2. 140908 3.2 Presentationen ska implementeras med hjälp av HTML5 och CSS3. 140908 3.3 Katalogstrukturen ska se ut så här: MyPortfolio/ doc/ static/ images/ *.png, *.jpg, *.gif style/ *.css, *.png, *.jpg, *.gif templates/ *.html,xml,json README data.json myflaskproject.py *.py Viktigt: Katalogen style/ är för CSS-filer och bilder som refereras från dessa. Bilder som hör till innehållet/projekten läggs i images/. 140908

2014-09-08 7 3.4 Versionshantering med Git ska användas. 3.5 Hela systemet ska testas av tredje person som får utföra de huvudsakliga uppgifter som portfoliosystemet är tänkt för. Se vidare under 7 Testning. 3.6 Källkoden ska kommenteras på engelska för varje modul, funktion och för varje global variabel. Ej självförklarande kodavsnitt ska även kommenteras löpande i koden. 140908 3.7 Alla namn på filer, moduler, funktioner och variabler ska vara på engelska. 3.8 Systemdokumentation ska ingå. En README-fil ska beskriva hur systemet är paketerat och peka ut övrig dokumentation. Tydliga installationsinstruktioner ska ingå, antingen som del av README-fil eller i valfri annan fil utpekad av README-filen. 140908 3.9 En användarmanual ska ingå i systemdokumentationen. 140908 140908 3.10 Testerna ska dokumenteras och skall ingå i systemdokumentationen. 140908 140908

2014-09-08 8 4 Arbetsprocess Portfolioprojektet följer en på förhand fastställd arbetsgång med olika moment som beskrivs på denna sida. Du ska utföra detta arbete främst under egen tid men viss resurstid finns inlagd i kursschemat. Börja med att läsa igenom materialet och förbereda dig inför första laborationen. Arbetet med portfolioprojektet sker i följande tre faser: Illustration 1: Överblick över arbetsprocessen Att förbereda handlar om att se till att man vet vad som ska göras och vilka förutsättningar som existerar. Med konstruera avses såväl att utforma applikationen som att testa, implementera och dokumentera den. Projektet avslutas genom att den färdiga och paketerade applikationen överlämnas till laborationsassistenter. 4.1 Förbered Illustration 2: Bild av det förberedande stegets arbetsflöde I detta skede ska ni skapa bra förutsättningar för resten av projektet genom att ta reda på saker och planera. Istället för att själva ta reda på kundens behov och önskemål får ni en färdig specifikation som ska följas (se kravspecifikationen). För att få idéer och inspiration får ni själva söka upp möjliga förebilder och inspirerande exempel på nätet. Efter detta ska ni ta fram handritade skisser på papper av hur ert eget portfoliosystem ska se ut. Att arbeta med papper och penna för att skapa prototyper av system är något som används flitigt av flera mjukvaruföretag. Intresset för detta arbetssätt har ökat starkt de senaste åren, i samband med webbutveckling och webbapplikationer. Förutom att veta vad ni ska göra behöver ni tänka igenom hur ni vill göra det och organisera ert arbete därefter. För att få kvalitet i detta moment finns en enkel projektplan med som inlämningsuppgift. Kom ihåg att ta med sådant som projektets tidsramar och resurser (till exempel arbetstimmar till förfogande för projektet) samt projektets målsättning. Men även att sätta upp era egna tidsramar och milstolpar.

2014-09-08 9 Att lämna in Skisser av användargränssnittet Projektplan 4.2 Konstruera Under konstruktionsfasen utformas och implementeras portfoliosystemet enligt följande bild: Illustration 3: Bild av arbetsflöde vid konstruktion av systemet Ni behöver identifiera lagom delmoment att implementera i taget. Ett kriterium kan vara att systemet ska klara godkänt på ytterligare en test. Genom att köra tester säkerställer ni att koden gör det den ska. Att dokumentera koden blir svårare ju längre tid som gått sedan den skrevs. Vill ni som utvecklare lägga så lite tid som möjligt på att dokumentera tjänar ni tid på att göra det så snart en funktion är implementerad och testad. En grundregel när man har koden i ett repository är att all kod som finns i dess huvudgren ska vara testad med godkänt resultat. Annars stör man andra utvecklare, till exempel genom att de inte längre kan köra systemet. Om projektet tillämpar continuous integration (vilket ni kommer att göra i framtida projekt) så blir detta ett måste! I portfolioprojektet är ni två personer i en grupp och det viktiga är att ni bägge vet vad som pågår. I större projekt på IP-programmet kommer det krävas att ni lär er att tillämpa revisionshantering på ett mer avancerat sätt. En annan viktig aspekt av revisionshantering är att man skriver bra kommentarer vid varje commit. I dessa finns källkodens historik. En anledning är att man helt enkelt ska veta vad man har gjort och i vilken ordning. Denna information kan utgöra grunden för en revisionslogg (eng. changelog). Att lämna in Revisionslogg

2014-09-08 10 Utöver inlämning så visar ni upp systemet vid olika tidpunkter under projektets gång. 4.3 Överlämna Kursen avslutas med att presentera och sjösätta portfoliosystemet enligt följande bild: Illustration 4: Bild av arbetsflödet för överlämning Inför kursens avrundning lämnas paketet med kod och dokumentation in till er laborationsassistent. Kom ihåg att paketet ska innehålla information om hur det är strukturerat samt installationsanvisningar och andra dokument. Ladda gärna ner ett eller flera open source-projekt för att få exempel på hur det kan se ut. Som förberedelse inför slutseminariumet kommer ni att få källkoden från en annan grupp. Gå igenom källkoden och lär av deras lösningar på olika svårigheter i projektet samt se över vad ni uppfattar som lätt eller svårt att förstå av deras källkod. Ni ska också kunna förklara för andra hur ni tänkt i olika delar av ert eget system. Slutseminariet kommer att hållas med hela klassen. Det sker även ett uppföljande coachmöte som sista gruppmoment i kursen. Att lämna in Revisionslogg Paket med (kommenterad) kod och dokumentation

2014-09-08 11 4.4 Hela arbetsprocessen som UML-diagram Här visas en bild över hela projektförloppet i sammanfattning: Illustration 5: hela arbetsprocessen som helhet Diagrammet är ett aktivitetsdiagram enligt UML, se Introduction to Activity Diagrams (http://www.agilemodeling.com/artifacts/activitydiagram.htm) eller UML2 Tutorial (http://sparxsystems.com.au/resources/uml2_tutorial/uml2_activitydiagram.html) om du vill veta mer.

2014-09-08 12 5 Arkitektur När vi talar om ett system övergripande kallar vi detta för systemarkitektur. Denna sida tar upp de krav som ställs på arkitekturen i ert portfoliosystem. Portfoliosystemet ska byggas i termer av två delsystem. Med ett delsystem menar vi rent konkret en eller flera python-moduler som tillsammans bildar en avgränsad del av systemet. Dessa delsystem kommer kommunicera med varandra i enlighet med förutbestämda format. Därmed uppnår vi en utbytbarhet för varje delsystem. Detta kommer bland annat göra att ni kan byta till exempel användargränssnitt med andra grupper vid projektets slut. Underrubrikerna förklarar varje delsystems enskilda uppgift. 5.1 Delsystem Presentation Delsystemet Presentation ansvarar för gränssnittet mot användaren och att ta emot data som kommer från användaren. Här hanteras även funktionalitet som har direkt att göra med den grafiska presentionen för användaren. Till exempel kan en tom lista visas som "Inga sökresultat för... finns att visa!" istället för att det bara blir tomt. Ett annat exempel på sådan funktionalitet kan vara att ge raderna i en tabell alternerande bakgrundsfärger. Att ta emot data från användaren är det här delsystemets ansvar, vilket kan inkludera även en första filtrering av indata. Kom ihåg att på webben är all data som kommer från användare potentiellt en säkerhetsrisk. Därmed måste delsystemet Presentation tänka på säkerhet mot oönskade intrång. 5.2 Delsystem Data Delsystemet Data ansvarar för hur data som rör projekten lagras och hämtas. Delsystemet Data erbjuder delsystemet Presentation ett antal funktioner och tar hand om allt som rör konkret datarepresentation på fil, det vill säga läsning och hållning av data under exekvering. Till delsystemet Data räknas även funktionalitet för sökning av data och sortering av hittade resultat. 5.3 Kommunikation mellan delsystemen De två delsystemen kommunicerar i sekvens Presentation till Data vid inkommande användarförfrågan (till exempel att användaren klickar på en länk). Resultatet går sedan åt andra hållet, Data till Presentation, vilket till sist bör resultera i att en ny HTML-sida visas med resultatet. Genom att bygga portfoliosystemet i två separerade delsystem så kan det ena delsystemet bytas ut utan att det påverkar det andra. En situation där det här är användbart är då information önskas presenteras i ett annat format, som ren text eller PDF. Då behövs endast presentationslagret bytas ut. Denna arkitektur kan ses som en enkel variant av en vanlig idé som används även för större system, då ofta kallad lager-arkitektur (som för större system består av fler lager än två). Se kravspecifikationen angående krav på implementationen av denna arkitektur. Till exempel vilka filnamn olika delar av systemet ska ha.

2014-09-08 13 6 Systemdesign Här tar vi upp de krav som ställs på systemdesignen av portfoliosystemet. Med systemdesign menar man normalt saker som rör källkodens utseende men utan att precisera implementationen exakt. 6.1 Programgränssnitt För portfoliosystemet har vi ett obligatoriska krav ställt på systemdesignen: programgränssnitten till Datamodulen ska följa en fastställd standard. Det här gör vi för att göra delsystemen utbytbara. Programgränssnitt kallas ofta API (Application Program Interfaces). Vi kommer hädanefter att använda den termen synonymt med programgränssnitt. Portfoliosystemets API ligger i sin helhet på http://www.ida.liu.se/~tdp003/current/portfolio api Dokumentation är genererad med hjälp av epydoc (http://epydoc.sourceforge.net/) och visar vilka funktioner som modulen data.py ska innehålla. Dokumentationen visar också vilka argument och vilket returvärde varje funktion ska ha. I beskrivningen framgår också hur dessa argument kan sättas. Observera att modulerna får innehålla fler funktioner men att bara APIets funktioner får användas av andra delsystem. Det är också tillåtet och uppmuntras att fler moduler introduceras för varje delsystem vid behov. 7 Testning Ditt portfoliosystem ska testas av tredje person. Dokumentera hur systemtestet genomfördes och vilka problem och fel som upptäcktes. Denna dokumentation ska ingå i systemdokumentationen. Minimum är att två personer, externa för ert projekt, testar systemet. Låt användarna först testa systemet på egen hand, utan att ni hjälper dem alls, och observera beteendet. Guida sedan användarna genom systemet och se till att de provar alla funktioner. Samtliga funna felaktiga beteenden eller systemkraschar ska åtgärdas i den slutliga versionen av systemet. Kom ihåg att det är er uppgift att dokumentera den testning tredje person gör.