what is infrastructure testing
Denne omfattende veiledningen for testing av infrastruktur dekker fordelene, utfordringene, verktøyene og metodene for testing av infrastruktur:
Infrastruktur deles mellom mange prosjekter. Infrastrukturtesting er testing av maskinvare- og programvareavhengighet som kreves for å kjøre programvareprodukter. Det hjelper til å dekke produktrisikoen som er knyttet til målinfrastrukturen.
Denne opplæringen vil hjelpe deg å lære infrastrukturtesting fra bunnen av. Vi vil dekke komplette detaljer som fordeler og utfordringer, hvem som kan utføre, når de skal utføre, og teknikker for å utføre denne testen. Verktøy for testing av infrastruktur er også dekket i denne opplæringen.
Hva du vil lære:
- Hva er infrastruktur?
- Hva er infrastrukturtesting?
- Metoder for testing av infrastruktur
- Verktøy for testing av infrastruktur
- Konklusjon
Hva er infrastruktur?
IT-infrastrukturøkosystem inkluderer operativsystemplattformer (som Windows, UNIX, Linux, macOS), maskinvareplattformer (som Dell, IBM, Sun, HP, Apple), Internett-plattformer (som Apache, Cisco, Microsoft IIS, .NET ), Datastyring og lagring (som IBM DB2, Oracle, SQL Server, MySQL) og Enterprise Software Applications (som SAP, Oracle, Microsoft).
Hva er infrastrukturtesting?
Hver programvare krever en infrastruktur for å utføre sine handlinger. Infrastrukturtesting er testprosessen som dekker maskinvare, programvare og nettverk. Det innebærer testing av hvilken som helst kode som leser konfigurasjonsverdier fra forskjellige ting i IT-rammeverket og sammenligner dem med tiltenkte resultater.
Det reduserer risikoen for svikt. Denne testingen inneholder testøvelser, prosedyrer for å garantere at IT-applikasjoner og den grunnleggende infrastrukturen er innstilt for å levere utførelse, tilpasningsevne, urokkelig kvalitet, tilgjengelighet, ytelse og skalerbarhet. Målet er å teste infrastruktur mellom testmiljøer, testverktøy og kontormiljøer.
Hvorfor er det nødvendig med testing av infrastruktur?
Organisasjoner bruker mange dollar på å sørge for at deres virksomhetsapplikasjoner blir testet til perfeksjon. Imidlertid er det grunnleggende fundamentet, dvs. infrastruktur som er vert for og formidler disse applikasjonene, en gang i blant testet og generelt undervurdert.
html intervju spørsmål og svar for nybegynnere
Det er nødvendig med infrastrukturtesting for å redusere risikoen for feil på maskinvare- eller programvarekomponenter. Når ny infrastrukturdesign forberedes for programvaren, blir det nødvendig å utføre denne testen. Det er nødvendig for å sikre om ny infrastrukturfunksjonalitet fungerer som forutsatt. Problemer oppstår mer sannsynlig når en ny infrastrukturmodul er integrert i prosjektet.
Infrastrukturfeil oppstår når ingen testing er planlagt på skalerbar infrastruktur. Derfor, for å forhindre forstyrrelser og problemer i siste øyeblikk, må denne testen utføres.
Denne testen er nødvendig for å identifisere feil som ikke effektivt ble funnet under forskjellige testprosesser. Det blir viktig å analysere programvaren når maskinvare- og programvareresurser endres. Det er gjort for å analysere systemets effektivitet og ytelse.
Tidlig implementering av denne testtypen er nødvendig fordi prosjekter medfører høye kostnader for infrastruktur. Derfor kreves god kunnskap om denne testingen for å minimere kostnadene forbundet med prosjektrisiko. For å unngå feil, er denne testen nødvendig som en industristandard.
Hva er fordelene med infrastrukturtesting?
Den planlagte og uttømmende tilnærmingen til infrastrukturtesting gir mange fordeler både for et programvareprodukt og for organisasjoner.
Få av fordelene er vervet nedenfor:
- Reduksjon i produksjonsfeil.
- Forbedring av feilidentifikasjon før produksjonsutførelse. Oppgrader kvaliteten på infrastrukturen uten produksjonsglidning.
- Raskere testutførelse, som gir tidlig mulighet til å bli live.
- Det hjelper med årlige kostnadsbesparelser i drift så vel som i virksomhet.
- Bekreft at programvaren fungerer i en systematisk og kontrollert prosedyre.
- Reduksjon i nedetid.
- Forbedring av tjenestekvaliteten.
- Tilgjengelighet av stabile miljøer.
- Reduksjon i kostnadene forbundet med risiko.
- Bedre brukeropplevelse.
Utfordringer ved infrastrukturtesting
La oss se på noen få utfordringer som selskaper står overfor når de søker å ta i bruk infrastrukturtesting.
# 1) Eksternt miljø
Testmiljøer eller ressurser er plassert i topografisk fjerntliggende lokaliteter, noe som gjør at testteamene er avhengige av støttegrupper i området for å håndtere utfordringer knyttet til utstyr, maskinvarekomponenter, programvarekomponenter, nettverk osv. Dette krever ofte noen investeringer med hensyn til tid og årsaker forsinkelser, spesielt der lagene ligger i forskjellige tidssoner.
# 2) Fravær av et dedikert team
Mangel på kunnskap blant teamet er en stor utfordring for å utføre denne testingen. Et dedikert team kreves for å opprettholde informasjon relatert til alle aktiviteter, inkludert tidsplaner, planer, dekning, statusrapporter.
# 3) Undersøkelse av testmiljøproblemer
Ofte kunne testmiljøproblemer ikke løses og trenger etterforskning. Koordinering med berørte team er nødvendig til problemet er løst.
# 4) Opprettholde miljøer på ett sted
Å opprettholde et felles lagerhus med testmiljøer, deres gamle kompatibilitet, samt de nyeste versjonene, utgjør en stor utfordring når du utfører denne testen. Tilkoblingsdetaljer og konfigurasjoner av alle versjoner opprettholdes ikke.
# 5) Manuelt arbeid
Få aktiviteter involvert i denne testingen krever manuelt arbeid, da ingen verktøy er tilgjengelige. Dette fører til menneskelige feil og forsinkelser i prosessen.
# 6) Mangel på standarddefinisjon for infrastrukturtesting
De fleste er fortsatt ikke klar over implementeringen og prosessene. Feil kunnskap og forståelse fører ofte til vanskeligheter i implementeringen. Det oppstår mange nye problemer som kan påvirke prosessen for å være stabil.
# 7) Isolerte lag
Det ligger et stort gap mellom lagplasseringene. Dette fører vanligvis til mangel på åpenhet og dårlig teamarbeid.
Hvem kan utføre infrastrukturtesting?
Ulike team er involvert i denne testtypen. Disse er forklart nedenfor:
# 1) Testteam for infrastruktur
Teamet for infrastrukturtesting har en god haug med kunnskap relatert til denne testingen. De er også involvert i teamet for kvalitetssikring. Dette teamet vet hvordan man skal teste IT-infrastruktur. Dette teamet vet hvordan man designer testtilfeller for denne typen testing.
# 2) Systemadministratorteam
Systemadministratorteamet tester ofte infrastruktur på nettverksnivå. Team design og dokumentere test tilfeller basert på deres erfaring. De er ansvarlige for å sikre at applikasjonene ikke påvirkes etter endringer i nettverket.
# 3) Vedlikeholdsteam for infrastruktur
Dette laget spiller en veldig viktig rolle. De er involvert på et tidlig stadium og er ansvarlige for å stille testmiljøer i henhold til kravene. De deltar i testplanlegging og vedlikehold av infrastrukturmiljøer.
# 4) Kvalitetssikringsteam
QA-teamet er ansvarlig for å kjøre regresjonstest. De er også involvert i integrasjonstesting. De utfører testing på forskjellige testmiljøer som er opprettet i henhold til forskjellige infrastrukturer.
# 5) Prosjektleder
Prosjektlederen er ansvarlig for å håndtere prosjektet. De er involvert i planlegging, utforming, dokumentasjon av testsaker som er nødvendige for denne testtypen. En prosjektleder er synkronisert med alle teamene.
Når skal jeg utføre infrastrukturtesting?
Det er et presserende behov for å utføre denne testingen når noen infrastrukturrelaterte endringer blir introdusert.
Eksempler på slike endringer er:
- Enhver ny oppdatering i systemet er utviklet.
- Eventuelle nye systemoppdateringer oppleves.
- Enhver oppdatering i operativsystemet.
- Databaseversjonen / strukturen er oppgradert.
- Når det er minneoppgradering for servere.
- Implementering av det nye verktøyet.
- Sikkerhetsoppdateringer.
- Programvare oppdatering.
Noen ganger blir denne testtypen viktigere når man oppdager migrering av database eller datasenter. Det er behov for mer fokus når det er mangfoldige og raske endringer i applikasjonen og når migrasjon av infrastruktur er involvert.
Den utføres også når støtte for nye enheter for programvare blir introdusert.
Eksempel:
- Nye bærbare / stasjonære datamaskiner
- Nye mobile enheter
- Nye tredjepartsverktøy
Metoder for testing av infrastruktur
Vi har forskjellige moduler i dette. Få av dem er oppført nedenfor:
- Server / klientinfrastruktur
- Datamigrering
- Infrastrukturtesting i skyen
- Testing på nettverksnivå
- Installasjon / avinstallering / distribusjon
- Test miljøinfrastruktur
- TDD-tilnærming
# 1) Server / klientinfrastruktur
Servere inkluderer webservere, filservere, e-postservere, proxy-servere, virtuelle servere og fysiske servere på maskinvare. Klienten inkluderer OS, applikasjoner, brukerinnstillinger osv. Servere kjører forskjellige tjenester, og disse tjenestene kan brukes av klientene.
Hovedmålet er å teste kvaliteten på servere, stasjonære maskiner, operativsystemer og maskinvare. Server- / klientkomponenter er testet for å sikre at ytelsen til infrastrukturen forbedres i produksjonsmiljøet. Det inkluderer også testing av installasjon eller avinstallering av applikasjoner, nettleserkompatibilitetstesting, integrasjonstesting med forskjellige versjoner av OS og brukerinnstillinger.
Fremgangsmåte:
- Den viktigste tingen er å samle inn kravene fra interessenter.
- Utform en testplan i henhold til forståelsen av den nødvendige infrastrukturen.
- Testtilfeller blir deretter utformet som dekker operativsystemstøtte, oppgraderingsscenarier, omfanget av server / klientinfrastrukturtesting, og også funksjonstesting.
- Etter godkjenning av testsaker utfører QA Team hvert scenario og tilhørende testsaker.
Alle server / klientrelaterte endringer som oppgradering, konfigurasjonsendringer er allerede testet på QA-oppsett, så dette sikrer at det blir mindre innvirkning mulig i produksjonsmiljøet. Også forskjellige OS-versjoner vil bli testet før de distribueres i produksjon. Dessuten, hvis noe mislyktes i produksjonen, testes reserveprosedyrer på forhånd for å sikre sikkerhetskopiering.
# 2) Datamigrering
Datamigrering inkluderer data som er migrert fra gammel versjon til ny versjon, data migrert fra en server til en annen, og også data som er migrert til forskjellige konfigurasjoner.
Hovedmålet med datamigreringstesting er å teste datamigreringene på forskjellige versjoner, servere, nybygg. Test applikasjonen for å bekrefte at det ikke er noen innvirkning på grunn av migrasjon. Dataoverføringstesting utføres også for å verifisere ytelsen og ventetiden i applikasjonen.
Fremgangsmåte:
- Test applikasjonen før og etter overføringen.
- Test serverne før og etter datamigrering for å sikre at ingen endringer blir observert.
- Test at ingen endringer blir observert i ytelsen til applikasjonen etter datamigrering.
- Test applikasjonen med forskjellige versjoner av databasen
- Test den nye versjonen er kompatibel med alle versjoner av databasen.
- Test forskjellige konfigurasjonsinnstillinger på serveren med forskjellige databaseversjoner
Ved hjelp av datamigreringstesting kan konfigurasjoner med server som ikke samsvarer, oppdages. Eventuelle problemer med serverbygging hvis det eksisterer mens du utfører datamigrering, kan løses før produksjonsutrullingen. Datamigreringstesting forbedrer produktets kvalitet og stabilitet. Denne testen hjelper senere med installasjonstesting mens applikasjonen distribueres på produksjonsmiljøet.
# 3) Testing av infrastruktur i skyen
Informasjon og data lagres for det meste på virtuelle servere, og disse serverne oppbevares og administreres av Cloud computing-leverandører som AWS.
Hovedmålet er å sertifisere Cloud-tjenestene for forskjellige versjoner av applikasjoner. Test applikasjonsarkitekturen i skyen. En ekte applikasjon er simulert på Cloud og ytelsen og skalerbarheten til applikasjoner blir testet.
Fremgangsmåte:
- Test belastningen på applikasjonen med forskjellige konfigurasjoner.
- Utfør regresjonstesting og sørg for at applikasjonen ikke påvirker belastningstesting.
- Test om et program er en nettleserkompatibel i et skymiljø.
- Test installasjonen av applikasjonen på skyen.
- Test om applikasjonen fungerer som forventet i forskjellige skymiljøer.
Infrastrukturtesting i Cloud sikrer feilfri implementering av applikasjonen i produksjonsmiljøet. Det hjelper å kjenne ytelsen, skalerbarheten og stabiliteten til applikasjonen. Det hjelper med å utnytte ressursene som finnes i skyen, for eksempel maskinvare, programvare og infrastruktur.
# 4) Testing på nettverksnivå
Nettverket er den viktigste delen av applikasjonens infrastruktur. Nettverket hjelper i kommunikasjon mellom servere, klienter og andre nettverk. Nettverk har forskjellige moduler som proxy-servere, infrastruktur for Internett-tilkobling.
Hovedmålet er å kontrollere og administrere problemer på nettverksnivå, som for mye ressursbruk, servernedetid, systemkonfigurasjon, infrastruktur som kreves for operasjoner, operativsystemoppdateringer.
Fremgangsmåte:
- Test nettverkslaget for fremtidige oppdateringer av applikasjonen.
- Test for reserveprosedyrer i tilfelle feil i produksjonsmiljøet.
- Utfør systemtesting, UAT-testing, sikkerhetstesting.
- Design testtilfeller og utarbeid testdata.
- Forsikre deg om at tjenester på server- / nettverksnivå ikke påvirkes etter noen ny utgivelse.
- Test for det isolerte nettverket.
- Test innvirkning på ytelsen til applikasjonen på forskjellige nettverk som VPN, Wi-Fi, LAN, etc.
Infrastrukturtesting på nettverksnivå forbedrer utvinningstiden. Det sikrer sikkerhetskopiering og gjenoppretter mekanismer. Det hjelper også i sikkerheten til applikasjoner.
# 5) Installasjon / avinstallasjon / distribusjon
Hovedmålet med å teste infrastruktur mens du utfører installasjonen er å sikre at når en ny klient bruker applikasjonen, oppstår det ingen problemer når du installerer applikasjonen for første gang. Avinstallering av applikasjon utføres for å teste avslutningsprosessen for applikasjonen.
Fremgangsmåte:
- Test for installasjonspakker som kreves for å installere applikasjonen.
- Test for flere biblioteker, bygg pakker.
- Test for tiden det tar å installere og avinstallere applikasjonen.
- Installer applikasjonen på forskjellige operativsystemer.
- Test for diskplass kreves.
- Test om alle filene blir fjernet etter avinstallasjonen av programmet.
Å teste infrastruktur mens du installerer / avinstallerer / distribuerer, sikrer at applikasjonen kan installeres over nettverket på et bestemt tidspunkt. Det sørger for at en hvilken som helst oppdatering kan installeres senere eller ikke. Hjelper med å forbedre lagringsplassen som kreves av applikasjonen.
# 6) Test miljøinfrastruktur
Et testmiljø er en samling maskinvare, programvare, verktøy og prosesser. For å utføre testene nøyaktig og effektivt, er testmiljøet nødvendig. Testmiljøet inkluderer også arbeidsplassen der det er god nettverk, PC og strømforsyning til testere for å utføre jobben sin.
Hovedmålet er å kontrollere programvareinstallasjonen, konfigurasjon av applikasjonskonfigurasjoner, velge de riktige testverktøyene som støtter testplanlegging, testutførelse. Det sikrer også kontinuiteten i testutførelsen.
Fremgangsmåte:
- Sett opp et testmiljø for regelmessige utgivelser av prosjektet.
- Lag et testmiljø for hurtigreparasjonsutgivelser.
- Lag løsninger for å håndtere problemer med server og klientmiljø.
- Fullfør testverktøy for testplan, testdesign og utførelse.
- Bestem verktøy for feilsøking og rapportering av feilene.
- Lag et dokument for innstilling av testmiljø.
Bruk av verktøy og testmiljøer har flere fordeler. Høyere kvalitet observeres. Produktiviteten øker med bruk av verktøy. Testaktiviteter utføres på en bearbeidet måte. Dokumentasjon av testmiljøet hjelper nye medlemmer av teamet til å forstå bedre.
# 7) TDD-tilnærming
Test-Driven Development eller TDD framework er en metode for først å skrive testcases basert på kravdokumentene og deretter implementere funksjonaliteten i henhold til testen.
Hovedmålet er å kjenne til infrastrukturressursene som kreves for prosjektet. Hensikten er å definere og organisere infrastrukturen for sikkerhet, drift og produksjon.
Fremgangsmåte:
- Design dokument for infrastruktur krav.
- Design testplan som dekker infrastruktur som kreves for applikasjonen.
- Design testtilfeller som involverer infrastrukturtester
- Test for forskjellige konfigurasjoner.
TDD-tilnærming hjelper til med å forbedre kompleksiteten i prosjektet. Eventuelle endringer i infrastrukturen blir testet før de skyver til produksjon. Ulike mulige konfigurasjoner kan implementeres ettersom testene allerede er designet.
Verktøy for testing av infrastruktur
Kokk, dukke, og Ansible er forskjellige verktøy som tjener samme formål. Disse verktøyene brukes til å distribuere og konfigurere forskjellige servere som kreves for et program. Disse verktøyene gir god hjelp når det er komplekse oppgaver knyttet til infrastruktur. Det blir enkelt for teamet å utføre oppgaver på flere servere sammen ved hjelp av disse verktøyene.
Teamet som bruker disse verktøyene, distribuerer raskt flere applikasjoner, avhengigheter og biblioteker. Andre aktiviteter inkluderer servere, binærfiler, loggfiler, gjenopprettingsmekanismer, versjon oppgradering, databaseadministrasjon.
# 1) Kokk
Egenskaper: Chef støtter Ruby Domain-Specific Languages. Derfor blir det vanskelig for ikke-utviklere å lære dette verktøyet. Til tross for at det er vanskelig for språkstøtte, er dette verktøyet svært tilgjengelig. Chef følger master-slave-konfigurasjonen. I master-slave-mekanismen kan den primære serveren, dvs. kokk-serveren, erstattes av backup-serveren hvis det i noen tilfelle oppstår feil.
c tilfeldig tall mellom 0 og 1
Vi kan distribuere applikasjoner, konfigurere infrastruktur, og også konfigurere nettverket med Chef. Det er ikke høyt sikret.
Pris: Det er billigere enn Puppet, men dyrere enn Ansible. Prisen er omtrent $ 13,5 000 per år, opptil 100 noder.
Nettsted: Sjef
# 2) Marionett
Egenskaper: Puppet er bygget med Ruby og støtter DSL og Embedded Ruby. En programmerer kan bare administrere konfigurasjonen hvis dukken er valgt for å brukes. Systemadministratorteamet er også klar over konfigurasjonene til dette verktøyet. Den følger master-master arkitektur. Hvis en aktiv mester opplever svikt, kan en annen mester erstatte den.
Puppet er nyttig i skalerbarheten til maskiner, ved å sette forskjellige konfigurasjoner for hver vert. Hvis det gjøres noen endringer i konfigurasjonen, hjelper dette verktøyet med å gjøre endringer globalt. Det er heller ikke så høyt sikret verktøy.
Pris: Prisen er den høyeste på omtrent $ 11k - $ 20k / år for opptil 100 noder.
Nettsted: Marionett
# 3) Ansible
Egenskaper: Ansible er skrevet på Python og støtter også YAML-kommandoskript. Python er lesbart for mennesker, og derfor er dette verktøyet ideelt for systemadministratorer. Den kjører med en enkelt aktiv node, men i tilfelle feil, har den også en sekundær node.
Ansible er svært skalerbart, dvs. det kan håndtere et stort antall noder uten problemer. Sammenlignet med Puppet er Ansible mer praktisk når det gjelder skalerbarhet. I motsetning til Chef and Puppet er det et høyt sikret verktøy med SSH.
Pris: Prisen er mye lavere enn Puppet and Chef omtrent $ 10 000 / år for opptil 100 noder.
Nettsted: Ansible
Konklusjon
Infrastrukturtesting er nødvendig for programvareutviklingslivssyklus, ettersom selskaper har høye kostnader for infrastruktur. Ulike emner som fordeler, utfordringer, teknikker og personer som er involvert i denne testtypen blir dekket i denne opplæringen. Et glimt av verktøy for testing av infrastruktur er også dekket.
Anbefalt lesing
- Overvåking av applikasjons- og IT-infrastruktur ved hjelp av eG Enterprise Tool (praktisk gjennomgang)
- Typer programvaretesting: Ulike testtyper med detaljer
- Applikasjonstesting - inn i det grunnleggende om programvaretesting!
- Hva er gammatesting? Den siste testfasen
- Hva er Compliance Testing (Conformance testing)?
- Ytelsestesting vs belastningstesting vs stresstesting (forskjell)
- Exploratory Testing vs Scripted Testing: Who Wins?
- Hva er skalerbarhetstesting? Hvordan teste skalerbarheten til et program