Integratietesten: wat is, typen, top-down & Bottom Up Voorbeeld

Inhoudsopgave:

Anonim

Wat is integratietesten?

INTEGRATIETESTEN wordt gedefinieerd als een type testen waarbij softwaremodules logisch worden geïntegreerd en als een groep worden getest. Een typisch softwareproject bestaat uit meerdere softwaremodules, gecodeerd door verschillende programmeurs. Het doel van dit testniveau is om defecten aan het licht te brengen in de interactie tussen deze softwaremodules wanneer ze zijn geïntegreerd

Integratietesten richt zich op het controleren van de datacommunicatie tussen deze modules. Daarom wordt het ook wel 'I & T' (Integration and Testing), 'String Testing' en soms 'Thread Testing' genoemd .

  • Wat is integratietesten?
  • Waarom doen integratietesten?
  • Voorbeeld van een integratietestcase
  • Benaderingen, strategieën, methodologieën voor integratietests
  • Big Bang-benadering:
  • Incrementele aanpak
  • Wat is een stub en stuurprogramma?
  • Bottom-up integratie
  • Top-down integratie:
  • Hybride / Sandwich-integratie
  • Hoe integratietests uitvoeren?
  • Korte beschrijving van integratietestplannen:
  • In- en uitstapcriteria voor integratietests
  • Best practices / richtlijnen voor integratietests

Waarom doen integratietesten?

Hoewel elke softwaremodule unit-getest is, bestaan ​​er nog steeds defecten om verschillende redenen, zoals

  • Een module is in het algemeen ontworpen door een individuele softwareontwikkelaar wiens begrip en programmeerlogica kan verschillen van andere programmeurs. Integratietesten worden noodzakelijk om te verifiëren dat de softwaremodules in eenheid werken
  • Op het moment dat de module wordt ontwikkeld, is de kans groot dat de eisen van de klanten veranderen. Deze nieuwe vereisten worden mogelijk niet unit-getest en daarom wordt systeemintegratietesten noodzakelijk.
  • Interfaces van de softwaremodules met de database kunnen foutief zijn
  • Eventuele externe hardware-interfaces kunnen onjuist zijn
  • Onjuiste afhandeling van uitzonderingen kan problemen veroorzaken.

Klik hier als de video niet toegankelijk is

Voorbeeld van een integratietestcase

Integration Test Case verschilt van andere testcases in de zin dat het zich voornamelijk richt op de interfaces & stroom van data / informatie tussen de modules . Hier moet prioriteit worden gegeven aan de integrerende koppelingen in plaats van aan de unitfuncties die al zijn getest.

Voorbeeld van integratietestcases voor het volgende scenario: Applicatie heeft 3 modules, namelijk 'Login-pagina', 'Mailbox' en 'E-mails verwijderen' en elk van hen is logisch geïntegreerd.

Concentreer u hier niet veel op het testen van de inlogpagina, aangezien dit al is gedaan in Unit Testing. Maar kijk hoe het is gekoppeld aan de postbuspagina.

Evenzo Postbus: controleer de integratie met de module E-mails verwijderen.

Testcase-ID Doel van de testcase Test Case Beschrijving verwacht resultaat
1 Controleer de interfacekoppeling tussen de Login- en Mailbox-module Voer inloggegevens in en klik op de knop Inloggen Om te worden doorgestuurd naar de brievenbus
2 Controleer de interfacekoppeling tussen de mailbox en de module Mails verwijderen Selecteer in Mailbox de e-mail en klik op een verwijderknop De geselecteerde e-mail zou moeten verschijnen in de map Verwijderd / Prullenbak

Benaderingen, strategieën, methodologieën voor integratietests

Software Engineering definieert verschillende strategieën om integratietests uit te voeren, namelijk.

  • Big Bang-benadering:
  • Incrementele benadering: die verder is onderverdeeld in de volgende
    • Top-down benadering
    • Bottom-up benadering
    • Sandwichbenadering - Combinatie van top-down en bottom-up

Hieronder staan ​​de verschillende strategieën, de manier waarop ze worden uitgevoerd en hun beperkingen en voordelen.

Big Bang-testen

Big Bang Testing is een integratietestaanpak waarbij alle componenten of modules tegelijk worden geïntegreerd en vervolgens als een eenheid worden getest. Deze gecombineerde set componenten wordt tijdens het testen als een entiteit beschouwd. Als niet alle componenten in de unit zijn voltooid, wordt het integratieproces niet uitgevoerd.

Voordelen:

  • Handig voor kleine systemen.

Nadelen:

  • Lokalisatie van fouten is moeilijk.
  • Gezien het enorme aantal interfaces dat in deze benadering moet worden getest, kunnen sommige te testen interfaces gemakkelijk worden gemist.
  • Aangezien de integratietest pas kan beginnen nadat "alle" modules zijn ontworpen, heeft het testteam minder tijd voor uitvoering in de testfase.
  • Aangezien alle modules tegelijk worden getest, worden risicovolle modules niet geïsoleerd en op prioriteit getest. Randmodules die te maken hebben met gebruikersinterfaces zijn ook niet geïsoleerd en getest op prioriteit.

Incrementeel testen

Bij de incrementele testaanpak wordt getest door twee of meer modules te integreren die logisch aan elkaar gerelateerd zijn en vervolgens getest te worden op het goed functioneren van de applicatie. Vervolgens worden de andere gerelateerde modules incrementeel geïntegreerd en gaat het proces door totdat alle logisch gerelateerde modules zijn geïntegreerd en met succes zijn getest.

