sql >> Database >  >> RDS >> Database

Wat is databasetesten en hoe voer je het uit?

Gegevens vormen het hart van elke softwaretoepassing en dat geldt ook voor de Database waarin die gegevens zijn ondergebracht. Maar met de toename van de omvang van gegevens of databases neemt ook de complexiteit toe, waardoor het moeilijk wordt om met de gegevens om te gaan. Het valideren van gegevens wordt dus zeer noodzakelijk. Dit is waar databasetesten van pas komen en helpen bij het controleren van de kwaliteit, veiligheid en juistheid van gegevens die een toepassing ophaalt of opslaat in de database. Via het medium van dit artikel zal ik je er volledig inzicht in geven.

Hieronder staan ​​de onderwerpen die in deze tutorial worden behandeld:

  • Wat is databasetesten?
  • Waarom is databasetesten vereist?
  • Soorten databasetests
    • Structurele testen
    • Functioneel testen
    • Niet-functionele tests
  • Databasetestfasen
  • Testtools voor databases

Laten we dus aan de slag gaan.

Wat is databasetesten?

Voordat ik het heb over wat databasetesten is, wil ik u eerst informeren over databases. Een database is niets anders dan een systematische verzameling van gegevens die gegevensopslag biedt en helpt bij gegevensmanipulatie. Gegevensbeheer wordt heel eenvoudig door deze databases te gebruiken, aangezien databases objecten gebruiken voor het beheren van de gegevens, zoals tabellen voor het opslaan van gegevens, weergave voor gegevensrepresentaties, functies en triggers voor gegevensmanipulatie.

Databasetesten verwijst naar het proces van het valideren van de gegevens die in een database zijn opgeslagen door de objecten te verifiëren die de gegevens beheren en de verschillende functionaliteiten eromheen. Over het algemeen worden de activiteiten zoals het controleren van gegevensvaliditeit, het testen van gegevensintegriteit, prestatiecontrole, het testen van verschillende procedures, triggers en functies in de database behandeld tijdens het testen van de database.

Maar om databasetests uit te voeren, is een gedegen kennis van SQL erg belangrijk. Maak je geen zorgen als je niet over de vereiste expertise beschikt, je kunt dit artikel raadplegen over SQL Basics om ermee aan de slag te gaan.

Waarom databasetesten?

Zoals we weten, is de database een dump van gegevens waar de gegevens in een enorme hoeveelheid worden verzameld en in een gestructureerd formaat worden opgeslagen. Hoewel DBMS (DataBase Management System) biedt een georganiseerde manier om deze gegevens te beheren, op te halen en op te slaan, er zijn gevallen waarin gegevens overbodig kunnen worden, gedupliceerd, enz. In dergelijke gevallen komt databasetesten in beeld, wat ons helpt bij het valideren van de gegevens. Hieronder heb ik verschillende aspecten op een rij gezet op basis waarvan een database gevalideerd moet worden:

  1. Gegevenstoewijzing
    Datamapping is een integraal aspect van het testen van databases, dat zich richt op het valideren van de gegevens die heen en weer gaan tussen de applicatie en de backend-database.
  2. validatie van ACID-eigenschappen
    ZUUR staat voor A tomiciteit, C aanhoudende, ik isolatie, en D duurzaamheid. Dit is een ander belangrijk aspect dat moet worden bevestigd bij elke databasetransactie.

    • Atomiciteit :Dit betekent dat alle databasetransacties atomair zijn, d.w.z. dat de transacties kunnen leiden tot succes of mislukking. Ook bekend als Alles-of-Niets .
    • Consistentie :Dit betekent dat de databasestatus geldig blijft nadat de transactie is voltooid.
    • Isolatie :Dit betekent dat meerdere transacties tegelijk kunnen worden uitgevoerd zonder elkaar te beïnvloeden en de databasestatus te wijzigen.
    • Duurzaamheid :Dit betekent dat wanneer een transactie eenmaal is vastgelegd, deze de wijzigingen zonder fouten behoudt, ongeacht het effect van externe factoren.
  3. Gegevensintegriteit
    Het testen van de gegevensintegriteit van een database verwijst naar het proces van het evalueren van allerlei soorten processen, bewerkingen en methoden die worden gebruikt voor het openen, beheren en bijwerken van de database, ook wel bekend als de CRUD activiteiten. Dit is uitsluitend gericht op het testen van de nauwkeurigheid en consistentie van de gegevens die in de database zijn opgeslagen, zodat we de verwachte of gewenste resultaten krijgen.
  4. Conformiteit met zakelijke regels
    Met de toename van de complexiteit van de databases beginnen verschillende componenten zoals relationele beperkingen, triggers, opgeslagen procedures, enz. ook te compliceren. Om dit te voorkomen, bieden de testers enkele SQL-query's die geschikt genoeg zijn om de complexe objecten te valideren.

