Inleiding
Dit document dient om inzicht te geven in de manier waarop er getest is en de bevindingen die daarbij hebben plaatsgevonden. We zullen het hebben over de tooling die is gebruikt, de manier waarop getest is, bekende errors of bugs en tot slot alle tests zelf.
Tooling
Zowel de frontend als de backend is getest met unit tests, bij de frontend maken wij gebruik van Jest, bij de backend maken wij gebruik van JUnit. Bij het schrijven van unit tests zijn voor alle onderdelen waar het iets toe voegt tests geschreven die alle endpoints van de functies testen. Ook zijn er bij de frontend flow tests geschreven, deze zijn om meerdere dingen in een keer te testen en er voor te zorgen dat de applicatie ook daadwerkelijk de gewenste functionaliteit en responses heeft.
Bekende errors/bugs
Bij het testen zijn er enkele bugs naar voren gekomen waar geen tijd meer voor is om op te lossen, deze worden hierin benoemd.
Beschrijving | Situatie | Oplossing |
---|---|---|
Beheerknop is hidden voor niet beheerders, het verlof goedkeuren is echter ook te vinden in deze drop down dus Product owners en Lead links die niet ook nog de beheerder rol hebben kunnen op moment niet bij de verlof keuren pagina komen. | Op elke plek binnen de site als je een Product owner of Lead link bent. | De beheer knop niet togglebaar maken maar de opties erin toggelen op basis van de permissies van de gebruiker. |
Bij het declareren van reiskosten, als er geen datum geselecteerd wordt, wordt er automatisch de dag van vandaag gepakt. | Bij het aanmaken van een declaratie zonder datum. | De datum optie verplicht maken. |
Backend tests
Voor de backend zijn alle klassen genoemd die worden getest, samen met de methode in deze klassen. Dit wordt vernoemd in de onderstaande tabel. Alle testen voor de backend in dit hoofdstuk worden opgesteld door middel van unittesten. Per klasse is er een tabel waarin alle tests voor die klasse worden benoemd samen met welke methode het betreft, het verwachtte resultaat, het echte resultaat en of de test geslaagd is.
Alle klassen met methodes en een beschrijving.
Klasse | Methode | Beschrijving |
---|---|---|
LoginService | login() | Deze methode wordt aangeroepen wanneer een gebruiker wilt inloggen en checkt of de ingevoerde informatie overeen komt met wat er in de database staat. |
LocatieService | getLocaties() | Deze methode haalt alle locaties op die in de database staan. |
LocatieService | insertNieuweBedrijfsLocatie() | Doormiddel hiervan wordt een nieuwe bedrijfslocatie aangemaakt en opgeslagen. |
LocatieService | pasBedrijfsLocatieAan() | Hiermee kan een bestaande bedrijfslocatie aangepast worden. |
LocatieService | checkInLocaties() | Met deze methode wordt er gecheckt of er een locatie bestaat met de naam die wordt meegegeven. |
LocatieService | verwijderBedrijfsLocatie() | Wanneer deze methode wordt aangeroepen wordt er een bedrijfslocatie verwijderd waarvan de naam gelijk is aan de meegegeven naam. |
DeclaratieAuto | createDeclaraties() | Dit is een methode die wanneer aangeroepen, declaraties aanmaakt voor alle werknemers op die dag. Dit gebeurt automatisch zolang het programma runt. |
DeclaratieService | declareerReis() | Deze methode zorgt ervoor dat er een declaratie een gemaakt wordt met de meegegeven informatie. |
DeclaratieService | declareerReisMetMeters() | Deze methode wordt gebruikt door de declareerReis() methode om een reis te declareren. |
DeclaratieService | getBijlageVoorDeclaratie() | Wanneer deze methode uitgevoerd wordt zal het een bepaalde bijlage van een declaratie ophalen aan de hand van de naam van de bijlage. |
DeclaratieService | haalOverzichtOp() | Deze methode haalt een volledig maand overzicht aan declaraties op voor een bepaalde werknemer. |
DeclaratieService | filterDeclaratiesPerDatum() | In deze methode wordt er van een lijst aan declaraties een overzicht gemaakt waarin de declaraties gegroepeerd worden per datum. |
DeclaratieService | verwijderDeclaratie() | Met behulp van deze methode wordt een declaratie verwijderd met hetzelfde id als een meegegeven id. |
DeclaratieService | getMaandOverzichtAlleMedewerkers() | Deze methode haalt alle declaraties op per maand, gegroepeerd per medewerker. |
WerknemerService | voegNieuweGebruikerToe() | Voegt een nieuwe gebruiker toe aan de database op basis van de waardes in nieuweWerknemerDTO. |
WerknemerService | verwijderGebruiker() | Verwijder een gebruiker uit de database aan de hand van de opgegeven werknemer id. |
WerknemerService | veranderWerknemerGegevens() | Veranderd de gegevens van een gebruiker. Als er coördinaten worden meegegeven, wordt de locatie aangepast, als er geen coördinaten zijn worden alleen de permissies geüpdatet. |
WerkplekService | getWerkplekOverzicht() | Haalt voor de opgegeven week alle informatie op over welke gebruiker op welke werkplek werkt. Geeft ook terug wie er op een thuiswerkplek staan, en wie er met verlof zijn. |
WerkplekService | addWerkplek() | Voegt een nieuwe werkplek toe aan een bestaande locatie. |
WerkplekService | deleteWerkplek() | Verwijderd een werkplek. |
WerkplekService | updateWerkplek() | Veranderd de gegevens van een bestaande werkplek. |
WerkplekService | reserveerWerkplek() | Reserveert de opgegeven werkplek voor de ingelogde gebruiker. |
VerlofService | verlofUrenAfgelopenJaarMeenemenOfUitbetalen() | Deze methode wordt aangeroepen als een beheerder verlofuren van een gebruiker voor het volgend jaar wilt accoderen. |
VerlofService | calcVerlofUren() | Deze methode is een hulpmethode die de werkuren berekend binnen een verlof aanvraag. |
VerlofService | getVerlofAanvragenMedewerker() | Deze methode wordt aangeroepen als er verlof aanvragen opgehaald moeten worden voor een werknemer. |
VerlofService | getAlleVerlofAanvragen() | Deze methode wordt aangeroepen als een beheerder, product owner of lead link alle verlof aanvragen wilt zien. |
VerlofService | keurVerlofAanvraag() | Deze methode wordt aangeroepen als product owner of lead link een verlof aanvraag wilt goed of afkeuren. |
VerlofService | vraagVerlofAan() | Deze methode wordt aangeroepen als een gebruiker een verlof aanvraag wilt doen. |
VerlofService | verlofAanvraagOverlap() | Deze methode is een hulpmethode die kijkt of er overlap is tussen een nieuwe verlof aanvraag en al bestaande. |
LoginService
Methode | Test naam | Expected Result | Actual Result | Test Result |
---|---|---|---|---|
login() | executeLoginWithWrongUsername() | null | null | Succes |
login() | executeLoginWithGoodLoginWithoutStoreUser() | not null | not null | Succes |
login() | executeLoginWithGoodLoginWithStoreUser() | not null | not null | Succes |
LocatieService
Methode | Test naam | Expected Result | Actual Result | Test Result |
---|---|---|---|---|
insertNieuweBedrijfsLocatie() | executeInsertNieuweBedrijfsLocatieMetCorrecteGegevens() | Status code 201 | Status code 201 | Succes |
insertNieuweBedrijfsLocatie() | executeInsertNieuweBedrijfsLocatieMetSQLException() | Status code 500 | Status code 500 | Succes |
getLocaties() | executeGetLocaties() | Status code 200 | Status code 200 | Succes |
getLocaties() | executeGetLocatiesMetSQLException() | Status code 500 | Status code 500 | Succes |
pasBedrijfsLocatieAan() | executePasBedrijfsLocatieAanMetCorrecteLocatie() | Status code 200 | Status code 200 | Succes |
pasBedrijfsLocatieAan() | executePasBedrijfsLocatieAanMetFoutieveLocatie() | Status code 400 | Status code 400 | Succes |
checkInLocaties() | executeCheckInLocatiesMetBestaandeLocatie() | Status code true | Status code true | Succes |
checkInLocaties() | executeCheckInLocatiesZonderBestaandeLocatie() | Status code false | Status code false | Succes |
verwijderBedrijfsLocatie() | executeVerwijderBedrijfsLocatieMetCorrecteGegevens() | Status code 200 | Status code 200 | Succes |
verwijderBedrijfsLocate() | executeVerwijderBedrijfsLocatieMetWerkplekkenInLocatie() | Status code 409 | Status code 409 | Succes |
verwijderBedrijfsLocatie() | executeVerwijderBedrijfsLocatieMetNietBestaandeLocatie() | Status code 400 | Status code 400 | Succes |
DeclaratieAuto
Methode | Test naam | Result |
---|---|---|
createDeclaraties() | createDeclaraties() | Succes |
DeclaratieService
Methode | Test naam | Expected Result | Actual Result | Test Result |
---|---|---|---|---|
declareerReis() | declareerReisBestaandeRoute() | Status code 200 | Status code 200 | Succes |
declareerReis() | declareerReisBestaandeRouteOngeldigBestand() | Status code 400 | Status code 400 | Succes |
declareerReis() | declareerReisBestaandeRouteGeldigBestand() | Status code 200 | Status code 200 | Succes |
declareerReis() | declareerReisOngeldigType() | Status code 400 | Status code 400 | Succes |
declareerReis() | declareerReisDieAlBestaat() | Status code 409 | Status code 409 | Succes |
haalOverzichtOp() | testHaalOverzichtOpMetFoutieveMaand() | true | true | Succes |
haalOverzichtOp() | testHaalOverzichtOpMetCorrecteGegevens() | true | true | Succes |
verwijderDeclaratie() | testVerwijderDeclaratie() | Status code 200 | Status code 200 | Succes |
verwijderDeclaratie() | testVerwijderDeclaratieCatch() | Status code 500 | Status code 500 | Succes |
getMaandOverzichtAlleWerknemers() | executeGetMaandOverzichtAlleWerknemers() | true | true | Succes |
getMaandOverzichtAlleWerknemers() | executeGetMaandOverzichtAlleWerknemersMetLegeMaand() | true | true | Succes |
getBijlageVoorDeclaratie() | haalBijlageOpVoorNietBestaandeDeclaratie() | Status code 404 | Status code 404 | Succes |
getBijlageVoorDeclaratie() | haalNietBestaandeBijlageOp() | Status code 404 | Status code 404 | Succes |
getBijlageVoorDeclaratie() | haalBestaandeBijlageOp() | Status code 200 | Status code 200 | Succes |
WerknemerService
Methode | Test naam | Expected Result | Actual Result | Test Result |
---|---|---|---|---|
voegNieuweGebruikerToe() | executeVoegNieuweGebruikerToeMetDatabaseFout() | Status code 500 | Status code 500 | Succes |
voegNieuweGebruikerToe() | executeVoegNieuweGebruikerToeMetCorrecteGegevens() | Status code 201 | Status code 201 | Succes |
voegNieuweGebruikerToe() | executeVoegNieuweGebruikerToeMetDubbeleGebruikersnaam() | "TestTest1" | "TestTest1" | Succes |
verwijderGebruiker() | verwijderNietBestaandeGebruiker() | Status code 404 | Status code 404 | Succes |
verwijderGebruiker() | verwijderNietBestaandeGebruikerVerkeerdeID() | Status code 404 | Status code 404 | Succes |
verwijderGebruiker() | verwijderBestaandeGebruiker() | Status code 200 | Status code 200 | Succes |
verwijderGebruiker() | verwijderBestaandeGebruikerMetError() | Status code 500 | Status code 500 | Succes |
veranderWerknemerGegevens() | executeVeranderWerknemerGegevensZonderCoordinaten() | true | true | Succes |
veranderWerknemerGegevens() | executeVeranderWerknemerGegevensZonderCoordinatenFoutInDAO() | false | false | Succes |
veranderWerknemerGegevens() | executeVeranderWerknemerGegevensMetCoordinaten() | true | true | Succes |
veranderWerknemerGegevens() | executeVeranderWerknemerGegevensMetCoordinatenFoutInDAO() | false | false | Succes |
WerkplekService
Methode | Test naam | Expected Result | Actual Result | Test Result |
---|---|---|---|---|
getWerkplekOverzicht() | haalWerkplekOverzichtOpNietBestaandeLocatie() | Status code 404 | Status code 404 | Succes |
getWerkplekOverzicht() | haalWerkplekOverzichtOpBestaandeLocatie() | Status code 200 | Status code 200 | Succes |
getWerkplekOverzicht() | haalWerkplekOverzichtOpBestaandeLocatieGeenWerkplekken() | Status code 500 | Status code 500 | Succes |
getWerkplekOverzicht() | haalWerkplekOverzichtOpBestaandeLocatieMetWerkplekken() | Status code 200 | Status code 200 | Succes |
getWerkplekOverzicht() | haalWerkplekOverzichtOpBestaandeLocatieMetWerkplekkenMetWerknemers() | Status code 200 | Status code 200 | Succes |
addWerkplek() | addWerkplekLocatieBestaatNiet() | Status code 404 | Status code 404 | Succes |
addWerkplek() | addWerkplekWerkplekBestaalAl() | Status code 409 | Status code 409 | Succes |
addWerkplek() | addWerkplekLocatieBestaatWelWerkplekBestaatNogNiet() | Status code 200 | Status code 200 | Succes |
deleteWerkplek() | deleteWerkplekWerkplekBestaat() | Status code 200 | Status code 200 | Succes |
deleteWerkplek() | deleteWerkplekWerkplekBestaatNiet() | Status code 409 | Status code 409 | Succes |
updateWerkplek() | updateWerkplekWerkplekBestaat() | Status code 200 | Status code 200 | Succes |
updateWerkplek() | updateWerkplekWerkplekBestaatNiet() | Status code 409 | Status code 409 | Succes |
reserveerWerkplek() | reserveerNietBestaandeLocatie() | Status code 404 | Status code 404 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieGeldigeDatum() | Status code 200 | Status code 200 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieOngeldigeDatumFormat() | Status code 400 | Status code 400 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieOngeldigeDatum() | Status code 400 | Status code 400 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieGeldigeDatumNietBestaandeWerkplek() | Status code 404 | Status code 404 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieGeldigeDatumEerderAlGereserveerdePlek() | Status code 409 | Status code 409 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieGeldigeDatumAlGereserveerdVandaag() | Status code 200 | Status code 200 | Succes |
reserveerWerkplek() | reserveerBestaandeLocatieGeldigeDatumVollePlek() | Status code 409 | Status code 409 | Succes |
reserveerWerkplek() | verwijderReserveringBestaandeLocatie() | Status code 200 | Status code 200 | Succes |
reserveerWerkplek() | verwijderReserveringNietBestaandeLocatie() | Status code 404 | Status code 404 | Succes |
VerlofService
Methode | Test naam | Expected Result | Actual Result | Test Result |
---|---|---|---|---|
verlofUrenAfgelopenJaarMeenemenOfUitbetalen() | verlofUrenAfgelopenJaarMeenemenOfUitbetalenVerlofUrenTotaalNull() | "Er ging iets fout bij het ophalen van de huidige verlof uren" | "Er ging iets fout bij het ophalen van de huidige verlof uren" | Succes |
verlofUrenAfgelopenJaarMeenemenOfUitbetalen() | verlofUrenAfgelopenJaarMeenemenOfUitbetalenVerlofWelMeenemen() | 100 | 100 | Succes |
verlofUrenAfgelopenJaarMeenemenOfUitbetalen() | verlofUrenAfgelopenJaarMeenemenOfUitbetalenVerlofNietMeenemen() | 100 | 100 | Succes |
calcVerlofUren() | calcVerlofUrenEindDatumNaBeginDatum() | 0 | 0 | Succes |
calcVerlofUren() | calcVerlofUrenGeenStartEindTijd() | 32 | 32 | Succes |
calcVerlofUren() | calcVerlofUrenWelStartEindTijdStartEindDagGelijk() | 8 | 8 | Succes |
calcVerlofUren() | calcVerlofUrenWelStartEindTijdMeerdereDagen() | 40 | 40 | Succes |
getVerlofAanvragenMedewerker() | executeGetVerlofAanvragenMedewerker() | [ { weknemerId: 11 } ] | [ { weknemerId: 11 } ] | Succes |
getAlleVerlofAanvragen() | executeGetAlleVerlofAanvragen() | [ { weknemerId: 11 } ] | [ { weknemerId: 11 } ] | Succes |
keurVerlofAanvraag() | keurVerlofNietBestaandeAanvraag() | Status code 500 | Status code 500 | Succes |
keurVerlofAanvraag() | keurVerlofAanvraagDieNietOpenStaat() | Status code 400 | Status code 400 | Succes |
keurVerlofAanvraag() | keurVerlofAanvraagPendingPOIsPO() | Status code 200 | Status code 200 | Succes |
keurVerlofAanvraag() | keurVerlofAanvraagPendingLeadIsPO() | Status code 403 | Status code 403 | Succes |
keurVerlofAanvraag() | keurVerlofAanvraagPendingLeadIsLead() | Status code 200 | Status code 200 | Succes |
vraagVerlofAan() | vraagVerlofAanIncorrecteTijden() | Status code 400 | Status code 400 | Succes |
vraagVerlofAan() | vraagVerlofAanCorrecteTijdenHeleDag() | Status code 200 | Status code 200 | Succes |
vraagVerlofAan() | vraagVerlofAanCorrecteTijden() | Status code 200 | Status code 200 | Succes |
vraagVerlofAan() | vraagVerlofAanEinddatumVoorStartdatum() | Status code 400 | Status code 400 | Succes |
vraagVerlofAan() | vraagVerlofAanOverlap() | Status code 409 | Status code 409 | Succes |
verlofAanvraagOverlap() | verlofAanvraagOverlapGeenOpenstaandeAanvragen() | false | false | Succes |
verlofAanvraagOverlap() | verlofAanvraagOverlapMetOverlap() | true | true | Succes |
verlofAanvraagOverlap() | verlofAanvraagOverlapZonderOverlap() | false | false | Succes |
Resultaat
Uit alle testen is het resultaat Geslaagd. Dit betekend dat alle unittests van de frontend samen een slagingspercentage hebben van 100%.
Verder zorgen alle unittests samen voor een line coverage van meer dan 80% over de service laag:
Frontend unit testen
Bij de front-end hebben we voornamelijk gekozen om onze helper functies te testen doormiddel van unit tests, de units tests zijn opgedeeld op basis van functionaliteit. De rest van de applicatie wordt voornamelijk getest door middel van flow-tests, met uitzondering van componenten die vaak door de site heen worden gebruikt. Bij de unit tests wordt er gekeken naar losse functionaliteit, en bij de end to end tests wordt een use case flows met alle alternatieve flows getests.
Laadwerkplek
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
loadWerkPlekData | loadWerkplek throws when getting a 401 status | Reject met message "not logged in" | Not logged in | Ja |
loadWerkPlekData | loadWerkplek throws when getting a non-200 status | Invalid status code reject met status code | Invalid statuscode: 500 | Ja |
loadWerkPlekData | loadWerkplek throws when getting an incorrect token | Reject met de message "not logged in" | "Not logged in" | Ja |
updateWerkplekReservering | update werkplek voor reservering krijgt 401 terug | Reject met 401 status message | Je gebruikersnaam of wachtwoord is incorrect | Ja |
updateWerkplekReservering | Update werkplek calls delete when werkplekNaam is null | Fetch mock to be done | Fetch mock done | Ja |
updateWerkplekReservering | Update werkplek handles status outage (non-200) | Reject invalid status code | "Invalid statusCode: 500" | Ja |
haalUserDataOp | HaalUserDataOp reageert op verkeerde statusCodes | Reject unauthorized | Je gebruikersnaam of wachtwoord is incorrect | Ja |
haalUserDataOp | HaalUserDataOp reageert op verkeerde statusCodes | Reject met statuscode 400 | "Invalid statusCode: 400" | Ja |
haalUserDataOp | HaalUserDataOp geeft correcte data terug | Json geeft true message terug | Json: true | Ja |
haalUserDataOp | HaalUserDataOp throwt bij nep-json | Reject met een error | Reject met error | Ja |
haalBedrijfslocatiesOp | HaalBedrijfsLocatie herlaad pagina indien 401 | Reject met statuscode 401 | "Server gaf een foutmelding terug: 401 " | Ja |
haalBedrijfslocatiesOp | "HaalBedrijfsLocatie geeft json terug | Resolve met http status 200 | Resolve met http status 200 | Ja |
laadDeclaraties | laadDeclaraties returned 401 error | Reject met statuscode 401 | "Server gaf een foutmelding terug: 401 " | Ja |
laadDeclaraties | laadDeclaraties behandelt een incorrecte json | Error foutmelding | Reject met error | Ja |
Pages
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
beheerAanpassenBedrijfslocatie laad spinner zien | laad spinner class is ingeschakeld | circle-notch | Ja | |
WerkPlekPagina laat spinner zien | laad spinner class is ingeschakeld | circle-notch | Ja |
Bedrijfslocaties
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
verwijderLocatie | Verwijderen bedrijfslocatie | Resolve met http status 200 | Resolve met http status 200 | Ja |
voegBedrijfsLocatieToeOfPasAan | toevoegen bedrijfslocatie | Resolve met http status 200 | Resolve met http status 200 | Ja |
Declaraties
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
voegBedragDeclaratieToe | voeg bedrag declaratie toe met succes | Resolve met http status 200 | Resolve met http status 200 | Ja |
voegHandmatigeDeclaratieToe | voeg declaratie toe met bijlage | Resolve met http status 200 | Resolve met http status 200 | Ja |
Authentication
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
getToken | getToken returns null when no token is stored | Null | Null | Ja |
getToken | getToken returns fake token when stored | 1234 | 1234 | Ja |
getToken | getToken returns null when token is expired | Null | Null | Ja |
getToken | getToken returns token when token is not expired | 1234 | 1234 | Ja |
Gebruikers
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
haalAlleGebruikersOp | haal alle gebruikers op | Resolve met http status 200 | Resolve met http status 200 | Ja |
haalAlleGebruikersOp | ophalen gebruikers geeft foutmeling 401 | Reject met serverfoutmelding 401 | "Server gaf een foutmelding terug: 401 " | Ja |
haalUserDataOp | Ophalen user data | Resolve met http status 200 | Resolve met http status 200 | Ja |
verwijderWerknemer | verwijder gebruiker | Resolve met http status 200 | Resolve met http status 200 | Ja |
verwijderWerknemer | verwijderen gebruiker gaat fout | Reject met Unauthorized | Je gebruikersnaam of wachtwoord is incorrect | ja |
voegGebruikerToe | toevoegen gebruiker | Resolve met http status 200 | Resolve met http status 200 | Ja |
pasGebruikerAan | aanpassen gebruiker | Resolve met http status 200 | Resolve met http status 200 | Ja |
pasGebruikerAan | aanpassen gebruiker gaat fout | Reject met serverfoutmelding 401 | "Server gaf een foutmelding terug: 401 " | Ja |
pasGebruikerAan | aanpassen gebruiker gaat fout 2 | Reject met serverfoutmelding 400 | Invalid statusCode: 400 | Ja |
wijzigWachtwoord | wachtwoord wijzigen | Resolve met http status 200 | Resolve met http status 200 | Ja |
Verlof
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
vraagVerlofAan | aanvragenVerlof met status code 200 | Resolve met http status 200 | Resolve met http status 200 | Ja |
BeoordeelVerlof | beoordeelVerlof gaat goed met status code 200 | Resolve met http status 200 | Resolve met http status 200 | Ja |
krijgLijstVerlof | lijst verlof ophalen algemeen overzicht | Resolve met http status 200 | Resolve met http status 200 | Ja |
krijgLijstVerlof | lijst verlof ophalen persoonlijk overzicht | Resolve met http status 200 | Resolve met http status 200 | Ja |
Dates
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
convertDateToDateString | convertDateToDateString converteert correct | "2-1-2003" | "2-1-2003" | Ja |
getWeekNumber | getWeekNumber converteert correct | new Date("2022-05-01") = week 17 | [2022, 17] | Ja |
maandNummerAlsNaam | maandNummerAlsNaam vangt grotere en kleinere nummers op | Error throw | Error throw | Ja |
maandNummerAlsNaam | maandNummerAlsNaam geeft correcte responses op | [ | [ | Ja |
Werkplekken
Methode | Testnaam | Expected | Actual | Geslaagd |
---|---|---|---|---|
haalWerkplekkenOp | haal werkplekken op | Resolve met http status 200 | Resolve met http status 200 | Ja |
haalWerkplekkenOp | haal werkplekken op zonder token | Resolve met http status 401 unauthorized | Je gebruikersnaam of wachtwoord is incorrect | Ja |
updateWerkplekReservering | update werkplek reservering | Resolve met http status 200 | Resolve met http status 200 | Ja |
verwijderWerkplek | verwijder werkplek status 200 | Resolve met http status 200 | Resolve met http status 200 | Ja |
voegWerkplekToe | voegWerkplekToe met succes | Resolve met http status 200 | Resolve met http status 200 | Ja |
Resultaat
Na het uitvoeren van alle tests is de uitkomst dat alle test slagen.
Testrapport overzicht gegeneerd door Jest.
Integratie-testen
In dit hoofdstuk beschrijven we de flow-testen die we hebben uitgevoerd op basis van de usecases in ons SRS. Hierbij is het doel om onderdelen die moeilijk te unit-testen zijn te testen. Ook laten we hiermee zien wat het gevolg is van meerdere stappen achter elkaar uitvoeren.
Test 1.1
Usecase: "Handmatig declareren reiskosten"
De situatie test dat het mogelijk is om met de gewenste gegevens een woon-werk declaratie toe te voegen.
Beginsituatie
- De database wordt vanuit het DDL script aangemaakt.
- Het test-data script is uitgevoerd.
- De tester is successvol ingelogd met het "BeheerDer" account.
- De tester start vanuit het "werkplekoverzicht".
Verwachte uitkomst test
- De site laat een bevestiging zien van het aanmaken van de declaratie.
- De declaratie komt erbij te staan voor de relevante datum in de interface van de website.
Stappen
- Navigeer naar declaraties door op de knop in de bovenste navigatiebalk te klikken.
- Klik op de gele knop die "+" aangeeft. Een popup moet openenen
- In de popup, selecteer de optie "Declareer woon-werk verkeer". Een nieuwe popup moet openen.
- Selecteer de datum van de volgende dag in het "Datum" veld.
- Bij het veld "Opmerking", vul in "Test 1.1"
- Kies de knop "Sla op". Hierna wordt de pagina herladen.
- Valideer of de declaratie is toegevoegd aan de lijst voor de betreffende datum.
Resultaten
Test uitgevoerd op 8-6-2022. Browser Firefox.
Stap | Geslaagd (ja/nee) | Opmerkingen |
---|---|---|
1 | Ja | |
2 | Ja | |
3 | Ja | |
4 | Ja | De datum gebruikt is 9-6-2022 |
5 | Ja | De opmerking gebruikt is "Test 1.1" |
6 | Ja | |
7 | Ja |
Test 1.2
Usecase: "Handmatig declareren reiskosten"
Deze situatie test dat het niet mogelijk is om een woon-werk declaratie toe te voegen zonder opmerking.
Beginsituatie
- De database wordt vanuit het DDL script aangemaakt.
- Het test-data script is uitgevoerd.
- De tester is successvol ingelogd met het "BeheerDer" account.
- De tester start vanuit het "werkplekoverzicht".
Verwachte uitkomst test
- De site laat een bevestiging zien van het aanmaken van de declaratie.
- De declaratie komt erbij te staan voor de relevante datum in de database.
Stappen
- Navigeer naar declaraties door op de knop in de bovenste navigatiebalk te klikken.
- Klik op de gele knop die "+" aangeeft. Een popup moet openenen
- In de popup, selecteer de optie "Declareer woon-werk verkeer". Een nieuwe popup moet openen.
- Selecteer de datum van de volgende dag in het "Datum" veld.
- Laat het veld "Opmerking" leeg.
- Kies de knop "Sla op - De pagina zou niet moeten reageren.
- Klik buiten de popup op de vervaagde achtergrond. De pop-up zou hierdoor moeten sluiten.
- Valideer dat er geen declaratie is toegevoegd voor de betreffende datum.
Indien er geen declaratie is toegevoegd, dan is de test geslaagd.
Resultaten
Stap | Geslaagd (ja/nee) | Opmerkingen |
---|---|---|
1 | Ja | |
2 | Ja | |
3 | Ja | |
4 | Ja | |
5 | Ja | |
6 | Ja | Er gebeurt niets, de knop is ook vervaagd |
7 | Ja | |
8 | Ja | De lijst is leeg |
Test 2.1
Usecase: "Invullen flexwerkplek schema"
Deze situatie test of het mogelijk is om een plek in een bepaalde categorie te krijgen
Beginsituatie
- De database wordt vanuit het DDL script aangemaakt.
- Het test-data script is uitgevoerd.
- De tester is successvol ingelogd met het "BeheerDer" account.
- De tester start vanuit het "werkplekoverzicht".
Verwachte uitkomst test
- De naam van het "BeheerDer" account wordt toegevoegd aan de "Algemene plek" plek in het werkplekoverzicht.,
Stappen
- Klik op de "Kies plek" knop in de rij onder de datum van vandaag.
De knop geeft een laadspinner aan - De knop wordt paars om aan te geven dat de plek gekozen is.
Resultaten
Stap | Geslaagd (ja/nee) | Opmerkingen |
---|---|---|
1 | Ja | Geklikt op de "Algemene plek", "Kies plek" knop |
2 | Ja |
Test 3.1
Usecase: "Aanvragen verlof"
Deze situatie test of een verlof kan worden aangevraagd voor een paar uur.
Beginsituatie
- De database wordt vanuit het DDL script aangemaakt.
- Het test-data script is uitgevoerd.
- De tester is successvol ingelogd met het "BeheerDer" account.
- De tester start vanuit het "werkplekoverzicht".
Verwachte uitkomst test
- De naam van het "BeheerDer" account wordt toegevoegd aan de "Algemene plek" plek in het werkplekoverzicht.,
Stappen
- Navigeer naar verlof door op de knop in de bovenste navigatiebalk te klikken.
- Klik op de knop "Nieuwe aanvraag". Een popup opent
- Vul in het "reden" veld, "Test 3.1" in.
- Zorg dat het vinkje weg is gehaald bij "De hele dag"
- Vul voor de "begin datum" de datum van de eerstvolgende maandag in.
- Vul voor de "begin datum - tijdstip" het tijdstip 10:00 in.
- Vul voor de "eind datum" de datum van de dag na de begindatum.
- Vul voor de "eind datum - tijdstip" het tijdstip 15:00 in.
- Klik op de knop "Vraag verlof aan" - De popup sluit.
- De pagina herlaad en laat "Test 3.1" zien in de lijst.
Resultaten
Uitgevoerd op 8/6/22
Stap | Geslaagd (ja/nee) | Opmerkingen |
---|---|---|
1 | Ja | |
2 | Ja | |
3 | Ja | De waarde "Test 3.1" gebruikt |
4 | Ja | |
5 | Ja | De datum "13-6-2022" gebruikt |
6 | Ja | Het tijdstip 10:00 gebruikt |
7 | Ja | De datum "14-6-2022" gebruikt |
8 | Ja | Het tijdstip 15:00 gebruikt |
9 | Ja | |
10 | Nee | De pagina herlaadde niet, moest handmatige herladen worden |
Test 4.1
Usecase: "beoordelen verlof"
Deze situatie test of het mogelijk is om de verlof te beoordelen naar als product owner
Beginsituatie
- De database wordt vanuit het DDL script aangemaakt.
- Het test-data script is uitgevoerd.
- De tester is successvol ingelogd met het "Gino Janssen" account.
- De tester start vanuit het "werkplekoverzicht".
Verwachte uitkomst test
- De verlofaanvraag-status wordt veranderd van "Niet beoordeeld" naar "Wachtend op 2e beoordeling"
Stappen
- Navigeer naar de beheerpagina door op de knop in de bovenste navigatiebalk te klikken.
- Selecteer de optie "Verlofaanvragen"
- Klik op de "Vakantie" rij, ingevoerd door "Niels van der Hoeven"
- Klik op de knop "Beoordeel verlofaanvraag" - Een popup opent
- Klik op de knop "Goedkeuren" - De popup sluit & de pagina herlaadt.
- De rij in de lijst moet aangeven dat "Vakantie" nu de status "Afwachtend op 2e bevestiging" heeft.
Resultaten
Stap | Geslaagd (ja/nee) | Opmerkingen |
---|---|---|
1 | Ja | |
2 | Ja | |
3 | Ja | |
4 | Ja | |
5 | Ja | |
6 | Ja |
Test 4.2
Usecase: "beoordelen verlof"
Deze situatie test of het mogelijk is om de verlof te beoordelen naar "afgekeurd" of "goedgekeurd" als LeadLink
Beginsituatie
- De database wordt vanuit het DDL script aangemaakt.
- Het test-data script is uitgevoerd.
- De tester is successvol ingelogd met het "BeheerDer" account.
- De tester start vanuit het "werkplekoverzicht".
- Test 4.1 is successvol uitgevoerd. Deze test volgt 4.1 op.
Verwachte uitkomst test
- De verlofaanvraag-status wordt veranderd van "Niet beoordeeld" naar "Wachtend op 2e beoordeling"
Stappen
- Navigeer naar de beheerpagina door op de knop in de bovenste navigatiebalk te klikken.
- Selecteer de optie "Verlofaanvragen"
- Klik op de "Vakantie" rij, ingevoerd door "Niels van der Hoeven"
- Klik op de knop "Beoordeel verlofaanvraag" - Een popup opent
- Klik op de knop "Goedkeuren" of "Afkeuren" - De popup sluit & de pagina herlaadt.
- De rij in de lijst moet aangeven dat "Vakantie" nu de status "Goedgekeurd" of "Afgekeurd" heeft (op basis van de eerdere goedkeuring).
Resultaten
Test uitgevoerd op 8/6/2022
Stap | Geslaagd (ja/nee) | Opmerkingen |
---|---|---|
1 | Ja | |
2 | Ja | |
3 | Ja | |
4 | Ja | |
5 | Ja | Op de optie "Afkeuren" gedrukt |
6 | Ja |
0 Comments