sql >> Database teknologi >  >> RDS >> Database

Hvad er databasetest, og hvordan udføres det?

Data er hjertet i enhver softwareapplikation, og det samme er databasen som rummer disse data. Men med stigningen i størrelsen af ​​data eller databaser stiger kompleksiteten også, hvilket gør det vanskeligt at håndtere dataene. Derfor bliver det meget nødvendigt at validere data. Det er her, databasetest er praktisk og hjælper med at kontrollere kvaliteten, sikkerheden og rigtigheden af ​​data, som en applikation henter eller gemmer i databasen. Gennem denne artikel vil jeg give dig fuldstændig indsigt i den.

Nedenfor er de emner, der er dækket i dette selvstudie:

  • Hvad er databasetestning?
  • Hvorfor kræves databasetestning?
  • Typer af databasetest
    • Strukturel test
    • Funktionstest
    • Ikke-funktionel test
  • Databaseteststadier
  • Databasetestværktøjer

Så lad os komme i gang.

Hvad er databasetestning?

Før jeg taler om, hvad der er databasetest, så lad mig først informere dig om databaser. En database er intet andet end en systematisk indsamling af data, der giver datalagring og hjælper med datamanipulation. Datastyring bliver meget let ved at bruge disse databaser, da databaser bruger objekter til at administrere dataene, såsom tabeller til lagring af data, visning til datarepræsentationer, funktioner og udløsere til datamanipulation.

Nu refererer databasetest til processen med at validere de data, der bliver gemt i en database, ved at verificere de objekter, der styrer dataene og forskellige funktioner omkring dem. Generelt dækkes aktiviteterne som kontrol af datavaliditet, testning af dataintegritet, præstationskontrol, test af forskellige procedurer, triggere og funktioner i databasen under databasetestningen.

Men for at udføre databasetest er det meget vigtigt at have et godt kendskab til SQL. Bare rolig, hvis du ikke har den nødvendige ekspertise. Du kan henvise til denne artikel om SQL Basics for at komme i gang med det.

Hvorfor databasetestning?

Som vi ved, er databasen et dump af data, hvor dataene indsamles i en enorm mængde og lagres i et struktureret format. Selvom DBMS (DataBase Management System) giver en organiseret måde at administrere, hente og gemme disse data på. Der er tilfælde, hvor data kan blive overflødige, duplikeres osv. I sådanne tilfælde kommer databasetest ind i billedet, som hjælper os med at validere dataene. Nedenfor har jeg listet forskellige aspekter ned, baseret på hvilke en database skal valideres:

  1. Datakortlægning
    Datamapping er et integreret aspekt af databasetest, som fokuserer på at validere de data, der går frem og tilbage mellem applikationen og backend-databasen.
  2. validering af ACID-egenskaber
    SYRE står for A tomicity, C konstant, I solation og D holdbarhed. Dette er et andet vigtigt aspekt, som skal bekræftes mod hver databasetransaktion.

    • Atomicitet :Dette betyder, at alle databasetransaktioner er atomare, dvs. transaktionerne kan resultere i enten succes eller fiasko. Også kendt som Alt-eller-intet .
    • Konsistens :Dette betyder, at databasetilstanden forbliver gyldig, efter at transaktionen er gennemført.
    • Isolation :Dette betyder, at flere transaktioner kan udføres på én gang uden at påvirke hinanden og ændre databasetilstanden.
    • Holdbarhed :Dette betyder, at når først en transaktion er forpligtet, vil den bevare ændringerne uden fejl, uanset virkningen af ​​eksterne faktorer.
  3. Dataintegritet
    Test af dataintegriteten af ​​en database refererer til processen med at evaluere alle slags processer, operationer og metoder, der bruges til at få adgang til, administrere og opdatere databasen også kendt som CRUD operationer. Dette fokuserer udelukkende på at teste nøjagtigheden og konsistensen af ​​de data, der er gemt i databasen, så vi får de forventede eller ønskede resultater.
  4. Overholdelse af forretningsregler
    Med stigningen i kompleksiteten af ​​databaserne begynder forskellige komponenter som relationelle begrænsninger, triggere, lagrede procedurer osv. også at komplicere. For at undgå dette, leverer testerne nogle SQL-forespørgsler, som er passende nok til at validere de komplekse objekter.

Typer af databasetest

Der er 3 typer af databasetest, som jeg har angivet nedenfor:

  1. Strukturel test
  2. Funktionstest
  3. Ikke-funktionel test

Lad os nu se nærmere på hver af disse typer og deres undertyper én efter én.

Strukturel test

Den strukturelle databasetestning er processen med at validere alle de elementer, der er til stede i datalageret og primært bruges til datalagring. Disse elementer kan ikke manipuleres direkte af slutbrugerne. Validering af databaseservere er en af ​​de vigtigste overvejelser, og de testere, der formår at gennemføre denne fase, opnår med succes beherskelse af SQL-forespørgsler.

