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:
Unittests, der verificerer, at de individuelle enheder i kildekoden virker efter hensigten, herunder måling af code coverage.
Integrationstest til der verificerer at de individuelle enheder kan integreres og arbejde sammen, 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.
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. |
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.2018 | KIT | Dokument flyttet fra Word til Confluence. Original dokument navn var: PHB0008 Testvejledning Samtykke Service.docx |
Defninition | Beskrivelse |
---|---|
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 |
Alias | Beskrivelse |
---|---|
UdviklerGuide | Guide til Udviklere Min Spærring Service (SSE/11734/PHB/0007) |
TestRapport | Testrapport Min Spærring Service (SSE/11734/TRP/0008) |
Følgende tests er afviklet som en del af komponent udviklingen. Der henvises i øvrigt til [UdviklerGuide] og [TestRapport].
Min Spærring består af ConsentAdministration og ConsentVerification.
ConsentAdministration har en unittest klasse:
consentservices\common\src\test\java\dk\nsi\consentservices\common\dao\impl\ConsentDAOTest.java
ConsentDAOTest tester at de samtykke- og spærring registreringer der foretages overholder de foreskrevne restriktioner.
ConsentVerification har to unittest klasser:
consentservices\consentverification\application\src\test\java\dk\nsi\consentservices\consentverification\impl\ConsentForForeignersTest.java
consentservices\consentverification\application\src\test\java\dk\nsi\consentservices\consentverification\impl\ConsentVerificationLogicTest.java
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.
Integrationstestene til de to Min Spærring services er baseret på de vedlagte webserviceklienter:
consentservices\consentadministration\client\src\main\java\dk\nsi\consentservices\consentadministration\ConsentAdministrationService.java
consentservices\consentverification\client\src\main\java\dk\nsi\consentservices\consentverification\ConsentVerificationService.java
Begge gør brug af DGWS Consumer klasserne til sikkerhedsintegration.
ConsentAdministration har to integrationstest klasser:
consentservices\consentadministration\integrationtest\src\test\java\dk\nsi\consentservices\consentadministration\bean\impl\ConsentAdministrationSecurityIT.java
consentservices\consentadministration\integrationtest\src\test\java\dk\nsi\consentservices\consentadministration\bean\impl\ConsentAdministrationServiceIT.java
ConsentAdministrationSecurityIT tester at servicen kun kan tilgås med valide certifikater og såfremt brugeren findes i whitelisten.
ConsentAdministrationServiceIT tester de forretningsorienterede krav til servicen.
ConsentVerification har ligeledes to integrationstest klasser:
consentservices\consentverification\integrationtest\src\test\java\dk\nsi\consentservices\consentverification\bean\impl\ConsentVerificationSecurityIT.java
consentservices\consentverification\integrationtest\src\test\java\dk\nsi\consentservices\consentverification\bean\impl\ConsentVerificationServiceIT.java
ConsentVerificationSecurityIT tester at servicen kun kan tilgås med valide certifikater og såfremt brugeren findes i whitelisten.
ConsentVerificationServiceIT tester de forretningsorienterede krav til servicen.
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:
consentservices\consentadministration\integrationtest\src\test\resources\sql
consentservices\consentverification\integrationtest\src\test\resources\sql
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