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.

BeschrijvingSituatieOplossing
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

LoginServicelogin()Deze methode wordt aangeroepen wanneer een gebruiker wilt inloggen en checkt of de ingevoerde informatie overeen komt met wat er in de database staat.
LocatieServicegetLocaties()Deze methode haalt alle locaties op die in de database staan.
LocatieServiceinsertNieuweBedrijfsLocatie()Doormiddel hiervan wordt een nieuwe bedrijfslocatie aangemaakt en opgeslagen.
LocatieServicepasBedrijfsLocatieAan()Hiermee kan een bestaande bedrijfslocatie aangepast worden.
LocatieServicecheckInLocaties()Met deze methode wordt er gecheckt of er een locatie bestaat met de naam die wordt meegegeven.
LocatieServiceverwijderBedrijfsLocatie()Wanneer deze methode wordt aangeroepen wordt er een bedrijfslocatie verwijderd waarvan de naam gelijk is aan de meegegeven naam.
DeclaratieAutocreateDeclaraties()Dit is een methode die wanneer aangeroepen, declaraties aanmaakt voor alle werknemers op die dag. Dit gebeurt automatisch zolang het programma runt.
DeclaratieServicedeclareerReis()Deze methode zorgt ervoor dat er een declaratie een gemaakt wordt met de meegegeven informatie.
DeclaratieServicedeclareerReisMetMeters()Deze methode wordt gebruikt door de declareerReis() methode om een reis te declareren.
DeclaratieServicegetBijlageVoorDeclaratie()Wanneer deze methode uitgevoerd wordt zal het een bepaalde bijlage van een declaratie ophalen aan de hand van de naam van de bijlage.
DeclaratieServicehaalOverzichtOp()Deze methode haalt een volledig maand overzicht aan declaraties op voor een bepaalde werknemer.
DeclaratieServicefilterDeclaratiesPerDatum()In deze methode wordt er van een lijst aan declaraties een overzicht gemaakt waarin de declaraties gegroepeerd worden per datum.
DeclaratieServiceverwijderDeclaratie()Met behulp van deze methode wordt een declaratie verwijderd met hetzelfde id als een meegegeven id.
DeclaratieServicegetMaandOverzichtAlleMedewerkers()Deze methode haalt alle declaraties op per maand, gegroepeerd per medewerker.
WerknemerServicevoegNieuweGebruikerToe()Voegt een nieuwe gebruiker toe aan de database op basis van de waardes in nieuweWerknemerDTO.
WerknemerServiceverwijderGebruiker()Verwijder een gebruiker uit de database aan de hand van de opgegeven werknemer id.
WerknemerServiceveranderWerknemerGegevens()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.
VerlofServiceverlofUrenAfgelopenJaarMeenemenOfUitbetalen()Deze methode wordt aangeroepen als een beheerder verlofuren van een gebruiker voor het volgend jaar wilt accoderen.
VerlofServicecalcVerlofUren()Deze methode is een hulpmethode die de werkuren berekend binnen een verlof aanvraag.
VerlofServicegetVerlofAanvragenMedewerker()Deze methode wordt aangeroepen als er verlof aanvragen opgehaald moeten worden voor een werknemer.
VerlofServicegetAlleVerlofAanvragen()Deze methode wordt aangeroepen als een beheerder, product owner of lead link alle verlof aanvragen wilt zien.
VerlofServicekeurVerlofAanvraag()Deze methode wordt aangeroepen als product owner of lead link een verlof aanvraag wilt goed of afkeuren.
VerlofServicevraagVerlofAan()Deze methode wordt aangeroepen als een gebruiker een verlof aanvraag wilt doen.
VerlofServiceverlofAanvraagOverlap()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()nullnull

Succes

login()executeLoginWithGoodLoginWithoutStoreUser()not nullnot nullSucces
login()executeLoginWithGoodLoginWithStoreUser()not nullnot null

Succes

LocatieService

Methode

Test naam

Expected Result

Actual Result

Test Result

