Hva er testsele? (Eksempler)

โšก Smart oppsummering

Test Harness i programvaretesting samler stubber, drivere, testdata og utfรธrelsesverktรธy, slik at team validerer moduler fรธr alle avhengigheter eksisterer. Dette gjรธr blokkerte testsykluser om til repeterbar, automatisert verifisering som rapporterer resultater uten manuell innsats.

  • ๐Ÿงฉ Definisjon: En harness samler testtilfeller, stubber, drivere, detaljer om mรฅldistribusjonsport og kildefilen som testes i รฉn kjรธrbar enhet.
  • ๐ŸŽฏ Hvorfor det betyr noe: Testingen starter fรธr databaser, gatewayer eller backend-moduler finnes, slik at feil dukker opp tidlig nรฅr reparasjonskostnadene holder seg lavest.
  • ๐Ÿ”ง Kjernedeler: Utfรธrelsesmotor, skriptlager, testdatalager, stubber, drivere, utdatavalidator og rapporteringslag har hvert sitt ansvar.
  • ๐Ÿ” arbeidsflyt: Last inn skript, start applikasjonen som testes, erstatt manglende moduler, hent inn utdata, sammenlign med forventninger, publiser en rapport.
  • dY> verktรธy: JUnit passer inn Java, NUnit passer til .NET, mens Selenium, TestNG, PyTest og JMeter utvid ledningsnettets dekning til web-, parallelt og lastarbeid.
  • ๐Ÿ“ˆ optimalisering: Hold stubber justert med reell moduloppfรธrsel, lagre testdata utenfor skript og kjรธr harnesset pรฅ hver kontinuerlige integrasjonsbygg.

Test sele i programvaretesting

Test sele i programvaretesting er en samling av stubber, drivere og andre stรธtteverktรธy som kreves for รฅ automatisere testkjรธring. Testsele utfรธrer tester ved รฅ bruke et testbibliotek og genererer testrapporter. Testselen inneholder all informasjonen som trengs for รฅ kompilere og kjรธre en test som testtilfeller, mรฅldistribusjonsport (TDP), kildefil under test, stubber, etc.

Enkelt sagt, en sele pakker komponenten du vil verifisere inn i et kontrollert miljรธ. Nรฆrliggende moduler som mangler erstattes av smรฅ dummy-programmer, input kommer fra et fast datasett, og hvert resultat skrives til en logg i stedet for รฅ leses fra en skjerm. Avsnittene som fรธlger forklarer hvorfor team bygger en, hva den er laget av, hvordan den kjรธrer og hvor den passer inn.

Hvorfor bruke testsele?

Det finnes en ledningsnett for รฅ fjerne venting fra testsyklusen. Fordi den simulerer det som ikke er klart ennรฅ, en programvaretesting Teamet kan begynne รฅ verifisere atferd i den fรธrste sprinten i stedet for etter den endelige integrasjonen. Diagrammet nedenfor viser hvor en sele sitter mellom testskriptene og applikasjonen som testes.

Test sele

  • Automatiser testprosessen
  • Utfรธr testserier med testtilfeller
  • Generer tilknyttede testrapporter
  • Stรธtte for feilsรธking
  • For รฅ registrere testresultatene for hver av testene
  • Hjelper utviklerne med รฅ mรฅle kodedekning pรฅ kodenivรฅ
  • ร˜k produktiviteten til systemet gjennom automatisering
  • Forbedre kvaliteten pรฅ programvarekomponenter og applikasjoner
  • For รฅ hรฅndtere den komplekse tilstanden som testere synes er vanskelig รฅ simulere

Disse gevinstene er viktigst ved korte utgivelsessykluser. Nรฅr kode sendes flere ganger i uken, koster en feil som overlever til integrasjonsstadiet mye mer รฅ trace enn รฉn som blir tatt mot en stump den dagen den ble skrevet. Den belรธnningen kommer imidlertid bare nรฅr selen er satt sammen av de riktige delene.