Soorten databasetests

Er zijn 3 soorten databasetests die ik hieronder heb opgesomd:

  1. Structurele testen
  2. Functioneel testen
  3. Niet-functionele testen

Laten we nu elk van deze typen en hun subtypen een voor een bekijken.

Structurele tests

Het testen van de structurele database is het proces van het valideren van alle elementen die aanwezig zijn in de gegevensopslag en die voornamelijk worden gebruikt voor gegevensopslag. Deze elementen kunnen niet rechtstreeks door de eindgebruikers worden gemanipuleerd. Het valideren van databaseservers is een van de belangrijkste overwegingen en de testers die erin slagen deze fase met succes te voltooien, verwerven beheersing in SQL-query's.

Verschillende soorten structurele tests zijn:

  • Schema testen

Dit type testen wordt ook wel mapping-testen genoemd en wordt uitgevoerd om ervoor te zorgen dat de schema-mapping van de front-end en de back-end synchroon lopen. Enkele van de belangrijke controlepunten van deze test zijn:

    • Valideert verschillende typen schema-indelingen die aan de databases zijn gekoppeld.
    • Verificatie is vereist voor niet-toegewezen tabellen/weergaven/kolommen.
    • Verificatie is ook vereist om de consistentie van de heterogene databases in een omgeving met de algemene toepassingstoewijzing te garanderen.
    • Biedt verschillende tools voor validatie van databaseschema's.
  • Databasetabel en kolomtesten

Enkele van de belangrijke controlepunten van deze test zijn:

    • De compatibiliteit van databasevelden en kolommentoewijzing aan de achterkant en de voorkant.
    • Het valideren van de lengte en naamgeving van de databasevelden en kolommen volgens de vereisten.
    • Ongebruikte/niet-toegewezen databasetabellen/kolommen detecteren en valideren.
    • Het valideren van de compatibiliteit van het gegevenstype en de veldlengtes in de backend-databasekolommen met de voorkant van de toepassing.
    • Valideert dat de gebruikers in staat zijn om de gewenste invoer te geven met behulp van de databasevelden die zijn gespecificeerd in de specificatiedocumenten voor de zakelijke vereisten.
  • Toetsen en indexen testen

Enkele van de belangrijke controlepunten van deze test zijn:

    • Zorg ervoor dat de vereiste primaire sleutel en de externe sleutelbeperkingen al aanwezig zijn in de vereiste tabellen.
    • Valideer de referenties van de refererende sleutels.
    • Zorg ervoor dat in twee tabellen het gegevenstype van de primaire sleutel en de bijbehorende externe sleutels hetzelfde zijn.
    • Valideer de namen van alle sleutels en indexen op basis van de naamgevingsconventies.
    • Controleer de vereiste velden en indexen grootte en lengte.
    • Zorg ervoor dat de geclusterde indexen en niet-geclusterde indexen in de vereiste tabellen worden gemaakt volgens de zakelijke vereisten.
  • Opgeslagen procedures testen

