1. Testplan

1.1. Inleiding

Dit testplan vormt de kern van de kwaliteitsbewaking van het gemaakte product. Het doel van dit testplan is niet alleen om fouten te identificeren maar ook om te zorgen dat de kwaliteit en functionaliteit van het systeem blijft voldoen aan de verwachtingen. In dit testplan staan functionele en unit tests van het systeem beschreven. Wij zullen alleen de gemaakte Java code testen binnen dit project omdat dit het meeste in lijn ligt met de kern van de opdracht. 

1.2. Unit Tests 

Binnen ons project hebben wij de unittests compact gehouden en testen wij per klasse individueel de methoden die zich daarin bevinden. Met een testmethode zoals deze zal er snel achter worden gekomen wat er fout is binnen een methode als een van de tests niet wordt gehaald. Ook is dit handig wanneer er veranderingen worden gemaakt aan bestaande code, omdat de tests dan niet volledig zullen falen, maar alleen de veranderde gedeeltes.

De unit tests zijn uitgevoerd en geschreven met behulp van JUnit en Mockito.

1.3. Functionele tests

Wij hebben per usecase ook functionele tests gemaakt. Deze testen zijn gebaseerd op de usecase detailleringen en moeten de uitvoering van de applicatie simuleren in de vorm van fysiek uitgevoerde testen. Verder in het document zullen de uitgevoerde functionele testen ook gaan staan. Hieronder een lijst met usecases die wij hebben getest:

  • Usecase 1 - Beheren van spelers
  • Usecase 2 - Beheren van competities
  • Usecase 3 - Beheren van competitiegroepen
  • Usecase 4 - Beheren van spelers in competitiegroep
  • Usecase 5 - Noteren Startrating
  • Usecase 6 - Ronde Resultaten invoeren
  • Usecase 7 - Resultaat externe ronde invoeren
  • Usecase 9 - Gegevens publiceren op website
  • Usecase 10 - Printen ronde-indeling

Deze usecases hebben wij kunnen realiseren binnen het project en hiervoor zijn de testen dus uitgevoerd.

1.4. Tooling

Voor het onderhouden van de kwaliteit van ons project hebben wij SonarQube en Jenkins gebruikt. Door deze tools te gebruiken hebben wij de kwaliteit van onze beter te kunnen beheren.

1.4.1. SonarQube

Met SonarQube kunnen wij gegenereerde rapporten ontvangen die ons duidelijkheid leveren over de kwaliteit van onze code. Deze tooling leest vaak over onze code en geeft ons feedback over wat er mogelijk fout is. Dit doet SonarQube door het leveren van verschillende code smells, bugreports en stability hotspots. Hierbij moet je denken aan code die niet gebruikt wordt, code die dubbel bestaat binnen het project of andere foutieve elementen. 

Wij streven naar een project zonder code smells.

1.4.2. Jenkins

Met Jenkins kunnen wij de applicatie dagelijks laten worden gecontroleerd d.m.v. het te runnen en dan te testen. Doordat Jenkins deze testen uitvoert kunnen zij gedetailleerde rapporten over build- en testresultaten leveren. Deze rapporten geven ons belangrijke informatie over de status van ons project zoals de huidige code coverage van onze testen. Zo kunnen wij duidelijk zien hoeveel van onze code is gedekt door de testen. Jenkins zal niet kijken naar de controller functies omdat het niet echt mogelijk is om deze te testen. Hierdoor zal de totale code-coverage niet naar beneden worden gehaald.

Wij streven naar een project met 80% code coverage.

2. Testrapport

In dit gedeelte van het document staat het testrapport voor alle gerealiseerde Java onderdelen van het OOSE-project. 


2.1. Unit tests

Alle unit tests binnen ons project zijn met succes uitgevoerd. We hebben 196 tests uitgevoerd, waarvan alle 196 tests zijn geslaagd. Dit toont aan dat de methoden binnen elke klasse goed functioneren. Onze testaanpak, gebruikmakend van JUnit en Mockito, heeft zich effectief bewezen in het identificeren van mogelijke problemen en het waarborgen van de betrouwbaarheid van onze code.

2.2. Functionele Testen

2.2.1. Usecase 1

1.1 Spelers bekijken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

1.2 Spelers toevoegen

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Nieuwe speler aanmaken

Voornaam: Henk
Achternaam: de Jong
Rating: 100
Type: Lid

Nieuwe speler is aangemaakt.

Nieuwe speler is aangemaakt.

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Nieuwe speler aanmaken

Voornaam: 
Achternaam: de Jong
Rating: 100
Type: Lid

