test data management concept
In de laatste tutorial hebben we ons gericht op hoe het testbed moet worden voorbereid om defecten in de testomgeving te minimaliseren In vervolg op dezelfde tutorial, zullen we vandaag leren hoe u de testomgeving opzet en onderhoudt en belangrijkTest gegevensbeheertechnieken.
Testomgeving setup-proces
De belangrijkste factor voor de testomgeving is om deze zo dicht mogelijk bij de eindgebruikersomgeving te repliceren. Gewoonlijk wordt van eindgebruikers niet verwacht dat ze zelf een configuratie of installatie uitvoeren, aangezien een compleet product of systeem naar hen wordt verzonden. Vandaar door die definitie, zelfs de testteams hoeven dergelijke configuraties niet expliciet uit te voeren.
Als dergelijke configuraties alleen nodig zijn voor testdoeleinden (maar worden geconfigureerd voor eindgebruikers), moeten beheerders worden geïdentificeerd. De beheerders die de ontwikkelomgeving configureren, moeten dezelfde mensen zijn die de testomgeving configureren.
Als het ontwikkelteam zelf het initiatief neemt bij installatie / configuratie, dan moeten ze helpen om hetzelfde te doen, zelfs in de testomgeving.
Bijvoorbeeld, als u een applicatie moet testen (met de bijbehorende middleware die moet worden geïnstalleerd en geconfigureerd) op een systeem op verschillende OS-platforms, enz. - de beste manier om dit aan te pakken is door virtualisatie of Cloud-omgevingen
Zorg voor een mastersysteem waarin alle applicaties en benodigde middleware correct zijn geïnstalleerd en geconfigureerd. Maak vervolgens van dit systeem een masterimage door het vast te leggen en verschillende instanties van dezelfde image te klonen, zodat elke gebruiker het gevoel heeft dat hij een speciaal systeem heeft met de te testen applicatie.
Hieronder ziet u een grafische weergave van wat een testomgevingsproces zou inhouden:
Testomgeving instellen
Wat je leert:
Onderhoud van een testomgeving
Er is zoveel gezegd over de voorbereiding van de testomgeving, zij het de uitdagingen, dit is ongetwijfeld meer dan een reden om het onderhoud te vereisen of de testomgeving te standaardiseren. Vaak verliest een tester testtijd vanwege de omgeving of installatieproblemen.
Met een snelle toename van de besturingssystemen en het aanbod van hardware en software, moet de omgeving bijna dynamisch van aard zijn om aan de behoeften te kunnen voldoen. Testteams kunnen ervoor zorgen dat ze een kwalitatief hoogstaand product leveren met een goed testmanagementproces en dit zou helpen om optimaal gebruik te maken van middelen die beperkt beschikbaar zijn.
Belangrijke tips om effectief onderhoud van de testomgeving te garanderen
Omdat testomgevingen meestal heterogene platforms en stacks bevatten, worden hieronder enkele belangrijke tips gegeven om effectief onderhoud van de testomgeving te garanderen.
# 1) Effectief delen en verspreiden van de omgeving:
Zoals eerder vermeld, is een van de belangrijkste uitdagingen bij de voorbereiding van testomgevingen dat veel teams of mensen dezelfde set resources moeten gebruiken voor hun testdoeleinden. Daarom moet een geschikt deelmechanisme worden ontwikkeld dat voorziet in de behoeften van alle teams en mensen zonder tijdschema's te vertragen.
Dit kan worden bereikt door een repository of informatielink te onderhouden waarin alle gegevens met betrekking tot:
- wie gebruikt de omgeving,
- wanneer de omgeving vrij te gebruiken is en
- hoe de verdeling van de gebruiksduur van de omgeving nauwkeurig wordt ingevoerd.
Door proactief te bepalen waar de behoefte aan resources groot is versus de beperkte beschikbaarheid ervan, wordt een grote hoeveelheid chaos automatisch teniet gedaan.
Het tweede aspect hiervan is om de resourcevereisten van de teams voor elk opnieuw te bekijken testcyclus en kijk welke bronnen niet erg intensief worden gebruikt. Analyseer of die specifieke bronnen kunnen worden vervangen door nieuwe bronnen of systemen die mogelijk nodig zijn.
# 2) Sanity checks:
Sommige testvereisten vereisen een uitgebreide testopstelling of -opstelling met uitgebreide stappen die extreem veel tijd in beslag nemen. Dit is met name het geval tijdens de end-to-end testen die twee of meer componenten omvat om samen te werken. Daarom moet dezelfde testomgeving mogelijk door meerdere teams worden hergebruikt.
In dergelijke gevallen zal het hebben van een goed begrip van de hele omgeving als geheel en het verzamelen van de soorten tests die door verschillende teams worden uitgevoerd, een redelijk beeld schetsen om te helpen bij het verstrekken van die specifieke middelen aan de respectieve teams.
Rekening houdend met de bovenstaande factoren, kunnen elementaire gezondheidstests worden uitgevoerd die helpen bij het versnellen van de tests voor individuele teams of ze onmiddellijk alarmeren als de omgeving een aantal veranderingen of reparaties moet ondergaan als gevolg van die gezondheidscontroles.
# 3) Uitval bijhouden:
Net zoals elk team dat een testomgeving heeft, zijn eigen testomgeving heeft, laat een organisatie alle mogelijke testomgevingen onderhouden door een wereldwijd supportteam.
Bovendien, net zoals teams die eigenaar zijn van hun testomgeving hun eigen lokale downtime hebben in geval van firmware- / software-upgrades, moeten de wereldwijde teams er ook voor zorgen dat alle omgevingen voldoen aan de nieuwste normen, wat kan leiden tot stroom- of netwerkuitval.
Daarom moeten degenen die de testomgeving onderhouden, eventuele storingen in de gaten houden en het testteam vooraf informeren om hun werk dienovereenkomstig te plannen.
# 4) Virtualiseer waar mogelijk:
Dit is weer erg relevant wanneer er getest moet worden met het delen van de omgeving en er een grote behoefte is aan optimalisatie van middelen. In dergelijke tijden is het gebruik van een gevirtualiseerde omgeving zoals een cloud voor testdoeleinden de oplossing.
Bij het gebruik van een dergelijke omgeving hoeven de testers alleen een instant te bieden en deze instantie, zodra deze is ingericht, vormt een onafhankelijke testbed of testomgeving met alle verschillende bronnen, zoals een speciaal besturingssysteem, database, middleware, automatiseringsframeworks. , etc. vereist voor het testen.
Zodra het testen is voltooid, kunnen deze instanties worden vernietigd, waardoor de kosten voor een organisatie aanzienlijk worden verlaagd. Cloud-omgevingen zijn met name handig voor functionele verificatietests en automatiseringstests.
# 5) Regressietesten / automatisering:
youtube video-downloader-app voor pc
Als er nieuwe functies en features worden ontwikkeld, regressietests moeten voor deze functies voor elke releasecyclus worden uitgevoerd. Dus hoewel op de posterieure testomgevingen voor regressietesten op dezelfde testopstelling lijken te draaien met dezelfde gegevens, evolueren ze in werkelijkheid elke release voortdurend in overeenstemming met de functies die ook worden geïmplementeerd.
Elke productreleasecyclus zou een of meer regressietests bevatten. Het opzetten van regressietestomgevingen voor elke productreleasecyclus en het hergebruik ervan binnen de cyclus zou dus zeker de stabiliteit van de testomgeving uitbeelden.
Het ontwikkelen van automatiseringsframeworks en het gebruik van automatisering voor regressieve tests, helpt ook bij het verbeteren van de efficiëntie van een testomgeving, omdat automatisering ervan uitgaat dat de omgeving stabiel is en de defecten die worden veroorzaakt puur feature / code-georiënteerd zijn.
# 6) Algemeen bestuur:
Als er problemen zijn met de hardware of software van de testomgeving, moeten deze problemen worden doorverwezen naar de juiste mensen om ervoor te zorgen dat ze worden opgelost als ze niet intern kunnen worden opgelost door degenen die het laboratorium onderhouden.
Bijvoorbeeld, als een test een defect aan het licht brengt dat bestaat uit een beperking in de firmware of de software die in de huidige omgeving wordt gebruikt, kan dit over het algemeen niet alleen worden opgelost door degenen die verantwoordelijk zijn voor het onderhoud van de omgeving.
Daarom moet de consument (die in dit geval de tester is) worden gevraagd om passende serviceverzoeken in te dienen. Deze moeten naar de juiste leverancier of het juiste team worden gestuurd en er moet regelmatig met hen worden gecoördineerd om ervoor te zorgen dat de volgende versie het specifieke probleem verhelpt.
Een ander aspect van governance zou zijn om van tijd tot tijd gedetailleerde milieurapporten te verstrekken aan het management of belanghebbenden, wat helpt om transparantie uit te stralen en een goede basis vormt voor elke analyse.
Voorbereiding van testgegevens
Laten we nu eens kijken naar het laatste deel van een Testbedcreatie - dit omvat het instellen van de testgegevens Omdat er zoveel wordt gezegd over de testomgeving, kan de ware essentie van de testomgeving, de robuustheid en efficiëntie ervan worden gemeten met de testgegevens. De testgegevens zijn per definitie elke vorm van invoer die wordt gegeven aan de softwarecode die wordt getest.
Ook al besteden we veel tijd aan het ontwerpen van testcases, de reden dat testdata belangrijk is, is dat ze zorgen voor volledige testdekking voor allerlei scenario's, waardoor de kwaliteit verbetert. Er kunnen enkele testgegevens zijn die nodig zijn voor het testen van een gelukkig of positief pad.
Sommige andere gegevens kunnen worden ontworpen voor fout- of negatieve tests, wat erg handig is om te ontdekken hoe de toepassing presteert in abnormale situaties.
Testgegevens worden over het algemeen gemaakt voordat de uitvoering van de tekst begint, omdat elke testomgeving zijn eigen complexiteit heeft of omdat het voorbereiden van de gegevens zelf een langdurig proces kan zijn. Over het algemeen kunnen de testgegevensbronnen dus het interne ontwikkelingsteam zijn of de eindgebruikers die de code of functie gebruiken.
Bijvoorbeeld,Functie testen
Laten we een voorbeeld nemen waarin u functionele tests of black-box-tests moet uitvoeren. Hierbij is het doel dat de code functioneel moet voldoen aan de gestelde eisen.
Dus in dergelijke gevallen - de voorbereiding van testcases moet in het algemeen betrekking hebben op de volgende soorten gegevens:
- Positieve padgegevens: Met het use case-document voor ontwikkeling als referentie, zijn dit de gegevens die over het algemeen synchroon lopen met het uitvoeren van de positieve padscenario's.
- Negatieve padgegevens: Dit zijn gegevens die over het algemeen als 'ongeldig' worden beschouwd met betrekking tot de juiste functionele werking van de code.
- Null-gegevens: Geen data aanleveren als de applicatie of code die data verwacht.
- Foutieve gegevens: Bepalen van de prestaties van de code wanneer gegevens in een illegaal formaat worden aangeleverd.
- Gegevens randvoorwaarden: Test gegevens die uit de index of array worden geleverd om te bepalen hoe de code presteert.
Testgegevens spelen een sleutelrol bij het bepalen waar een product of functie volledig kan breken. Zorg er altijd voor dat het soort gegevens dat in de verschillende testfasen aan de testomgeving wordt toegevoerd, wordt gepolld en gevalideerd.
Test gegevensbeheer
Wanneer testgegevens zo'n belangrijke rol spelen bij het waarborgen van de kwaliteit van het product, is het redelijk om te zeggen dat het beheer en de stroomlijning ervan ook een even belangrijke rol spelen bij de kwaliteitsborging van elk product dat aan de klanten moet worden vrijgegeven.
Behoefte aan testgegevensbeheer en best practices:
# 1) Een groot aantal organisaties heeft snel veranderende bedrijfsdoelen om tegemoet te komen aan de behoeften van de eindgebruiker en daarom is het onnodig te vermelden dat de juiste testgegevens essentieel zijn voor het bepalen van de kwaliteit van de tests. Dit omvat het opstellen van de exacte soort gegevens voor de respectievelijke testomgevingen en het monitoren van de gedragspatronen.
Zoals eerder besproken, wordt een groot deel van de tijd van een testteam besteed aan het plannen van testgegevens en de bijbehorende taken. Vaak wordt het testen van welke functionaliteit dan ook ernstig belemmerd door de niet-beschikbaarheid van geschikte testgegevens, wat een cruciale uitdaging vormt met betrekking tot de volledige testdekking.
#twee) Soms ook voor bepaalde testvereisten testgegevens moeten constant worden ververst Dit veroorzaakt op zichzelf veel vertraging in de cyclus vanwege constant herwerk, wat ook de kosten verhoogt van de applicatie die op de markt komt.
In bepaalde andere tijden, als het product dat wordt verzonden, betrokken is bij verschillende werkgroepeenheden in een grote organisatie, vereist het creëren en vernieuwen van testgegevens een ingewikkelde mate van coördinatie tussen deze werkgroepen.
# 3) Hoewel de testteams allerlei soorten gegevens moeten creëren die mogelijk zijn om te zorgen voor voldoende testen, moeten organisaties ook bedenken dat dit zou betekenen dat alle verschillende soorten gegevens in een soort van opslagplaats moeten worden opgeslagen.
Hoewel het hebben van een repository een goede gewoonte is, moet u buitensporige en ongewenste gegevens zou niet alleen de opslagruimte aanzienlijk vergroten om deze grote brokken gegevens op te slaan, maar het ook steeds uitdagender maken om de juiste gegevens voor de betreffende tests op te halen als er geen versieonderhoud en archivering van deze repository is.
De meeste organisaties worden over het algemeen geconfronteerd met deze gemeenschappelijke uitdagingen met betrekking tot testgegevens. Er moeten dus enkele beheerstrategieën worden ingevoerd om de omvang van deze uitdagingen tot een minimum te beperken.
Hieronder volgen enkele voorgestelde methodologieën voor het beheer van de testgegevens en houden deze relevant voor de testbehoeften. De volgende praktijken zijn erg basaal en algemeen, en zullen gewoonlijk voor de meeste organisaties werken. Hoe het wordt aangenomen, is puur de discretie van de respectieve organisaties.
Test datamanagementstrategieën
# 1) Analyse van gegevens
Over het algemeen worden testgegevens opgebouwd op basis van de uit te voeren testgevallen. Bijvoorbeeld in een systeemtestteam, het end-to-end testscenario moet worden geïdentificeerd op basis waarvan de testgegevens zijn ontworpen. Het kan zijn dat een of meer applicaties werken.
Zeg in een product dat werklastbeheer doet - het betreft de beheercontroller-applicatie, de middleware-applicaties, de databasetoepassingen die allemaal in onderlinge samenhang functioneren. De vereiste testgegevens voor hetzelfde kunnen worden verspreid. Een grondige analyse van alle verschillende soorten gegevens die nodig kunnen zijn, moet worden gemaakt om een effectief beheer te garanderen.
# 2) Gegevensinstellingen om de productieomgeving te spiegelen
Dit is meestal een uitbreiding van de vorige stap en maakt het mogelijk om te begrijpen wat het eindgebruiker- of productiescenario zal zijn en welke gegevens daarvoor nodig zijn. Gebruik die gegevens en vergelijk die gegevens met de gegevens die momenteel in de huidige testomgeving bestaan. Op basis van deze gegevens moeten mogelijk nieuwe gegevens worden gemaakt of gewijzigd.
# 3) Bepaling van de opschoning van testgegevens
Op basis van de testvereiste in de huidige release-cyclus (waarbij een release-cyclus zich over een lange tijd kan uitstrekken), moeten de testgegevens mogelijk worden gewijzigd of gemaakt zoals vermeld in het bovenstaande punt. Deze testgegevens zijn, hoewel niet onmiddellijk relevant, mogelijk op een later tijdstip vereist. Daarom moet een duidelijk proces worden geformuleerd om te oordelen wanneer de testgegevens kunnen worden opgeschoond.
# 4) Identificeer gevoelige gegevens en bescherm deze
Om applicaties goed te kunnen testen, kan er vaak een grote hoeveelheid zeer gevoelige gegevens nodig zijn. Bijvoorbeeld, een cloudgebaseerde testomgeving is een populaire keuze omdat het on-demand testen van verschillende producten mogelijk maakt.
Iets zo basaals als het garanderen van de privacy van gebruikers in een cloud baart echter zorgen. Dus vooral in gevallen waarin we de gebruikersomgeving moeten repliceren, moet het mechanisme om gevoelige gegevens af te schermen worden geïdentificeerd. Het mechanisme wordt grotendeels bepaald door het volume van de gebruikte testgegevens.
# 5) Automatisering
Net zoals we automatisering toepassen voor het uitvoeren van herhaalde tests of voor het uitvoeren van dezelfde tests met verschillende soorten gegevens, is het ook mogelijk om het maken van testgegevens te automatiseren. Dit zou helpen bij het blootleggen van eventuele fouten die kunnen optreden met betrekking tot gegevens tijdens het testen. Een mogelijke manier om dit te doen, is door de resultaten te vergelijken die worden geproduceerd door een set gegevens van opeenvolgende testruns. Automatiseer vervolgens dit vergelijkingsproces.
# 6) Effectieve gegevensverversing met behulp van een centrale opslagplaats
Dit is verreweg de belangrijkste methodologie en vormt de kern van het implementeren van datamanagement. Alle hierboven genoemde punten, vooral die met betrekking tot de gegevensopbouw, het opschonen van gegevens, houden hier direct of indirect verband mee.
Veel moeite bij het maken van testgegevens kan worden bespaard door een centrale opslagplaats te onderhouden die allerlei soorten gegevens bevat die mogelijk nodig zijn voor verschillende soorten testen. Hoe wordt dit gedaan? Controleer in opeenvolgende testcycli voor een nieuwe testcase of een gewijzigde testcase of de gegevens in de repository aanwezig zijn. Indien niet aanwezig, voer die gegevens dan eerst in de testomgeving in.
Vervolgens kan dit naar deze repository worden geleid voor toekomstig gebruik. Nu kan het testteam voor opeenvolgende releasecycli alle of een deel van deze gegevens gebruiken. Is het voordeel niet erg duidelijk? Afhankelijk van de sets met gegevens die vaak worden gebruikt, kunnen verouderde gegevens gemakkelijk worden verwijderd en zo ervoor zorgen dat de juiste gegevens altijd aanwezig zijn, waardoor de kosten voor het opslaan van die onnodige gegevens worden verlaagd.
Ten tweede kunt u ook een aantal versies van deze repository laten opslaan of deze indien nodig herzien. Het hebben van verschillende versies van de repository kan enorm helpen bij regressietests om te bepalen welke verandering in gegevens ervoor kan zorgen dat de code breekt.
Gevolgtrekking
De testomgeving zou in elk testteam van primordiaal belang moeten zijn. Elke release-cyclus brengt een hele reeks nieuwe uitdagingen met zich mee om te bestrijden met een onbetrouwbare en ongeplande testomgeving.
Als revolutionaire maatregel passen veel organisaties nu strategieën toe, zoals het vormen van speciale testomgevingonderhoudsteams die bepaalde kaders vaststellen voor effectief onderhoud van de testomgevingen, om te zorgen voor soepelere releasecycli.
Verbeterd testen is slechts een duidelijk effect van het stroomlijnen van testdatamanagement. Een belangrijke essentie hiervan is dat het zorgt voor een kosteneffectieve oplossing voor organisaties zonder concessies te doen aan de betrouwbaarheid van het product.
Laat ons weten hoe u uw testomgeving beheert en hoe u testdata voorbereidt? Tips toevoegen?
Aanbevolen literatuur
- Top 14 BESTE testgegevensbeheertools in 2021
- De 10 beste tools voor gegevensanalyse voor perfect gegevensbeheer [2021 LIST]
- Testmanagement-zelfstudie: een ultieme gids voor testmanagement
- Wat zijn testgegevens? Test gegevensvoorbereidingstechnieken met voorbeeld
- Datapoolfunctie in IBM Rational Quality Manager voor testgegevensbeheer
- Selenium Framework maken en toegang krijgen tot testgegevens vanuit Excel - Selenium Tutorial # 21
- Testgegevens genereren met GEDIS Studio Online Tool (deel 2)