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.