insertNieuweBedrijfsLocatie()executeInsertNieuweBedrijfsLocatieMetCorrecteGegevens()Status code 201Status code 201Succes
insertNieuweBedrijfsLocatie()executeInsertNieuweBedrijfsLocatieMetSQLException()Status code 500Status code 500Succes
getLocaties()executeGetLocaties()Status code 200Status code 200Succes
getLocaties()executeGetLocatiesMetSQLException()Status code 500Status code 500Succes
pasBedrijfsLocatieAan()executePasBedrijfsLocatieAanMetCorrecteLocatie()Status code 200Status code 200Succes
pasBedrijfsLocatieAan()executePasBedrijfsLocatieAanMetFoutieveLocatie()Status code 400Status code 400Succes
checkInLocaties()executeCheckInLocatiesMetBestaandeLocatie()Status code trueStatus code trueSucces
checkInLocaties()executeCheckInLocatiesZonderBestaandeLocatie()Status code falseStatus code falseSucces
verwijderBedrijfsLocatie()executeVerwijderBedrijfsLocatieMetCorrecteGegevens()Status code 200Status code 200Succes
verwijderBedrijfsLocate()executeVerwijderBedrijfsLocatieMetWerkplekkenInLocatie()Status code 409Status code 409Succes
verwijderBedrijfsLocatie()executeVerwijderBedrijfsLocatieMetNietBestaandeLocatie()Status code 400Status code 400Succes

DeclaratieAuto

Methode

Test naam

Result

createDeclaraties()createDeclaraties()Succes

DeclaratieService

Methode

Test naam

Expected Result

Actual Result

Test Result

declareerReis()declareerReisBestaandeRoute()Status code 200Status code 200

Succes

declareerReis()declareerReisBestaandeRouteOngeldigBestand()Status code 400Status code 400Succes
declareerReis()declareerReisBestaandeRouteGeldigBestand()Status code 200Status code 200Succes
declareerReis()declareerReisOngeldigType()Status code 400Status code 400Succes
declareerReis()declareerReisDieAlBestaat()Status code 409Status code 409Succes
haalOverzichtOp()testHaalOverzichtOpMetFoutieveMaand()truetrueSucces
haalOverzichtOp()testHaalOverzichtOpMetCorrecteGegevens()truetrueSucces
verwijderDeclaratie()testVerwijderDeclaratie()Status code 200Status code 200Succes
verwijderDeclaratie()testVerwijderDeclaratieCatch()Status code 500Status code 500Succes
getMaandOverzichtAlleWerknemers()executeGetMaandOverzichtAlleWerknemers()truetrueSucces
getMaandOverzichtAlleWerknemers()executeGetMaandOverzichtAlleWerknemersMetLegeMaand()truetrueSucces
getBijlageVoorDeclaratie()haalBijlageOpVoorNietBestaandeDeclaratie()Status code 404Status code 404Succes
getBijlageVoorDeclaratie()haalNietBestaandeBijlageOp()Status code 404Status code 404Succes
getBijlageVoorDeclaratie()haalBestaandeBijlageOp()Status code 200Status code 200Succes

WerknemerService

Methode

Test naam

Expected Result

Actual Result

Test Result

voegNieuweGebruikerToe()executeVoegNieuweGebruikerToeMetDatabaseFout()Status code 500Status code 500

Succes

voegNieuweGebruikerToe()executeVoegNieuweGebruikerToeMetCorrecteGegevens()Status code 201Status code 201Succes
voegNieuweGebruikerToe()executeVoegNieuweGebruikerToeMetDubbeleGebruikersnaam()
"TestTest1"
"TestTest1"
Succes
verwijderGebruiker()

verwijderNietBestaandeGebruiker()

Status code 404

Status code 404

Succes
verwijderGebruiker()

verwijderNietBestaandeGebruikerVerkeerdeID()

Status code 404Status code 404Succes
verwijderGebruiker()

verwijderBestaandeGebruiker()

Status code 200Status code 200Succes
verwijderGebruiker()

verwijderBestaandeGebruikerMetError()

Status code 500Status code 500Succes

veranderWerknemerGegevens()