Viktige komponenter i en testsele

En sele er ikke et enkelt program, men en samling av deler, der hver del fjerner รฉn hindring som ellers ville hindret en test i รฅ kjรธre uten tilsyn.

  • Testskript: Automatiserte instruksjoner som angir trinnene som skal utfรธres og resultatet som kan forventes, skrevet i henhold til testskript konvensjoner.
  • Testutfรธrelsesmotor: Lรธperen som leser skript i rekkefรธlge, lรธser avhengigheter og utlรธser sekvensiell eller parallell utfรธrelse.
  • Testdatalager: Inndataverdier som holdes utenfor skriptet i CSV, JSON, XML eller en seedet database, ofte fylt ut av teste datagenereringsverktรธy.
  • drivere: Dummy-kallende moduler som kaller komponenten som testes nรฅr det virkelige รธvre laget, for eksempel et brukergrensesnitt, er uferdig.
  • Stubber: Dummy kalte opp moduler som returnerte ferdigbehandlede svar, for eksempel en betalingstjeneste som svarte ยซBetaling vellykketยป uten รฅ kontakte en bank.
  • Utdatavalidator: Pรฅstandslogikk som sammenligner faktisk utgang med forventet verdi og markerer hvert tilfelle som bestรฅtt eller ikke bestรฅtt.
  • Logging- og rapporteringslag: Tidsstempler, skjermbilder, konsollutdata og et kjรธresammendrag som gjรธr alle feil tracmulig etterpรฅ.

Fjern en hvilken som helst del, og selen slutter รฅ vรฆre automatisk, fordi noe da mรฅ leveres for hรฅnd pรฅ hver tur.

Hvordan fungerer en testsele?

En sele gjentar den samme lรธkken ved hver utfรธrelse. ร… vite at lรธkken forteller deg nรธyaktig hvor din egen automatiseringstesting ressurser kobles til, og hvilket trinn som mislykkes nรฅr en kjรธring blir rรธd.

  1. Forbered miljรธet: Selen lรธser miljรธkonfigurasjonen, รฅpner tilkoblinger og laster inn inventar, slik at hver kjรธring starter fra samme kjente tilstand.
  2. Last inn testskriptene: Skript, parametere og forventede resultater leses fra depotet. Ingenting skrives inn under kjรธring, noe som gjรธr en andre kjรธring sammenlignbar med den fรธrste.
  3. Erstatt de manglende modulene: Sjรฅfรธrer vikarierer for innringere som ikke finnes ennรฅ, og ยซstubberยป vikarierer for tjenester som er uferdige, ustabile eller dyre รฅ ringe til.
  4. Kall applikasjonen som testes: Utfรธrelsesmotoren utlรธser arbeidsflyten beskrevet av skriptet, enten det er et metodekall, en API forespรธrsel eller en nettleserinteraksjon.
  5. Registrer den faktiske utgangen: Returverdier, responsnyttelaster, databaserader, logglinjer og skjermtilstand registreres alle etter hvert som de produseres.
  6. Sammenlign med forventede resultater: Utdatavalidatoren bekrefter hver registrerte verdi. Enhver avvik markerer saken som mislykket og registrerer bรฅde den forventede og den observerte verdien.
  7. Logg og rapporter: Selen skriver et tidsstemplet trace av kjรธringen og genererer en bestรฅtt/ikke bestรฅtt-rapport som en utvikler kan lese uten รฅ kjรธre noe pรฅ nytt.
  8. Riv ned: Midlertidige data, tilkoblinger og stub-tilstand slettes, slik at den neste saken ikke kan arve rester fra denne.

๐Ÿ’ก Tips: Oppdater stubbene dine nรฅr den virkelige modulen endres. En stubb som fortsatt svarer med formatet fra forrige kvartal vil rapportere en grรธnn lรธp mens live-integrasjonen allerede er รธdelagt.

