Introduktion

Formål

Formålet med dette dokument er at beskrive de tests, som er udviklet og afviklet forud for release af DDS Registry.

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

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, Maven-kommando i afsnit 2.2 opdateret. Integrationstests med specielle forudsætninger er nu beskrevet i afsnit 2.2.2 og 2.2.3.

Opdateret placeringen af environment fil.

1.1a

19.04.2012

Systematic

Opdateret placeringen af flere tests, grundet refaktorering af kode

Udgave til Release Candidate 1

1.2

19.06.2013

Systematic

Kvalitetssikret

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

Nationalt Patientindeks (NPI) erstattet med Dokumentdelingsservice (DDS)

1.5

14.01.2015

Systematic

Nye kommandoer til maven og ændring af npi og npiservices til dds

1.6

05.05.2015

Systematic

Kodereferencer er opdaterede pga. navneskifte fra NPI til DDS

1.7

17.12.2016

Systematic

Opdateret header billede

1.8

3.10.2017

Systematic

Forældet reference til TRP/0009 erstattet med TRP/0112.

1.9

13.06.2018

Systematic

Migreret til NSPOP SVN

1.1012.11.2018KvalitetsITFlyttet dokumentation til Confluence

Definitioner og referencer

Definition

Beskrivelse

DDS

Dokumentdelingsservice

NSI

National Sundheds-IT

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 DDS Registry (SSE/11734/PHB/0010)

TestRapport

Testrapport Dokumentdelingsservices (SSE/11734/TRP/0112)

Afviklede komponenttest

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

Unittest til Code Coverage

DDS Registry\s unittests ligger i:

AdhocQueryRequestWrapperTest verificerer at udtræk af patient id fra AdhocQueryRequest er korrekt.

AdhocQueryResponseWrapperTest tester metoder på AdhocQueryResponseWrapper til filtrering af AdhocQueryResponse ud fra samtykker.

DDSRegistryLogicTest tester den implementerede forretningslogik i DDS Registry, fejlhåndtering og delvist tilgængelighed af de backend services DDS Registry bruger.

TreatmentRelationInvokerTest tester integrationen mod behandlingsrelationsservicen.

AuthorisationCodeCheckerTest tester rettighedsstyring i forhold til autorisationstabellen, som i testen er en in-memory-database.

UserCheckTest tester valideringens- og autorisationslogikken til rettighedsstyring ifm. HSUID-roller.

Integrationstest til verifikation af funktionalitet

Integrationstestene til DDS Registry er baseret på en genereret klient til den allerede eksisterende DocumentRegistry service.

DDS Registry har en integrationstest, der afvikles automatisk:

Tester DDS Registry via DDS Registry web service interfacet. Opslag gennemføres under anvendelse af Registry Stored Query, der i testnavne er forkortet regSQ.

Derudover findes der integrationstests beskrevet i afsnit 2.2.2 og 2.2.3, der kræver specielle forudsætning og derfor ikke igangsættes automatisk.

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, expiredVocesVault.jks og validMocesVault.jks, der udtrækkes automatisk fra maven-artefaktet remote-test-resources (dk.nsi.dgws) ved kørsel af integrationstest.

Services deployeret til JBoss (fx DDS Registry) benytter validVocesVault.jks, der ved deployering ligeledes udtrækkes fra remote-test-resources.

Integrationstestene er afhængige af pre-installeret testdata for:

Når integrationstestene afvikles på miljø uden stamdata bliver alle ovennævnte testdata installeret, når data-sources etableres (se [UdviklerGuide]).

Når integrationstestene afvikles på NSP (hvor stamdata allerede er etableret), bliver samtykker og whitelist testdata installeret. Dette sker tillige automatisk i forbindelse med etablering af data-sources (se [UdviklerGuide]).

Integrationstest med utilgængelig DDS Registry

Under integrationstests er der følgende fil, der ikke afvikles automatisk:

Testen validerer at den korrekte fejlmeddelelse bliver returneret, når IHE Registry er nede. Inden afvikling af testen skal IHE Registry gøres utilgængelig, fx ved at konfigurere en invalid service URL i DDSRegistry-konfigurationsfilen. Dette er beskrevet i filen HowToRun-DDSRegistryDisabled.txt.

Testen afvikles manuelt med følgende kommando:

mvn -Dit.test=DDSRegistryDisabled verify –Pexternal-test

Integrationstest med HSStub

Under integrationstests er der følgende fil, der ikke afvikles automatisk:

Testen validerer at DDSRegistry kan håndtere voluminøse svar fra IHE Registry. Inden afvikling af testen skal:

  1. IHE Registry erstattes med HSStub i DDSRegistry-konfigurationsfilen. I DDSRegistry.properties skal documentregistry.wsdl.location, der peger på hsbus/HS.IHE.XDSb.Registry.Services.cls udkommenteres og erstattes af tilsvarende indgang, der peger på DocumentRegistry_Service/HSStub.

  2. HSStub være deployeret og startet.

Testen afvikles manuelt med følgende kommando:

mvn -Dit.test=DDSRegistryTestRequiringHSStub verify –Pexternal-test

Performancetests

Performancetesten af baseret på requests fra integrationstesten. Ved integrationstesten gemmes to DDS Registry soap requests, per default under c:\dds. Dette kan konfigureres vha. environment property filen, som findes under dds\environment.properties, ved at sætte property’en soaprequest.log.dir.

Herefter skal databasen på test target (fx NIAB) initieres hvilket gøres fra performance folderen med:

mvn initialize -Pperf-setup

Selve performancetestene er lavet i JMeter og er gemt under:

Hvis man har valgt at sætte soaprequest.log.dir property’en til noget andet end c:\dds skal filnavet i jmx-filen ligeledes ændres. Dette gøres i JMeter ved at redigere ’Filename’ under ’DDSRegistry’ > Loop Controller > SOAP/XML-RPC Request”.

Verificer at test target URL er konfigureret korrekt (hostname:port) i JMeter SOAP/XML dialog.

Der bør udføres check fra JMeter at request til test target fungerer korrekt inden den automatiske test gennemføres og der genereres chronos rapporter.

Performance tests gennemføres fra en workstation med adgang til test target med kommandoen:

mvn verify –Pddsregistry-data chronos-report:report
mvn verify –Pddsregistry-consentoverride chronos-report:report

Chronos HTML reporter findes under performance\target\site (folderne css og images medtages).

Efter at havde kørt performancetesten kan load data fjernes fra databasen på test target med.

mvn initialize -Pperf-teardown

Testdata

Test dataene bliver skabt af DDSPerfTestSetup.sql sql-scriptet som ligger under performance\src\main\test\resources\sql\DDSPerfTestSetup.sql

Endurancetest

Der er ikke kørt nogen separat endurance test på DDS Registry.

Testdata

Der er ingen særlige testdata eller krav til testdata for disse tests.