executeVeranderWerknemerGegevensZonderCoordinaten()truetrueSucces
veranderWerknemerGegevens()executeVeranderWerknemerGegevensZonderCoordinatenFoutInDAO()falsefalseSucces
veranderWerknemerGegevens()executeVeranderWerknemerGegevensMetCoordinaten()truetrueSucces
veranderWerknemerGegevens()executeVeranderWerknemerGegevensMetCoordinatenFoutInDAO()falsefalseSucces

WerkplekService

Methode

Test naam

Expected Result

Actual Result

Test Result

getWerkplekOverzicht()haalWerkplekOverzichtOpNietBestaandeLocatie()Status code 404Status code 404

Succes

getWerkplekOverzicht()haalWerkplekOverzichtOpBestaandeLocatie()Status code 200Status code 200Succes
getWerkplekOverzicht()haalWerkplekOverzichtOpBestaandeLocatieGeenWerkplekken()Status code  500Status code 500Succes
getWerkplekOverzicht()haalWerkplekOverzichtOpBestaandeLocatieMetWerkplekken()Status code 200Status code 200Succes
getWerkplekOverzicht()haalWerkplekOverzichtOpBestaandeLocatieMetWerkplekkenMetWerknemers()Status code 200Status code 200Succes
addWerkplek()addWerkplekLocatieBestaatNiet()Status code 404Status code 404Succes
addWerkplek()addWerkplekWerkplekBestaalAl()Status code 409Status code 409Succes
addWerkplek()addWerkplekLocatieBestaatWelWerkplekBestaatNogNiet()Status code 200Status code 200Succes
deleteWerkplek()deleteWerkplekWerkplekBestaat()Status code 200Status code 200Succes
deleteWerkplek()deleteWerkplekWerkplekBestaatNiet()Status code 409Status code 409Succes
updateWerkplek()updateWerkplekWerkplekBestaat()Status code 200Status code 200 Succes
updateWerkplek()updateWerkplekWerkplekBestaatNiet()Status code 409Status code 409Succes
reserveerWerkplek()reserveerNietBestaandeLocatie()Status code 404Status code 404Succes
reserveerWerkplek()reserveerBestaandeLocatieGeldigeDatum()Status code 200Status code 200Succes
reserveerWerkplek()reserveerBestaandeLocatieOngeldigeDatumFormat()Status code 400Status code 400Succes
reserveerWerkplek()reserveerBestaandeLocatieOngeldigeDatum()Status code 400Status code 400Succes
reserveerWerkplek()reserveerBestaandeLocatieGeldigeDatumNietBestaandeWerkplek()Status code 404Status code 404Succes
reserveerWerkplek()reserveerBestaandeLocatieGeldigeDatumEerderAlGereserveerdePlek()Status code 409Status code 409Succes
reserveerWerkplek()reserveerBestaandeLocatieGeldigeDatumAlGereserveerdVandaag()Status code 200Status code 200Succes
reserveerWerkplek()reserveerBestaandeLocatieGeldigeDatumVollePlek()Status code 409Status code 409Succes
reserveerWerkplek()verwijderReserveringBestaandeLocatie()Status code 200Status code 200Succes
reserveerWerkplek()verwijderReserveringNietBestaandeLocatie()Status code 404Status code 404Succes

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()

100100Succes
verlofUrenAfgelopenJaarMeenemenOfUitbetalen()verlofUrenAfgelopenJaarMeenemenOfUitbetalenVerlofNietMeenemen()100100

Succes

calcVerlofUren()calcVerlofUrenEindDatumNaBeginDatum()00Succes
calcVerlofUren()calcVerlofUrenGeenStartEindTijd()3232Succes
calcVerlofUren()calcVerlofUrenWelStartEindTijdStartEindDagGelijk()88Succes
calcVerlofUren()calcVerlofUrenWelStartEindTijdMeerdereDagen()4040Succes
getVerlofAanvragenMedewerker()executeGetVerlofAanvragenMedewerker()

[ { weknemerId: 11 } ]

