what is infrastructure testing
Deze uitgebreide gids voor het testen van infrastructuren behandelt de voordelen, uitdagingen, hulpmiddelen en methodologieën voor het testen van infrastructuur:
Infrastructuur wordt gedeeld door veel projecten. Het testen van de infrastructuur is het testen van hardware- en softwareafhankelijkheden die nodig zijn om softwareproducten uit te voeren. Het helpt om de productrisico's af te dekken die betrekking hebben op de beoogde infrastructuur.
Deze tutorial helpt je om het testen van infrastructuur vanaf nul te leren. We zullen volledige details behandelen, zoals voordelen en uitdagingen, wie kan presteren, wanneer moet worden uitgevoerd en technieken om deze tests uit te voeren. Testtools voor infrastructuur worden ook in deze tutorial behandeld.
Wat je leert:
- Wat is infrastructuur?
- Wat is het testen van infrastructuur?
- Methodologieën voor het testen van infrastructuur
- Tools voor het testen van infrastructuur
- Gevolgtrekking
Wat is infrastructuur?
IT-infrastructuur Ecosysteem omvat platforms voor besturingssystemen (zoals Windows, UNIX, Linux, macOS), computerhardwareplatforms (zoals Dell, IBM, Sun, HP, Apple), internetplatforms (zoals Apache, Cisco, Microsoft IIS, .NET ), Gegevensbeheer en opslag (zoals IBM DB2, Oracle, SQL Server, MySQL) en Enterprise Software-applicaties (zoals SAP, Oracle, Microsoft).
Wat is het testen van infrastructuur?
Elke software heeft een infrastructuur nodig om zijn acties uit te voeren. Het testen van infrastructuren is het testproces dat hardware, software en netwerken omvat. Het omvat het testen van elke code die configuratiewaarden uit verschillende dingen in het IT-raamwerk leest en deze vergelijkt met de beoogde resultaten.
Het vermindert de kans op mislukking. Deze tests omvatten testoefeningen, procedures om te garanderen dat IT-applicaties en de fundamentele infrastructuur zijn afgestemd op uitvoering, aanpassingsvermogen, niet-aflatende kwaliteit, toegankelijkheid, prestaties en schaalbaarheid. Het doel is om de infrastructuur tussen testomgevingen, testtools en kantooromgevingen te testen.
Waarom is testen van infrastructuur nodig?
Organisaties geven vele dollars uit om ervoor te zorgen dat hun bedrijfsapplicaties tot in de puntjes worden getest. De basisbasis, d.w.z. infrastructuur die deze applicaties host en overbrengt, wordt echter af en toe getest en over het algemeen onderschat.
hoe je een multidimensionale array in java declareert
Het testen van de infrastructuur is nodig om het risico van uitval van hardware- of softwarecomponenten te verkleinen. Wanneer een nieuw infrastructuurontwerp voor de software wordt voorbereid, wordt het nodig om deze tests uit te voeren. Het is nodig om ervoor te zorgen dat de nieuwe infrastructuurfunctionaliteit werkt zoals bedoeld. De kans op problemen is groter wanneer een nieuwe infrastructuurmodule in het project wordt geïntegreerd.
Infrastructuurstoringen doen zich voor wanneer er geen testen op schaalbare infrastructuur zijn gepland. Om verstoringen en last-minute problemen te voorkomen, moet deze test daarom worden uitgevoerd.
Deze test is nodig om defecten te identificeren die niet efficiënt zijn gevonden tijdens verschillende testprocessen. Het wordt belangrijk om de softwaretoepassing te analyseren wanneer hardware- en softwarebronnen worden gewijzigd. Het wordt gedaan om de efficiëntie en prestaties van het systeem te analyseren.
Tijdige implementatie van dit testtype is vereist omdat projecten hoge kosten voor infrastructuur met zich meebrengen. Daarom is een goede kennis van deze tests vereist om de kosten van projectrisico's te minimaliseren. Om storingen te voorkomen, is deze test nodig als industriestandaard.
Wat zijn de voordelen van het testen van infrastructuren?
De geplande en uitgebreide aanpak van Infrastructure Testing biedt veel voordelen voor zowel een softwareproduct als voor organisaties.
Enkele van de voordelen worden hieronder vermeld:
- Vermindering van productiefouten.
- Verbetering van de identificatie van defecten voordat de productie wordt uitgevoerd. Upgrade de kwaliteit van de infrastructuur zonder defecten naar productie.
- Versnelde testuitvoering, waardoor vroegtijdig live gaan mogelijk wordt.
- Het helpt bij jaarlijkse kostenbesparingen, zowel in de bedrijfsvoering als in het bedrijfsleven.
- Bevestig dat software volgens een systematische en gecontroleerde procedure werkt.
- Minder uitvaltijd.
- Verbetering van de kwaliteit van de dienstverlening.
- Beschikbaarheid van stabiele omgevingen.
- Verlaging van de kosten van risico's.
- Betere gebruikerservaring.
Uitdagingen bij het testen van infrastructuur
Laten we eens kijken naar een paar uitdagingen waarmee bedrijven worden geconfronteerd wanneer ze Infrastructure Testing willen toepassen.
# 1) Externe omgeving
Testomgevingen of -middelen zijn gepositioneerd op topografisch afgelegen locaties, waardoor de testteams vertrouwen op ondersteuningsgroepen in het gebied om uitdagingen met betrekking tot apparatuur, hardwarecomponenten, softwarecomponenten, netwerken, enz. Te beheren. Dit vereist vaak enige investering met betrekking tot tijd en oorzaken vertragingen, vooral als de teams in verschillende tijdzones zijn gesitueerd.
# 2) Ontbreken van een toegewijd team
Gebrek aan kennis bij het team is een grote uitdaging om deze tests uit te voeren. Een toegewijd team is vereist om informatie bij te houden met betrekking tot alle activiteiten, inclusief schema's, plannen, dekking en statusrapporten.
# 3) Onderzoek naar problemen met de testomgeving
Vaak konden problemen met de testomgeving niet worden opgelost en moeten deze worden onderzocht. Coördinatie met de betrokken teams is vereist totdat het probleem is opgelost.
# 4) Omgevingen op één plek onderhouden
Het onderhouden van een gemeenschappelijke opslagplaats van testomgevingen, hun oude compatibiliteit, evenals de nieuwste versies, vormen een grote uitdaging bij het uitvoeren van deze tests. Connectiviteitsgegevens en configuraties van alle versies worden niet behouden.
# 5) Handmatig werk
Er zijn maar weinig activiteiten die bij deze tests zijn betrokken, vereisen handmatig werk, aangezien er geen tools beschikbaar zijn. Dit leidt tot menselijke fouten en vertragingen in het proces.
# 6) Gebrek aan standaarddefinitie voor het testen van infrastructuur
De meeste mensen zijn nog niet op de hoogte van de implementatie en processen. Onjuiste kennis en begrip leiden vaak tot problemen bij de implementatie. Er ontstaan veel nieuwe problemen die van invloed kunnen zijn op het proces om stabiel te zijn.
# 7) Geïsoleerde teams
Er is een grote kloof tussen teamlocaties. Dit leidt meestal tot een gebrek aan transparantie en slecht teamwerk.
Wie kan infrastructuurtests uitvoeren?
Bij deze testvorm zijn verschillende teams betrokken. Deze worden hieronder toegelicht:
# 1) Testteam voor infrastructuur
Het infrastructuurtestteam heeft veel kennis met betrekking tot dit testen. Ze zijn ook betrokken bij het Quality Assurance-team. Dit team weet hoe de IT-infrastructuur moet worden getest. Dit team weet hoe ze testcases moeten ontwerpen voor dit type testen.
# 2) Systeembeheerdersteam
Het systeembeheerteam test vaak de infrastructuur op netwerkniveau. Teamontwerp en documenteer testcases op basis van hun ervaring. Ze zijn ervoor verantwoordelijk dat de toepassingen niet worden beïnvloed na een wijziging in het netwerk.
# 3) Onderhoudsteam voor infrastructuur
Dit team speelt een heel belangrijke rol. Ze worden in een vroeg stadium betrokken en zijn verantwoordelijk voor het opstellen van testomgevingen volgens de eisen. Ze nemen deel aan het plannen van testen en het onderhouden van infrastructuuromgevingen.
# 4) Kwaliteitsborgingsteam
Q Een team is verantwoordelijk voor het uitvoeren van een regressietest. Ze zijn ook betrokken bij integratietesten. Ze voeren tests uit op verschillende testomgevingen die zijn gemaakt volgens verschillende infrastructuur.
# 5) Projectmanager
De projectmanager is verantwoordelijk voor het afhandelen van het project. Ze zijn betrokken bij het plannen, ontwerpen en documenteren van testcases die nodig zijn voor dit type test. Een projectmanager loopt synchroon met alle teams.
Wanneer moeten infrastructuurtests worden uitgevoerd?
Deze tests moeten dringend worden uitgevoerd wanneer er wijzigingen in de infrastructuur worden doorgevoerd.
Voorbeelden van dergelijke wijzigingen zijn:
- Elke nieuwe patch in het systeem wordt ontwikkeld.
- Alle nieuwe systeemupdates worden ervaren.
- Elke update in het besturingssysteem.
- De databaseversie / -structuur is geüpgraded.
- Wanneer er geheugenupgradatie is voor servers.
- Implementatie van de nieuwe tool.
- Beveiligingsoplossingen.
- Software-update.
Soms wordt dit testtype belangrijker wanneer database- of datacenter-migratie wordt aangetroffen. Er is meer focus nodig als er diverse en snelle veranderingen in de applicatie zijn en als het gaat om infrastructuurmigraties.
Het wordt ook uitgevoerd wanneer de ondersteuning van nieuwe apparaten voor software wordt geïntroduceerd.
Voorbeeld:
- Nieuwe laptops / desktops
- Nieuwe mobiele apparaten
- Nieuwe tools van derden
Methodologieën voor het testen van infrastructuur
Hierin hebben we verschillende modules. Weinigen van hen worden hieronder vermeld:
- Server / client-infrastructuur
- Data migratie
- Infrastructuur testen in de cloud
- Testen op netwerkniveau
- Installatie / verwijdering / implementatie
- Testomgeving infrastructuur
- TDD-benadering
# 1) Server / client-infrastructuur
Servers zijn onder meer webservers, bestandsservers, mailservers, proxyservers, virtuele servers en fysieke servers op hardware. De client omvat OS, applicaties, gebruikersinstellingen, etc. Servers draaien verschillende services en deze services kunnen door de clients worden gebruikt.
Het belangrijkste doel is om de kwaliteit van servers, desktops, besturingssystemen en hardware te testen. Server / Client-componenten worden getest om ervoor te zorgen dat de prestaties van de infrastructuur in de productieomgeving worden verbeterd. Het omvat ook het testen van de installatie of het verwijderen van applicaties, het testen van browsercompatibiliteit, het testen van integratie met verschillende versies van het besturingssysteem en gebruikersinstellingen.
Procedure:
- Het belangrijkste is om de vereisten van belanghebbenden te verzamelen.
- Ontwerp een testplan volgens het begrip van de vereiste infrastructuur.
- Vervolgens worden testcases ontworpen voor ondersteuning van besturingssystemen, upgradatiescenario's, de reikwijdte van het testen van server- / clientinfrastructuur en ook het testen van functionaliteit.
- Na goedkeuring van testcases voert QA Team elk scenario en bijbehorende testcases uit.
Alle server / client gerelateerde veranderingen zoals up-gradatie, configuratiewijzigingen zijn al getest op QA setups, dus dit zorgt ervoor dat er minder impact mogelijk is in de productieomgeving. Ook zullen verschillende OS-versies worden getest voordat ze in productie worden genomen. Bovendien, als er iets mislukt in de productie, worden uitwijkprocedures vooraf getest om een back-up te garanderen.
# 2) Gegevensmigratie
Gegevensmigratie omvat gegevens die zijn gemigreerd van de oude versie naar de nieuwe versie, gegevens die zijn gemigreerd van de ene server naar de andere, en ook gegevens die zijn gemigreerd naar verschillende configuraties.
Het belangrijkste doel van het testen van datamigratie is om de datamigraties te testen op verschillende versies, servers, nieuwe builds. Test de applicatie om te bevestigen dat er geen impact is als gevolg van migratie. Gegevensmigratietests worden ook uitgevoerd om de prestaties en latentie in de applicatie te verifiëren.
Procedure:
- Test de applicatie voor en na de migratie.
- Test de servers voor en na de datamigratie om er zeker van te zijn dat er geen wijzigingen worden waargenomen.
- Test of er geen veranderingen worden waargenomen in de prestaties van de applicatie na datamigratie.
- Test de applicatie met verschillende versies van de database
- Test of de nieuwe build compatibel is met alle versies van de database.
- Test verschillende configuratie-instellingen van de server met verschillende databaseversies
Met behulp van datamigratietests kunnen niet-overeenkomende serverconfiguraties worden ontdekt. Eventuele problemen met het bouwen van servers tijdens het uitvoeren van gegevensmigratie kunnen worden opgelost voordat de productie wordt geïmplementeerd. Datamigratietesten verbeteren de kwaliteit en stabiliteit van het product. Dit testen helpt later bij het testen van de installatie tijdens het implementeren van de applicatie in de productieomgeving.
# 3) Infrastructuur testen in de cloud
Informatie en gegevens worden meestal opgeslagen op virtuele servers en deze servers worden bewaard en beheerd door Cloud computing-leveranciers zoals AWS.
Het belangrijkste doel is om de Cloud-services te certificeren voor verschillende versies van applicaties. Test de architectuur van de applicatie op de Cloud. Een echte applicatie wordt gesimuleerd op Cloud en de prestaties en schaalbaarheid van applicaties worden getest.
Procedure:
- Test de belasting van de applicatie met verschillende configuraties.
- Voer regressietests uit en zorg ervoor dat de toepassing geen invloed heeft op de belastingtests.
- Test of een applicatie compatibel is met een browser in een cloudomgeving.
- Test de installatie van de applicatie in de cloud.
- Test of de applicatie werkt zoals verwacht in verschillende cloudomgevingen.
Het testen van de infrastructuur in Cloud zorgt voor een foutloze implementatie van de applicatie in de productieomgeving. Het helpt om de prestaties, schaalbaarheid en stabiliteit van de applicatie te kennen. Het helpt bij het gebruik van de bronnen in de cloud, zoals hardware, software en infrastructuur.
# 4) Testen op netwerkniveau
Het netwerk is het belangrijkste onderdeel van de infrastructuur van de applicatie. Het netwerk helpt bij de communicatie tussen servers, clients en andere netwerken. Netwerken hebben verschillende modules zoals proxyservers, infrastructuur voor internetconnectiviteit.
Het belangrijkste doel is het beheersen en beheren van problemen op netwerkniveau, zoals overmatig gebruik van bronnen, downtime van de server, systeemconfiguratie, de infrastructuur die nodig is voor operaties, patches voor het besturingssysteem.
Procedure:
- Test de netwerklaag voor toekomstige updates van de applicatie.
- Test op fallback-procedures in geval van een storing in de productieomgeving.
- Voer systeemtests, UAT-tests, beveiligingstests uit.
- Ontwerp testcases en bereid testgegevens voor.
- Zorg ervoor dat services op server- / netwerkniveau niet worden beïnvloed na een nieuwe release.
- Test voor het geïsoleerde netwerk.
- Test de impact op de prestaties van de applicatie op verschillende netwerken zoals VPN, Wi-Fi, LAN, enz.
Het testen van infrastructuur op netwerkniveau verbetert de hersteltijd. Het zorgt voor de back-up en herstelt mechanismen. Het helpt ook bij de beveiliging van applicaties.
# 5) Installatie / verwijdering / implementatie
Het belangrijkste doel van het testen van de infrastructuur tijdens het uitvoeren van de installatie is ervoor te zorgen dat wanneer een nieuwe klant de applicatie gebruikt, er geen problemen optreden bij het installeren van de applicatie voor de eerste keer. De applicatie wordt verwijderd om het afsluitproces van de applicatie te testen.
Procedure:
- Test op de installatiepakketten die nodig zijn voor het installeren van de applicatie.
- Test voor extra bibliotheken, bouw pakketten.
- Test de tijd die nodig is om de applicatie te installeren en te verwijderen.
- Installeer de applicatie op verschillende besturingssystemen.
- Test voor vereiste schijfruimte.
- Test of alle bestanden zijn verwijderd na het verwijderen van de applicatie.
Het testen van de infrastructuur tijdens het installeren / verwijderen / inzetten zorgt ervoor dat de applicatie op een bepaald moment via het netwerk kan worden geïnstalleerd. Het zorgt ervoor dat elke patch later kan worden geïnstalleerd of niet. Helpt bij het verbeteren van de opslag die nodig is voor de applicatie.
# 6) Testomgeving-infrastructuur
Een testomgeving is een verzameling hardware, software, tools en processen. Om de testen nauwkeurig en efficiënt uit te voeren, is de testomgeving noodzakelijk. De testomgeving omvat ook de werkplek waar een goed netwerk, pc en stroomvoorziening wordt geleverd aan testers om hun werk uit te voeren.
Het belangrijkste doel is om de software-installatie, applicatieconfiguratie-instellingen te controleren, de juiste testtools te kiezen die testplanning ondersteunen, testuitvoering. Het zorgt ook voor de continuïteit van de testuitvoering.
Procedure:
- Zet een testomgeving op voor regelmatige releases van het project.
- Maak een testomgeving voor hotfix-releases.
- Maak oplossingen om problemen met de server- en clientomgeving te beheren.
- Voltooi testtools voor testplan, testontwerp en uitvoering.
- Beslis tools voor het debuggen en rapporteren van bugs.
- Maak een document voor het instellen van de testomgeving.
Het gebruik van tools en testomgevingen heeft meerdere voordelen. Er wordt een hogere kwaliteit waargenomen. De productiviteit stijgt met het gebruik van tools. Testactiviteiten worden op verwerkte wijze uitgevoerd. Documentatie van de testomgeving helpt nieuwe leden van het team om beter te begrijpen.
# 7) TDD-benadering
Test-Driven Development of TDD-raamwerk is een methode om eerst testcases te schrijven op basis van de vereiste documenten en vervolgens de functionaliteit volgens de test te implementeren.
Het belangrijkste doel is om te weten welke infrastructuurmiddelen nodig zijn voor het project. Het doel is om de infrastructuur voor beveiliging, operaties en productie te definiëren en te organiseren.
Procedure:
hoe je jar-bestand uitvoert op Windows 10
- Ontwerpdocument voor infrastructuurvereisten.
- Ontwerptestplan voor de infrastructuur die nodig is voor de toepassing.
- Ontwerp testcases met infrastructuurtests.
- Test voor verschillende configuraties.
TDD-benadering helpt bij het verbeteren van de complexiteit van het project. Alle wijzigingen in de infrastructuur worden getest voordat ze naar productie gaan. Verschillende mogelijke configuraties kunnen worden geïmplementeerd aangezien tests al zijn ontworpen.
Tools voor het testen van infrastructuur
Chef, Marionet, en Ansible zijn verschillende tools die hetzelfde doel dienen. Deze tools worden gebruikt bij het implementeren en configureren van verschillende servers die nodig zijn voor een applicatie. Deze tools zijn een grote hulp wanneer er complexe taken zijn die verband houden met de infrastructuur. Met behulp van deze tools wordt het voor het team gemakkelijk om taken op meerdere servers samen uit te voeren.
Het team dat deze tools gebruikt, implementeert snel meerdere applicaties, afhankelijkheden en bibliotheken. Andere activiteiten zijn onder meer servers, binaire bestanden, logbestanden, herstelmechanismen, versie-up-gradatie, databasebeheer.
# 1) Chef
Kenmerken: Chef ondersteunt Ruby-domeinspecifieke talen. Daarom wordt het moeilijk voor niet-ontwikkelaars om deze tool te leren. Ondanks dat het moeilijk is voor taalondersteuning, is deze tool zeer beschikbaar. Chef volgt de master-slave-configuratie. In het master-slave-mechanisme kan de primaire server, d.w.z. chef-server, worden vervangen door de back-upserver als er in elk geval een storing optreedt.
We kunnen applicaties inzetten, infrastructuur configureren en ook het netwerk configureren met Chef. Het is niet sterk beveiligd.
Prijs: Het is minder duur dan Puppet maar duurder dan Ansible. De prijs is ongeveer $ 13,5k / jaar tot 100 knooppunten.
Website: Chef
# 2) Marionet
Kenmerken: Puppet is gebouwd met Ruby en ondersteunt DSL en Embedded Ruby. Een programmeur kan de configuratie alleen beheren als de Puppet is geselecteerd voor gebruik. Het team van systeembeheerders is ook op de hoogte van de configuraties van deze tool. Het volgt master-master-architectuur. Als een actieve master een storing ervaart, kan een andere master deze vervangen.
Puppet is handig bij de schaalbaarheid van machines, bij het instellen van verschillende configuraties voor elke host. Als er een wijziging wordt aangebracht in de configuratie, helpt deze tool om wereldwijd wijzigingen aan te brengen. Het is ook niet zo sterk beveiligd hulpmiddel.
Prijs: De prijs is het hoogst met ongeveer $ 11k- $ 20k / jaar voor maximaal 100 knooppunten.
Website: Marionet
# 3) Ansible
Kenmerken: Ansible is geschreven op Python en ondersteunt ook YAML-opdrachtscripts. Python is leesbaar voor mensen en daarom is deze tool ideaal voor systeembeheerders. Het werkt met een enkel actief knooppunt, maar in geval van storingen heeft het ook een secundair knooppunt.
Ansible is zeer schaalbaar, dat wil zeggen dat het probleemloos een groot aantal knooppunten kan beheren. In vergelijking met Puppet is Ansible handiger in termen van schaalbaarheid. In tegenstelling tot Chef en Puppet is het een sterk beveiligde tool met SSH.
Prijs: De prijs is veel lager dan die van Puppet and Chef, ongeveer $ 10k / jaar voor maximaal 100 knooppunten.
Website: Ansible
Gevolgtrekking
Het testen van infrastructuren is noodzakelijk voor de levenscyclus van softwareontwikkeling, aangezien bedrijven hoge kosten maken voor de infrastructuur. In deze zelfstudie worden verschillende onderwerpen behandeld, zoals voordelen, uitdagingen, technieken en mensen die bij dit type test zijn betrokken. Een glimp van tools voor het testen van infrastructuur wordt ook behandeld.
Aanbevolen literatuur
- Prestatiebewaking van applicatie- en IT-infrastructuur met behulp van eG Enterprise Tool (hands-on review)
- Soorten softwaretests: verschillende testtypen met details
- Applicatie testen - In de basis van softwaretesten!
- Wat is gammatesten? De laatste testfase
- Wat is conformiteitstesten (conformiteitstesten)?
- Prestatietests versus belastingtests versus stresstests (verschil)
- Verkennende tests versus scripttests: wie wint?
- Wat is schaalbaarheidstesten? Hoe de schaalbaarheid van een applicatie te testen