Enkele van de belangrijke controlepunten van deze test zijn:

    • Bevestig de goedkeuring van de vereiste coderingsstandaardconventies, uitzonderingen en foutafhandeling voor alle opgeslagen procedures door het ontwikkelingsteam in alle modules van de applicatie die wordt getest.
    • Zorg ervoor dat het ontwikkelteam alle voorwaarden/lussen heeft gedekt door de vereiste invoergegevens toe te passen op de applicatie die wordt getest.
    • Controleer of het ontwikkelteam de TRIM-bewerkingen correct heeft toegepast of niet elke keer dat de gegevens uit de opgegeven databasetabellen zijn opgehaald.
    • Zorg ervoor dat de vereiste uitvoer wordt gegenereerd door de opgeslagen procedures handmatig uit te voeren.
    • Zorg ervoor dat de tabelvelden worden bijgewerkt zoals gespecificeerd door de applicatie die wordt getest door de Opgeslagen Procedures handmatig uit te voeren.
    • Zorg ervoor dat de vereiste triggers impliciet worden aangeroepen door de Opgeslagen Procedures uit te voeren.
    • Detecteer en valideer alle ongebruikte opgeslagen procedures.
    • De Null-voorwaarde valideren op databaseniveau.
    • Zorg ervoor dat alle opgeslagen procedures en functies zijn uitgevoerd en getest op de lege database die wordt getest.
    • Bevestig de algehele integratie van de modules voor opgeslagen procedures zoals gespecificeerd in de vereisten van de applicatie die wordt getest.
  • Triggertesten

Enkele van de belangrijke controlepunten van deze test zijn:

    • Bevestigen dat de vereiste coderingsconventies worden gevolgd in de coderingsfase van de triggers.
    • Zorg ervoor dat de uitgevoerde triggers voldoen aan de vereiste voorwaarden voor de respectievelijke DML-transacties.
    • Controleer of de gegevens correct zijn bijgewerkt nadat de triggers zijn uitgevoerd.
    • Valideer de functionaliteiten zoals Update, Invoegen, Verwijderen activeert de functionaliteit van de te testen applicatie.
  • Databaseservervalidaties

Enkele van de belangrijke controlepunten van deze test zijn:

    • Valideer de databaseserverconfiguraties zoals gespecificeerd in de zakelijke vereisten.
    • Zorg ervoor dat de vereiste gebruiker alleen die niveaus van acties uitvoert die vereist zijn door de applicatie die wordt getest.
    • Zorg ervoor dat de databaseserver kan voldoen aan de behoeften van het maximale aantal gebruikerstransacties dat is toegestaan ​​zoals in de specificaties van de zakelijke vereisten.

Functioneel testen

Het testen van functionele databases is het proces dat ervoor zorgt dat de transacties en bewerkingen die door de eindgebruikers worden uitgevoerd, consistent zijn met de bedrijfsspecificaties.

Verschillende soorten functionele tests zijn:

  • Black Box-testen

Black Box Testing verwijst naar het proces dat verschillende functionaliteiten controleert door de integratie van de database te verifiëren. Hierbij zijn de testgevallen meestal eenvoudig en worden ze gebruikt om de inkomende en uitgaande gegevens van de functie te verifiëren. Verschillende technieken zoals oorzaak-gevolg-grafiektechniek, grenswaarde-analyse en equivalentiepartitionering worden gebruikt om de databasefunctionaliteit te testen. Het wordt over het algemeen uitgevoerd in de vroege ontwikkelingsstadia en kost minder in vergelijking met andere functionele tests. Maar het heeft enkele nadelen, zoals sommige fouten die er niet door kunnen worden gedetecteerd en er is geen specificatie over hoeveel van het programma moet worden getest.

  • White Box-testen

White Box Testing houdt zich bezig met de interne structuur van de database en de gebruikers zijn niet op de hoogte van de specificatiedetails. Voor deze test zijn database-triggers en tests voor logische weergaven vereist die de refactoring van de database ondersteunen. Bovendien worden hierin ook databasefuncties, triggers, views, SQL-query's, etc. getest. White box-testen worden gebruikt om de databasetabellen, gegevensmodellen, het databaseschema, enz. te valideren. Het houdt zich aan de regels van referentiële integriteit en selecteert de standaardtabelwaarden om de databaseconsistentie te verifiëren. Technieken zoals conditiedekking, beslissingsdekking, verklaringsdekking, enz. worden vaak gebruikt om White Box-tests uit te voeren. In tegenstelling tot Black Box-tests kunnen coderingsfouten eenvoudig worden gedetecteerd om de interne bugs in de database te elimineren. Het enige nadeel van dit soort testen is dat het geen betrekking heeft op de SQL-statements.