Melding "Voornaam is leeg of te lang"

Melding "Voornaam is leeg of te lang"

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Nieuwe speler aanmaken

Voornaam: Henk
Achternaam: 
Rating: 100
Type: Lid

Melding "Achternaam is leeg of te lang"

Melding "Error bij het aanmaken van speler"

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Nieuwe speler aanmaken

Voornaam: Henk
Achternaam: de Jong
Rating: 999999
Type: Lid

Melding "Rating is te laag of te hoog"

Melding "Error bij het aanmaken van speler"

1.3 Spelers verwijderen

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Speler verwijderen


Melding "Weet je het zeker?"

Melding "Weet je het zeker?"

3 6 Keuze bevestigen

Yes wordt gekozen

Speler is verwijderd.

De speler is op inactief gezet.

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Speler verwijderen


Melding "Weet je het zeker?"

Melding "Weet je het zeker?"

3 6 Keuze bevestigen

Cancel wordt gekozen

Speler is niet verwijderd.

De speler is niet op inactief gezet.

1.4 Spelers bewerken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Speler bewerken


De waarden van de velden veranderen naar de data van de geselecteerde speler.

De waarden van de velden veranderen naar de data van de geselecteerde speler.

3 6 Gegevens aanpassen

Voornaam: Henk
Achternaam: de Jong
Rating: 100
Type: Lid

Gegevens van speler zijn aangepast.

Gegevens van speler zijn aangepast.

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met alle spelers en invulvelden worden getoond.

Tabel met alle spelers en invulvelden worden getoond.

2 4 Speler bewerken


De waarden van de velden veranderen naar de data van de geselecteerde speler.

De waarden van de velden veranderen naar de data van de geselecteerde speler.

3 6 Gegevens aanpassen

Voornaam: Henk
Achternaam: 
Rating: 1
Type: Lid

Melding "Rating is te laag of te hoog"

Er wordt geen melding getoond. 

2.2.2. Usecase 2

2.1 Competitie aanmaken.

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competities bekijken

Tabel met alle competities en invulvelden worden getoond.

Tabel met alle competities en invulvelden worden getoond.

2 3 Competitie aanmaken
Competitiegegevens kunnen ingevuld worden

Competitiegegevens kunnen ingevuld worden

3 5 Nieuwe speler aanmaken

Naam: Competitie 1
Type: Periodecompetitie
Aantal ronden: 5
Startdatum: 2024-01-01
Aantal Groepen: 1
Winst: 1.0
Remise: 0.5
Verlies: 0.0
Oneven: 1.0
Vrijgesteld: 1.0

Nieuwe Competitie is aangemaakt.

Nieuwe Competitie is aangemaakt.

2.2 Competities bekijken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competities bekijken

Tabel met alle competities en invulvelden worden getoond.

Tabel met alle competities en invulvelden worden getoond.

2.3 Competities bewerken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competities bekijken

Tabel met alle competities en invulvelden worden getoond.

Tabel met alle competities en invulvelden worden getoond.

2 4 Competitie bewerken


De waarden van de velden veranderen naar de data van de geselecteerde Competitie.

De waarden van de velden veranderen naar de data van de geselecteerde Competitie.

3 6 Gegevens aanpassen

Naam: Competitie 1

Type: Periodecompetitie

Aantal ronden: 5

Startdatum: 2024-01-01

Aantal rond

Winst: 2.0

Remise: 1.0

Verlies: 0.0

Oneven: 1.0

Vrijgesteld: 1.0

Gegevens van competitie zijn aangepast.

Gegevens van competitie zijn aangepast.



2.4 Competitie verwijderen

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competities bekijken

Tabel met alle competities en invulvelden worden getoond.

Tabel met alle competities en invulvelden worden getoond.

2 3 Competitie verwijderen


Melding "Weet je het zeker?"

Melding "Weet je het zeker?"

3 5 Keuze bevestigen

Yes wordt gekozen

Competitie is verwijderd.

Competitie is verwijderd.

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competities bekijken

Tabel met alle competities en invulvelden worden getoond.

Tabel met alle competities en invulvelden worden getoond.

2 3 Competitie verwijderen


Melding "Weet je het zeker?"

Melding "Weet je het zeker?"

3 5 Keuze bevestigen

Cancel wordt gekozen

Competitie is niet verwijderd.

Competitie is niet verwijderd.

2.2.3. Usecase 3

Competitiegroepen bekijken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

Competitiegroep aanmaken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Competitiegroep instellen

Invulvelden worden laten zien

