Page History
Table of Contents |
---|
Introduktion
Formål
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.
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. |
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 |
Definitioner og referencer
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) |
Afviklede component tests
Følgende tests er afviklet som en del af komponent udviklingen. Der henvises i øvrigt til [UdviklerGuide] og [TestRapport].
Unittest til Code Coverage
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.
Integrationstest til verifikation af funktionalitet
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.
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 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
Integrationstest på NIAB med anvendelse af DCC
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