Forskellige typer af strukturel test er:

  • Skematest

Denne type test er også kendt som kortlægningstest og udføres for at sikre, at skematilknytningen af ​​forenden og bagenden er synkroniseret. Nogle af de vigtige kontrolpunkter ved denne test er:

    • Validerer forskellige typer skemaformater, der er knyttet til databaserne.
    • Bekræftelse er påkrævet for ikke-tilknyttede tabeller/visninger/kolonner.
    • Verifikation er også påkrævet for at sikre sammenhængen mellem de heterogene databaser i et miljø med den overordnede applikationskortlægning.
    • Indeholder forskellige værktøjer til validering af databaseskemaer.
  • Test af databasetabel og kolonne

Nogle af de vigtige kontrolpunkter i denne test er:

    • Kompatibiliteten af ​​databasefelter og kolonnetilknytning i bagenden og frontenden.
    • Validering af længden og navnekonventionen for databasefelterne og -kolonnerne i henhold til kravene.
    • Detektering og validering af ubrugte/utilknyttede databasetabeller/kolonner.
    • Validering af kompatibiliteten af ​​datatypen og feltlængderne i backend-databasens kolonner med programmets frontend.
    • Validerer, at brugerne er i stand til at levere de ønskede input ved hjælp af databasefelterne, som er specificeret i forretningskravspecifikationsdokumenterne.
  • Test af nøgler og indekser

Nogle af de vigtige kontrolpunkter i denne test er:

    • Sørg for, at de påkrævede primærnøgle- og fremmednøglebegrænsninger allerede er der på de påkrævede tabeller.
    • Valider referencerne for fremmednøglerne.
    • Sørg for, at datatypen for den primære nøgle og de tilsvarende fremmednøgler i to tabeller er den samme.
    • Valider navnene på alle nøgler og indekser baseret på navnekonventionerne.
    • Tjek de nødvendige felter og indeksstørrelse og længde.
    • Sørg for oprettelsen af ​​de klyngede indekser og ikke-klyngede indekser i de påkrævede tabeller i henhold til forretningskravene.
  • Test af lagrede procedurer

Nogle af de vigtige kontrolpunkter i denne test er:

    • Valider vedtagelsen af ​​de påkrævede kodningsstandardkonventioner, undtagelses- og fejlhåndtering for alle de lagrede procedurer af udviklingsteamet i alle modulerne i den applikation, der testes.
    • Sørg for, at udviklingsteamet har dækket alle betingelser/sløjfer ved at anvende de nødvendige inputdata til applikationen, der testes.
    • Tjek, om udviklingsteamet har anvendt TRIM-handlingerne korrekt eller ej, hver gang dataene blev hentet fra de angivne databasetabeller.
    • Sørg for, at de nødvendige output genereres ved manuelt at udføre de lagrede procedurer.
    • Sørg for, at tabelfelterne er opdateret som angivet af applikationen, der testes, ved manuelt at udføre de lagrede procedurer.
    • Sørg for, at de nødvendige udløsere implicit aktiveres ved at udføre de lagrede procedurer.
    • Opdag og valider alle ubrugte lagrede procedurer.
    • Validering af nul-betingelsen på databaseniveau.
    • Sørg for, at alle de lagrede procedurer og funktioner er blevet udført og testet på den tomme database, der testes.
    • Valider den overordnede integration af de lagrede proceduremoduler som specificeret i kravene til den applikation, der testes.
  • Triggertest

Nogle af de vigtige kontrolpunkter i denne test er:

    • Validere, at de påkrævede kodningskonventioner følges i kodningsfasen af ​​triggerne.
    • Sørg for, at de udførte triggere opfylder de påkrævede betingelser for de respektive DML-transaktioner.
    • Tjek, om dataene er opdateret korrekt, når triggerne er blevet udført.
    • Valider funktionaliteterne såsom Opdater, Indsæt, Slet udløser funktionaliteten af ​​den applikation, der testes.
  • Databaseservervalidering

Nogle af de vigtige kontrolpunkter i denne test er:

    • Valider databaseserverkonfigurationerne som angivet i forretningskravene.
    • Sørg for, at den påkrævede bruger kun udfører de handlingsniveauer, der kræves af den applikation, der testes.
    • Sørg for, at databaseserveren er i stand til at imødekomme behovene for det maksimale antal brugertransaktioner, der er tilladt som i forretningskravspecifikationerne.

Funktionstest

Funktionel databasetest er den proces, der sikrer, at de transaktioner og operationer, der udføres af slutbrugerne, stemmer overens med virksomhedens specifikationer.

Forskellige typer funktionel test er:

  • Black Box-test

