Introduktion

Formål

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:

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.

Læsevejledning

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.

Dokumenthistorik

versionDatoAnsvarligBeskrivelse

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.2018KITDokument flyttet fra Word til Confluence. Original dokument navn var: PHB0008 Testvejledning Samtykke Service.docx

Definitioner og referencer

DefninitionBeskrivelse

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

AliasBeskrivelse

UdviklerGuide

Guide til Udviklere Min Spærring Service (SSE/11734/PHB/0007)

TestRapport

Testrapport Min Spærring Service (SSE/11734/TRP/0008)

 Afviklede component tests

Følgende tests er afviklet som en del af komponent udviklingen. Der henvises i øvrigt til [UdviklerGuide] og [TestRapport].

Unittest til Code Coverage

Min Spærring består af ConsentAdministration og ConsentVerification.

ConsentAdministration har en unittest klasse:

ConsentDAOTest tester at de samtykke- og spærring registreringer der foretages overholder de foreskrevne restriktioner.

ConsentVerification har to unittest klasser:

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.

Integrationstest til verifikation af funktionalitet

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.

Administrationssnitflade

Der findes følgende integrationstests:

Integrationstests af den administrative snitflade er defineret i følgende Cucumber feature filer:

Feature filIndhold
samtykke_adm.featuretest 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.featuretest af borgerkald af oprindelig idws snitflade. Her laves alm borger kald
samtykke_idws_v2.featuretest 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:

Verifikationssnitflade

Der findes følgende integrationstests:

Testdata

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:

Integrationstest på NIAB med anvendelse af DCC

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