Een incrementele aanpak wordt op zijn beurt uitgevoerd door twee verschillende methoden:

  • Onderkant boven
  • Ondersteboven

Stubs en stuurprogramma's

Stubs en stuurprogramma's zijn de dummy-programma's in integratietests die worden gebruikt om de softwaretestactiviteit te vergemakkelijken. Deze programma's fungeren als vervanging voor de ontbrekende modellen bij het testen. Ze implementeren niet de volledige programmeerlogica van de softwaremodule, maar simuleren datacommunicatie met de oproepende module tijdens het testen.

Stub : wordt aangeroepen door de module die wordt getest.

Driver : roept de module op die moet worden getest.

Bottom-up integratietesten

Bottom-up Integration Testing is een strategie waarbij eerst de modules op een lager niveau worden getest. Deze geteste modules worden vervolgens verder gebruikt om het testen van modules van een hoger niveau te vergemakkelijken. Het proces gaat door totdat alle modules op topniveau zijn getest. Zodra de modules op een lager niveau zijn getest en geïntegreerd, wordt het volgende niveau van modules gevormd.

Schematische weergave :

Voordelen:

  • Het lokaliseren van fouten is eenvoudiger.
  • Er wordt geen tijd verspild met wachten tot alle modules zijn ontwikkeld, in tegenstelling tot de Big-bang-benadering

Nadelen:

  • Kritieke modules (op het hoogste niveau van de softwarearchitectuur) die de applicatiestroom regelen, worden als laatste getest en kunnen vatbaar zijn voor defecten.
  • Een vroeg prototype is niet mogelijk

Top-down integratietesten

Top Down Integration Testing is een methode waarbij integratietesten van boven naar beneden plaatsvinden volgens de controlestroom van het softwaresysteem. De modules van een hoger niveau worden eerst getest en vervolgens worden modules van een lager niveau getest en geïntegreerd om de softwarefunctionaliteit te controleren. Stubs worden gebruikt om te testen als sommige modules niet gereed zijn.

Schematische weergave:

Voordelen:

  • Foutlokalisatie is eenvoudiger.
  • Mogelijkheid om een ​​vroeg prototype te verkrijgen.
  • Kritieke modules worden op prioriteit getest; grote ontwerpfouten konden eerst worden gevonden en verholpen.

Nadelen:

  • Heeft veel stompjes nodig.
  • Modules op een lager niveau worden onvoldoende getest.

Sandwich testen

Sandwich Testing is een strategie waarbij modules op het hoogste niveau worden getest met modules op een lager niveau, terwijl tegelijkertijd lagere modules worden geïntegreerd met modules op het hoogste niveau en als een systeem worden getest. Het is een combinatie van Top-down en Bottom-up benaderingen en daarom wordt het Hybrid Integration Testing genoemd . Het maakt gebruik van zowel stubs als stuurprogramma's.

Hoe integratietests uitvoeren?

De integratietestprocedure ongeacht de softwareteststrategieën (hierboven besproken):

  1. Stel het plan voor integratietests op
  2. Ontwerp de testscenario's, cases en scripts.
  3. Het uitvoeren van de testcases gevolgd door het melden van de gebreken.
  4. De defecten volgen en opnieuw testen.
  5. Stap 3 en 4 worden herhaald totdat de integratie is voltooid.

Korte beschrijving van integratietestplannen:

Het bevat de volgende attributen:

  • Methoden / benaderingen van testen (zoals hierboven besproken).
  • Scopes en Out of Scopes Items van integratietests.
  • Rollen en verantwoordelijkheden.
  • Vereisten voor integratietests.
  • Testomgeving.
  • Risico- en risicobeperkende plannen.

In- en uitstapcriteria voor integratietests

In- en uitstapcriteria voor integratietestfase in elk softwareontwikkelingsmodel

Toelatingscriteria:

  • Unit geteste componenten / modules
  • Alle bugs met hoge prioriteit opgelost en gesloten
  • Alle modules moeten met succes worden gecodeerd en geïntegreerd.
  • Integratietests Plan, testcase, scenario's die moeten worden afgetekend en gedocumenteerd.
  • Vereiste testomgeving om in te stellen voor integratietesten

Uitgangscriteria:

  • Succesvol testen van geïntegreerde applicatie.
  • Uitgevoerde testcases worden gedocumenteerd
  • Alle bugs met hoge prioriteit opgelost en gesloten
  • In te dienen technische documenten gevolgd door release-opmerkingen.

Best practices / richtlijnen voor integratietests

  • Bepaal eerst de integratieteststrategie die kan worden aangenomen en bereid later de testcases en testgegevens dienovereenkomstig voor.
  • Bestudeer het architectuurontwerp van de applicatie en identificeer de kritische modules. Deze moeten op prioriteit worden getest.
  • Verkrijg de interface-ontwerpen van het architectuurteam en maak testcases om alle interfaces in detail te verifiëren. De interface met de database / externe hardware / softwareapplicatie moet in detail worden getest.
  • Na de testcases spelen de testgegevens de cruciale rol.
  • Zorg ervoor dat de nepgegevens altijd zijn voorbereid voordat u ze uitvoert. Selecteer geen testgegevens tijdens het uitvoeren van de testgevallen.