SID:Kwalificatie-tech: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
 
(114 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
  +
__TOC__
= Kwalificatietest – services =
 
   
Dit document beschrijft een deel van de kwalificatietest voor aansluiting van een systeem op de Nummervoorziening. In dit deel wordt geverifieerd of het aansluitende systeem op de juiste wijze de API van de Nummervoorziening aanroept, en of de foutsituaties die voorkomen correct worden afgehandeld.
+
Dit document beschrijft de technische kwalificatietest voor aansluiting van een systeem op de Nummervoorziening. In dit deel wordt geverifieerd of het aansluitende systeem op de juiste wijze de API van de Nummervoorziening aanroept, en of de foutsituaties die voorkomen correct worden afgehandeld.
   
De kwalificatietest wordt gerund op de kwalificatieomgeving. Deze test wordt doorlopen door een verantwoordelijke van het aansluitende systeem, in het bijzijn van een implementatie engineer van Kennisnet. De verantwoordelijke van het aansluitende systeem voert de gevraagde tests uit volgens de voorschriften. De implementatie engineer beoordeelt of de test volgens de beschrijving is uitgevoerd en of het antwoord voldoet aan de gestelde eis.
+
De kwalificatietest wordt gerund op de kwalificatieomgeving. Deze test wordt doorlopen door een verantwoordelijke van het aansluitende systeem samen met een medewerker van Kennisnet. De verantwoordelijke van het aansluitende systeem voert de gevraagde tests uit volgens de voorschriften. Kennisnet beoordeelt of de test volgens de beschrijving is uitgevoerd en of het antwoord voldoet aan de gestelde eis.
   
 
{{Info|Het endpoint van de service op de kwalificatieomgeving is {{SID:URL_kwalificatieomgeving}}}}
 
{{Info|Het endpoint van de service op de kwalificatieomgeving is {{SID:URL_kwalificatieomgeving}}}}
   
Om deze omgeving aan te kunnen roepen moet het aanroepende systeem een PKI Overheid certificaat gebruiken. Het SERIALNUMBER veld in het subject van dit certificaat wordt gebruikt om het aanroepende systeem te autoriseren. Autoriseren van aansluitende systemen vindt plaats in de beheerapplicatie van de kwalificatieomgeving.
+
Om de kwalificatie omgeving aan te kunnen roepen moet het aansluitende systeem een PKI Overheid certificaat gebruiken. Het SERIALNUMBER veld in het subject van dit certificaat wordt gebruikt om het aanroepende systeem te autoriseren. Neem voor het autoriseren van het aansluitende systeem contact op met Kennisnet.
 
{{Info|De URL van de beheerapplicatie op de kwalificatieomgeving is {{SID:URL_beheerkwalificatieomgeving}} }}
 
   
 
De service tests zijn beschikbaar als [[Media:NV-Kwalificatie-testsuite.zip|SOAPUI project]]. In dit project is een testsuite opgenomen. Hierin is geïllustreerd welke requests er van het systeem worden verwacht, en welke responses de Nummervoorziening daarop geeft.
 
De service tests zijn beschikbaar als [[Media:NV-Kwalificatie-testsuite.zip|SOAPUI project]]. In dit project is een testsuite opgenomen. Hierin is geïllustreerd welke requests er van het systeem worden verwacht, en welke responses de Nummervoorziening daarop geeft.
   
{{Info|SOAPUI 5.2.1 en 5.3.0 gebruiken hun eigen, verouderde, Java runtime. Deze versie heeft niet de juiste SSL ondersteuning om met de Nummervoorziening te communiceren. Je merkt dit aan de foutmelding "javax.net.ssl.SSLException: Received fatal alert: protocol_version". SOAPUI 5.4.0 gebruikt wel de meest recente Java versie en werkt met de Nummervoorziening}}
+
{{Warn|SOAPUI heeft vanaf versie 5.4.0 de juiste SSL ondersteuning om met de Nummervoorziening te communiceren.}}
   
'''Let op<br/>'''
+
'''Let op:'''<br/>
Deze testen hebben tot doel het verkrijgen van zekerheid dat het gebruik van de Nummervoorziening niet tot operationele problemen leidt in het normale dagelijkse gebruik op school. In de test worden doelbewust manipulaties gevraagd die tot uitzonderingen leiden. '''Als een manipulatie niet door normale gebruikers en beheerders van het aansluitende systeem kunnen worden uitgevoerd, bijvoorbeeld omdat het systeem hiertegen beschermd is, dan geldt de test op dit punt als geslaagd.'''
+
Deze testen hebben tot doel het verkrijgen van zekerheid dat het gebruik van de Nummervoorziening niet tot operationele problemen leidt in het normale dagelijkse gebruik op school. In de test worden doelbewust manipulaties gevraagd die tot uitzonderingen leiden. <br/>
  +
'''Als een manipulatie niet door normale gebruikers en beheerders van het aansluitende systeem kunnen worden uitgevoerd, bijvoorbeeld omdat het systeem hiertegen beschermd is, dan geldt de test op dit punt als geslaagd.'''
 
== Ping test (service: ping) ==
 
   
  +
== Test 1: ping ==
  +
{| class="wikitable"
  +
| '''service''' || pingRequest
  +
|-
  +
| '''service''' || retrieveChains (optioneel)
  +
|}
 
In deze test wordt de connectiviteit, certificaat-verwerking en WS-Addressing getest. Als het aansluitende systeem de ping service niet ondersteunt, voer deze test dan uit met de service retrieveChains.
 
In deze test wordt de connectiviteit, certificaat-verwerking en WS-Addressing getest. Als het aansluitende systeem de ping service niet ondersteunt, voer deze test dan uit met de service retrieveChains.
   
'''Request 1'''
 
   
  +
'''Request 1: ping'''
<ol style="list-style-type: decimal;">
 
<li><blockquote><p>Stuur een ping request.</p></blockquote></li></ol>
+
# Stuur een ping request.
   
 
'''Response 1'''
 
'''Response 1'''
  +
# Stel vast dat het antwoord geen SOAP Fault is.
  +
# Stel vast dat het antwoord de huidige tijd bevat in het veld Envelope/Body/pingResponse/systemTime (bij gebruik van retrieveChains, stel vast dat de reponse een geldige chainId bevat).
   
<ol style="list-style-type: decimal;">
 
<li><blockquote><p>Stel vast dat het antwoord geen SOAP Fault is</p></blockquote></li>
 
<li><blockquote><p>Stel vast dat het antwoord de huidige tijd bevat in het veld Envelope/Body/pingResponse/systemTime (bij gebruik van retrieveChains, stel vast dat de reponse een geldige chainId bevat).</p></blockquote></li></ol>
 
 
'''Request 2'''
 
   
  +
'''Request 2: geen OIN'''
# Stuur een ping request. Pas de WS-A From: header zo aan dat deze alleen '''<nowiki>http://www.w3.org/2005/08/addressing/anonymous</nowiki>''' bevat, dwz geen geldig oin.
 
  +
# Stuur een ping request. Pas de WS-A From: header zo aan dat deze alleen ''<nowiki>http://www.w3.org/2005/08/addressing/anonymous</nowiki>'' bevat, en dus geen geldig OIN.
   
 
'''Response 2'''
 
'''Response 2'''
  +
# Stel vast dat het antwoord een SOAP Fault is.
  +
# Stel vast dat de foutmelding is:<br/>''Technische fout: het request bevat geen (geldige) From header.''
   
# Stel vast dat het antwoord een SOAP Fault is
 
# Stel vast dat de foutmelding is “Technische fout: het request bevat geen (geldige) From header.”
 
   
'''Request 3'''
+
'''Request 3: onbekend BRIN nummer'''
  +
# Stuur een ping request. Pas de instelling van het systeem aan zodat er een WS-A From header wordt gestuurd met een onbekend BRIN nummer, bijvoorbeeld 99XX. De volledige header ziet er dan uit als:<br/>''<nowiki>http://www.w3.org/2005/08/addressing/anonymous?oin=0000000700099XX00000</nowiki>''
 
# Stuur een ping request. Pas de instelling van het systeem aan zodat er een WS-A From header wordt gestuurd met een onbekend BRIN nummer, bijvoorbeeld 99XX. De volledige header ziet er dan uit als '''<nowiki>http://www.w3.org/2005/08/addressing/anonymous?oin=0000000700099XX00000</nowiki>'''
 
   
 
'''Response 3'''
 
'''Response 3'''
  +
# Stel vast dat het antwoord een SOAP Fault is.
 
  +
# Stel vast dat de foutmelding is:<br/>''Uw Bevoegd Gezag is nog niet geautoriseerd voor het gebruik van de Nummervoorziening.''
# Stel vast dat het antwoord een SOAP Fault is
 
# Stel vast dat de foutmelding is “Uw Bevoegd Gezag is nog niet geautoriseerd voor het gebruik van de Nummervoorziening.”.
 
 
# Stel vast dat melding die de eindgebruiker hierover ziet in het aansluitende systeem helder en duidelijk is.
 
# Stel vast dat melding die de eindgebruiker hierover ziet in het aansluitende systeem helder en duidelijk is.
   
== Ophalen stampseudoniem voor leerlingen (service: retrieveStampseudoniem) ==
+
== Test 2: ophalen stampseudoniem voor leerlingen ==
  +
{| class="wikitable"
 
  +
| '''service''' || retrieveStampseudonym
Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen, op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
 
  +
|}
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector:
 
  +
Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
* [[SID:Testset_PO|Testset PO - leerlingen]]
 
  +
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector en omgeving.<br/>
* [[SID:Testset_VO|Testset VO - leerlingen]]
 
  +
'''Kwalificatie omgeving:'''
* [[SID:Testset_MBO|Testset MBO - leerlingen]]
 
  +
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]
  +
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]
  +
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]
   
 
'''Genereer gehashte PGN's.'''<br/>
 
