Het definiëren van testgevallen voor programmeervragen

Last updated: March 10, 2026

Overzicht

Testgevallen helpen bij het valideren van de code van kandidaten. Ze vormen de basis voor geautomatiseerde evaluatie van de code van een kandidaat. Een testgeval bestaat uit een invoer voor de code en een verwachte uitvoer. Zodra kandidaten de code indienen, wordt deze uitgevoerd tegen alle testgevallen. De uitvoer van de code van de kandidaat wordt vergeleken met de verwachte uitvoer om te zien of het testgeval is geslaagd of mislukt.

Een voorbeeldtestgeval met uitleg kan ook helpen om het probleem beter uit te leggen aan de kandidaten. Idealiter gebruik je 2 tot 3 dergelijke voorbeeldtestgevallen om de programmeur te helpen het probleem te begrijpen. We raden aan om in totaal 8 tot 15 (bij voorkeur in totaal 10) testgevallen te hebben die alle scenario's dekken. De testgevallen moeten van verschillende groottes zijn die verschillende niveaus van complexiteit dekken. Geen twee testgevallen mogen hetzelfde concept testen. 

Opmerking: Raadpleeg de Testgevallen in je programmeervraag om het gebruik van testgevallen te begrijpen bij het maken van programmeervragen voor HackerRank Tests.

Types testgevallen

Er zijn twee soorten testgevallen voor elk probleem, een Voorbeeld Testgeval en een Verborgen Testgeval.

Voorbeeld Testgevallen

Voorbeeldtestgevallen zijn de testgevallen die de kandidaten kunnen bekijken en gebruiken om hun code te valideren. Ze zien zowel invoer- als verwachte uitvoerwaarden voor deze testgevallen. Bij het maken van de testgevallen kun je bepaalde testgevallen markeren als voorbeeldtestgevallen. 

Bijvoorbeeld, zie de illustratie hieronder van een voorbeeldtestgeval gedefinieerd voor een programmeervraag. De vraag vereist dat de kandidaat code schrijft om het eerste niet-herhaalde teken in een gegeven string te vinden. 

Sample_Test_Cases.jpg

In de test wordt, wanneer de kandidaat de code voor de vraag schrijft en compileert, het voorbeeldtestgeval gevalideerd tegen de code van de kandidaat. De kandidaat kan de resultaten van de uitvoering van het voorbeeldtestgeval bekijken samen met de invoer- en verwachte uitvoerwaarden zoals door jou gedefinieerd. Het bekijken van de resultaten van de uitvoering van het voorbeeldtestgeval helpt de kandidaten de verwachte resultaten van hun code te begrijpen. Kandidaten kunnen ook hun voorbeeldtestgevallen downloaden.

De volgende afbeelding toont de weergave van de kandidaat van de uitvoeringstatus van voorbeeldtestgevallen na het compileren van de code in de test.Test_Case_execution_status.jpg

Verborgen Testgevallen

Wanneer je een testgeval toevoegt aan je programmeervraag, en je markeert het niet als een voorbeeldtestgeval, wordt het beschouwd als verborgen. Verborgen testgevallen zijn geëvolueerd uit het tijdperk van competitief programmeren.

Je kunt verschillende randgevallen opnemen als verborgen testgevallen om kandidaten tegen verschillende scenario's te evalueren. Wanneer een kandidaat zijn code uitvoert, worden de verborgen testgevallen aangegeven door het slot pictogram.

In tegenstelling tot voorbeeldtestgevallen kunnen de kandidaten de invoer- en verwachte uitvoerwaarden niet zien voor deze verborgen testgevallen. Hoewel, ze kunnen hun uitvoer en debuggable uitvoer zien wanneer ze op een van de verborgen testgevalopties klikken. Deze functie wordt aangeboden aan kandidaten om hen een betere debugging-ervaring te geven.

Beschouw een programmeervraag waarbij een kandidaat code moet schrijven om de eerste niet-herhaalde teken in een gegeven string te vinden. Verborgen_Test_Case.jpg

In de test, wanneer een kandidaat de code voor deze vraag schrijft en uitvoert, wordt het verborgen testgeval gevalideerd tegen de code van de kandidaat om de uitvoeringsresultaat van het testgeval te retourneren. Als de code van de kandidaat de verborgen testgevallen succesvol uitvoert en de verwachte output retourneert, dan behaalt de kandidaat de score die voor dit testgeval is toegekend.

mceclip1.png

Uitschakelen van de Output voor Verborgen Testgevallen

U kunt er ook voor kiezen om de output van de verborgen testgevallen voor de kandidaten niet te tonen. Volg de onderstaande stappen om de output voor verborgen testgevallen uit te schakelen.

  • Op de Tests startpagina, klik op de gewenste test.
question.jpg
  • Na het klikken op de vraag, klik op het Instellingen-tab en vervolgens op de Vragen-optie aan de linkerkant.
question_settings_.jpg
  • Na het klikken op de Vragen-tab, scroll naar beneden, je zult de optie vinden om de output voor de verborgen testgevallen uit te schakelen zoals hieronder weergegeven. Dit wordt echter niet aanbevolen omdat het tonen van de output de kandidaten helpt om hun code effectief te debuggen. De optie om de output te tonen is standaard geselecteerd. Als je je output wilt verbergen, kun je het selectievakje Toon output voor de verborgen testgevallen deselecteren.
hidden_test_case_output.jpg

Opmerking: Onze rapporten suggereren dat kandidaten veel van hun testtijd verliezen bij het vinden van een oplossing of debuggen vanwege verborgen testgevallen. Om deze uitdaging te verminderen en kandidaten een betere debugging-ervaring te bieden, kijkt HackerRank ernaar uit om in de toekomst af te stappen van verborgen testgevallen en een breakpoint-gebaseerde debug-ervaring te introduceren voor kandidaten.

Beoordeling

Niet alle testgevallen hebben hetzelfde moeilijkheidsniveau. Bij het maken van de testgevallen moet je ervoor zorgen dat meer punten worden toegekend aan de moeilijke testgevallen dan aan de gemakkelijke. Dit leidt tot een betere onderscheid tussen uitstekende, goede en gemiddelde programmeurs. De som van de scores van alle testgevallen is de totale score die aan een bepaalde vraag wordt toegekend. Je kunt indien nodig nul punten toekennen aan voorbeeldtestgevallen. De totale score voor een programmeervraag is de som van de scores van alle testgevallen die succesvol zijn doorlopen.

In de volgende illustratie zie je het gedetailleerde testrapport van de kandidaat in HackerRank, waarin de behaalde score voor de vraag wordt weergegeven op basis van de teststatus.Test_Report_status_of_score_achieved_for_Test_case.jpg

Synchroniseer Testgevallen met Code Stubs

Wanneer je gebruikmaakt van automatisch gegenereerde code stubs, zorg er dan voor dat de invoer en verwachte output in overeenstemming zijn met de code stubs. Je kunt hiernaar verwijzen in het onderste gedeelte om dit te begrijpen.

Bijvoorbeeld:

  • Als de invoer een array is, lees je altijd eerst "n" (aanduiding van array_grootte) in en vervolgens "n" array-elementen in "n" aparte regels. Dit is nodig om consistentie in het lezen van invoer in verschillende talen te waarborgen.

  • Als de invoer een gekoppelde lijst is, lees je altijd "n" (aanduiding van het aantal elementen dat aan de invoer gekoppelde lijst moet worden toegevoegd) in en vervolgens "n" elementen in "n" aparte regels.

Raadpleeg het onderwerp Hoe een nieuwe testgeval toe te voegen voor informatie over het maken en toevoegen van testgevallen aan je vragen.