Testplan
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.
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.
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.
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.
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.
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.
Testrapport
In dit gedeelte van het document staat het testrapport voor alle gerealiseerde Java onderdelen van het OOSE-project.
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.
Functionele Testen
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 | 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: | 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 | 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 | 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 | 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 | Melding "Rating is te laag of te hoog" | Er wordt geen melding getoond. |
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 | 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. |
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 |
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 linker tabel worden de beschikbare spelers voor de groep laten zien |
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 linker tabel worden de beschikbare spelers voor de groep laten zien |
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 linker tabel worden de beschikbare spelers voor de groep laten zien |
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. |
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. |
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 | |
2 | 3 | Ronden van groep bekijken | Groep: A | Tabel met ronden in groep wordt getoond | |
3 | 5 | Wedstrijden van ronde bekijken | Ronde: 1 | 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 |
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. | ||
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 | |
3 | 5 | Vul rating in van externe speler | Externe rating: 100 | Muis wordt doorgestuurd naar het veld voor de uitslag van de wedstrijd | |
4 | 7 | Kies uitslag wedstrijd | Resultaat: 0 - 1 | Opslaan knop wordt clickable | |
5 | 9 | Bevestig door klikken op opslaan knop | Pop up met bevestiging verschijnt | ||
6 | 11 | Bevestig door op ja te klikken | 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. | ||
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 | |
3 | 5 | Vul rating in van externe speler | Externe rating: 100 | Muis wordt doorgestuurd naar het veld voor de uitslag van de wedstrijd | |
4 | 7 | Kies uitslag wedstrijd | Resultaat: 0 - 1 | Opslaan knop wordt clickable | |
5 | 9 | Bevestig door klikken op opslaan knop | Pop up met bevestiging verschijnt | ||
6 | 11 | Annuleer door op Annuleer te klikken | Pop up verdwijnt en ingevulde velden verschijnen weer |
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. | ||
2 | 3 | Competitie selecteren | Zomercompetitie | Competitie wordt geselecteerd | |
3 | 5 | Uploaden gegevens van competitie | Op de gegenereerde url's zijn de gegevens te zien |
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. | ||
2 | 3 | Competitie selecteren | Competitie 1 | Zomertoernooi | 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 | |
4 | 7 | Pad PDF kiezen | C:\Users\<gebruiker>\Documents | Pad wordt naast browse-knop getoond | |
5 | 9 | PDF genereren | PDF wordt op gewenste pad gegenereerd |