# Testplan
Detta dokument beskriver den teststrategi som tillämpas under projektets utveckling. Målet med dokumentet är att ge insikt i syfte och förfarande kring projektets testning.
### Teststrategi
Projektets testningsstrategi är utformad från ett perspektiv av manuell testning. Automatisk testning bedöms vara olämplig på grund av systemets oförutsägbara utdata. Eftersom stora delar av systemet beror på AI-modeller med en icke-noll grad av slumpmässighet kommer det kräva mänsklig/manuell tolkning av chattbottens svar.
#### Enhetstestning
*Ej aktuellt i projektets nuvarande status, detta kan komma att förändras om automatisk testning introduceras.*
#### Integrationstestning
*Ej aktuellt i projektets nuvarande status, detta kan komma att förändras om automatisk testning introduceras.*
#### Systemtestning | End-to-end testning
Systemtestning, alltså testning av systemet i sin helhet, sker genom det chattbottens gränssnitt. Denna testning är kravbaserad, och varje testfall ska vara utformat från ett givet krav i kravspecifikationen. Systemtestningen ska också vara baserad på ett givet scenario, vilket ska reflekteras i testspecifikationens testfall.
#### Explorativ testning
Systemet ska dessutom testas explorativt, för att ge utvecklare/testare fria händer i testningssessioner. Explorativ testning ska genomföras med syftet att hitta problem i systemet som den kravbaserade testningen missar. Syftet är också att uppfinna och konkretisera nya kravbaserade testfall utifrån explorativ testning.
#### Regressiontestning
Regressiontestning utförs genom rapportering och versionshantering av utförda testfall, se [rapportering](#Rapportering).
#### Acceptanstestning
Systemet ska tillgängliggöras till beställande kund innan överlämning för att ge möjlighet till acceptanstestning. Vi rekommenderar också kontinuerlig användartestning för att samla aktiv feedback på systemet.
### Scope
Testplanen beskriver enbart förfarande av utvecklarnas testning av systemet. Acceptanstestning och eventuell kontinuerlig användartestning lämnas i kundens händer.
Testplanen berör systemets kärntjänster:
- Kunskapsbanken/Databasen
- Funktionalitet kring datakällor
- Webbskrapan för [serviceportalens](https://serviceportalen.lnu.se/sv-se) artiklar
- Frågemottagaren
- Frågebesvararen
Se projektets [arkitektur](https://hackmd.io/@verksamhetsprojekt/BkubX1tkh#Arkitektur).
### Objektiv
Målet med systemets testning är att säkerställa att dess krav uppfylls. Därför är testfall utformade utifrån projektets kravspecifikation.
Explorativ testning genomförs med avsikten att upptäcka problem i systemet som inte uppenbaras genom testning utifrån kravspecifikationen. Metoden används också för att uppfinna nya testfallö
### Leverabler
Testfall ska dokumenteras i [testspecifikationen](https://hackmd.io/@verksamhetsprojekt/ry3uwC6J3), se tillhörande [mall](https://hackmd.io/@verksamhetsprojekt/ryt9ZOkxh#Testfall-Mall-TC-XX) för detaljer.
Exekverad testning ska rapporteras, se [rapportering](#Rapportering) för detaljer.
### Schema
Testning av systemet sker inte enligt några regelbundna intervaller, schemaläggning av testning sker istället utifrån utvecklarnas behov.
Systemet skall vara testat enligt teststrategin och testspecifikationen innan dess överlämning till beställande kund.
### Miljö/Verktyg
Systemtestning utifrån testspecifikationen sker manuellt genom mjukvarans tillhörande gränssnitt. Detta gäller även explorativ testning.
Explorativ testning av de olika AI-modellerna från OpenAI kan även ske genom [OpenAI:s Playground](https://platform.openai.com/playground)
- [`gpt-3.5-turbo`](https://platform.openai.com/playground?mode=chat&model=gpt-3.5-turbo)
- [`text-davinci-003`](https://platform.openai.com/playground?mode=complete&model=text-davinci-003)
*Automatisk testning sker ej i nuläget, om detta förändras skall dess miljö dokumenteras här*
### Testdata
Testdata för utformning av testfall finns att hämta i det material projektets kund har försett utvecklarna med, ex:
- IT-avdelningens ärendehanteringshistorik
- (Data utdrag incidenter 2023-02-22)
- Träningsmaterialet för partnerorganisationens tidigare chattbottar
- GetJenny FAQ - IT-support
- Chatbot - Frågor och svar
- IT-avdelningens kunskapsartiklar med lösning för tekniker
Materialet innehåller ett stort antal exempel på verkliga frågor som har ställts till IT-avdelningen, dessutom verkliga svar till stödsökande. Samtliga dokument finns att hitta i projektets Teams-kanal.
Utvecklare/testare har fria händer att hitta på egen testdata, ovanstående material kan då användas till inspiration.
### Exekvering
Manuella tester exekveras enligt de steg som specificeras i dess testfall. Se [testspecifikationen](https://hackmd.io/@verksamhetsprojekt/ry3uwC6J3).
*Automatisk testning sker ej i nuläget, om detta förändras skall dess exekvering dokumenteras här*
### Rapportering
Systemtestning ska dokumenteras och rapporteras enligt [testrapportmallen](https://hackmd.io/@verksamhetsprojekt/ryt9ZOkxh#Testrapport-Mall-Testrapport). Genomförda testrapporter ska versionshanteras.
*Automatisk testning sker ej i nuläget, om detta förändras skall dess rapportering dokumenteras här*