Black Box-test refererer til den proces, der kontrollerer forskellige funktionaliteter ved at verificere integrationen af ​​databasen. Her er testcaserne som regel enkle og bruges til at verificere de indgående og udgående data fra funktionen. Forskellige teknikker som årsag-virkning-grafteknik, grænseværdianalyse og ækvivalenspartitionering bruges til at teste databasens funktionalitet. Det udføres generelt på de tidlige udviklingsstadier og koster mindre sammenlignet med andre funktionelle tests. Men det kommer med nogle ulemper som nogle fejl ikke kan opdages af det, og der er ingen specifikation om, hvor meget af programmet der skal testes.

  • Hvid boks-test

White Box Testing er optaget af databasens interne struktur, og brugerne er uvidende om specifikationsdetaljerne. Denne test kræver databaseudløsere og test af logiske visninger, som understøtter databaserefactoring. Desuden testes databasefunktioner, triggere, visninger, SQL-forespørgsler osv. også i dette. White box-testning bruges til at validere databasetabellerne, datamodellerne, databaseskemaet osv. Den overholder reglerne for referenceintegritet og vælger standardtabelværdierne for at verificere databasens konsistens. Teknikker som tilstandsdækning, beslutningsdækning, erklæringsdækning osv. bruges ofte til at udføre White Box-test. I modsætning til Black box-test kan kodefejl let opdages for at eliminere de interne fejl, der er til stede i databasen. Den eneste ulempe ved denne type test er, at den ikke dækker SQL-sætningerne.

Ikke-funktionel test

Ikke-funktionel testning er processen med at udføre belastningstest, stresstest, kontrol af minimum systemkrav, som er nødvendige for at opfylde forretningsspecifikationen, samt opdage risici og optimere databasens ydeevne.

Vigtigste typer af ikke-funktionel test er:

  • Belastningstest

Den primære funktion ved at udføre belastningstest er at validere ydeevnepåvirkningen af ​​de fleste af de kørende transaktioner i databasen. I denne test skal en tester kontrollere følgende betingelser −

    • Hvad er den responstid, der kræves for at udføre transaktioner for flere brugere, der er placeret eksternt?
    • Hvad tid tager databasen at hente de specifikke poster?
  • Stresstest

Stresstest er en testproces, der udføres for at identificere systemets brudpunkt. I denne test bliver en applikation således indlæst indtil det punkt, hvor systemet fejler. Dette punkt er kendt som et brudpunkt af databasesystemet. De almindeligt anvendte stresstestværktøjer er LoadRunner og WinRunner .

Lad os nu se, hvad de forskellige stadier er involveret i databasetestning.

Databaseteststadier

DB-testning er ikke en kedelig proces og inkluderer forskellige stadier i databasetestens livscyklus i overensstemmelse med testprocesserne.

De vigtigste stadier i databasetestning er:

  1. Opsæt testforudsætninger
  2. Udfør testene
  3. Bekræft teststatus
  4. Valider resultater
  5. Konsolider og udgiv rapport

Nu hvor du er klar over, hvad der er databasetest, og hvordan man udfører det, så lad mig nu kaste lidt lys over forskellige værktøjer, der hovedsageligt bruges til databasetest.

Databasetestværktøjer

Der er adskillige værktøjer på markedet, der bruges til at generere testdata, administrere dem og til sidst udføre databasetest såsom belastningstest og regressionstest osv. Nedenfor har jeg listet en nogle af de mest foretrukne værktøjer:

Kategori Værktøjer
Datasikkerhedsværktøjer
  • IBM Optim Databeskyttelse
Indlæs testværktøjer
  • Webydelse
  • Rad View
  • Kviksølv
Test datageneratorværktøjer
  • Data Factory
  • DTM Data Generator
  • Turbodata
Test Data Management Tool
  • IBM Optim Test Data Management
Værktøjer til enhedstest
  • SQLUnit
  • TSQLUnit
  • DBFit
  • DBUnit

Så det handlede om databasetest. Med dette vil jeg gerne afslutte denne artikel. Jeg håber, at denne artikel har hjulpet dig med at tilføje værdi til din viden. For mere information om SQL eller databaser, kan du henvise til vores omfattende læseliste her:Databaser Edureka .

Hvis du ønsker at få en struktureret træning i MySQL, så tjek vores MySQL DBA Certification Training som kommer med instruktørledet livetræning og projekterfaring i det virkelige liv. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet under "Databasetestning ” og jeg vender tilbage til dig.


  1. Find ud af datatypen for de kolonner, der returneres i et resultatsæt i SQL Server

  2. SQL Server SELECT, hvor enhver kolonne indeholder 'x'

  3. Hvordan kan jeg bruge executemany til at indsætte en liste over ordbøger i Python i MySQL

  4. Hvilke metoder kan bruges til at administrere forskellige versioner af allerede eksisterende databaser?