'''Genereer gehashte PGN's.'''<br/>
Regel 66: Regel 67:
 
* p = 4
 
* p = 4
 
* salt = rktYml0MIp9TC9u6Ny6uqw==
 
* salt = rktYml0MIp9TC9u6Ny6uqw==
  +
{{Warn|De hier genoemde SALT is voor de sandbox omgeving. De SALT voor de kwalificatie omgeving zal door Kennisnet verstrekt worden wanneer men begint aan het proces kwalificeren.}}
Voor testcases kun je gebruik maken van code zoals bijvoorbeeld:
 
  +
<!-- Voor testcases kun je gebruik maken van code zoals bijvoorbeeld:
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
 
String[] PGNs = { "139227672", "170612673", "220500186", "307702522", "479694217", "543997911", "586613675", "644153258", "666614192", "702289905", "854868604", "992795862"};
 
String[] PGNs = { "139227672", "170612673", "220500186", "307702522", "479694217", "543997911", "586613675", "644153258", "666614192", "702289905", "854868604", "992795862"};
</syntaxhighlight>
+
</syntaxhighlight> -->
   
 
'''Haal voor hPGN’s het stampseudoniem op.'''<br/>
 
'''Haal voor hPGN’s het stampseudoniem op.'''<br/>
Regel 76: Regel 78:
 
# Ga na dat het antwoord het correcte stampseudoniem bevat
 
# Ga na dat het antwoord het correcte stampseudoniem bevat
   
== Ophalen ECK-iD voor leerlingen (service: retrieveEckId) ==
+
== Test 3: ophalen ECK iD voor leerlingen ==
  +
{| class="wikitable"
Deze test valideert dat de functie van het aanmaken en retourneren van ECK-iD's, op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
 
  +
| '''service''' || retrieveEckId
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector:
 
  +
|}
* [[SID:Testset_PO|Testset PO - leerlingen]]
 
  +
Deze test valideert dat de functie van het aanmaken en retourneren van ECK iD's op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
* [[SID:Testset_VO|Testset VO - leerlingen]]
 
  +
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector en omgeving.<br/>
* [[SID:Testset_MBO|Testset MBO - leerlingen]]
 
  +
'''Kwalificatie omgeving:'''
  +
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]
  +
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]
  +
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]
   
'''Haal voor stampseudoniemen het ECK-iD op.'''<br/>
+
'''Haal voor stampseudoniemen het ECK iD op.'''<br/>
Gebruik voor het genereren van elk ECK-iD een eigen, onafhankelijk request.
+
Gebruik voor het genereren van elk ECK iD een eigen, onafhankelijk request.
 
# Ga na dat de response geen SOAP fault is.
 
# Ga na dat de response geen SOAP fault is.
# Ga na dat het antwoord het correcte ECK-iD bevat
+
# Ga na dat het antwoord het correcte ECK iD bevat
 
== Ophalen stampseudoniem voor docenten (service: retrieveStampseudoniem) ==
 
Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen voor docenten, op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
 
Gebruik voor deze test, identifiers uit de dataset van de juiste sector:
 
