4. Test-tips

Testsviterna som medföljer i releasepaketet har Schema-, Schematron- och SOAP-validering för varje testfall utöver vad de specifika testfallen validerar.
Trots denna omfattande kontroll kan det finnas felaktigheter i svaren som inte täcks av de automatiska valideringarna. Det är då den mänskliga faktorn spelar stor roll i testutförandet.
Inspektera och undersök svaren som tas emot i testsviterna.

Nedan följer några exempel på fel som kan uppstå. 


   

Så här ser ett tomt element ut. 

(en variant är <element></element>, även denna är fel)

Ska rapporteras.





Element skall ha korrekta värden, de automatiska testerna verifierar att element har innehåll men inte att de alltid är korrekta. 

Dubbelkolla värden och se till att de är korrekta enligt tjänstekontraktsbeskrivningen.

Ska rapporteras.




Så här ser det ut när värden har bytt plats.

(värdet i <code> skall byta plats med värdet i <codesystem>)

Ska rapporteras.






Regressionstestsvit

När du testar tjänsteproducenten kommer du troligen att köra med flera olika testpersoner för att vara säker på att tjänsteproducenten producerar korrekta svar med olika sorters data.

Om du vill att vissa testfall ska köras vid regressionstester (t.ex. att korrekt vårdgivare/vårdenhet returneras) så kan du kopiera testfallen och köra dem med olika variabler, bara du ser till att de finns definierade i data.xml.

För regressionstester kan du också skapa fler tester om du vill, eller inaktivera testfall som du vet att tjänsteproducenten inte klarar av (det är lättare att utvärdera resultatet om det blir grönt överallt.)

Den lokala konfigurationen av TK-testsviterna finns i respektive tjänstekontrakts data.xml-fil. Det rekommenderas att du sparar dessa filer för framtida bruk, då TK-testsviterna är ett effektivt verktyg för regressionstest, under förutsättning att testdata är bevarat.


Källor för att lättare avgöra testutfallen

  • TKB (Tjänstekontraktbeskrivning)
    • Update (generell för uppdatering av EI vilket krävs för alla TK)
    • Det specifika tjänstekontraktet för den aktuella domänen
  • Mappningstabeller (hämtas oftast från källsystemsleverantören)
  • Testfallsbeskrivningen
    • Update (en testfallsbeskrivning för tester gällande Update)
    • För det specifika tjänstekontraktet
  • Självdeklarationen
  • Tidigare avvikelser
  • Förstudie 

Avancerat: Samma teststeg med olika indata

I en regressionstestsvit kan det vara intressant att automatiskt köra teststeg flera gånger, exempelvis med olika testpatienter. Detta kan åstadkommas på följande sätt:

  1. I data.xml läggs de olika indata in separerade av semikolon:

    <patientId>195709263080;195709263081;195709263082</patientId>


  2. I testfallet läggs ett script-teststeg till efter "Read data". Nedanstående exempel anropar teststeget "Call GetImagingOutcome" med de olika personnumren i variablen patientId:
    def valueList = context.patientId.split(';').collect{ it.trim() }
    valueList.each { value ->
    	context.patientId = value
    	if (value != valueList.last()) {
    		testRunner.runTestStepByName("Call GetImagingOutcome")
    	}
    }