[ { weknemerId: 11 } ]Succes
getAlleVerlofAanvragen()executeGetAlleVerlofAanvragen()[ { weknemerId: 11 } ][ { weknemerId: 11 } ]Succes
keurVerlofAanvraag()keurVerlofNietBestaandeAanvraag()Status code 500Status code 500Succes
keurVerlofAanvraag()keurVerlofAanvraagDieNietOpenStaat()Status code 400Status code 400Succes
keurVerlofAanvraag()keurVerlofAanvraagPendingPOIsPO()Status code 200Status code 200Succes
keurVerlofAanvraag()keurVerlofAanvraagPendingLeadIsPO()Status code 403Status code 403Succes
keurVerlofAanvraag()keurVerlofAanvraagPendingLeadIsLead()Status code 200Status code 200Succes
vraagVerlofAan()vraagVerlofAanIncorrecteTijden()Status code 400Status code 400Succes
vraagVerlofAan()vraagVerlofAanCorrecteTijdenHeleDag()Status code 200Status code 200Succes
vraagVerlofAan()vraagVerlofAanCorrecteTijden()Status code 200Status code 200Succes
vraagVerlofAan()vraagVerlofAanEinddatumVoorStartdatum()Status code 400Status code 400Succes
vraagVerlofAan()vraagVerlofAanOverlap()Status code 409Status code 409Succes
verlofAanvraagOverlap()verlofAanvraagOverlapGeenOpenstaandeAanvragen()falsefalseSucces
verlofAanvraagOverlap()verlofAanvraagOverlapMetOverlap()truetrueSucces
verlofAanvraagOverlap()verlofAanvraagOverlapZonderOverlap()falsefalseSucces


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

MethodeTestnaamExpectedActualGeslaagd

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 doneFetch mock doneJa

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 statusCodesReject met statuscode 400

"Invalid statusCode: 400"

Ja

haalUserDataOp

HaalUserDataOp geeft correcte data terug

Json geeft true message terugJson: trueJa
haalUserDataOp

HaalUserDataOp throwt bij nep-json

Reject met een errorReject met errorJa

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 foutmeldingReject met errorJa

Pages

MethodeTestnaamExpectedActualGeslaagd

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

MethodeTestnaamExpectedActualGeslaagd

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

MethodeTestnaamExpectedActualGeslaagd

voegBedragDeclaratieToe

voeg bedrag declaratie toe met succesResolve 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

MethodeTestnaamExpectedActualGeslaagd

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

MethodeTestnaamExpectedActualGeslaagd

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

MethodeTestnaamExpectedActualGeslaagd

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

MethodeTestnaamExpectedActualGeslaagd

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

 [
        "Januari",
        "Februari",
        "Maart",
        "April",
        "Mei",
        "Juni",
        "Juli",
        "Augustus",
        "September",
        "Oktober",
        "November",
        "December",
    ]

 [
        "Januari",
        "Februari",
        "Maart",
        "April",
        "Mei",
        "Juni",
        "Juli",
        "Augustus",
        "September",
        "Oktober",
        "November",
        "December",
    ]

Ja

Werkplekken

MethodeTestnaamExpectedActualGeslaagd

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

  1. Navigeer naar declaraties door op de knop in de bovenste navigatiebalk te klikken.
  2. Klik op de gele knop die "+" aangeeft. Een popup moet openenen
  3. In de popup, selecteer de optie "Declareer woon-werk verkeer". Een nieuwe popup moet openen.
  4. Selecteer de datum van de volgende dag in het "Datum" veld.
  5. Bij het veld "Opmerking", vul in "Test 1.1"
  6. Kies de knop "Sla op". Hierna wordt de pagina herladen.
  7. Valideer of de declaratie is toegevoegd aan de lijst voor de betreffende datum.


Resultaten

Test uitgevoerd op 8-6-2022. Browser Firefox.


