Detta dokument beskriver testsviten för GetCareContacts 2.0. Testsviten innehåller ett antal testfall som kan användas för att verifiera implementationen innan integrationen med den nationella tjänsteplattformen.
Testsviten använder SoapUI för att verifiera implementationen. Dokumentation om SoapUI hittas här: www.soapui.org.
Klicka på den här länken för att ladda hem en gratisversion av SoapUI. Installera enligt anvisning.
Innan man kör testfallen i SoapUI så måste den data som skickas med i anropen anpassas utifrån det system som man vill testa. Detta görs genom att ändra i filen data.xml enligt nedan.
Filen är i XML-format och i början finns en sektion som heter "globaldata". Här anger man den konfiguration som kommer att användas av alla testfall.
Varje element i "globaldata" kan omdefinieras för ett specifikt testfall vid behov. Följande element är globala:
De parametrar man anger för ett specifikt testfall kompletterar och/eller omdefinierar de parametrar som anges i "globaldata".
Det betyder att både parametrar från "globaldata" och det specifika testfallets sektion i filen används för det aktuella testfallet.
OBS! Om en parameter med samma namn definieras både i "globaldata" och specifikt för testfallet, så kommer värdet från testfalls-sektionen att användas.
Ett exempel kan vara "patientId". Denna definieras i "globaldata", eftersom det är troligt att det mesta av testdatan kommer att röra samma patient.
Men för vissa testfall vill man kunna använda en annan patient och för dessa testfall definierar man detta genom att ta bort kommentars-markeringen runt parametern "patientId" i testfallets sektion.
Glöm inte att spara data.xml efter att du har ändrat i den.
- 1.1.1 Personnummer
Filtrering. Verifierar att resultatet endast innehåller poster för given patient.
- 1.1.2 Samordningsnummer
Filtrering. Testfall för filtrering på samordningsnummer. Ersätt patientId med det samordningsnummer som du vill filtrera på.
Testfalls-specifika parametrar
- 1.1.3 Reservnummer
Filtrering. Testfall för filtrering på reservnummer. Ersätt patientId med det reservnummer som du vill filtrera på och ersätt patientIdType med lokalt definierat OID för reservnummer.
Testfalls-specifika parametrar
- 1.2.1_authortime_within
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är inom tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är efter tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är inte satt
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.2.2_start_and_end_within
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är utanför tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är inom tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är inom tidsperioden i anropet
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.2.3_start_before_end_within
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är före tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är före tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är inom tidsperioden i anropet
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.2.4_start_within
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är före tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är inom tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är efter tidsperioden i anropet
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.2.5_start_before
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är före tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är före tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är inte satt
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.2.6_start_after
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är före tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är efter tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är inte satt
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.2.7_start_and_end_before
Syftet med testfallet är att testa att tjänsteproducenten kan filtrera på tidsperiod, där posten/posterna uppfyller följande kriterier:
- Registreringstidpunkt (authorTime), är före tidsperioden i anropet
- Starttid(careContactTimePeriod.start), är före tidsperioden i anropet
- Sluttid(careContactTimePeriod.end), är före tidsperioden i anropet
Testfalls-specifika parametrar
- timePeriodStart
- timePeriodEnd
- 1.3 CareUnit
Filtrering. Verifierar att resultatet endast innehåller poster för given vårdenhet.
Testfalls-specifika parametrar
- 1.4 SourceSystem
Filtrering. Verifierar att resultatet endast innehåller poster för givet källsystem.
Testfalls-specifika parametrar
- 1.5 CareContact
Filtrering. Verifierar att resultatet endast innehåller poster för given vårdkontakt.
careContactId är vårdkontaktens unika id.
Testfalls-specifika parametrar
- sourceSystemHSAId
- careContactId
- 1.7 HttpHeader
Filtrering. Verifierar att tjänsteproducenten kan filtrera resultatet baserat på HTTP-headern x-rivta-original-serviceconsumer-hsaid.
Undersök och jämför det ofiltrerade svaret från producenten med det senare svaret vars begäran använt ett tjänstekonsumentHSAId på vilket producenten utför filtrering,
parametern filterString skall då inte finnas i det filtrerade svaret. Testfallet är ej applicerbart för system som inte implementerat denna typ av filtrering.
Testfalls-specifika parametrar
- httpHeaderHsaId2
- filterString
- 1.8 SoapException
Verifierar att resultatet är ett SOAP Exception. Detta testfall kräver att tjänsteproducenten skapar förutsättningar för ett internt fel att uppstå.
Exempel kan vara att man stänger av kopplingen mot databas.
- 1.9 NonExisting Patient
Verifierar att tjänsteproducenten levererar ett tomt svar om angiven patient ej hittas.
- 1.10 NonExisting CareContact
Verifierar att tjänsteproducenten levererar ett tomt svar om angiven vårdkontakt ej hittas.
Testfalls-specifika parametrar
- 1.11 Missing SourceSystem
Verifierar att tjänsteproducenten levererar ett SoapFault om källsystem saknas i anropet vid filtrering på vårdkontakt.
Testfalls-specifika parametrar
- 1.12 SourceSystem and LogicalAddress mismatch
Verifierar att tjänsteproducenten levererar ett SoapFault om källsystem och logisk adressat inte överensstämmer vid filtrering på källsystem.
Testfalls-specifika parametrar
- sourceSystemHSAid
- careContactId
- 2.1 Encoding_HeaderProlog
Verifierar att
- Header-attributet "Content-type" har, om attributet finns, en teckenuppsättning som är satt till UTF-8 eller UTF-16
- Attributet "XML Prolog" har, om attributet finns, en teckenuppsättning som är satt till UTF-8 eller UTF-16
- Om båda attributen finns så ska de vara lika
- 2.2 Encoding_SpecialCharacters
Verifierar att responsen innehåller en sträng med specialtecken.
Denna sträng behöver läggas upp på en post i källsystemet och bör innehålla så många specialtecken som möjligt.
Testfalls-specifika parametrar
- 3.1 VG_VE
Verifierar att alla returnerade poster innehåller elementen healthcareProfessionalCareUnitHSAId och healthcareProfessionalCareGiverHSAId, som krävs för PDL-loggning.
- 3.2 AuthorTime
Verifierar att en av de returnerade posterna innehåller tidpunkt då informationen registrerades. Element authorTime.
- 4.1 ApprovedForPatient_true
Verifierar att tjänsteproducenten kan returnera en post som talar om att informationen får delas till patient. Element approvedForPatient.
- 4.2 ApprovedForPatient_false
Verifierar att tjänsteproducenten kan returnera en post som talar om att informationen inte får delas till patient. Element approvedForPatient.
- 5.1_code_besok
Verifierar att tjänsteproducenten kan returnera en post med kontaktyp "Besök". Element careContactCode.
- 5.2_code_telefon
Verifierar att tjänsteproducenten kan returnera en post med kontaktyp "Telefon". Element careContactCode.
- 5.3_code_vardtillfalle
Verifierar att tjänsteproducenten kan returnera en post med kontaktyp "Vårdtillfälle". Element careContactCode.
- 5.4_code_dagsjukvard
Verifierar att tjänsteproducenten kan returnera en post med kontaktyp "Dagsjukvård". Element careContactCode.
- 5.5_code_annan
Verifierar att tjänsteproducenten kan returnera en post med kontaktyp "Annan". Element careContactCode.
- 5.6_status_ej_paborjad
Verifierar att tjänsteproducenten kan returnera en post med status "Ej påbörjad". Element careContactStatus.
- 5.7_status_installd
Verifierar att tjänsteproducenten kan returnera en post med status "Inställd". Element careContactStatus.
- 5.8_status_pagaende
Verifierar att tjänsteproducenten kan returnera en post med status "Pågående". Element careContactStatus.
- 5.9_status_avbruten
Verifierar att tjänsteproducenten kan returnera en post med status "Avbruten". Element careContactStatus.
- 5.10_status_avslutad
Verifierar att tjänsteproducenten kan returnera en post med status "Avslutad". Element careContactStatus.
- 5.11_period_pagaende_vardtillfalle
Verifierar att systemet kan returnera en post som representerar en pågående vårdkontakt.
Följande kriterier behöver vara uppfyllda:
-
careContactTimePeriod.start finns och är i dåtid
-
careContactTimePeriod.end är ej satt
- 5.12_period_planerad
Verifierar att systemet kan returnera en post som representerar en planerad vårdkontakt. Vid skapande av testdata, se till att denna ligger
tillräckligt långt in i framtiden för att ligga där under hela testperioden.
Följande kriterier behöver vara uppfyllda:
-
careContactTimePeriod.start finns och är i framtiden
-
careContactTimePeriod.end är ej satt
- 5.13_period_besok
Verifierar att systemet kan returnera en post som representerar ett historiskt besök.
Följande kriterier behöver vara uppfyllda:
-
careContactTimePeriod.start finns och är i dåtid
-
careContactTimePeriod.end finns och är i dåtid
-
careContactTimePeriod.start och careContactTimePeriod.end är lika
- 5.14_period_avslutat_vardtillfalle
Verifierar att systemet kan returnera en post som representerar en historisk vårdkontakt.
Följande kriterier behöver vara uppfyllda:
-
careContactTimePeriod.start finns och är i dåtid
-
careContactTimePeriod.end finns och är i dåtid
-
careContactTimePeriod.start och careContactTimePeriod.end är olika
- 6.1 Loadtest
6.1.1 Grund
Syftet med testet är dels att verifiera att systemet kan hantera minst 10 samtidiga trådar, dels att skapa sig en bild av systemets prestanda. Testet är designat att ta max 3 minuter.
I SLA-kapitlet i självdeklarationen, under "Övrig kommentar", ange genomsnittlig responstid som visas i sista raden i kolumn "avg" med enhet millisekunder (ms).
6.1.2 Uthållighet
Syftet med testet är att undersöka prestanda hos systemet över längre tid (30 minuter). I SLA-kapitlet i självdeklarationen, under "Övrig kommentar", notera om testet gick att genomföra utan problem. Om inte, notera hur lång tid det var möjligt att köra.
Testfalls-specifika parametrar
- 6.2 Recovery
6.2.1 Återhämtning
Syftet med testet är att utsätta systemet för maximal last och att verifiera att systemet automatiskt återhämtar sig. För att kontrollera att systemet har kunnat återhämta sig efter maximal last så rekommenderas att köra testfall "1.1.1 Personnummer" för att se att systemet svarar. I SLA-kapitlet i självdeklarationen, under "Övrig kommentar", notera om systemet kunde återhämta sig efter att ha utsatts för maximal last. Ange även hur många trådar som testet avslutades med.
Testfalls-specifika parametrar