Utmaningar med systemintegrationstest

2013-05-20 Artikelbanken Test Läst 9705 gånger

Systemintegrationstest är viktigt för att just i denna testfas identifieras många felkällor som ofta är tidskrävande att åtgärda och blir än mer kostsamma att åtgärda i senare skeden. För en slutanvändare kan till synes enkla tjänster innebära komplexa systemintegrationstester. Vid systemintegrationstester tillkommer fler utmaningar som rör såväl teknik som projekt men även kommunikation. När systemintegrationstest ska genomföras handlar det ofta om att flera system som ingår i testen körs i olika organisationer och i olika miljöer som alla har sin tekniska komplexitet.

Denna artikel syftar till att uppmärksamma dig på utmaningar inom ett flertal grundläggande områden, inför och under systemintegrationstest. Dessa områden exemplifieras ur ett testperspektiv för flera system och flera organisationer. I artikeln finns dessutom tips som kan hjälpa dig att hantera utmaningar och i förlängningen även hjälpa dig att höja kvaliteten. Ju tidigare du arbetar med utmaningarna desto mer kostnadseffektiv blir din systemintegration.

Samarbete och kommunikation

Vid systemintegration behöver du ofta hjälp från många olika håll. Ett sätt att göra detta är att arbeta inom testgruppen, scrumteamet och sträva efter att få god förståelse om kopplingar mellan olika system. Det underlättar också arbetet om du kan etablera samarbete med testare som arbetar med andra system. Det är helt enkelt angeläget att du utvecklar bra relationer med alla du kan behöva ha hjälp av utöver testare, t.ex. integratörer, arkitekter och projektledare.

 

För de externa systemen är det extra viktigt att du identifierar kontaktytor och att du upprättar en tydlig kommunikationsväg, då du bara har kunskap om de externa systemen via gränssnitt. Då är det bra att ha kontakt med personer som har tillgång till mer information.

Genom kartläggning av den geografiska spridningen inom projektet kan rätt beslut om kommunikationsregler och gemensamt språkbruk fattas. På så sätt kan man undvika kommunikationsproblem.

 

Ansvar och resurser

Inför systemintegrationstest är det oerhört viktigt att du har kontroll på ansvar och befogenheter. Då antalet inblandade organisationer, system, gränssnitt, tekniker och plattformar kan skapa långa ledtider. Detta gäller i både utveckling och test och kan resultera i större konsekvenser i tidsramar och budget än vid andra tester. En gemensam överordnad projekt- eller förvaltningsplanering främjar arbetet och är en framgångsfaktor vid systemintegrationstest då mycket tid kan gå åt för samordning och omplanering.

Det är därför bra att säkerställa att det under hela projektperioden kommer att finnas resurser som kan lösa problem, utföra rättningar och eventuellt omarbeta och testa delar för att få helheten att fungera. Allokera således erfaren och kompetent personal till specifika uppgifter inom integration, konfiguration, arkitektur, utveckling och test.

 

System och gränssnitt

Det är viktigt att testledaren tidigt i projektet arbetar tillsammans med projektledningen bland annat i syfte att det upprättas en systemintegrationsplan. En förutsättning för systemintegrationsplanen är att få fram information om vem som äger gränssnitten och att kontrollera att gränssnitten och databeskrivningarna är aktuella. För att underlätta arbetet med systemintegration behövs det hjälp av arkitekter, utvecklare eller andra systemkunniga för att:

  • studera systemarkitekturen för att identifiera och prioritera vilka externa och interna system som ska testas
  • verifiera om det finns avgränsningar mot test av interna och eller externa system
  • utreda omfattningen av förändringar i respektive system och genomföra en påverkansanalys
  • identifiera i vilken ordning systemen måste utvecklas/kopplas upp för att kunna testas
  • undersöka vilka kommunikationstekniker och integrationsmotorer som används
  • kontrollera systemens gränssnitt och databeskrivningar
  • verifiera var det behövs teststubbar eller simulatorer för att simulera de externa systemen
  • för nya och förändrade gränssnitt, undersöka om testscenarion skall startas från externa system/parter eller om det räcker med att man simulerar via interna gränssnitt
  • undersöka om gränssnitten mellan komponenter, interna system och externa system är definierade i tillräcklig detalj för att kunna designa testfall
  • få tillgång till detaljerade specifikationer på det data som ska överföras mellan de externa och interna systemen
  • ta reda på leveransintervaller inför utförandet av testarbetet
  • överväga möjligheter för testautomatisering av integrationer

     

Vid uppföljning är det framgångsrikt att belysa statusrapportering kring system och gränssnitt.

 

 

Testmiljö och testdata

Testmiljö och testdata är grundläggande inför systemintegrationstest. Planera därför i god tid för hantering av testmiljö/testmiljöer både vad gäller hårdvara och kopplingar till andra testmiljöer. Stora datamängder kan påverka testmiljöns prestanda t.ex. kan uppgradering av servrar behöva göras. Att ta fram testdata kan vara tidkrävande och kostsamt och några aspekter som är bra att utreda är:

  • kontrollera med testmiljöansvarig om andra testprojekt kan samverka i samma testmiljö eller inte
  • ta reda på om det finns en övergripande testmiljö där alla kopplingar mot interna/externa system finns, så att hela flödet kan testas och att alla system kan kommunicera med varandra
  • undersöka om andra miljöer förutom testmiljön kan vara aktuella för test t.ex. prestandatester i produktionsmiljö
  • studera eventuella existerande system för att se om de kan användas som referens eller om man kan ta testdata ifrån dem
  • identifiera om det finns behov av att synkronisera testdata mellan systemen och i vilken omfattning
  • verifiera om det är stora datamängder som måste överföras mellan system för till exempel test av årskörningar

 

