Formålet med dette dokument er at beskrive de tests, som er udviklet og afviklet forud for release af DDS 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.
Performance test, 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.
Endurance tests, 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 | 22.01.2013 | Systematic | Initiel udgave |
1.0a | 19.04.2013 | Systematic | Udgave til Release Candidate 1 |
1.1 | 19.06.2013 | Systematic | Kvalitetssikret |
1.2 | 23.05.2014 | Systematic | Rettelser som konsekvens af opsplitning af tidl. NPI-mavenprojekt i selvstændige komponenter. |
1.3 | 28.11.2014 | Systematic | Nationalt Patientindeks (NPI) erstattet med Dokumentdelingsservice (DDS) |
1.4 | 14.01.2014 | Systematic | Nye kommandoer til maven og ændring af npi og npiservices til dds |
1.5 | 05.05.2015 | Systematic | Kodereferencer er opdaterede pga. navneskifte fra NPI til DDS |
1.6 | 17.12.2016 | Systematic | Opdateret header billede |
1.7 | 3.10.2017 | Systematic | Forældet reference til TRP/0017 erstattet med TRP/0112. |
1.8 | 13.06.2018 | Systematic | Migreret til NSPOP SVN |
1.9 | 12.11.2018 | KvalitetsIT | Flyttet dokumentation til Confluence |
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 Repository (SSE/11734/PHB/0021) |
TestRapport | Testrapport Dokumentdelingsservices (SSE/11734/TRP/0112) |
Følgende tests er afviklet som en del af komponent udviklingen. Der henvises i øvrigt til [UdviklerGuide] for udførelsesvejledning og [TestRapport] for resultat.
DDS Repository unittests ligger i:
dds\npretrieve\application\src\test\java\dk\nsi\npretrieve\wrapper\ RetrieveDocumentSetResponseWrapperTest.java
dds\ddsrepository\application\src\test\java\dk\nsi\ddsrepository\impl\DDSRepositoryLogicTest.java
dds\common\src\test\java\dk\nsi\ddsservices\invocation\treatmentrelation\TreatmentRelationInvokerTest.java
dds\common\src\test\java\dk\nsi\ddsservices\lookup\authorisationcode\AuthorisationCodeCheckerTest.java
dds\common\src\test\java\dk\nsi\ddsservices\ws\impl\UserCheckTest.java
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.
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.
Integrationstestene til DDS Repository er baseret på en genereret klient til DocumentRepository service.
DDS Repository har en integrationstest, der afvikles automatisk:
dds\ddsrepository\integrationtest\src\test\java\dk\nsi\ddsrepository\ws\DDSRepositoryIT.java
Tester DDS Repository via DDS Repository web service interfacet.
Derudover findes der integrationstests beskrevet i afsnit 2.2.2, der kræver specielle forudsætning og derfor ikke igangsættes automatisk.
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 Repository) benytter validVocesVault.jks, der ved deployering ligeledes udtrækkes fra remote-test-resources..
Integrationstestene er afhængige af pre-installeret testdata for:
Samtykker
Whitelist
Stamdata (SOR-data og autorisationsregister-data)
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]).
Under integrationstests er der følgende fil, der ikke afvikles automatisk:
dds\ddsrepository\integrationtest\src\test\java\dk\nsi\ddsrepository\ws\DDSRepositoryDisabled.java
Testen validerer at den korrekte fejlmeddelelse bliver returneret, når DDS dokument repository er nede. Inden afvikling af testen skal IHE Repository gøres utilgængelig, fx ved at konfigurere en invalid service URL i DDSRepository-konfigurationsfilen. Dette er beskrevet i filen HowToRun-DDSRepositoryDisabled.txt.
Testen afvikles manuelt med følgende kommando:
mvn -Dit.test=DDSRepositoryDisabled verify –Pexternal-test
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 Repository.
Der er ingen særlige testdata eller krav til testdata for disse tests.