Introduktion

Formål

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

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, der verificerer at de individuelle enheder kan integreres og arbejde sammen, til 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.

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

Dokumentet er oprettet med udgangspunkt i 2 separate Testvejledninger for registry henholdsvis repository. Den videre redigeringshistorik efter dette tidspunkt fremgår af confluence "Page History".


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

DDS - Guide til Udviklere

TestRapport

DDS - Testrapport til sammenligning

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 projekets test pakker:

  • dds\ddsregistry\application\src\test\java\

  • dds\ddsregistry\common\src\test\java\

  • dds\ddsrepository\application\src\test\java\

  • dds\common\src\test\java\

Eksempler på unit test er:

  • 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.
  • RetrieveDocumentSetResponseWrapperTest tester metoder på RetrieveDocumentSetResponseWrapper til filtrering af AdhocQueryResponse ud fra samtykker.
  • DDSRepositoryLogicTest tester den implementerede forretningslogik i DDS Repository, fejlhåndtering og delvist tilgængelighed af de backend services DDS Repository bruger.

Integrationstest til verifikation af funktionalitet

Integrationstestene til DDS Registry og Repository er ligger under /integrationtest.

Der er udviklet integrationstests, der matcher user stories og test cases i dokumentet DDS - Guide til anvendere.

Testdata

Integrationstestene udføres som udgangspunkt vha. NSP Test Identity Provider, hvor også keystores skaffes fra. En undtagelse fra dette er kald til registrering af dokumenter via ITI41, hvor der kaldes direkte mod open-xds uden dgws.

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

  • Whitelist

  • Stamdata (SOR-data og autorisationsregister-data)

Integrationstests opretter selv sine testdata i form af spærringer og dokumenter.

Følgende identiteter anvendes som testpersoner i integrationstesten:

Navn

CPR

CVR

Autorisation 

Autorisationskode

YderNr

National rolle

EmployeeIdentities.sundhedsassistentEdsgerDijkstra()

1411809893




nspSundAssistR2

EmployeeIdentities.sundhedsassistentKristenNygaard()

1711809763




nspSundAssistR1

EmployeeIdentities.peterNaur()

1811804807





EmployeeIdentities.lægeCharlesBabbage()

061180973533257872

6QF17




OrganizationIdentities.sundhedsdatastyrelsen()


33257872





Hvis feltet er tomt, så er det fordi oplysningen ikke er relevant for personen.


Testpersonerne oprettes på følgende måde:

  • Som udgangspunkt anvendes test person der findes  i  NSP Test Identity Provider.

  • Ellers skal de oprettes i DTG - dette er typisk patienter:


Integrationstest mod miljøer

Testene kan afvikles mod følgende miljøer:

  • local (udviklingsmiljøet som defineret i docker-compose setup, se udviklerguide for en beskrivelse af hvordan dette startes op.)
  • test1 (DDS deployet på TEST1 miljøet)
  • test2 (DDS deployet på TEST2 miljøet)

Testen afvikles manuelt med følgende kommando:

mvn verify -P<miljø>,integration-tests

Performancetests

Der er ikke kørt nogen separat performance test på DDS Repository.

Testdata

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


Endurancetest

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

Testdata

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


  • No labels