Invulvelden worden laten zien

3 5 Competitiegroep toevoegen Groepsnaam: B

De competitiegroep is aangemaakt

De competitiegroep is aangemaakt

Competitiegroep bewerken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Competitiegroep instellen Groepsnaam: B

Invulvelden worden laten zien

Invulvelden worden laten zien

3 5 Competitiegroep aanpassen Groepsnaam: Nieuwe groep

De competitiegroep is aangepast

De competitiegroep is aangepast

Competitiegroep verwijderen

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Competitiegroep verwijderen Groepsnaam: Nieuwe groep

Melding "Weet je het zeker?"

Er komt geen melding op het scherm en de competitiegroep wordt verwijderd.

3 5 Bevestiging "Ja" wordt gekozen

De competitiegroep is verwijderd


Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Competitiegroep verwijderen Groepsnaam: A

Melding "Weet je het zeker?"

Er komt geen melding op het scherm en de competitiegroep wordt verwijderd.

3 5 Bevestiging "Nee" wordt gekozen

De competitiegroep is niet verwijderd



2.2.4. Usecase 4

Spelers van competitiegroep bekijken

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Spelers in competitiegroep bekijken Groepsnaam: A

In de linker tabel worden de beschikbare spelers voor de groep laten zien
In de rechter tabel worden de spelers in de groep getoond.

In de linker tabel worden de beschikbare spelers voor de groep laten zien
In de rechter tabel worden de spelers in de groep getoond.

Spelers toevoegen aan competitiegroep

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Spelers in competitiegroep bekijken Groepsnaam: A

In de linker tabel worden de beschikbare spelers voor de groep laten zien
In de rechter tabel worden de spelers in de groep getoond.

In de linker tabel worden de beschikbare spelers voor de groep laten zien
In de rechter tabel worden de spelers in de groep getoond.

3 5 Spelers toevoegen aan groep

Spelers: Jane Smith, Michael Johnson

De spelers zijn toegevoegd aan de groep en zijn te zien in de rechter tabel, en niet meer in de linker tabel.

De spelers zijn toegevoegd aan de groep en zijn te zien in de rechter tabel, en niet meer in de linker tabel.

Spelers verwijderen van een competitiegroep

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competitiegroepen bekijken Competitie: 1

Tabel met groepen van de competitie worden getoond.

Tabel met groepen van de competitie worden getoond.

2 3 Spelers in competitiegroep bekijken Groepsnaam: A

In de linker tabel worden de beschikbare spelers voor de groep laten zien
In de rechter tabel worden de spelers in de groep getoond.

In de linker tabel worden de beschikbare spelers voor de groep laten zien
In de rechter tabel worden de spelers in de groep getoond.

3 5 Spelers verwijderen uit groep

Spelers: Jane Smith, Michael Johnson

De spelers zijn verwijderd uit de groep en zijn te zien in de linker tabel, en niet meer in de rechter tabel.

De spelers zijn verwijderd uit de groep en zijn te zien in de linker tabel, en niet meer in de rechter tabel.

2.2.5. Usecase 5

Startrating vastleggen

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met spelers wordt getoond

Tabel met spelers wordt getoond

2 3 Leg startrating vast


Melding "Weet je het zeker?"

Melding "Weet je het zeker?"

3 5 Bevestiging

"Ja" wordt gekozen

Startrating is vastgelegd, en wordt getoond op het scherm

Startrating is vastgelegd, en wordt getoond op het scherm

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Spelers bekijken

Tabel met spelers wordt getoond

Tabel met spelers wordt getoond

2 3 Leg startrating vast


Melding "Weet je het zeker?"

Melding "Weet je het zeker?"

3 5 Afkeuring

"Nee" wordt gekozen

Melding wordt afgewezen, spelerstabel wordt getoond op het scherm.

Melding wordt afgewezen, spelerstabel wordt getoond op het scherm.

2.2.6. Usecase 6

Ronde resultaten invoeren

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Groepen van competitie bekijken Competitie: 1

Tabel met groepen van competitie wordt getoond

Tabel met groepen van competitie wordt getoond.

2 3 Ronden van groep bekijken Groep: A

Tabel met ronden in groep wordt getoond

Tabel met rondes van de groep wordt getoond.

3 5 Wedstrijden van ronde bekijken Ronde: 1

Tabel met wedstrijden in ronde wordt getoond

Tabel met wedstrijden in ronde wordt getoond.

4 7 Resultaat invoeren

Wedstrijd: 1

Resultaat: 1-0

