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.
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.
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".
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 |
Følgende tests er afviklet som en del af komponent udviklingen. Der henvises i øvrigt til [UdviklerGuide] for udførselsvejledning og [TestRapport] for resultat.
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:
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.
Testene er også dokumenteret i design og arkitektur dokument i afsnit "Adgangsscenarier og tests"
Som udgangspunkt er det meste logning fra idp test biblioteket slået fra. Dette kan aktiveres ved at ændre test property log.in.nspsoapclient til true.
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/SOR | Autorisation | Autorisationskode | YderNr | National rolle | Andet |
|---|---|---|---|---|---|---|---|
EmployeeIdentities.sundhedsassistentEdsgerDijkstra() | 1411809893 | / | nspSundAssistR2 | Anvender sundhedsfaglig lægeCharlesBabbage i scenarierne "på vegne af sundhedsfaglig" | |||
EmployeeIdentities.sundhedsassistentKristenNygaard() | 1711809763 | / 634491000016008 | nspSundAssistR1 | ||||
EmployeeIdentities.peterNaur() | 1811804807 | / | |||||
EmployeeIdentities.lægeCharlesBabbage() | 0611809735 | 33257872/ 634491000016008 | 6QF17 | ||||
EmployeeIdentities.lægeCharlesBabbage() | 0611809735 | 12345601 | |||||
EmployeeIdentities.lægeCharlesBabbage() | 0611809735 | 12345602 | whitelisting test | ||||
OrganizationIdentities.sundhedsdatastyrelsen() | 33257872/ 634491000016008 | ||||||
OrganizationIdentities.testOrganisation98021838() | 98021838 | ||||||
ParentalCustodyIdentities.graceHopperParentOfMaryHopper | 0411809250 | Anvendes til at teste IDWS SRP forældremyndighed over 0106249180 |
Hvis feltet er tomt, så er det fordi oplysningen ikke er relevant for personen.
Følgende cpr numre anvendes for Patienter:
CPR | Krav | Andet |
|---|---|---|
| 1208643298 | Skal have fuldmagt til 0405732615 ved
|
|
| 0405732615 | En borger der har givet fuldmagt til 1208643298 | |
| 1509669054 | Er forældrer til 1309228932 | |
| 1309228932 | Er under 15 år, og er barn af 1309228932 | |
1705909535 2106644120 0607834768 | Patienter, hvorpå der oprettes spærring for | Ejet af integrationstest-bruger i dtg. Hvis samtykke servicen løber sur i antal af dokumenter og frabedelser for denne patient, kan test data slettes. |
| Flere andre | Pt. ukendte krav hvis nogen | |
Testpersonerne oprettes på følgende måde:
Testene for labsvar anvender xml filer fundet i kodens ressource folder. Vær opmærksom på, at heri indgår sorkoder, som anvendes i forbindelse med spærringstest.
Testene kan afvikles mod følgende miljøer:
Testen afvikles manuelt med følgende kommando, når man befinder sig i dokumentdelingsservice/integrationstest:
mvn verify -P<miljø>,integration-tests
Det følgende beskriver, hvordan man manuelt aftester (aktivere fejlen i) de forskellige alarmer, der findes på alarm endpointet:
| DatasourceHealthIndicator for WhitelistDataSource | Start compose docker stop development-whitelist_db-1 |
| DatasourceHealthIndicator for documentSourcesDS | Start compose docker stop development-dds_db-1 Kald alarm endpoint |
| DatasourceHealthIndicator for authDataSource | Start compose docker stop development-stamdata_db-1 Kald alarm endpoint |
| ConsentVerificationHealthIndicator | Ændre property verification.wsdl.location til f.eks http://test3-cnsp.ekstern-test.nspop.dk:8080/consent-verification/service?wsdl Start compose Kør integrationstest Kald alarm endpoint |
| TreatmentRelationHealthIndicator | Ændre property treatment.relation.wsdl.location til f.eks http://test3-cnsp.ekstern-test.nspop.dk:8080/brs-nsp/service/brs?wsdl Start compose Kør integrationstest Kald alarm endpoint |
| PersonInformationHealthIndicator | Ændre property personinformation.url til f.eks http://sdm-mock:8087/stamdata-personinformation/v1 (forkert port) Start compose Kør integrationstest Kald alarm endpoint |
| SoresHealthIndicator | Ændre property sores.url til f.eks http://test3.ekstern-test.nspop.dk:8080/sores/v3 Start compose Kør integrationstest Kald alarm endpoint |
| MinlogQueryMessagesHealthIndicator | Start compose docker exec -it development-dds_db-1 mysql -uroot -prootroot documentsources update minlog_usertype_text set text = 'Sundhedsfaglig hvor samtykker tilsides med meget lang brugertypetekst' where usertype = 'professionalUserConsentOverride'; Kald alarm endpoint |
| MinLogHealthIndicator | Start compose Stop kafka servicen med: docker stop development-kafka-1 Kør integrationstest Kald alarm endpoint |
| StsHealthIndicator | Ændre property sts.endpoint til f.eks http://test3-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService Start compose Kør integrationstest Kald alarm endpoint |
| CertificateHealthIndicator | Kræver et udløbet certifikat. Start compose Kør integrationstest Kald alarm endpoint |
| BackendRegistryHealthIndicator | Start compose docker exec -it development-dds_db-1 mysql -uroot -prootroot documentsources update documentregistry set documentregistryserviceurl = 'http://nxrg:8080/nxrgslet/iti18', documentregistryfailurethreshold = 0 where documentregistryid = 1; Kør integrationstest Kald alarm endpoint |
| BackendRepositoryHealthIndicator | Start compose docker exec -it development-dds_db-1 mysql -uroot -prootroot documentsources update documentsource set service_endpoint = 'http://openxds-server:8020/axis2ugyldig/services/xdsrepositoryb', failurethreshold = 0 where oid = '1.3.6.1.4.1.21367.2010.1.2.1125'; Kør integrationstest Kald alarm endpoint |
Der er ikke kørt nogen separat performance test på DDS Repository.
Der er ingen særlige testdata eller krav til testdata for disse tests.
Der er ikke kørt nogen separat endurance test på DDS Registry og Repository.
Der er ingen særlige testdata eller krav til testdata for disse tests.