Wat is databasetesten en hoe voer je het uit?



In dit artikel over databasetests worden de basisprincipes uitgelegd van wat databasetests zijn, waarom het wordt uitgevoerd, de verschillende typen en de populaire tools die worden gebruikt.

Gegevens vormen het hart van elke softwaretoepassing, net als de waarin die gegevens zijn ondergebracht. Maar met de toename van de omvang van de gegevens of de complexiteit van de database neemt ook toe, waardoor het moeilijk wordt om met de gegevens om te gaan. Het valideren van gegevens wordt dus zeer noodzakelijk. Dit is waar databasetests van pas komen en helpen bij het controleren van de kwaliteit, beveiliging en juistheid van gegevens die een toepassing ophaalt of opslaat in de database. Door middel van dit artikel zal ik u er een volledig inzicht in geven.

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





Dus laten we beginnen.

het ontleden van xml-bestand in java

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 gegevens die gegevensopslag biedt en helpt bij gegevensmanipulatie. Gegevensbeheer wordt heel eenvoudig met behulp van deze databases, aangezien databases gebruiken objecten voor het beheren van de gegevens, zoals tabellen voor het opslaan van gegevens, weergave voor gegevensweergaven, functies en triggers voor gegevensmanipulatie.



Nu,Databasetests verwijst naar het proces van het valideren van de gegevens die in een database worden opgeslagen door de objecten te verifiëren die de gegevens en verschillende functionaliteiten eromheen besturen. Over het algemeen worden de activiteiten zoals het controleren van de gegevensvaliditeit, het testen van de gegevensintegriteit, het controleren van de prestaties, het testen van verschillende procedures, triggers en functies in de database gedekt tijdens het testen van de database.

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

Waarom databasetesten?

