Hva er SIT? Systemintegrasjonstesting med eksempel
โก Smart oppsummering
Systemintegrasjonstesting bekrefter at uavhengig bygde maskinvare- og programvaremoduler oppfรธrer seg riktig nรฅr de kombineres til ett komplett system. Den avslรธrer grensesnitt-, dataflyt-, timing- og minnefeil som enhetstesting alene ikke kan avdekke fรธr utgivelse.

Hva er systemintegrasjonstesting?
System Integrasjonstesting er definert som en type programvaretesting utfรธrt i et integrert maskinvare- og programvaremiljรธ for รฅ verifisere oppfรธrselen til hele systemet. Det er testing utfรธrt pรฅ et komplett, integrert system for รฅ evaluere systemets samsvar med dets spesifiserte krav.
Systemintegrasjonstesting (SIT) utfรธres for รฅ verifisere samspillet mellom modulene i et programvaresystem. Det omhandler verifisering av programvarekravene pรฅ hรธyt og lavt nivรฅ som er spesifisert i programvarekravspesifikasjonen/dataene og programvaredesigndokumentet.
SIT verifiserer ogsรฅ et programvaresystems sameksistens med andre og tester grensesnittet mellom moduler i programvaren. I denne typen testing testes modulene fรธrst individuelt og kombineres deretter for รฅ lage et system. For eksempel kombineres og testes programvare- og/eller maskinvarekomponenter gradvis inntil hele systemet er integrert.
Diagrammet ovenfor viser progresjonen som definerer SIT: separat verifiserte moduler slรฅs sammen trinn for trinn inntil ett enkelt integrert system fortsatt er under testing.
Hvorfor tester systemintegrasjon?
I programvareteknikk utfรธres systemintegrasjonstesting fordi,
- Det hjelper รฅ oppdage Defekt tidlig
- Tidligere tilbakemelding om aksept av den enkelte modul vil vรฆre tilgjengelig
- Planlegging av feilrettinger er fleksibel, og den kan overlappes med utvikling
- Riktig dataflyt
- Riktig kontrollflyt
- Riktig timing
- Riktig minnebruk
- Korrekt med programvarekrav
Systemintegrasjonstesting vs. systemtesting vs. brukeraksepttesting
Fordi disse tre nivรฅene gรฅr etter hverandre, blir de ofte forvekslet. Systemtesting undersรธker ett ferdig bygg mot kravene, SIT undersรธker skjรธtene mellom byggene, og Brukerautentiseringstesting undersรธker forretningsegnethet fra kundens synspunkt. Tabellen nedenfor skiller dem.
| Parameter | Systemintegrasjonstesting | Systemtesting | Brukerautentiseringstesting |
|---|---|---|---|
| Primรฆrt fokus | Grensesnitt og dataflyt mellom integrerte moduler | Oppfรธrselen til den samlede konstruksjonen som helhet | Forretningsfitness for reell bruk |
| Testnivรฅ | Nivรฅ to | Nivรฅ tre | Siste nivรฅ fรธr lansering |
| Teknikk | Svart boks | Svart boks, hvit boks eller grรฅ boks | Svart boks |
| Fremfรธrt av | Integrasjonstestere og -utviklere | Uavhengig testteam | Kunde eller sluttbrukere |
| Typiske defekter | Grensesnitt, timing, minne og datakartping feil | Funksjonelle og ikke-funksjonelle systemfeil | Brukbarhet og kravavvik |
| Kjรธrer nรฅr | Etter Enhetstesting | Etter SIT | Etter systemtesting |
Rekkefรธlgen er viktig. Modulene bestรฅr enhetstesting, SIT beviser grensesnittene, systemtesting beviser det sammensatte produktet, og UAT bekrefter at produktet samsvarer med forretningsforventningene. Hopp overping SIT legger grensesnittfeil inn i UAT, hvor hver rettelse koster mye mer รฅ gjรธre.
Hvordan gjรธre systemintegrasjonstesting
Det er en systematisk teknikk for รฅ konstruere programstrukturen samtidig som man utfรธrer tester for รฅ avdekke feil knyttet til grensesnitt.
Alle moduler er integrert pรฅ forhรฅnd, og hele programmet testes som en helhet. Men i lรธpet av denne prosessen vil det sannsynligvis oppstรฅ et sett med feil.
Korrigering av slike feil er vanskelig fordi isolasjonsรฅrsaker er komplisert av den enorme utvidelsen av hele programmet. Nรฅr disse feilene er rettet og rettet, vil en ny dukke opp, og prosessen fortsetter sรธmlรธst i en endelรธs slรธyfe. For รฅ unngรฅ denne situasjonen brukes en annen tilnรฆrming, inkrementell integrasjon. Den inkrementelle tilnรฆrmingen forklares i detalj i neste avsnitt.
Det er noen inkrementelle metoder som integrasjonstestene er utfรธrt pรฅ et system basert pรฅ mรฅlprosessoren. Metodikken som brukes er Svart Box Testing. Enten bottom-up eller top-down integrasjon kan brukes.
Testtilfeller defineres kun ved รฅ bruke hรธynivรฅprogramvarekravene.
Programvareintegrasjon kan ogsรฅ i stor grad oppnรฅs i vertsmiljรธet, med enheter som er spesifikke for mรฅlmiljรธet som fortsetter รฅ bli simulert i verten. Gjentatte tester i mรฅlmiljรธet for bekreftelse vil igjen vรฆre nรธdvendig.
Bekreftelsestester pรฅ dette nivรฅet vil identifisere miljรธspesifikke problemer, som feil i minneallokering og deallokering. Hvor praktisk det er รฅ gjennomfรธre programvareintegrasjon i vertsmiljรธet vil avhenge av hvor mye mรฅlspesifikk funksjonalitet som finnes. For noen innebygde systemer vil koblingen til mรฅlmiljรธet vรฆre svรฆrt sterk, noe som gjรธr det upraktisk รฅ gjennomfรธre programvareintegrasjon i vertsmiljรธet.
Store programvareutviklinger vil dele programvareintegrasjon inn i en rekke nivรฅer. De lavere nivรฅene av programvareintegrasjon kan hovedsakelig vรฆre basert i vertsmiljรธet, med senere nivรฅer av programvareintegrasjon som blir mer avhengig av mรฅlmiljรธet.
OBS: Hvis bare programvare blir testet, kalles det Software Software Integration Testing [SSIT] og hvis bรฅde maskinvare og programvare testes, kalles det Hardware Software Integration Testing [HSIT].
Inkrementell tilnรฆrming
Siden det รฅ integrere alt samtidig gjรธr det vanskelig รฅ isolere feil, fรธlger de fleste team den trinnvise ruten som er beskrevet her.
Inkrementell testing er en mรฅte for integrasjonstesting. I denne typen testmetode tester du fรธrst hver modul i programvaren individuelt og fortsetter deretter รฅ teste ved รฅ legge til andre moduler til den, deretter en annen og sรฅ videre.
Inkrementell integrasjon er kontrasten til big bang-tilnรฆrmingen. Programmet er konstruert og testet i smรฅ segmenter, hvor feil er lettere รฅ isolere og rette. Det er mer sannsynlig at grensesnitt testes fullstendig, og en systematisk testtilnรฆrming kan brukes.
Det finnes to typer inkrementell testing
- Top down tilnรฆrming
- Bottom Up-tilnรฆrming
Topp-ned-tilnรฆrming
I denne typen tilnรฆrming, start individuelt med รฅ teste bare brukergrensesnittet, med den underliggende funksjonaliteten simulert av stubber, deretter beveger du deg nedover og integrerer nedre og nedre lag som vist pรฅ bildet nedenfor.
- Fra og med hovedkontrollmodulen integreres modulene ved รฅ bevege seg nedover gjennom kontrollhierarkiet
- Undermoduler til hovedkontrollmodulen er integrert i strukturen enten pรฅ en bredde-fรธrst mรฅte eller dybde-fรธrst mรฅte.
- Dybde-fรธrst-integrasjon integrerer alle moduler pรฅ en hovedkontrollbane for strukturen som vist i fรธlgende diagram:
Modulintegrasjonsprosessen gjรธres pรฅ fรธlgende mรฅte:
- Hovedkontrollmodulen brukes som testdriver, og stubbene erstattes av alle moduler som er direkte underlagt hovedkontrollmodulen.
- De underordnede stubbene erstattes en om gangen med faktiske moduler avhengig av valgt tilnรฆrming (bredde fรธrst eller dybde fรธrst).
- Tester utfรธres etter hvert som hver modul er integrert.
- Etter fullfรธring av hvert sett med tester, erstattes en annen stump med en ekte modul ved fullfรธring av hvert sett med tester
- For รฅ sikre at nye feil ikke har blitt introdusert Regresjonstesting kan utfรธres.
Prosessen fortsetter fra trinn 2 til hele programstrukturen er bygget. Top-down-strategien hรธres relativt ukomplisert ut, men i praksis oppstรฅr det logistiske problemer.
De vanligste av disse problemene oppstรฅr nรฅr behandling pรฅ lave nivรฅer i hierarkiet kreves for รฅ teste de รธvre nivรฅene tilstrekkelig.
Stubber erstatter moduler pรฅ lavt nivรฅ i begynnelsen av topp-ned-testing, og derfor kan ingen signifikante data flyte oppover i programstrukturen.
Utfordringer som testeren kan mรธte:
- Utsett mange tester til stubber er erstattet med faktiske moduler.
- Utvikle stubber som utfรธrer begrensede funksjoner som simulerer selve modulen.
- Integrer programvaren fra bunnen av hierarkiet og oppover.
OBS: Den fรธrste tilnรฆrmingen fรธrer til at vi mister en viss kontroll over samsvar mellom spesifikke tester og inkorporering av spesifikke moduler. Dette kan resultere i vanskeligheter med รฅ fastslรฅ รฅrsaken til feil som har en tendens til รฅ bryte med den svรฆrt begrensede karakteren til ovenfra-ned-tilnรฆrmingen.
Den andre tilnรฆrmingen er gjennomfรธrbar, men kan fรธre til betydelige overhead, ettersom stubber blir stadig mer komplekse.
Bottom-up-tilnรฆrming
Bottom-up integrasjon starter konstruksjon og testing med moduler pรฅ det laveste nivรฅet i programstrukturen. I denne prosessen integreres modulene fra bunnen til toppen.
I denne tilnรฆrmingen er prosessering nรธdvendig for modulene underordnet et gitt nivรฅ alltid tilgjengelig, og behovet for stubbene er eliminert.
Denne integrasjonstestprosessen utfรธres i en serie pรฅ fire trinn
- Moduler pรฅ lavt nivรฅ kombineres til klynger som utfรธrer en spesifikk programvareunderfunksjon.
- En driver er skrevet for รฅ koordinere testcase-inngang og -utgang.
- Klyngen eller bygget er testet.
- Drivere fjernes, og klynger kombineres og beveger seg oppover i programstrukturen.
Etter hvert som integrasjonen beveger seg oppover, รธker behovet for separate leksjoner med testdrivere. Faktisk, hvis de to รธverste nivรฅene i programstrukturen integreres ovenfra og ned, kan antallet drivere reduseres betraktelig, og integrasjonen av klynger forenkles betraktelig. Integrasjonen fรธlger mรธnsteret illustrert nedenfor.
OBS: Hvis de to รธverste nivรฅene i programstrukturen er integrert ovenfra og ned, kan antall drivere reduseres betraktelig, og integrasjonen av byggverk blir betydelig forenklet.
Big Bang-tilnรฆrming
I denne tilnรฆrmingen blir ikke alle moduler integrert fรธr og med mindre alle modulene er klare. Nรฅr de er klare, blir alle moduler integrert og deretter utfรธrt for รฅ vite om alle de integrerte modulene fungerer eller ikke.
I denne tilnรฆrmingen er det vanskelig รฅ vite รฅrsaken til feilen pรฅ grunn av รฅ integrere alt pรฅ en gang.
Det vil ogsรฅ vรฆre stor sjanse for at de kritiske feilene oppstรฅr i produksjonsmiljรธet.
Denne tilnรฆrmingen brukes bare nรฅr integrasjonstesting mรฅ gjรธres pรฅ en gang.
Testing av maskinvareprogramvareintegrering
Testing av maskinvareprogramvareintegrering er en prosess for รฅ teste Computer Software Components (CSC) for funksjonalitet pรฅ hรธyt nivรฅ pรฅ mรฅlmaskinvaremiljรธet. Mรฅlet med testing av maskinvare/programvareintegrering er รฅ teste oppfรธrselen til utviklet programvare integrert pรฅ maskinvarekomponenten.
Kravbasert maskinvare-programvareintegrasjonstesting
Mรฅlet med kravbasert maskinvare-/programvareintegrasjonstesting er รฅ sikre at programvaren i mรฅldatamaskinen vil tilfredsstille hรธynivรฅkravene. Typiske feil avslรธrt av denne testmetoden inkluderer:
- Maskinvare/programvare grensesnitt feil
- Brudd pรฅ programvarepartisjonering.
- Manglende evne til รฅ oppdage feil ved innebygd test
- Feil respons pรฅ maskinvarefeil
- Feil pรฅ grunn av sekvensering, transiente inngangsbelastninger og inngangseffekttransienter
- Tilbakemeldinger gir feil oppfรธrsel
- Feil eller feil kontroll av maskinvare for minneadministrasjon
- Problem med databussstrid
- Feil drift av mekanismen for รฅ verifisere kompatibiliteten og korrektheten til feltlastbar programvare
Hardware Software Integration omhandler verifisering av hรธynivรฅkravene. Alle tester pรฅ dette nivรฅet utfรธres pรฅ mรฅlmaskinvaren.
- Black box-testing er den primรฆre testmetoden som brukes pรฅ dette testnivรฅet.
- Definere test tilfeller bare fra hรธynivรฅkravene
- En test mรฅ utfรธres pรฅ produksjonsstandard maskinvare (pรฅ mรฅl)
Ting du bรธr vurdere nรฅr du designer testtilfeller for HW/SW-integrasjon
- Korrekt innhenting av alle data av programvaren
- Skalering og rekkevidde av data som forventet fra maskinvare til programvare
- Riktig utdata fra programvare til maskinvare
- Data innenfor spesifikasjoner (normalt omrรฅde)
- Data utenfor spesifikasjoner (unormalt omrรฅde)
- Grensedata
- Avbryter behandlingen
- timing
- Riktig minnebruk (adressering, overlapping osv.)
- Statlige overganger
OBS: For avbruddstesting vil alle avbrudd verifiseres uavhengig av fรธrste forespรธrsel gjennom full service og frem til ferdigstillelse. Testtilfeller vil bli spesielt utformet for รฅ teste avbrudd pรฅ en adekvat mรฅte.
Programvare til programvareintegrasjonstesting
Det er testing av dataprogramvarekomponenten som opererer i verts-/mรฅldatamaskinmiljรธet, samtidig som den simulerer hele systemet [andre CSC-er], og pรฅ hรธynivรฅfunksjonalitet.
Den fokuserer pรฅ oppfรธrselen til en CSC i et simulert verts-/mรฅlmiljรธ. Tilnรฆrmingen som brukes for programvareintegrasjon kan vรฆre en inkrementell tilnรฆrming (ovenfra-og-ned, en bottom-up-tilnรฆrming eller en kombinasjon av begge, ogsรฅ kalt sandwich- eller hybridtilnรฆrming).
Inn- og utgangskriterier for integrasjonstesting
Nรฅr tilnรฆrmingen og de to integrasjonsvariantene er avgjort, er det gjenvรฆrende spรธrsmรฅlet nรฅr et team kan starte og nรฅr det kan stoppe. Vanligvis brukes ETVX-strategien (Entry Criteria, Task, Validation, and Exit Criteria) nรฅr man utfรธrer integrasjonstesting.
Oppfรธringskriterier:
- Ferdigstillelse av Enhetstesting
innganger:
- Programvarekrav Data
- Programvaredesigndokument
- Programvareverifiseringsplan
- Programvareintegrasjonsdokumenter
Aktiviteter:
- Lag testsaker og prosedyrer basert pรฅ kravene pรฅ hรธyt og lavt nivรฅ
- Kombiner moduler pรฅ lavt nivรฅ som implementerer en felles funksjonalitet
- Utvikle en testsele
- Test konstruksjonen
- Nรฅr testen er bestรฅtt, kombineres bygget med andre bygg og testes til systemet er integrert som en helhet.
- Utfรธr alle testene pรฅ nytt pรฅ den mรฅlprosessorbaserte plattformen, og fรฅ resultatene
Utgangskriterier:
- Vellykket fullfรธring av integreringen av programvaremodulen pรฅ mรฅlmaskinvaren
- Riktig ytelse av programvaren i henhold til de spesifiserte kravene
Utganger
- Integrasjonstestrapporter
- Programvaretestsaker og prosedyrer [SVCP].
Vanlige utfordringer i systemintegrasjonstesting
Selv med en god tilnรฆrming og klare avslutningskriterier, skaper integrerte miljรธer problemer som aldri dukker opp under enhetstesting. ร gjenkjenne dem tidlig holder tidsplanen realistisk.
- Miljรธmessig uoverensstemmelse: det integrerte test miljรธ speiler sjelden produksjonen, sรฅ timing- og konfigurasjonsfeil forsvinner fรธr veldig sent.
- Avhengighetsberedskap: Tredjeparts- og eldre grensesnitt er ofte uferdige, noe som tvinger testere til รฅ stole pรฅ stubber og simulatorer mye lenger enn planlagt.
- Datainkonsekvens: To moduler kan representere den samme posten forskjellig, noe som produserer stille avvik i stedet for synlige feil.
- Eierskap av feil: Nรฅr en feil strekker seg over to team, rotรฅrsaksanalyse og feilhรฅndtering bremse merkbart ned.
- Regresjonskostnad: hvert nytt grensesnitt utvider Regresjonstesting suite, slik at manuell ny utfรธrelse raskt blir uholdbar.
De fleste av disse er tidsplanrisikoer snarere enn tekniske blindveier. ร avtale datoer for grensesnittberedskap, simulatoromfang og eierskap til feilsortering fรธr den fรธrste byggingen integreres, fjerner de fleste av dem. For leverandรธreide grensesnitt, registrer ogsรฅ det avtalte meldingsformatet og en eskaleringskontakt, fordi en manglende eier forsinker en reparasjon lenger enn feilen tilsier.
Beste praksis for testing av systemintegrasjon
En repeterbar SIT-syklus avhenger mindre av verktรธy enn av disiplin rundt grensesnitt, data og bevis. De fem fremgangsmรฅtene nedenfor passer like godt til en liten innebygd konstruksjon som til et stort landskap med flere leverandรธrer, og hver av dem reduserer omarbeidet som nรฅr senere testnivรฅer.
- Kartlegg hvert grensesnitt fรธrst. List opp hver datautveksling, dens retning, protokoll og eier fรธr du skriver et enkelt testtilfelle.
- Prioriter etter risiko. Verifiser grensesnittene som bรฆrer penger, identitet eller regulerte data fรธr de kosmetiske.
- Design realistiske testdata. Dekk normale, grense- og unormale omrรฅder, slik at skalerings- og avrundingsfeil dukker opp tidlig.
- Automatiser de stabile stiene. Ledningsgrensesnittet sjekker inn i en kontinuerlig integrering pipeline slik at hver bygg verifiserer dem pรฅ nytt.
- Behold bevisene tracmulig. Koble hvert resultat til et krav gjennom en tracevnematrise sรฅ utgangskriterier kan bevises, ikke hevdes.
โ Tips: Frys grensesnittspesifikasjoner fรธr integrasjonen starter. En sen endring av et meldingsformat ugyldiggjรธr testtilfeller pรฅ begge sider av grensesnittet og er den vanligste รฅrsaken til SIT-omarbeiding.