Konfiguration

De interna och externa systemen ska fungera tillsammans i olika konfigurationer av hård- och mjukvara. Det kan vara klokt att studera systemarkitekturen för att få tillgång till konfigurations-scheman. Detta för att få en överblick av alla konfigurationer och för att ta beslut om teståtgärder.

I dagens komplexa tekniska och ibland distribuerade och mobila miljöer samverkar olika hårdvarutyper, versioner och modeller, alla med sin specifika uppsättning av t.ex. operativsystem, webbläsare, ljudkort och grafikkort.

Handenheter för till exempel styrning och kontroll blir mer och mer komplexa och är viktiga att planera för, speciellt då dessa ofta har inbyggd mjukvara och är troligtvis mer komplicerade att förändra.

Skrivare och datakommunikation exempelvis VPN och Websphere är även det viktiga aspekter att beakta vid planering av konfigurationen. Komplexiteten av systemkonfiguration blir än mer utmanande om det behövs ta hänsyn till olika systemklockor, tidszoner och internationella leverantörer.

 

Versionshantering

En annan svårighet är att tätare releaser av system, nya versioner av mjukvara, frekvent ändrade dokument/objekt skapar ett ökat behov av versionshantering. I en systemintegrationstest där många olika komponenter och system samverkar och som alla säkert har sin versionshantering är det viktigt att hålla samman den gemensamma versionen för t.ex. en delleverans eller slutleverans. För att garantera en tillförlitlig testbas behöver du undersöka att korrekta versioner är installerade av exempelvis system, mjukvara och tesdata.

 

Verktyg

För att underlätta ditt arbete med systemintegration finns det många olika sorters verktyg som kan fungera bra som hjälpmedel i uppgiften.

Testverktyg kan användas för att simulera anrop till integrationstjänster och för verifiering av resultat som tjänsterna skickar tillbaka. Detta kan bland annat vara användbart i de fall då användargränssnittet inte är färdigutvecklat eller vid felsökning.

Verktyg för urval av data kan användas för att ta fram testdata explicit för en viss typ av test. För vissa tester kan systemen till och med behöva köras fram till ett specifikt läge för att uppfylla testförutsättningarna.

Konfigureringsverktyg underlättar vanligen arbetet då man har en komplex infrastruktur av komponenter bestående av hårdvara och system.

Administrativa test- och versionshanteringsverktyg hjälper dig att säkerställa att korrekta versioner är installerade inför test av mjukvara, testfall och dokument.

Använder de olika organisationerna/intressenterna olika verktyg kan det bli aktuellt att kontrollera behörigheter mellan verktygen och att de är kompatibla med varandra. Det gynnar alla verktygs-användare att du tar reda på hur information och data kommuniceras mellan verktygen.

 

Icke funktionella tester

Eftersom integration med andra system kan påverka systemet på en mängd olika sätt bör icke-funktionella tester som exempelvis prestanda och säkerhet utföras. Tänk på att detta inte utesluter att dessa testtyper utförs i tidigare skeden som integration- och systemtest eller att det genomförs i produktion för det specifika systemet. Du bör exempelvis:

  • undersöka om prestandatester behövs för mätning av svarstider från de externa systemen
  • identifiera om det finns behov av att utföra säkerhetstester mot de externa systemen
  • kontrollera om test av säkerhetssystem för på både klienter och servrar ska utföras
  • utreda hur du får tillgång till din egen information och backup av samma information vid strömavbrott eller annan typ av avbrott

 

Sammanfattning

Systemintegrationstesten syftar till att testa det ihopbyggda systemet i sin helhet, inklusive hårdvara, extern kommunikation och konfiguration. Detta görs för att säkerställa att affärsflöden och processer fungerar som de ska mellan berörda interna och externa system.

Områden som är viktiga att fokusera på inför planering och under testgenomförandet är:

  • samarbete och kommunikation - etablera samarbete med testare som arbetar med andra system
  • ansvar och resurser - allokera personal till specifika uppgifter inom integration, konfiguration, arkitektur, utveckling och test
  • system och gränssnitt - identifiera systemens gränssnitt och databeskrivningar
  • testmiljö och testdata - ta reda på om det finns en övergripande testmiljö
  • konfiguration - studera systemarkitekturen för att få tillgång till konfigurationsscheman
  • versionshantering - undersök att korrekta versioner är installerade av exempelvis system, mjukvara och testdata
  • verktyg - kontrollera behörighet mellan verktyg och att de är kompatibla med varandra
  • icke funktionella tester - utför prestanda- och säkerhetstester

 

Nästa steg

  • Konsultbolag1 har en gedigen kompetens och erfarenhet gällande systemintegration, processer och metoder för krav- och testarbete.
  • Fokusområdet Systemintegration som ingår i Konsultbolag1, hjälper dig gärna att uppnå hög kvalitet i komplicerade IT-miljöer som kräver samverkan mellan flera och inbördes olika system eller systemdelar.
  • KB1 online finner du även en lathund och en checklista för systemintegrationstest.
  • Läs gärna artikeln om ”Automatiserad integrationstestning är din bästa plåga”.

KONTAKTA OSS

Har du frågor? Vill du ha hjälp med områden inom kravhantering och test?
Hör av dig till oss! Vi hjälper dig gärna. 

Kontakt 

Dela artikeln