Niet-functionele tests

Niet-functioneel testen is het proces van het uitvoeren van belastingtests, stresstests, het controleren van de minimale systeemvereisten die nodig zijn om aan de bedrijfsspecificaties te voldoen, samen met het detecteren van risico's en het optimaliseren van de prestaties van de database.

Belangrijke soorten niet-functionele tests zijn:

  • Belastingstest

De primaire functie van het uitvoeren van load-tests is het valideren van de prestatie-impact van de meeste actieve transacties in de database. Bij deze test is een tester nodig om de volgende voorwaarden te controleren −

    • Wat is de vereiste reactietijd voor het uitvoeren van transacties voor meerdere gebruikers die zich op afstand bevinden?
    • Hoe lang duurt het voor de database om de specifieke records op te halen?
  • Stresstesten

Stresstesten is een testproces dat wordt uitgevoerd om het breekpunt van het systeem te identificeren. Bij deze test wordt dus een applicatie geladen totdat het systeem faalt. Dit punt staat bekend als een breekpunt van het databasesysteem. De meest gebruikte stresstesttools zijn LoadRunner en WinRunner .

Laten we eens kijken wat de verschillende fasen zijn die betrokken zijn bij het testen van databases.

Databasetestfasen

DB-testen is geen vervelend proces en omvat verschillende fasen in de levenscyclus van databasetests in overeenstemming met de testprocessen.

De belangrijkste fasen bij het testen van databases zijn:

  1. Vereisten voor testen instellen
  2. Voer de tests uit
  3. Teststatus verifiëren
  4. Resultaten valideren
  5. Consolideer en publiceer rapport

Nu je weet wat databasetesten is en hoe je het moet uitvoeren, wil ik nu wat licht werpen op verschillende tools die voornamelijk worden gebruikt voor databasetests.

Testtools voor databases

Er zijn tal van tools op de markt die worden gebruikt om de testgegevens te genereren, te beheren en uiteindelijk databasetests uit te voeren, zoals Load Testing en Regression Testing, enz. Hieronder heb ik een lijst gemaakt van enkele van de meest geprefereerde tools:

Categorie Hulpprogramma's
Gegevensbeveiligingstools
  • IBM Optim-gegevensprivacy
Testtools laden
  • Webprestaties
  • Radweergave
  • Mercurius
Test gegevensgeneratortools
  • Datafabriek
  • DTM-gegevensgenerator
  • Turbogegevens
Test Data Management Tool
  • IBM Optim-testgegevensbeheer
Testtools voor eenheden
  • SQLUnit
  • TSQLUnit
  • DBFit
  • DBUnit

Dus dat ging allemaal over databasetesten. Hiermee wil ik dit artikel besluiten. Ik hoop dat dit artikel je heeft geholpen bij het toevoegen van waarde aan je kennis. Voor meer informatie over SQL of Databases, kunt u hier onze uitgebreide leeslijst raadplegen:Databases Edureka .

Als je een gestructureerde training over MySQL wilt krijgen, bekijk dan onze MySQL DBA-certificeringstraining die wordt geleverd met een door een instructeur geleide live training en real-life projectervaring. Deze training zal u helpen MySQL diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld dit in het opmerkingengedeelte van 'Databasetesten ” en ik zal contact met je opnemen.


  1. Magicbricks migreert naar MariaDB om het grote verkeer te ondersteunen

  2. Hoe een weergave te maken in Oracle

  3. postgresql genereert een reeks zonder tussenruimte

  4. Hoe ORIGINAL_DB_NAME() werkt in SQL Server