Resultaat van wedstrijd is "1-0", Rating is aangepast

Het resultaat wordt getoond in de tabel en de rating van de speler is aangepast.

2.2.7. Usecase 7

Resultaat externe ronde invoeren

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Vragen om gegevens in te vullen
Invulvelden en knop wordt weergegeven.

Er wordt een scherm weergegeven met invulvelden, dropdowns en een knop.

2 3 Vul naam van interne speler in

Interne speler: 1 | Bas Berends (403)

Muis wordt doorgestuurd naar het veld voor de rating van de externe speler.

Muis wordt doorgestuurd naar het veld 'rating van externe speler'. Bas Berends is geselecteerd in de dropdown.

3 5 Vul rating in van externe speler

Externe rating: 100

Muis wordt doorgestuurd naar het veld voor de uitslag van de wedstrijd. Muis blijft in het rating externe speler veld.
4 7 Kies uitslag wedstrijd

Resultaat: 0 - 1

Opslaan knop wordt clickable.

Opslaan knop is enabled.

5 Bevestig door klikken op opslaan knop


Pop up met bevestiging verschijnt.

Pop up met bevestiging verschijnt.

6 11 Bevestig door op ja te klikken


Rating wordt geüpdatet voor interne speler.

Rating wordt geüpdatet voor interne speler.

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Vragen om gegevens in te vullen
Invulvelden en knop wordt weergegeven.

Er wordt een scherm weergegeven met invulvelden, dropdowns en een knop.

2 3 Vul naam van interne speler in

Interne speler: 1 | Bas Berends (403)

Muis wordt doorgestuurd naar het veld voor de rating van de externe speler

Muis wordt doorgestuurd naar het veld 'rating van externe speler'. Bas Berends is geselecteerd in de dropdown.

3 5 Vul rating in van externe speler

Externe rating: 100

Muis wordt doorgestuurd naar het veld voor de uitslag van de wedstrijd

Muis blijft in het rating externe speler veld.

4 7 Kies uitslag wedstrijd

Resultaat: 0 - 1

Opslaan knop wordt clickable

Opslaan knop is enabled.

5 Bevestig door klikken op opslaan knop


Pop up met bevestiging verschijnt

Pop up met bevestiging verschijnt.

6 11 Annuleer door op Annuleer te klikken


Pop up verdwijnt en ingevulde velden verschijnen weer

Pop up verdwijnt, velden verschijnen weer. Maar deze zijn niet ingevuld.

2.2.8. Usecase 9

Gegevens publiceren op website

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Competities opvragen
Tabel met alle competities en invulvelden worden getoond.

Tabel met alle competities en invulvelden worden getoond.

2 3 Competitie selecteren Zomercompetitie Competitie wordt geselecteerd.

Competitie wordt geselecteerd.

3 5 Uploaden gegevens van competitie
Op de gegenereerde url's zijn de gegevens te zien.

Op de gegenereerde url's zijn de gegevens te zien.

2.2.9. Usecase 10

Printen ronde-indeling

Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Vragen om gegevens in te vullen
Invulvelden en knop wordt weergegeven.

Invulvelden en knop wordt weergegeven.

2 3 Competitie selecteren Competitie 1 | Zomertoernooi Competitie 1 wordt in het dropdown menu getoond.

Competitie 1 wordt in het dropdown menu getoond.

3 5 Ronde selecteren Ronde nummer: 1 | Ronde datum: 2024-05-27 Ronde 1 wordt in het dropdown menu getoond.

Ronde 1 wordt in het dropdown menu getoond.

4 7 Pad PDF kiezen C:\Users\<gebruiker>\Documents Pad wordt naast browse-knop getoond.

Pad wordt naast browse-knop getoond.

5 9 PDF genereren
PDF wordt op gewenste pad gegenereerd.

PDF wordt op gewenste pad gegenereerd.



Stap

UC Stap

Actie

 Testdata

Verwachte resultaat

Echte Resultaat

1 1 Vragen om gegevens in te vullen
Invulvelden en knop wordt weergegeven.

Invulvelden en knop wordt weergegeven.

2 3a Datum selecteren. Datum: 27-05-2024 27-05-2024 wordt in de datepicker getoond. 

27-05-2024 wordt in de datepicker getoond. 

4 4a Pad PDF kiezen C:\Users\<gebruiker>\Documents Pad wordt naast browse-knop getoond.

Pad wordt naast browse-knop getoond.

5 6a PDF voor datum genereren
PDF wordt op gewenste pad gegenereerd.

PDF wordt op gewenste pad gegenereerd.


  • No labels