Et utarbeidet eksempel konkretiserer lรธkken. Anta at betalingssiden er klar, men ikke betalingsgatewayen. En sjรฅfรธr sender forespรธrselen som grensesnittet normalt ville sendt, en stub svarer fรธrst med ยซBetaling vellykketยป og deretter med en tidsavbrudd, og validatoren bekrefter bestillingen i det ene tilfellet og en ny prรธveforespรธrsel i det andre. Begge banene verifiseres fรธr gateway-teamet skriver en linje med kode.

Det er to sammenhenger hvor Test Sele brukes

Den samme mekanismen tjener to forskjellige formรฅl, og vokabularet endres litt avhengig av hvilket du er i.

  1. Automatiseringstesting: Den inneholder testskript, parametere som er nรธdvendige for รฅ kjรธre disse skriptene og samle resultater for รฅ analysere det
  2. Integrasjonstesting: Den brukes til รฅ sette sammen to enheter med kode eller modul som samhandler med hverandre for รฅ sjekke om den kombinerte oppfรธrselen er som forventet eller ikke

Tenk deg en innloggingsmodul og en profilmodul som mรฅ utveksle et brukertoken. I integrasjonskonteksten simulerer en driver en vellykket innlogging og overfรธrer tokenet til profillogikken, slik at datakartetping, tillatelsessjekken og skjermgjengivelsen kan alle verifiseres fรธr den virkelige autentiseringstjenesten er fullfรธrt. I automatiseringskonteksten legges det samme paret med saker til en suite og kjรธres pรฅ nytt pรฅ hver build uten at noen berรธrer det igjen.

Typer testseler

Fordi programvare er bygget i lag, er en sele vanligvis spesialisert til laget den verifiserer. Fire typer dekker nesten alle prosjekter.

A enhetstestledning kjรธrer de minste kodebitene, som en enkelt funksjon eller metode, der hver avhengighet erstattes av en stub. Den er raskest รฅ kjรธre og billigst รฅ vedlikeholde, og det er derfor enhetstesting Suiter er vanligvis den fรธrste selen et team bygger. Testing av en skatteberegning uten รฅ berรธre faktureringsmodulen er en typisk bruk.

An integrasjonstestsele kontrollerer at to eller flere moduler samarbeider riktig, og er laget der dataavvik og mislykkede anrop dukker opp. Det er ledningsnettet som er beskrevet i integrasjonstesting konteksten ovenfor, for eksempel รฅ bekrefte at en bestillingstjeneste overleverer riktig nyttelast til en betalingstjeneste.

A systemtestsele driver en komplett ende-til-ende-flyt pรฅ tvers av grensesnitt, tjeneste og database, slik at systemtesting kan bekrefte at forretningsreglene gjelder nรฅr alle lag er til stede. regresjonstestsele kjรธrer deretter den akkumulerte pakken pรฅ nytt etter hver endring, noe som gjรธr Regresjonstesting praktisk nรฅr flere hundre scenarier mรฅ gjentas ved hver sammenslรฅing.

Test seleverktรธy

Hver av disse typene er vanligvis bygget pรฅ et eksisterende verktรธy i stedet for fra bunnen av. De to klassiske valgene er fortsatt enhetsnivรฅrammeverk:

Utover disse to legger de fleste team til verktรธy som utvider verktรธyene til nettleseren, API-laget eller lastprofilen. Tabellen nedenfor kartlegger de vanlige alternativene i forhold til rollen hver av dem spiller.