Zoals we weten, is de database een verzameling gegevens waar de gegevens in een enorme hoeveelheid worden verzameld en in een gestructureerd formaat worden opgeslagen. Hoewel (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, etc. In dergelijke gevallen komen databasetesten in beeld die ons helpen bij het valideren van de gegevens. Hieronder heb ik verschillende aspecten op een rijtje gezet op basis waarvan een database gevalideerd moet worden:



  1. Gegevens in kaart brengen
    Datamapping is een integraal aspect van databasetests dat zich richt op het valideren van de gegevens die heen en weer gaan tussen de applicatie en de backend-database.
  2. ACID-eigenschappen validatie
    ZUUR betekent NAAR tomiciteit, C consistentie, ik solation, en D urability. Dit is een ander belangrijk aspect dat bij elke databasetransactie moet worden bevestigd.

    • Atomiciteit : Dit betekent dat alle databasetransacties atomair zijn, d.w.z. de transacties kunnen resulteren in succes of mislukking. Ook gekend 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 enige fout zal behouden, ongeacht het effect van externe factoren.
  3. Data-integriteit
    Het testen van de gegevensintegriteit van een database verwijst naar het proces van het evalueren van allerlei processen, bewerkingen en methoden die worden gebruikt voor toegang tot, beheer en bijwerken van de database, ook wel bekend als de WREED operaties. 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 ingewikkelder te worden. Om dit te voorkomen, bieden de testers enkele SQL-queries 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 testen

De structurele databasetest is het proces waarbij alle elementen worden gevalideerd die aanwezig zijn in de gegevensrepository 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 deze fase succesvol afronden, verwerven beheersing van SQL-queries.

Verschillende soorten constructietesten zijn:

  • Schematesten

Dit type testen wordt ook wel mappingtesten genoemd en wordt uitgevoerd om ervoor te zorgen dat de schematoewijzing van de front-end en de back-end gesynchroniseerd zijn. Enkele van de belangrijke ijkpunten van deze tests 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 algehele applicatietoewijzing te waarborgen.
    • Biedt verschillende tools voor validatie van databaseschema's.
  • Databasetabel- en kolomtesten

Enkele van de belangrijke ijkpunten van deze tests zijn:

    • De compatibiliteit van databasevelden en kolomtoewijzingen aan de achterkant en de voorkant.
    • Validatie van de lengte en naamgevingsconventie van de databasevelden en kolommen volgens de vereisten.
    • Detecteren en valideren van ongebruikte / niet-toegewezen databasetabellen / -kolommen.
    • Het valideren van de compatibiliteit van het datatype en de veldlengtes in de backend-databankkolommen met de frontend van de applicatie.
    • Valideert dat de gebruikers in staat zijn om de gewenste invoer te verstrekken met behulp van de databasevelden die zijn gespecificeerd in de specificatiedocumenten voor bedrijfsvereisten.
  • Toetsen en indexen testen

Enkele van de belangrijke ijkpunten van deze tests zijn:

    • Zorg ervoor dat de vereiste Hoofdsleutel en de Vreemde sleutel beperkingen zijn er al op de vereiste tabellen.
    • Valideer de referenties van de externe 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.
  • Testen van opgeslagen procedures

Enkele van de belangrijke ijkpunten van deze tests zijn:

    • Valideer de acceptatie 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 afgedekt door de vereiste invoergegevens toe te passen op de te testen applicatie.
    • Controleer of het ontwikkelingsteam de TRIM-bewerkingen correct heeft toegepast of niet elke keer dat de gegevens zijn opgehaald uit de opgegeven databasetabellen.
    • 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 te testen toepassing 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.
    • Validatie van de null-voorwaarde op databaseniveau.
    • Zorg ervoor dat alle opgeslagen procedures en functies zijn uitgevoerd en getest op de lege database die wordt getest.
    • Valideer de algehele integratie van de opgeslagen proceduremodules zoals gespecificeerd in de vereisten van de te testen applicatie.
  • Trigger testen

Enkele van de belangrijke ijkpunten van deze tests zijn:

    • Valideren 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 respectieve DML-transacties.
    • Controleer of de gegevens correct zijn bijgewerkt nadat de triggers zijn uitgevoerd.
    • Valideer de functionaliteiten zoals Update, Insert, Delete triggers functionaliteit van de applicatie die wordt getest.
  • Validaties van databaseserver

Enkele van de belangrijke ijkpunten van deze tests zijn:

wat is * in sql
    • Valideer de configuraties van de databaseserverzoals gespecificeerd in de zakelijke vereisten.
    • Zorg ervoor dat de vereiste gebruiker alleen die niveaus van acties uitvoert die vereist zijn voor de te testen applicatie.
    • Zorg ervoor dat de databaseserver in staat is om te voorzien in de behoeften van het maximale aantal gebruikerstransacties dat is toegestaan ​​volgens de specificaties van de zakelijke vereisten.

Functioneel testen

Functioneel databasetesten is het proces dat ervoor zorgt dat de transacties en bewerkingen die worden uitgevoerd door de eindgebruikers consistent zijn met de zakelijke specificaties.

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 testcases meestal eenvoudig en worden ze gebruikt om de inkomende en uitgaande gegevens van de functie te verifiëren. Er worden verschillende technieken gebruikt, zoals de grafiektechniek voor oorzaak-gevolg, grenswaardeanalyse en equivalentiepartitionering 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. Dit testen vereist het testen van database-triggers en logische weergaven, wat de database-refactoring ondersteunt. Bovendien zijn databasefuncties, triggers, views, SQL-query's , etc., worden hierin ook getest. White box testing wordt gebruikt om de databasetabellen, datamodellen, 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 dekking van de conditie, dekking van beslissingen, dekking van verklaringen, enz. Worden vaak gebruikt om White Box-tests uit te voeren. In tegenstelling tot Black box-tests kunnen codeerfouten eenvoudig worden gedetecteerd om de interne bugs in de database te elimineren. Het enige nadeel van dit type testen is dat het geen betrekking heeft op de SQL-instructies.

Niet-functionele testen

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

De belangrijkste soorten niet-functionele tests zijn:

  • Laadtesten

De primaire functie van het uitvoeren van belastingtests is het valideren van de invloed op de prestaties van de meeste lopende transacties in de database. Bij deze test is een tester nodig om de volgende condities te controleren & minus

    • Wat is de reactietijd die nodig is om transacties uit te voeren voor meerdere gebruikers op afstand?
    • Hoe lang duurt het voor de database om de specifieke records op te halen?
  • Stress testen

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 .

maak een kopie van object java

Laten we nu eens kijken wat de verschillende fasen zijn van het testen van databases.

Database teststadia

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. Stel testvoorwaarden in
  2. Voer de tests uit
  3. Controleer de teststatus
  4. Resultaten valideren
  5. Rapport consolideren en publiceren

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

Tools voor het testen van databases

Er zijn talloze tools op de markt die worden gebruikt om de testgegevens te genereren, te beheren en tenslotte databasetests uit te voeren, zoals Load Testing en Regressie Testing, enz. Hieronder heb ik een paar van de meest geprefereerde tools opgesomd:

Categorie Hulpmiddelen
Tools voor gegevensbeveiliging
  • IBM Optim Data Privacy
Testtools laden
  • Webprestaties
  • Rad View
  • Kwik
Test Data Generator Tools
  • Data Factory
  • DTM-gegevensgenerator
  • Turbo-gegevens
Test gegevensbeheertool
  • IBM Optim Test Data Management
Unit Testing Tools
  • SQLUnit
  • TSQLUnit
  • DBFit
  • DBUnit

Dus dat ging allemaal over het testen van databases. Hiermee zou ik dit artikel willen afsluiten. Ik hoop dat dit artikel je heeft geholpen om waarde toe te voegen aan je kennis. Voor meer informatie over SQL of databases kunt u hier onze uitgebreide literatuurlijst raadplegen: .

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

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van ' Database testen ”En ik neem contact met je op.