* [[SID:Testset_PO#Leerkrachten|Testset PO - leerkrachten]]
 
* [[SID:Testset_VO#Leerkrachten|Testset VO - leerkrachten]]
 
* [[SID:Testset_MBO#Leerkrachten|Testset MBO - leerkrachten]]
 
   
  +
== Test 4: ophalen stampseudoniem voor docenten ==
  +
{| class="wikitable"
  +
| '''service''' || retrieveStampseudonym
  +
|}
  +
Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen voor docenten op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
  +
Gebruik voor deze test, identifiers uit de dataset van de juiste sector en omgeving.<br/>
  +
'''Kwalificatie omgeving:'''
  +
* [[SID:Testset_PO_kwalificatie_omgeving#Docenten|Testset PO - docenten]]
  +
* [[SID:Testset_VO_kwalificatie_omgeving#Docenten|Testset VO - docenten]]
  +
* [[SID:Testset_MBO_kwalificatie_omgeving#Docenten|Testset MBO - docenten]]
  +
<br/>
 
'''Genereer gehashte PGN's.'''<br/>
 
'''Genereer gehashte PGN's.'''<br/>
Parameters voor het genereren van de gehashte PGNs zijn:
+
Parameters voor het genereren van de gehashte PGN's zijn:
 
* N = 131072
 
* N = 131072
 
* r = 8
 
* r = 8
 
* p = 4
 
* p = 4
 
* salt = rktYml0MIp9TC9u6Ny6uqw==
 
* salt = rktYml0MIp9TC9u6Ny6uqw==
  +
{{Warn|De hier genoemde SALT is voor de sandbox omgeving. De SALT voor de kwalificatie omgeving zal door Kennisnet verstrekt worden wanneer men begint aan het proces kwalificeren.}}
 
Voor testcases kun je gebruik maken van code zoals bijvoorbeeld:
 
<syntaxhighlight lang="java">
 
String[] PGNs = {"urn:uuid:6a880b8c-94a2-11e7-abc4-cec278b6b50a",
 
"urn:uuid:6a88103d-94a2-11e7-abc4-cec278b6b50a",
 
"urn:uuid:6a881168-94a2-11e7-abc4-cec278b6b50a",
 
"urn:uuid:6a881244-94a2-11e7-abc4-cec278b6b50a",
 
"urn:uuid:6a881316-94a2-11e7-abc4-cec278b6b50a",
 
"urn:uuid:d4f3ec1e-acc5-4893-bede-664e6a91957a",
 
"urn:uuid:fc93fef2-9df5-4fc6-a97c-cc4339f2efee",
 
"urn:uuid:3296b5c9-4658-40b6-8e37-36a1f7e4eb51",
 
"urn:uuid:89bc811b-aca4-46fe-8dd6-07b3fb4a97ed",
 
"urn:uuid:4786100d-a115-4727-b7a5-4814804d2ac1",
 
"urn:uuid:8fecd96c-ad4d-40a8-a751-a5d35d649f47",
 
"urn:uuid:fdd5f9d7-f7b0-4f00-9aa8-7f15c4a4364e"};
 
</syntaxhighlight>
 
   
 
'''Haal voor hPGN’s het stampseudoniem op.'''<br/>
 
'''Haal voor hPGN’s het stampseudoniem op.'''<br/>
Regel 123: Regel 118:
 
# Ga na dat het antwoord het correcte stampseudoniem bevat
 
# Ga na dat het antwoord het correcte stampseudoniem bevat
   
  +
== Test 5: ophalen ECK iD voor docenten ==
== Requests randgevallen ==
 
  +
{| class="wikitable"
  +
| '''service''' || retrieveEckId
  +
|}
  +
Deze test valideert dat de functie van het aanmaken en retourneren van ECK iD's, op de juiste manier wordt gebruikt door het aansluitende systeem.<br/>
  +
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector en omgeving.<br/>
  +
'''Kwalificatie omgeving:'''
  +
* [[SID:Testset_PO_kwalificatie_omgeving#Docenten|Testset PO - docenten]]
  +
* [[SID:Testset_VO_kwalificatie_omgeving#Docenten|Testset VO - docenten]]
  +
* [[SID:Testset_MBO_kwalificatie_omgeving#Docenten|Testset MBO - docenten]]
   
  +
'''Haal voor stampseudoniemen het ECK iD op.'''<br/>
Onderstaande tests gaan er van uit dat de waarden die het systeem in het request opneemt, kunnen worden aangepast door de gebruiker of beheerder van het systeem. Als dat niet het geval is, zijn deze tests voor dit systeem geslaagd.
 
  +
Gebruik voor het genereren van elk ECK iD een eigen, onafhankelijk request.
  +
# Ga na dat de response geen SOAP fault is.
  +
# Ga na dat het antwoord het correcte ECK iD bevat
   
  +
== Test 6: randgevallen ==
'''Request 36'''
 
  +
  +
Onderstaande tests gaan er van uit dat de waarden die het systeem in het request opneemt, kunnen worden aangepast door de gebruiker of beheerder van het systeem. Wanneer dat niet het geval is, dan kunnen deze tests als geslaagd beschouwd worden.
  +
  +
  +
'''Request 36: leeg hPGN'''
   
 
# Haal een stampseudoniem op voor een leeg hPGN.
 
# Haal een stampseudoniem op voor een leeg hPGN.
Regel 134: Regel 146:
   
 
# Stel vast dat het response een SOAP fault is
 
# Stel vast dat het response een SOAP fault is
# Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Leeg HPgn object ontvangen” bevat
+
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Leeg HPgn object ontvangen''
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
   
'''Request 37'''
 
   
# Haal een ECK ID op voor een leeg stampseudoniem. Gebruik de ECK keten en de VO sector.
+
'''Request 37: leeg stampseudoniem'''
  +
  +
# Haal een ECK iD op voor een leeg stampseudoniem.
   
 
'''Response 37'''
 
'''Response 37'''
   
 
# Stel vast dat het response een SOAP fault is
 
# Stel vast dat het response een SOAP fault is
# Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Leeg stampseudoniem ontvangen” bevat
+
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Leeg stampseudoniem ontvangen''
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
   
'''Request 38'''
 
   
  +
'''Request 38: te kort stampseudoniem'''
# Haal een ECK ID op en gebruik een stampseudoniem dat één positie te kort is (dwz verwijder een letter). Gebruik de ECK keten en de VO sector.
 
  +
  +
# Haal een ECK iD op en gebruik een stampseudoniem dat één positie te kort is (d.w.z. verwijder een karakter).
   
 
'''Response 38'''
 
'''Response 38'''
   
 
# Stel vast dat het response een SOAP Fault is
 
# Stel vast dat het response een SOAP Fault is
# Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Stampseudoniem is te kort. Een tekenreeks van minimaal 128 karakters werd verwacht.
+
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Stampseudoniem is te kort. Een tekenreeks van minimaal 128 karakters werd verwacht.''
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
   
'''Request 39'''
 
   
  +
'''Request 39: ongeldige sector'''
# Haal een ECK ID op. Gebruik de ECK keten en de VO sector. Verander een letter in de waarde van de VO Sector in het request.
 
  +
  +
# Haal een ECK iD op. Gebruik in het request ''ECK'' als keten en een ongeldige sector, dus niet ''PO'', ''VO'' of ''MBO''.
   
 
'''Response 39'''
 
'''Response 39'''
   
 
# Stel vast dat het response een SOAP Fault is
 
# Stel vast dat het response een SOAP Fault is
# Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Ontvangen waarde voor sector is onbekend.
+
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Ontvangen waarde voor sector is onbekend.''
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
   
'''Request 40'''
 
   
  +
'''Request 40: ongeldige keten'''
# Haal een ECK ID op. Gebruik de ECK keten en de VO sector. Verander een letter in de waarde van de ECK Keten in het request.
 
  +
  +
# Haal een ECK iD op. Gebruik in het request een geldige sector (''PO'', ''VO'' of ''MBO'') en een ongeldige keten, dus niet ''ECK''.
   
 
'''Response 40'''
 
'''Response 40'''
   
 
# Stel vast dat het response een SOAP Fault is
 
# Stel vast dat het response een SOAP Fault is
# Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Ontvangen waarde voor keten is onbekend.
+
# Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Ontvangen waarde voor keten is onbekend.''
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
 
# Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is
   
  +
== Test 7: substitutie ==
== Substitutie test (service: replaceEckId) ==
 
  +
{| class="wikitable"
  +
| '''service''' || replaceStampseudonym
  +
|}
   
Deze test gaat na of substituties goed worden afgehandeld. Er worden geen voorbeelden van PGN's genoemd want deze worden geblokkeerd na het eerste gebruik (tenzij de substitutie wordt verwijderd in de beheerapplicatie). Neem zelf vijf PGNs (of GUIDs voor docenten) en doe de test daarmee.
+
Deze test gaat na of substituties goed worden afgehandeld. Er worden geen voorbeelden van PGN's genoemd want deze worden geblokkeerd na het eerste gebruik. Om deze blokkade op te heffen kan contact opgenomen worden met Kennisnet. Neem zelf vijf PGNs en doe de test daarmee.<br/>
  +
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector en omgeving.<br/>
  +
'''Kwalificatie omgeving:'''
  +
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]
  +
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]
  +
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]
   
  +
'''Substitutie 1'''<br/>
Ga in de beheer applicatie na dat er bij aanvang van deze test geen bestaande substituties zijn voor deze school. Als ze er wel zijn, verwijder deze met de ‘delete’ knop.
 
  +
Deze test valideert of een substitutie goed wordt afgehandeld. Tevens wordt gevalideerd of de foutmelding goed wordt afgehandeld door het systeem als het oude PGN wordt hergebruikt.
   
  +
# Neem de eerste twee PGN's, noem het eerste PGN ''oud PGN'' en het tweede PGN ''nieuw PGN''.
'''Substitutie 1'''
 
  +
# Haal een stampseudoniem op voor ''oud PGN''. Onthoud het stampseudoniem als ''oud stampseudoniem''.
Deze test gaat na of een substitutie goed wordt afgehandeld, en of er de foutmelding als het oude PGN wordt gebruikt goed wordt afgehandeld door het systeem.
 
  +
# Haal een stampseudoniem op voor ''nieuw PGN''. Onthoud het stampseudoniem als ''nieuw stampseudoniem''.
  +
# Roep de substitutieservice aan om ''oud PGN'' te vervangen door ''nieuw PGN''.
  +
# Haal een stampseudoniem opnieuw op voor ''oud PGN''.
  +
## Stel vast dat de response een SOAP Fault is.
  +
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''De aangeleverde HPgn is geblokkeerd''
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
  +
#Haal een stampseudoniem opnieuw op voor ''nieuw PGN''.
  +
## Stel vast dat de response geen SOAP Fault is.
  +
## Stel vast dat het geleverde stampseudoniem in het response gelijk is aan ''oud stampseudoniem'' uit stap 2, en '''niet''' aan ''nieuw stampseudoniem'' uit stap 3.
   
  +
'''Substitutie 2'''<br/>
<ol style="list-style-type: decimal;">
 
  +
Deze test valideert dat een substitutie niet voor een tweede keer naar eenzelfde nieuwe PGN kan worden uitgevoerd. Deze situatie komt voor wanneer aan twee leerlingen (die niet op dezelfde school hoeven te zitten) hetzelfde nieuwe PGN krijgen.
<li><p>Neem de eerste twee PGNs, noem het eerste PGN "oud PGN" en het tweede PGN "nieuw PGN"</p></li>
 
<li><p>Haal een stampseudoniem op voor oud PGN. Onthoud het stampseudoniem als "oud stampseudoniem".</p></li>
 
<li><p>Haal een stampseudoniem op voor nieuw PGN. Onthoud het stampseudoniem als "nieuw stampseudoniem".</p></li>
 
<li><p>Roep de substitutieservice aan om oud PGN te vervangen door nieuw PGN.<p></li>
 
<li><p>Haal een stampseudoniem opnieuw op voor oud PGN.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat de response een SOAP Fault is.</p></li>
 
<li><p>Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “De aangeleverde HPgn is geblokkeerd” bevat.</p></li>
 
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
 
</li>
 
<li><p>Haal een stampseudoniem opnieuw op voor nieuw PGN.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat de response geen SOAP Fault is.</p></li>
 
<li><p>Stel vast dat het geleverde stampseudoniem in het response gelijk is aan ‘oud stampseudoniem’, en ''niet'' aan ‘nieuw stampseudoniem’.</p></li></ol>
 
</li></ol>
 
   
  +
# Neem de andere drie PGN's, noem het eerste PGN ''oud PGN'', het tweede PGN ''nieuw PGN'' en het derde PGN ''ander PGN''.
'''Substitutie 2'''
 
  +
# Haal een stampseudoniem op voor ''oud PGN''. Onthoud het stampseudoniem als ''oud stampseudoniem''.
Deze test gaat na dat een substitutie niet voor een tweede keer naar eenzelfde nieuwe PGN kan worden uitgevoerd. Deze situatie komt voor als aan twee leerlingen (die niet op dezelfde school hoeven te zitten) hetzelfde nieuwe PGN krijgen.
 
  +
# Haal een stampseudoniem op voor ''nieuw PGN''. Onthoud het stampseudoniem als ''nieuw stampseudoniem''.
 
  +
# Roep de substitutieservice aan om ''oud PGN'' te vervangen door ''nieuw PGN''.
<ol style="list-style-type: decimal;">
 
  +
## Stel vast dat de response geen SOAP Fault is.
<li><p>Neem de de andere drie PGNs, noem het eerste PGN "oud PGN" en het tweede PGN "nieuw PGN", het derde "ander PGN"</p></li>
 
  +
# Roep de substitutieservice aan om ''ander PGN'' te vervangen door ''nieuw PGN''.
<li><p>Haal een stampseudoniem op voor oud PGN. Onthoud het stampseudoniem als "oud stampseudoniem".</p></li>
 
  +
## Stel vast dat de response een SOAP Fault is.
<li><p>Haal een stampseudoniem op voor nieuw PGN. Onthoud het stampseudoniem als "nieuw stampseudoniem".</p></li>
 
  +
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Deze substitutie bestaat al: ''
<li><p>Roep de substitutieservice aan om oud PGN te vervangen door nieuw PGN.</p>
 
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
<ol style="list-style-type: lower-alpha;">
 
  +
# Roep de substitutieservice aan om ''oud PGN'' te vervangen door ''nieuw PGN''.
<li><p>Stel vast dat de response geen SOAP Fault is</p></li></ol>
 
  +
## Stel vast dat de response een SOAP Fault is.
</li>
 
  +
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''De aangeleverde HPgn is geblokkeerd''
<li><p>Roep de substitutieservice aan om ander PGN te vervangen door nieuw PGN.</p>
 
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat de response een SOAP Fault is</p></li>
 
<li><p>Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Deze substitutie bestaat al: ” bevat</p></li>
 
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
 
</li>
 
<li><p>Roep de substitutieservice aan om het oud PGN te vervangen door nieuw PGN.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat de response een SOAP Fault is</p></li>
 
<li><p>Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Deze substitutie bestaat al: ” bevat</p></li>
 
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
 
</li></ol>
 
 
== Batch test (service: submitEckIdBatch, retrieveEckIdBatch) ==
 
 
'''Batch 1'''
 
Deze test gaat na of het systeem fouten in de resultaten van batches goed kan verwerken.
 
 
<ol style="list-style-type: decimal;">
 
<li><p>Stel een batch request samen op basis van de PGNs uit Tabel 3.
 
Pas de gehashte PGNs op de volgende manier aan (zie ook Tabel 3):
 
* hPGN[2] = ""
 
* hPGN[9] = "abc"
 
* hPGN[11] bevat een extra "A" op het einde
 
<li>Stuur het batch request op.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat het antwoord geen SOAP Fault is</p></li>
 
<li><p>Stel vast dat het antwoord een batchID bevat</p></li></ol>
 
</li>
 
<li><p>Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat het antwoord geen SOAP fault is</p></li>
 
<li><p>Stel vast dat het antwoord 9 correcte ECK IDs bevat</p></li>
 
<li><p>Stel vast dat het antwoord 3 failed elementen bevat, voor met tekst “Genereren niet succesvol”</p></li>
 
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
 
</li></ol>
 
 
NB De melding "Genereren niet succesvol" zal worden vervangen door een meer beschrijvende foutmelding bij de volgende release van de Nummervoorziening.
 
   
  +
== Test 8: batch ==
 
{| class="wikitable"
 
{| class="wikitable"
  +
| '''service''' || submitStampseudonymBatch
|+Tabel 3
 
! #
 
! Invoer
 
! Gehashte PGN
 
! Stampseudoniem
 
 
|-
 
|-
  +
| '''service''' || submitEckIdBatch
|0
 
|<nowiki>139227672</nowiki>
 
|<nowiki>66a1bac852fe417b74b664f12d32e2de3990ed421c6763bea5d85cbcb171056e</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/eacf3765ad342feb5f65c2bf8194b4ccc3d68cec3c01d3c260636747a2b06d092fcc3a8d655bbdc4ae7d815ed005cf3a11fe9cab2365f95da3e9965501f7c98e</nowiki>
 
 
|-
 
|-
  +
| '''service''' || retrieveBatch
|1
 
|<nowiki>170612673</nowiki>
 
|<nowiki>11e4f0e5e005925c8e79d29b174452bcca5c0cc7c9a9f9e727eec0dd14c5db24</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/65cdce6e2bcb8715a64824d4d5e66e3d60de601e28c129867547838fda66d090fb04e2be0863d2993a11e9b6e6b372260eee75f08bfd8932d9afb1deb6684c5b</nowiki>
 
|-
 
|2
 
|<nowiki>220500186</nowiki>
 
|<nowiki></nowiki>
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|-
 
|3
 
|<nowiki>307702522</nowiki>
 
|<nowiki>8671119bb2466a51a29a0d5bbcc2d82902909378b6c88fdf6db77b6869104f0c</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/3386bceffc6bde1b804ddc453b57bd1aa633ab668481eaf2f9ba3da424e86770126f678db2d507a10392887afbc2d8d07e30e41f433fb0d3b79135acc0fc37d7</nowiki>
 
|-
 
|4
 
|<nowiki>479694217</nowiki>
 
|<nowiki>a5cd3d639552ec9e2ffcc36685b478ad712478f6f64f2abc580195d8908c5a04</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/ccc4e8cbc286ebc7f1e42342229ec95cf3a07519d4895f72bf51a4273179e5021a71555c8a1ef70ae76bba9a9c98ca1d79e1fd270499e0bed9593a22e8435f83</nowiki>
 
|-
 
|5
 
|<nowiki>543997911</nowiki>
 
|<nowiki>8e6b2b9bb54c26819e4752da611c845c97be28abc9394e169b4c0c3ffa92b841</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/15286dd734ad306d572ee12944611cd55fd34e74fe5156415d8ea6f7ea7e5550ead707d441be0f13ec692c6499ba2210332f4e7247aced5eb6efad81e3eeea77</nowiki>
 
|-
 
|6
 
|<nowiki>586613675</nowiki>
 
|<nowiki>a037c4ea05ee750029528a24f2a34df5b0fe74120b6f74e642b9a3904529aeb9</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/bd37b770c4f9692a980dcbe3f434153177d9fe98afe98686381b9675aa5f5bcb9a650a4285559150cfc43208ac83dbb663e5a18049ee19f0b070562fdd1272cc</nowiki>
 
|-
 
|7
 
|<nowiki>644153258</nowiki>
 
|<nowiki>2424e132f0f6897972e6d3ee36ed3d725a74a782284a49f2f429ebb76fa664ca</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/286ae5d60aa2fa9c9097a9426848864f1a302fc4a075ed073320975af90f0e1d4b759475a837118500de4414d97ce11ba01c25396bf63ec10905457424474e75</nowiki>
 
|-
 
|8
 
|<nowiki>666614192</nowiki>
 
|<nowiki>f61fa5b023fa927f45a93431ebddf12d2ff8834b85ae800a0b17792ae4152401</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/9f96688af2ccdbdd5d3b4c199e5ffb5bd82fc89e4215426c3731e4277e5bf1c59a00f42769824eda2750d4d5931f1143d3a56b03ca25ffa0613386b4a330c487</nowiki>
 
|-
 
|9
 
|<nowiki>702289905</nowiki>
 
|<nowiki>abc</nowiki>
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|-
 
|10
 
|<nowiki>854868604</nowiki>
 
|<nowiki>45a632ebab0e35c5b6273f7f9d032efcbdc10821f8c3264d027f743aa994f0ee</nowiki>
 
|<nowiki>https://ketenid.nl/sppilot/9611434dd589fe9ffc76fed40510e4f218c5ee8648ec0859344801a298e5aadd32504052d8acf3259d27fbe5590dba03cbe047857413a5e17c554df7da4696c7</nowiki>
 
|-
 
|11
 
|<nowiki>992795862</nowiki>
 
|<nowiki>6898a8aec6a26d237265173d982394d753e0a20dca4b499ad01d1cc542391bc3A</nowiki>
 
|<nowiki>Genereren niet succesvol</nowiki>
 
 
|}
 
|}
   
  +
Deze test gaat na of batches goed worden afgehandeld. Wanneer een systeem geen gebruik maakt van batches dan kan deze test als geslaagd beschouwd worden.<br/>
  +
Stel voor deze test een set van 12 PGN's samen, gebruik hiervoor PGN’s uit de dataset van de juiste sector en omgeving.<br/>
  +
'''Kwalificatie omgeving:'''
  +
* [[SID:Testset_PO_kwalificatie_omgeving|Testset PO - leerlingen]]
  +
* [[SID:Testset_VO_kwalificatie_omgeving|Testset VO - leerlingen]]
  +
* [[SID:Testset_MBO_kwalificatie_omgeving|Testset MBO - leerlingen]]
   
'''Batch 2'''
+
'''Batch 1'''<br/>
  +
Deze test valideert of het systeem fouten in de resultaten van batches goed kan verwerken.
Op basis van bovenstaande stampseudoniemen worden de volgende ECK IDs gemaakt, voor het PO.
 
   
  +
# Pas de gehashte PGN's op de volgende manier aan:<br/>- derde hPGN = ""<br/>- tiende hPGN = "abc"<br/>- voeg een extra "A" toe aan het einde van het twaalfde hPGN
{| class="wikitable"
 
  +
# Stuur het batch request op.
|+Tabel 4
 
  +
## Stel vast dat het antwoord geen SOAP Fault is.
! #
 
  +
## Stel vast dat het antwoord een batchID bevat.
! Stampseudoniem
 
  +
#Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.
! ECK ID
 
  +
## Stel vast dat het antwoord geen SOAP fault is.
|-
 
  +
## Stel vast dat het antwoord 9 correcte stampseudoniemen bevat.
|0
 
  +
## Stel vast dat het antwoord 3 failed elementen bevat met de tekst:<br/>''Genereren niet succesvol''
|<nowiki>https://ketenid.nl/sppilot/eacf3765ad342feb5f65c2bf8194b4ccc3d68cec3c01d3c260636747a2b06d092fcc3a8d655bbdc4ae7d815ed005cf3a11fe9cab2365f95da3e9965501f7c98e</nowiki>
 
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
|<nowiki>https://ketenid.nl/pilot/8156116f110e2637ec5eba35ddba8342bdb873ca87be0012574a976dee898373cd69dae2afc51d3bfb5b6207029ef8412765b11e71c4b70f6edb5881fbb77293</nowiki>
 
  +
|-
 
  +
'''Batch 2'''<br/>
|1
 
  +
Op basis van de stampseudoniemen die in de vorige test gemaakt zijn worden in deze test ECK-iD's gegenereerd.<br/>
|<nowiki>https://ketenid.nl/sppilot/65cdce6e2bcb8715a64824d4d5e66e3d60de601e28c129867547838fda66d090fb04e2be0863d2993a11e9b6e6b372260eee75f08bfd8932d9afb1deb6684c5b</nowiki>
 
  +
Haal voor stampseudoniemen het ECK iD op.
|<nowiki>https://ketenid.nl/pilot/caf844187d521343b7221c4aafb5354ac8f90628eaa32a868045075ea3f85daff011e90fc8b497ecc35e27e1ac969c07fcd67599a9ea4ef398b0d07992825676</nowiki>
 
|-
 
|2
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|-
 
|3
 
|<nowiki>https://ketenid.nl/sppilot/3386bceffc6bde1b804ddc453b57bd1aa633ab668481eaf2f9ba3da424e86770126f678db2d507a10392887afbc2d8d07e30e41f433fb0d3b79135acc0fc37d7</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/c8a217819844066484308b23512c311514fbcaa7a46c7caa985536ee049a605998ec54e55b8d03317b5a4efbbc1a9087723064a5b1a39408d9702ed7b618fd88</nowiki>
 
|-
 
|4
 
|<nowiki>https://ketenid.nl/sppilot/ccc4e8cbc286ebc7f1e42342229ec95cf3a07519d4895f72bf51a4273179e5021a71555c8a1ef70ae76bba9a9c98ca1d79e1fd270499e0bed9593a22e8435f83</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/a6d24d7a2ffd7e20b7345b88d8d9214a0ceef4cdff5528a3bac66cde1650897d47abfa72bc573360e1d17df279fa4200b7921099f4d3906f0b541892a70be728</nowiki>
 
|-
 
|5
 
|<nowiki>https://ketenid.nl/sppilot/15286dd734ad306d572ee12944611cd55fd34e74fe5156415d8ea6f7ea7e5550ead707d441be0f13ec692c6499ba2210332f4e7247aced5eb6efad81e3eeea77</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/0cc0455f6a20fb6ecbf18b8debe1b2f1f178ce622aceccf944b8eeca541334146dffe0e486063193840153ed90120a4797ab508896be55a6b18311afa53614f3</nowiki>
 
|-
 
|6
 
|<nowiki>https://ketenid.nl/sppilot/bd37b770c4f9692a980dcbe3f434153177d9fe98afe98686381b9675aa5f5bcb9a650a4285559150cfc43208ac83dbb663e5a18049ee19f0b070562fdd1272cc</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/7b6872d83d604b7d2030d0e2260cbe926aa627268dc99a3be0d5d51620fc352117e11b0381fb35f74623a336b4809e9bf2411d94720ca728130f4b1ac27f1d6b</nowiki>
 
|-
 
|7
 
|<nowiki>https://ketenid.nl/sppilot/286ae5d60aa2fa9c9097a9426848864f1a302fc4a075ed073320975af90f0e1d4b759475a837118500de4414d97ce11ba01c25396bf63ec10905457424474e75</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/32fb5751ccdf8059b7b1edda59d7ffd4a6b06f2f076ef438030cf86a4f279676dc661d30b6ec5cba6f39465f3ee2ad85f1b9cbbfd9a7ae81fd132bd3233974d9</nowiki>
 
|-
 
|8
 
|<nowiki>https://ketenid.nl/sppilot/9f96688af2ccdbdd5d3b4c199e5ffb5bd82fc89e4215426c3731e4277e5bf1c59a00f42769824eda2750d4d5931f1143d3a56b03ca25ffa0613386b4a330c487</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/c68e8017979e9c13fec4826de4b4fbc7a5b54fc069bc114c0817154b571ce2347e84d1a767aff76eca557c86edec628c5cacb51b7fcf492366d95022bd791dc1</nowiki>
 
|-
 
|9
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|-
 
|10
 
|<nowiki>https://ketenid.nl/sppilot/9611434dd589fe9ffc76fed40510e4f218c5ee8648ec0859344801a298e5aadd32504052d8acf3259d27fbe5590dba03cbe047857413a5e17c554df7da4696c7</nowiki>
 
|<nowiki>https://ketenid.nl/pilot/b2b5201f936e14ed9988e47bda971ac5ca8a02cb4d58080ca5c86f79941c8a4ac8b8ff9bb2294af8690054a9b7ded542777f4c3bb8351415eba6a7f917535fc3</nowiki>
 
|-
 
|11
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|<nowiki>Genereren niet succesvol</nowiki>
 
|}
 
   
  +
# Stuur het batch request op.
  +
## Stel vast dat het antwoord geen SOAP Fault is.
  +
## Stel vast dat het antwoord een batchID bevat.
  +
#Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.
  +
## Stel vast dat het antwoord geen SOAP fault is.
  +
## Stel vast dat het antwoord 9 correcte ECK iD's bevat.
  +
## Stel vast dat het antwoord 3 failed elementen bevat met de tekst:<br/>''Genereren niet succesvol''
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
   
'''Batch 3'''
+
'''Batch 3'''<br/>
Deze test gaat na of de afhandeling van fouten wegens het niet honoreren van de batch limieten goed worden afgehandeld.
+
Deze test valideert of de afhandeling van fouten wegens het overschrijden van de batch limieten goed worden afgehandeld.
   
  +
# Stel voor deze test een set van 5 PGN's samen, gebruik hiervoor PGN’s uit de dataset van de juiste sector en omgeving.
<ol style="list-style-type: decimal;">
 
<li><p>Stel een batch request samen op basis van de PGNs uit Tabel 3.</p></li>
+
# Stuur het batch request op.
  +
## Stel vast dat het antwoord geen SOAP Fault is.
<li><p>Stuur het batch request op.</p>
 
  +
## Stel vast dat het antwoord een batchID bevat.
<ol style="list-style-type: lower-alpha;">
 
  +
# Wacht niet en haal het batchresultaat onmiddellijk op, op basis van het batchID.
<li><p>Stel vast dat het antwoord geen SOAP Fault is</p></li>
 
<li><p>Stel vast dat het antwoord een batchID bevat</p></li></ol>
+
## Stel vast dat de response een SOAP Fault is.
  +
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''De school mag tijdelijk geen batches ophalen wegens een opgelegde cooldown timeout.''
</li>
 
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
<li><p>Wacht niet en haal het batchresultaat onmiddellijk op, op basis van het batchid.</p>
 
  +
# Wacht minder dan 10 seconden vanaf het vorige request en haal het batchresultaat opnieuw op.
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat de response een SOAP Fault is</p></li>
+
## Stel vast dat de response een SOAP Fault is.
<li><p>Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “De school mag tijdelijk geen batches ophalen wegens een opgelegde cooldown timeout.” bevat</p></li>
+
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''U kunt tijdelijk de batch niet ophalen wegens het niet honoreren van de cooldown periode.''
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
+
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
  +
# Wacht minstens 30 seconden na het vorige request en haal dan het batch resultaat op, op basis van het batchID.
</li>
 
  +
## Stel vast dat het antwoord geen SOAP fault is.
<li><p>Wacht minder dan 10 seconden vanaf het vorige request en haal het batchresultaat opnieuw op</p>
 
  +
## Stel vast dat de resultaten goed worden weergegeven.
<ol style="list-style-type: lower-alpha;">
 
  +
# Wacht 10 seconden en haal dan het batch resultaat opnieuw op, op basis van het batchID.
<li><p>Stel vast dat de response een SOAP Fault is</p></li>
 
  +
## Stel vast dat de response een SOAP Fault is.
<li><p>Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “U kunt tijdelijk de batch niet ophalen wegens het niet honoreren van de cooldown periode.” is</p></li>
 
  +
## Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:<br/>''Batch reeds opgehaald.''
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
 
  +
## Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
</li>
 
<li><p>Wacht minstens 30 seconden na het vorige request en haal dan het batch resultaat op, op basis van het batchID.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat het antwoord geen SOAP fault is</p></li>
 
<li><p>Stel vast dat de resultaten goed worden weergegeven.</p></li></ol>
 
</li>
 
<li><p>Wacht 10 seconden en haal dan het batch resultaat opnieuw op, op basis van het batchID.</p>
 
<ol style="list-style-type: lower-alpha;">
 
<li><p>Stel vast dat de response een SOAP Fault is</p></li>
 
<li><p>Stel vast dat het veld Envelope/Body/Fault/detail/message de tekst “Batch reeds opgehaald.” is</p></li>
 
<li><p>Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.</p></li></ol>
 
</li></ol>
 
   
 
[[Categorie:Nummervoorziening]]
 
[[Categorie:Nummervoorziening]]

Huidige versie van 9 jun 2022 om 14:57

Dit document beschrijft de technische kwalificatietest voor aansluiting van een systeem op de Nummervoorziening. In dit deel wordt geverifieerd of het aansluitende systeem op de juiste wijze de API van de Nummervoorziening aanroept, en of de foutsituaties die voorkomen correct worden afgehandeld.

De kwalificatietest wordt gerund op de kwalificatieomgeving. Deze test wordt doorlopen door een verantwoordelijke van het aansluitende systeem samen met een medewerker van Kennisnet. De verantwoordelijke van het aansluitende systeem voert de gevraagde tests uit volgens de voorschriften. Kennisnet beoordeelt of de test volgens de beschrijving is uitgevoerd en of het antwoord voldoet aan de gestelde eis.

Info.gif Het endpoint van de service op de kwalificatieomgeving is https://service-q.ketenid.nl/eck/ws/201703/

Om de kwalificatie omgeving aan te kunnen roepen moet het aansluitende systeem een PKI Overheid certificaat gebruiken. Het SERIALNUMBER veld in het subject van dit certificaat wordt gebruikt om het aanroepende systeem te autoriseren. Neem voor het autoriseren van het aansluitende systeem contact op met Kennisnet.

De service tests zijn beschikbaar als SOAPUI project. In dit project is een testsuite opgenomen. Hierin is geïllustreerd welke requests er van het systeem worden verwacht, en welke responses de Nummervoorziening daarop geeft.

Warn.gif SOAPUI heeft vanaf versie 5.4.0 de juiste SSL ondersteuning om met de Nummervoorziening te communiceren.

Let op:
Deze testen hebben tot doel het verkrijgen van zekerheid dat het gebruik van de Nummervoorziening niet tot operationele problemen leidt in het normale dagelijkse gebruik op school. In de test worden doelbewust manipulaties gevraagd die tot uitzonderingen leiden.
Als een manipulatie niet door normale gebruikers en beheerders van het aansluitende systeem kunnen worden uitgevoerd, bijvoorbeeld omdat het systeem hiertegen beschermd is, dan geldt de test op dit punt als geslaagd.

Test 1: ping

service pingRequest
service retrieveChains (optioneel)

In deze test wordt de connectiviteit, certificaat-verwerking en WS-Addressing getest. Als het aansluitende systeem de ping service niet ondersteunt, voer deze test dan uit met de service retrieveChains.


Request 1: ping

  1. Stuur een ping request.

Response 1

  1. Stel vast dat het antwoord geen SOAP Fault is.
  2. Stel vast dat het antwoord de huidige tijd bevat in het veld Envelope/Body/pingResponse/systemTime (bij gebruik van retrieveChains, stel vast dat de reponse een geldige chainId bevat).


Request 2: geen OIN

  1. Stuur een ping request. Pas de WS-A From: header zo aan dat deze alleen http://www.w3.org/2005/08/addressing/anonymous bevat, en dus geen geldig OIN.

Response 2

  1. Stel vast dat het antwoord een SOAP Fault is.
  2. Stel vast dat de foutmelding is:
    Technische fout: het request bevat geen (geldige) From header.


Request 3: onbekend BRIN nummer

  1. Stuur een ping request. Pas de instelling van het systeem aan zodat er een WS-A From header wordt gestuurd met een onbekend BRIN nummer, bijvoorbeeld 99XX. De volledige header ziet er dan uit als:
    http://www.w3.org/2005/08/addressing/anonymous?oin=0000000700099XX00000

Response 3

  1. Stel vast dat het antwoord een SOAP Fault is.
  2. Stel vast dat de foutmelding is:
    Uw Bevoegd Gezag is nog niet geautoriseerd voor het gebruik van de Nummervoorziening.
  3. Stel vast dat melding die de eindgebruiker hierover ziet in het aansluitende systeem helder en duidelijk is.

Test 2: ophalen stampseudoniem voor leerlingen

service retrieveStampseudonym

Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen op de juiste manier wordt gebruikt door het aansluitende systeem.
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector en omgeving.
Kwalificatie omgeving:

Genereer gehashte PGN's.
Parameters voor het genereren van de gehashte PGNs zijn:

  • N = 131072
  • r = 8
  • p = 4
  • salt = rktYml0MIp9TC9u6Ny6uqw==
Warn.gif De hier genoemde SALT is voor de sandbox omgeving. De SALT voor de kwalificatie omgeving zal door Kennisnet verstrekt worden wanneer men begint aan het proces kwalificeren.

Haal voor hPGN’s het stampseudoniem op.
Gebruik voor het opvragen van elk stampseudoniem een eigen, onafhankelijk request.

  1. Ga na dat de response geen SOAP fault is.
  2. Ga na dat het antwoord het correcte stampseudoniem bevat

Test 3: ophalen ECK iD voor leerlingen

service retrieveEckId

Deze test valideert dat de functie van het aanmaken en retourneren van ECK iD's op de juiste manier wordt gebruikt door het aansluitende systeem.
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector en omgeving.
Kwalificatie omgeving:

Haal voor stampseudoniemen het ECK iD op.
Gebruik voor het genereren van elk ECK iD een eigen, onafhankelijk request.

  1. Ga na dat de response geen SOAP fault is.
  2. Ga na dat het antwoord het correcte ECK iD bevat

Test 4: ophalen stampseudoniem voor docenten

service retrieveStampseudonym

Deze test valideert dat de functie van het aanmaken en retourneren van stampseudoniemen voor docenten op de juiste manier wordt gebruikt door het aansluitende systeem.
Gebruik voor deze test, identifiers uit de dataset van de juiste sector en omgeving.
Kwalificatie omgeving:


Genereer gehashte PGN's.
Parameters voor het genereren van de gehashte PGN's zijn:

  • N = 131072
  • r = 8
  • p = 4
  • salt = rktYml0MIp9TC9u6Ny6uqw==
Warn.gif De hier genoemde SALT is voor de sandbox omgeving. De SALT voor de kwalificatie omgeving zal door Kennisnet verstrekt worden wanneer men begint aan het proces kwalificeren.

Haal voor hPGN’s het stampseudoniem op.
Gebruik voor het opvragen van elk stampseudoniem een eigen, onafhankelijk request.

  1. Ga na dat de response geen SOAP fault is.
  2. Ga na dat het antwoord het correcte stampseudoniem bevat

Test 5: ophalen ECK iD voor docenten

service retrieveEckId

Deze test valideert dat de functie van het aanmaken en retourneren van ECK iD's, op de juiste manier wordt gebruikt door het aansluitende systeem.
Gebruik voor deze test, stampseudoniemen uit de dataset van de juiste sector en omgeving.
Kwalificatie omgeving:

Haal voor stampseudoniemen het ECK iD op.
Gebruik voor het genereren van elk ECK iD een eigen, onafhankelijk request.

  1. Ga na dat de response geen SOAP fault is.
  2. Ga na dat het antwoord het correcte ECK iD bevat

Test 6: randgevallen

Onderstaande tests gaan er van uit dat de waarden die het systeem in het request opneemt, kunnen worden aangepast door de gebruiker of beheerder van het systeem. Wanneer dat niet het geval is, dan kunnen deze tests als geslaagd beschouwd worden.


Request 36: leeg hPGN

  1. Haal een stampseudoniem op voor een leeg hPGN.

Response 36

  1. Stel vast dat het response een SOAP fault is
  2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
    Leeg HPgn object ontvangen
  3. Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is


Request 37: leeg stampseudoniem

  1. Haal een ECK iD op voor een leeg stampseudoniem.

Response 37

  1. Stel vast dat het response een SOAP fault is
  2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
    Leeg stampseudoniem ontvangen
  3. Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is


Request 38: te kort stampseudoniem

  1. Haal een ECK iD op en gebruik een stampseudoniem dat één positie te kort is (d.w.z. verwijder een karakter).

Response 38

  1. Stel vast dat het response een SOAP Fault is
  2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
    Stampseudoniem is te kort. Een tekenreeks van minimaal 128 karakters werd verwacht.
  3. Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is


Request 39: ongeldige sector

  1. Haal een ECK iD op. Gebruik in het request ECK als keten en een ongeldige sector, dus niet PO, VO of MBO.

Response 39

  1. Stel vast dat het response een SOAP Fault is
  2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
    Ontvangen waarde voor sector is onbekend.
  3. Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is


Request 40: ongeldige keten

  1. Haal een ECK iD op. Gebruik in het request een geldige sector (PO, VO of MBO) en een ongeldige keten, dus niet ECK.

Response 40

  1. Stel vast dat het response een SOAP Fault is
  2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
    Ontvangen waarde voor keten is onbekend.
  3. Stel vast dat de foutmelding die de gebruiker hierover ziet duidelijk is

Test 7: substitutie

service replaceStampseudonym

Deze test gaat na of substituties goed worden afgehandeld. Er worden geen voorbeelden van PGN's genoemd want deze worden geblokkeerd na het eerste gebruik. Om deze blokkade op te heffen kan contact opgenomen worden met Kennisnet. Neem zelf vijf PGNs en doe de test daarmee.
Gebruik voor deze test, PGN’s uit de dataset van de juiste sector en omgeving.
Kwalificatie omgeving:

Substitutie 1
Deze test valideert of een substitutie goed wordt afgehandeld. Tevens wordt gevalideerd of de foutmelding goed wordt afgehandeld door het systeem als het oude PGN wordt hergebruikt.

  1. Neem de eerste twee PGN's, noem het eerste PGN oud PGN en het tweede PGN nieuw PGN.
  2. Haal een stampseudoniem op voor oud PGN. Onthoud het stampseudoniem als oud stampseudoniem.
  3. Haal een stampseudoniem op voor nieuw PGN. Onthoud het stampseudoniem als nieuw stampseudoniem.
  4. Roep de substitutieservice aan om oud PGN te vervangen door nieuw PGN.
  5. Haal een stampseudoniem opnieuw op voor oud PGN.
    1. Stel vast dat de response een SOAP Fault is.
    2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
      De aangeleverde HPgn is geblokkeerd
    3. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
  6. Haal een stampseudoniem opnieuw op voor nieuw PGN.
    1. Stel vast dat de response geen SOAP Fault is.
    2. Stel vast dat het geleverde stampseudoniem in het response gelijk is aan oud stampseudoniem uit stap 2, en niet aan nieuw stampseudoniem uit stap 3.

Substitutie 2
Deze test valideert dat een substitutie niet voor een tweede keer naar eenzelfde nieuwe PGN kan worden uitgevoerd. Deze situatie komt voor wanneer aan twee leerlingen (die niet op dezelfde school hoeven te zitten) hetzelfde nieuwe PGN krijgen.

  1. Neem de andere drie PGN's, noem het eerste PGN oud PGN, het tweede PGN nieuw PGN en het derde PGN ander PGN.
  2. Haal een stampseudoniem op voor oud PGN. Onthoud het stampseudoniem als oud stampseudoniem.
  3. Haal een stampseudoniem op voor nieuw PGN. Onthoud het stampseudoniem als nieuw stampseudoniem.
  4. Roep de substitutieservice aan om oud PGN te vervangen door nieuw PGN.
    1. Stel vast dat de response geen SOAP Fault is.
  5. Roep de substitutieservice aan om ander PGN te vervangen door nieuw PGN.
    1. Stel vast dat de response een SOAP Fault is.
    2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
      Deze substitutie bestaat al:
    3. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
  6. Roep de substitutieservice aan om oud PGN te vervangen door nieuw PGN.
    1. Stel vast dat de response een SOAP Fault is.
    2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
      De aangeleverde HPgn is geblokkeerd
    3. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.

Test 8: batch

service submitStampseudonymBatch
service submitEckIdBatch
service retrieveBatch

Deze test gaat na of batches goed worden afgehandeld. Wanneer een systeem geen gebruik maakt van batches dan kan deze test als geslaagd beschouwd worden.
Stel voor deze test een set van 12 PGN's samen, gebruik hiervoor PGN’s uit de dataset van de juiste sector en omgeving.
Kwalificatie omgeving:

Batch 1
Deze test valideert of het systeem fouten in de resultaten van batches goed kan verwerken.

  1. Pas de gehashte PGN's op de volgende manier aan:
    - derde hPGN = ""
    - tiende hPGN = "abc"
    - voeg een extra "A" toe aan het einde van het twaalfde hPGN
  2. Stuur het batch request op.
    1. Stel vast dat het antwoord geen SOAP Fault is.
    2. Stel vast dat het antwoord een batchID bevat.
  3. Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.
    1. Stel vast dat het antwoord geen SOAP fault is.
    2. Stel vast dat het antwoord 9 correcte stampseudoniemen bevat.
    3. Stel vast dat het antwoord 3 failed elementen bevat met de tekst:
      Genereren niet succesvol
    4. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.

Batch 2
Op basis van de stampseudoniemen die in de vorige test gemaakt zijn worden in deze test ECK-iD's gegenereerd.
Haal voor stampseudoniemen het ECK iD op.

  1. Stuur het batch request op.
    1. Stel vast dat het antwoord geen SOAP Fault is.
    2. Stel vast dat het antwoord een batchID bevat.
  2. Wacht minstens 10 seconden en haal dan het batch resultaat op, op basis van het batchID.
    1. Stel vast dat het antwoord geen SOAP fault is.
    2. Stel vast dat het antwoord 9 correcte ECK iD's bevat.
    3. Stel vast dat het antwoord 3 failed elementen bevat met de tekst:
      Genereren niet succesvol
    4. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.

Batch 3
Deze test valideert of de afhandeling van fouten wegens het overschrijden van de batch limieten goed worden afgehandeld.

  1. Stel voor deze test een set van 5 PGN's samen, gebruik hiervoor PGN’s uit de dataset van de juiste sector en omgeving.
  2. Stuur het batch request op.
    1. Stel vast dat het antwoord geen SOAP Fault is.
    2. Stel vast dat het antwoord een batchID bevat.
  3. Wacht niet en haal het batchresultaat onmiddellijk op, op basis van het batchID.
    1. Stel vast dat de response een SOAP Fault is.
    2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
      De school mag tijdelijk geen batches ophalen wegens een opgelegde cooldown timeout.
    3. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
  4. Wacht minder dan 10 seconden vanaf het vorige request en haal het batchresultaat opnieuw op.
    1. Stel vast dat de response een SOAP Fault is.
    2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
      U kunt tijdelijk de batch niet ophalen wegens het niet honoreren van de cooldown periode.
    3. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.
  5. Wacht minstens 30 seconden na het vorige request en haal dan het batch resultaat op, op basis van het batchID.
    1. Stel vast dat het antwoord geen SOAP fault is.
    2. Stel vast dat de resultaten goed worden weergegeven.
  6. Wacht 10 seconden en haal dan het batch resultaat opnieuw op, op basis van het batchID.
    1. Stel vast dat de response een SOAP Fault is.
    2. Stel vast dat het veld Envelope/Body/Fault/detail/message de volgende tekst bevat:
      Batch reeds opgehaald.
    3. Stel vast dat de melding die de gebruiker hierover ziet in het systeem duidelijk is.