Tool Passer best for Rollen inni selen
JUnit Java enhets- og integrasjonssuiter Rekvisitadrivere, inventar og deklarasjoner
NUnit C#- og VB.NET-kode pรฅ .NET-plattformen Samme rolle som JUnit for .NET-sprรฅk
Selenium Nettleserbaserte ende-til-ende-flyter Fungerer som driver for brukergrensesnittlaget
TestNG Stor Java suiter som trenger gulvping og parallelle lรธp Fungerer som testkjรธringsmotor
PyTest Python tjenester og API-nivรฅkontroller Inventar fungerer ogsรฅ som stubber og dataleverandรธrer
Apache JMeter Belastnings-, stress- og ytelsesscenarier Genererer syntetisk trafikk mot applikasjonen som testes
Postman REST API-konfigurasjontract-verifisering Tilbyr simulerte servere som erstatter uferdige endepunkter

Uansett hvilken kombinasjon du velger, betaler ledningsnettet seg bare tilbake nรฅr det kjรธrer uten tilsyn, sรฅ koble det til en kontinuerlig integrering jobb tidlig. En bredere katalog med alternativer er oppfรธrt i Guru99 testverktรธy oppsummering. ร‰n distinksjon forรฅrsaker fortsatt forvirring, og det er verdt รฅ avgjรธre fรธr du velger noe.

Testsele vs testrammeverk

En sele og et automatiseringsrammeverk blir ofte behandlet som det samme, men de svarer pรฅ forskjellige spรธrsmรฅl: selen er det som utfรธrer en test, mens rammeverket er strukturen som tester utformes innenfor. Tabellen nedenfor setter dem side om side.

Test sele Test Automation Framework
En testsele er sammensatt av drivere og stubber, som er smรฅ dummy-programmer som samhandler med programvaren som testes Det er et sett med prosesser, prosedyrer, abstrackonseptet og et miljรธ der automatiserte tester designes og implementeres
Du kan ikke "Record & Playback"-skript i Test Harness En tester kan manuelt "Record & Playback"-skript i dette rammeverket
Testselen inneholder all informasjonen som trengs for รฅ kompilere og kjรธre en test som testtilfeller, mรฅldistribusjonsport (TDP), kildefil under test, stubber, etc. Testautomatiseringsrammeverket inneholder informasjon som testbibliotek, testverktรธy, automatisert testpraksis, en testplattform, etc.
En testsele er kategorisert i
Automatiseringstesting
Integrasjonstesting
Automatiseringsrammeverk eksempler
Datadrevet testing
Sรธkeorddrevet testing
Modularitetsdrevet testing
Hybrid testing
Modellbasert testing
Code drevet testing
Atferdsdrevet testing

Spรธrsmรฅl og svar

En testplattform er maskinvaren, operativsystemet, nettverket og databasekonfigurasjonen der testene kjรธres. En harness er programvarelaget over det som leverer stubber, drivere, data og rapportering. Det ene er plasseringen, det andre er mekanismen.

Opptak og avspilling er ikke tilgjengelig, sรฅ skriptferdigheter i Java, Python, eller .NET er nรธdvendig. Fรธrstegangsoppsett krever stor innsats, stubber driver bort fra de virkelige modulene hvis de neglisjeres, og kraftig mocking kan skjule integrasjonsfeil til sent.

Pipeline kaller selen etter hver commit. Jenkins, GitHub-handlinger eller GitLab CI utlรธser kjรธringen, harnesset kjรธrer skript mot stubber, og byggingen mislykkes automatisk nรฅr en pรฅstand ikke holder.

AI-modeller leser grensesnittendringer og reparerer รธdelagte lokaliseringsverktรธy eller pรฅstander automatisk, slik at en harness overlever refaktorering. Selvreparasjon flagger ogsรฅ ustabile tilfeller, noe som reduserer det manuelle vedlikeholdet som tradisjonelt fรธlger hver innbygging. Selenium suiter.

Ja. Generative modeller produserer stub-svar fra en API-spesifikasjon, utarbeider driverkode fra modulsignaturer og syntetiserer realistiske datasett. Revse resultatet fรธr bruk, fordi en plausibel stubb fortsatt kan motsi den virkelige konklusjonentract.

Oppsummer dette innlegget med: