Unit test test rapport¶
Introductie¶
Dit document beschrijft het onderzoek naar de aanwezige tests voor de code voor de module DisplayLezen van de RekenRobot.
Er wordt gekeken naar 3 zaken:
- Het functioneren van de tests
- De resultaten van de tests
- Het aantal tests in vergelijking met de cyclomatische complexiteit van de code
De tests¶
De code is opgebouwd in de volgende modules:
- AutoCrop
- Deze module bevat de code voor het detecteren van het display.
- Preprocessor (voorheen “Blur”)
- Deze module bevat de code voor het voorbewerken van het verkregen beeld.
- ReadDisplay
- Deze module bevat de tesseract code voor het verkrijgen van het getal uit het voorbewerkte beeld.
- Demo
- Deze module bindt alle voorgaande modules aan elkaar.
De volgende tests zijn aanwezig:
- TestAutoCrop
- TestPreprocessor
- TestReadDisplay
Resultaat¶
De volgende tabel laat zien of de tests succesvol uitgevoerd werden, hoeveel tests er per testfile aanwezig zijn en de resultaten van die tests.
Test | Runnable | Aantal Tests | Resultaat |
---|---|---|---|
TestAutoCrop | Ja | 1 | OK |
TestPreprocessor | Ja | 1 | OK |
TestReadDisplay | Ja | 1 | NOK, 1 Failed |
Cyclomatische complexiteit¶
Cyclomatische complexiteit wordt gedefinieerd als het aantal lineair onafhankelijke paden. De cyclomatische complexiteit wordt gebruikt om het aantal testen te bepalen die gedraaid moeten worden om alle paden te doorlopen.
Waarin het volgende geldt:
- Minst aantal tests = Cyclomatische complexiteit
- Meest aantal tests = 2^Cyclomatische complexiteit
De cyclomatische complexiteit voor elke module is beschreven in de onderstaande tabel.
Module | Cyclomatische complexiteit |
---|---|
AutoCrop | 7 |
Preprocessor | 2 |
ReadDisplay | 2 |
Op basis van deze cyclomatische complexiteiten kunnen de volgende minimale en maximale ondergrens voor het aantal tests bepaald worden.
Module | Minimale ondergrens tests | Maximale ondergrens tests |
---|---|---|
AutoCrop | 7 | 128 |
Preprocessor | 2 | 4 |
ReadDisplay | 2 | 4 |
Conclusies¶
Het functioneren van de tests¶
De tests kunnen allemaal probleemloos uitgevoerd worden.
De resultaten van de tests¶
De bestaande tests slagen met uitzondering van de TestReadDisplay. Deze test levert 3 testbeelden van rekenmachine LCD’s met getallen erop en test vervolgens of het programma de juiste getallen output. In deze test output het programma 2 van de 3 getallen correct en 1 incorrect. Er moet gekeken worden naar de module om te kijken of deze verbeterd kan worden.
Het aantal tests¶
In de vergelijking van de aantal tests met de minimaal aantal tests benodigd volgens de berekende cyclomatische complexiteit blijkt dat elke module te weinig tests bevat. Er moet gekeken worden of de code minder complex gemaakt kan worden. Anderzijds kan er gekeken worden of er meer tests gemaakt kunnen worden om max path coverage te kunnen bereiken.