Introduktion

Formål

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

Følgende typer af test bruges indgår i udviklingsarbejdet:

Andre typer af tests (ikke en del af udviklingen af DROS):

De i DROS anvendte tests gennemgåes i det følgende.

Læsevejledning

Dokumentet henvender sig til udviklere og testere.

Læseren forventes at have kendskab til Java software udvikling, herunder unittesting ved anvendelse af JUnit og Maven.

Afviklede komponenttest

I de følgende afsnit beskrives de tests der afviklet som en del af udviklingen af DROS.

Der henvises i øvrigt til DROS - Guide til udviklere for udførselsvejledning.

UnitTests

Der findes UnitTests af centrale enheder (klasser) i DROS.

Placeringen af disse følger standarden foreskrevet af Maven og er placeret i src/test/java i hvert af DROS servicens moduler.

Unittests er navngivet med navnet på den klasse, som de tester, efterfulgt af Test.

Således ligger unittesten for klassen:

./dros-xds/src/main/java/dk/nsp/dros/ws/Iti41WS.java

implementeret i:

./dros-xds/src/test/java/dk/nsp/dros/ws/Iti41WSTest.java

Unittests er stilmæssigt opbygget på følgende måde:

Unittests er implementeret vha JUnit og kan eksekveres af Mavens standard testplugin SureFire.

Til udregning af testcoverage anvendes Jacoco Maven Plugin (se JaCoCo Maven plug-in).

Testcoverage udregnes i de enkelte Maven moduler i DROS og aggregeres til en samlet rapport i modulet dros-testreport.

Således er en samlet rapport over testcoverage tilgængelig i

./dros-testreport/target/site/jacoco-aggregate

Unittests og tilhørende udregning af testcoverage udføres som en integreret del af byg af komponenten (se i øvrigt DROS - Guide til udviklere).

Integrationstest til verifikation af funktionalitet og deployment

Integrationstestene for DROS er implementeret vha Cucumber og JUnit i modulet dros-qa, og er beregnet til afvikling mod en kørende udgave af DROS.

Afvikling af Integrationstests aktiveres via Maven ved følgende kommando i modulet dros-qa:

mvn verify -Pintegration  -Dvariabel=value

Det kræves at følgende properties angives ved afvikling af integrationstesten


Property

Beskrivelse

iti41.service.endpointEndpoint for DROS ITI-41 service
iti42.service.endpointEndpoint for DROS ITI-42 service
iti42.nodgws.service.endpointEndpoint for DROS ITI-42 service (uden DGWS)
iti57.service.endpointEndpoint for DROS ITI-57 service
iti61.service.endpointEndpoint for DROS ITI-61 service
iti18.service.endpointEndpoint for den bagvedliggende ITI-18 service (bruges til at finde DocumentEntry UUID udfra dokument id)


For nemheds skyld er der angivet følgende profiler (kan angives med -P), med variabeldefinitioner for et givent miljø

localDet dockerbaserede udviklingsmiljø for DROS
test1DROS på NSP Test1 miljø
test2DROS på NSP Test2 miljø


Testrapporter kan genereres i HTML med kommandoer: mvn surefire-report:report; mvn site -DgenerateReports=false

Sammenhæng mellem integrationstests og user stories

DROS - Brugerhistorier findes en liste over, hvilke user stories, der er relevante for DROS.

Disse brugerhistorier går igen i integrationstestene, da hver brugerhistorie svarer til en integrationstestssuite (feature) i DROS.

Således findes testscenarier for brugerhistorien 'Opret Stable Dokument' i featurefilen:

./dros-qa/src/test/resources/dk/nsp/dros/test/OpretStableDokument.feature