StapGeslaagd (ja/nee)Opmerkingen
1Ja
2Ja
3Ja
4JaDe datum gebruikt is 9-6-2022
5JaDe opmerking gebruikt is "Test 1.1"
6Ja
7Ja


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

  1. Navigeer naar declaraties door op de knop in de bovenste navigatiebalk te klikken.
  2. Klik op de gele knop die "+" aangeeft. Een popup moet openenen
  3. In de popup, selecteer de optie "Declareer woon-werk verkeer". Een nieuwe popup moet openen.
  4. Selecteer de datum van de volgende dag in het "Datum" veld.
  5. Laat het veld "Opmerking" leeg.
  6. Kies de knop "Sla op - De pagina zou niet moeten reageren.
  7. Klik buiten de popup op de vervaagde achtergrond. De pop-up zou hierdoor moeten sluiten.
  8. Valideer dat er geen declaratie is toegevoegd voor de betreffende datum.
    Indien er geen declaratie is toegevoegd, dan is de test geslaagd.


Resultaten


StapGeslaagd (ja/nee)Opmerkingen
1Ja
2Ja
3Ja
4Ja
5Ja
6JaEr gebeurt niets, de knop is ook vervaagd
7Ja
8JaDe 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

  1. Klik op de "Kies plek" knop in de rij onder de datum van vandaag.
    De knop geeft een laadspinner aan
  2. De knop wordt paars om aan te geven dat de plek gekozen is.


Resultaten


StapGeslaagd (ja/nee)Opmerkingen
1JaGeklikt op de "Algemene plek", "Kies plek" knop
2Ja


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

  1. Navigeer naar verlof door op de knop in de bovenste navigatiebalk te klikken.
  2. Klik op de knop "Nieuwe aanvraag". Een popup opent
  3. Vul in het "reden" veld, "Test 3.1" in.
  4. Zorg dat het vinkje weg is gehaald bij "De hele dag"
  5. Vul voor de "begin datum" de datum van de eerstvolgende maandag in.
  6. Vul voor de "begin datum - tijdstip" het tijdstip 10:00 in.
  7. Vul voor de "eind datum" de datum van de dag na de begindatum.
  8. Vul voor de "eind datum - tijdstip" het tijdstip 15:00 in.
  9. Klik op de knop "Vraag verlof aan" - De popup sluit.
  10. De pagina herlaad en laat "Test 3.1" zien in de lijst.


Resultaten

Uitgevoerd op 8/6/22

StapGeslaagd (ja/nee)Opmerkingen
1Ja
2Ja
3JaDe waarde "Test 3.1" gebruikt
4Ja
5JaDe datum "13-6-2022" gebruikt
6JaHet tijdstip 10:00 gebruikt
7JaDe datum "14-6-2022" gebruikt
8JaHet tijdstip 15:00 gebruikt
9Ja
10NeeDe 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

  1. Navigeer naar de beheerpagina door op de knop in de bovenste navigatiebalk te klikken.
  2. Selecteer de optie "Verlofaanvragen"
  3. Klik op de "Vakantie" rij, ingevoerd door "Niels van der Hoeven"
  4. Klik op de knop "Beoordeel verlofaanvraag" - Een popup opent
  5. Klik op de knop "Goedkeuren" - De popup sluit & de pagina herlaadt.
  6. De rij in de lijst moet aangeven dat "Vakantie" nu de status "Afwachtend op 2e bevestiging" heeft.


Resultaten


StapGeslaagd (ja/nee)Opmerkingen
1Ja
2Ja


3Ja
4Ja
5Ja
6Ja


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

  1. Navigeer naar de beheerpagina door op de knop in de bovenste navigatiebalk te klikken.
  2. Selecteer de optie "Verlofaanvragen"
  3. Klik op de "Vakantie" rij, ingevoerd door "Niels van der Hoeven"
  4. Klik op de knop "Beoordeel verlofaanvraag" - Een popup opent
  5. Klik op de knop "Goedkeuren" of "Afkeuren" - De popup sluit & de pagina herlaadt.
  6. 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

StapGeslaagd (ja/nee)Opmerkingen
1Ja
2Ja


3Ja
4Ja
5JaOp de optie "Afkeuren" gedrukt
6Ja

  • No labels
Write a comment…