Formålet med dette dokument er at beskrive de tests, som er udviklet og afviklet forud for release af Min Spærring service.
Følgende typer af test bruges indgår i udviklingsarbejdet:
Unittests, der verificerer, at de individuelle enheder i kildekoden virker efter hensigten, herunder måling af code coverage.
Integrationstest til der verificerer at de individuelle enheder kan integreres og arbejde sammen, verifikation af funktion og deployment.
Performancetest, der verificerer at servicen performer med hensyn til svartider og er stabil under et specifikt load, som i nogle tilfælde kan anvendes med samme mål som integrationstests.
Endurancetests, der verificerer at servicen fungerer under længerevarende belastning og ikke har f.eks. memory leaks som kan udføres i stagning/produktionslignende miljø.
For de typer af tests og det også beskrevet i hvilket omfang der er særlige krav til testdata, og hvorledes etablerede testdata kan vedligeholdes.
Dokumentet henvender sig til udviklere og testere. Læseren forventes at have kendskab til Java software udvikling, herunder unittesting, med anvendelse af Maven, JBoss applikationsserver og MySQL.
| version | Dato | Ansvarlig | Beskrivelse |
|---|---|---|---|
1.0 | 29.06.2012 | Systematic | Initiel udgave |
1.1 | 21.08.2012 | Systematic | Beskrivelse af keystores i afsnit 2.2.1 uddybet. |
1.2 | 25.09.2012 | Systematic | Beskrivelse af integrationstest opdateret |
1.3 | 23.05.2014 | Systematic | Rettelser som konsekvens af opsplitning af tidl. NPI-mavenprojekt i selvstændige komponenter. |
1.4 | 28.11.2014 | Systematic | Referencer til Nationalt Patientindeks (NPI) fjernet |
1.5 | 25.11.2016 | Systematic | Fjernet performance- & endurancetest afsnit da de ikke længere er anvendt. |
1.6 | 13.06.2018 | Systematic | Migreret til NSPOP SVN |
| 22.10.2018 | KIT | Dokument flyttet fra Word til Confluence. Original dokument navn var: PHB0008 Testvejledning Samtykke Service.docx |
| Defninition | Beskrivelse |
|---|---|
NSI | National Sundheds-IT (Navnet er skiftet til Sundhedsdatastyrelsen, men forkortelsen anvendes stadig I pakkenavne på softwaren) |
NSP | Den nationale service platform (inden for sundheds-IT) |
SHAK | Sygehusafdelingsklassifikation |
SOR | Sundhedsvæsenets organisationsregister |
STS | Security Token Service |
| Alias | Beskrivelse |
|---|---|
UdviklerGuide | Guide til Udviklere Min Spærring Service (SSE/11734/PHB/0007) |
TestRapport | Testrapport Min Spærring Service (SSE/11734/TRP/0008) |
Følgende tests er afviklet som en del af komponent udviklingen. Der henvises i øvrigt til [UdviklerGuide] og [TestRapport].
Min Spærring består af ConsentAdministration og ConsentVerification.
ConsentAdministration har en unittest klasse:
consentservices\common\src\test\java\dk\nsi\consentservices\common\dao\impl\ConsentDAOTest.java
ConsentDAOTest tester at de samtykke- og spærring registreringer der foretages overholder de foreskrevne restriktioner.
ConsentVerification har to unittest klasser:
consentservices\consentverification\application\src\test\java\dk\nsi\consentservices\consentverification\impl\ConsentForForeignersTest.java
consentservices\consentverification\application\src\test\java\dk\nsi\consentservices\consentverification\impl\ConsentVerificationLogicTest.java
ConsentForForeignersTest tester håndteringen af forespørgsler efter samtykke/spærring til udenlandske sundhedspersoner.
ConsentVerificationLogicTest indeholder unit tests, der verificerer logikken til Min Spærring verifikation.
Fælles for begge services er at de bruger DGWS Consumer / Provider til sikkerhedsintegration og Min Log til auditering, hvoraf Min Log er beskrevet i et andet dokument.
Der er lavet en række nye integrationstests i Cucumber og de er lavet med udgangspunkt i Samtykkeservicen- Brugerhistorier.
Der er både lavet integrationstests der følger brugerhistorierne, hvor der forventes et positivt svar. Der er også lavet tests hvor man kalder Samtykkeservicen med en ulovlig bruger og forventer så et negativt svar.
Brugerhistorierne beskriver kun frabedelser, men integrationstestene dækker desuden samtykke.
Det er ikke muligt at teste integrationerne til NAS og Minlog.
Skulle Digst servicen være nede, kan integrationstesten køres, ved at tilføje følgende runtime property: -Dcucumber.filter.tags="not @RequiresDigst and not @Ignore". Dette undlader at køre de test, som er afhængige af Digsts.
Der findes følgende integrationstests:
Integrationstests af den administrative snitflade er defineret i følgende Cucumber feature filer:
| Feature fil | Indhold |
|---|---|
| samtykke_adm.feature | test af den administrative snitflade der kun kan tilgåes af medarbejder med national rolle) |
| samtykke_dgws.feature | test af borgerkald af oprindelig dgws snitflade. Her kaldes med systembruger + Hsuidheader der identificere en borger. I testen er sådan en borger omtalt som en "sundhed.dk borger", da det kun er sundhed.dk der kalder på den måde. |
| samtykke_dgws_v2.feature | test af borgerkald af version 2 dgws snitflade. Her kaldes med systembruger + Hsuidheader der identificere en borger. I testen er sådan en borger omtalt som en "sundhed.dk borger", da det kun er sundhed.dk der kalder på den måde. |
| samtykke_idws.feature | test af borgerkald af oprindelig idws snitflade. Her laves alm borger kald |
| samtykke_idws_v2.feature | test af borgerkald af v2 idws snitflade. Her laves alm borger kald |
Der findes desuden en række tests der endnu ikke er omlagt til Cucumber:
Der findes følgende integrationstests:
ConsentVerificationSecurityIT tester at servicen kun kan tilgås med valide certifikater og såfremt brugeren findes i whitelisten.
Keystores benyttes i forbindelse med integrationstestene både af test-drivere og af services deployeret til JBoss.
Integrationstestenes test-drivere benytter keystores validVocesVault.jks og expiredVocesVault.jks, der udtrækkes automatisk fra artefaktet remote-test-resources (dk.nsi.dgws) ved kørsel af integrationstest.
Services deployeret til JBoss benytter validVocesVault.jks, der ved deployering ligeledes udtrækkes automatisk fra remote-test-resources.
Begge services har et setup og teardown sql-script liggende under:
consentservices\consentadministration\integrationtest\src\test\resources\sql
consentservices\consentverification\integrationtest\src\test\resources\sql
ConsentAdministration servicen kan testes på NIAB sammen med DCC, såfremt denne er konfigureret på NIAB’en. Konfiguration af service URL for consentadministration i test properties filen ændres til at pege på service endpoint for smtykkeadminsitration servicen på DCC..
Eksempel herunder fra consentservices/testclient.nspadmin.properties
administration.wsdl.location = http://localhost:8080/consent-administration/service?wsdl
administration.service.url = http://localhost:8080/decoupling/consent-administration/service