Andmebaasi (andmete) testimise õpetus

Mis on andmebaasi testimine?

Andmebaasi testimine on tarkvara testimise tüüp, mis kontrollib testitava andmebaasi skeemi, tabeleid, käivitajaid jne. Samuti kontrollib see andmete terviklikkust ja järjepidevust. See võib hõlmata keerukate päringute loomist andmebaasi laadimiseks/stresstestimiseks ja selle reageerimisvõime kontrollimiseks.

Andmebaasi testimine

Miks on andmebaasi testimine oluline?

Andmebaasi testimine on oluline in tarkvara testimine sest see tagab, et vastuvõetud ja andmebaasi salvestatud andmeväärtused ja informatsioon on kehtiv või mitte. Andmebaasi testimine aitab säästa andmekadu, salvestab katkestatud tehingute andmed ja puudub volitamata juurdepääs teabele. Andmebaas on iga tarkvararakenduse jaoks oluline, seetõttu peavad testijatel olema andmebaasi testimiseks head teadmised SQL-ist.

Testimis- ja arendusmeeskonna liikmed panevad GUI-le tavaliselt kõige rohkem rõhku, kuna graafiline kasutajaliides on rakenduse kõige nähtavam osa. Siiski on oluline kinnitada ka teave, mis on rakenduse keskmes ehk ANDMEBAAS.

Vaatleme pangarakendust, kus kasutaja teeb tehinguid. Andmebaasi testimise või andmebaasi testimise seisukohast on järgmised asjad olulised:

  1. Rakendus salvestab tehinguteabe rakenduste andmebaasi ja kuvab selle kasutajale õigesti.
  2. Protsessi käigus ei lähe teave kaotsi.
  3. Rakendus ei salvesta teavet osaliselt teostatud või katkestatud toimingute kohta.
  4. Ükski volitamata isik ei tohi kasutaja teabele juurde pääseda.

Kõigi ülaltoodud eesmärkide saavutamiseks peame kasutama andmete valideerimist või andmete testimist.

Erinevused kasutajaliidese testimise ja andmete testimise vahel

Kasutajaliidese testimine vs andmete testimine

Kasutajaliidese testimine Andmebaas või andmete testimine
Seda tüüpi testimist tuntakse ka kui graafilise kasutajaliidese testimist või esiotsa testimist. Seda tüüpi testimist tuntakse ka kui taustatestimist või andmete testimist.
Seda tüüpi testimine tegeleb peamiselt kõigi testitavate üksustega, mis on kasutajale vaatamiseks ja suhtlemiseks avatud, nagu vormid, esitlus, graafikud, menüüd ja aruanded jne (loodud VB, VB.net, V kaudu).C++, Delphi – esiotsa tööriistad) Seda tüüpi testimine tegeleb peamiselt kõigi testitavate üksustega, mis on tavaliselt vaatajate eest varjatud. Nende hulka kuuluvad sisemised protsessid ja salvestus nagu Assembly, DBMS nagu Oracle, SQL Server, MYSQL jne.

Seda tüüpi testimine hõlmab kontrollimist

  • tekstikastid
  • valige rippmenüüd
  • kalendrid ja nupud
  • Lehe navigeerimine
  • piltide kuvamine
  • Üldise rakenduse välimus ja tunnetus

Seda tüüpi testimine hõlmab järgmiste andmete kinnitamist:

  • skeem
  • andmebaasi tabelid
  • veerud
  • võtmed ja indeksid
  • salvestatud protseduuride käivitajad
  • andmebaasiserveri valideerimised
  • andmete dubleerimise kinnitamine
Testija peab olema põhjalikult kursis nii ärinõuete kui ka arendustööriistade kasutamise ning automatiseerimisraamistike ja tööriistade kasutamisega. Tausttestide tegemiseks peab testijal olema tugev andmebaasiserveri ja struktureeritud päringukeele kontseptsioonide taust.

Andmebaasi testimise tüübid

Andmebaasi testimise tüübid

Andmebaasi testimise 3 tüüpi on

  1. Struktuuri testimine
  2. Funktsionaalne testimine
  3. Mittefunktsionaalne testimine

Selles andmebaasi testimise õpetuses vaatleme iga tüüpi ja selle alamtüüpe ükshaaval.

Struktuursete andmebaaside testimine

Struktuursete andmebaaside testimine on andmebaasi testimistehnika, mis kinnitab kõik andmehoidlas olevad elemendid, mida kasutatakse peamiselt andmete salvestamiseks ja mida lõppkasutajad ei tohi otseselt manipuleerida. Andmebaasiserverite valideerimine on ka struktuursete andmebaaside testimisel oluline kaalutlus. Selle testimise edukaks lõpuleviimiseks on vaja SQL-päringute valdamist.

Mis on skeemi testimine?

Skeemi testimine andmebaasi testimisel valideerib erinevaid andmebaasiga seotud skeemivorminguid ja kontrollib, kas tabelite/vaadete/veergude vastendusvormingud ühilduvad kasutajaliidese vastendusvormingutega. Skeemi testimise põhieesmärk on tagada, et esi- ja tagaotsa skeemide vastendamine oleks sarnane. Seega nimetatakse seda ka kaardistamise testimiseks.

Arutleme skeemi testimise kõige olulisemate kontrollpunktide üle.

  1. Andmebaasidega seotud erinevate skeemivormingute valideerimine. Sageli ei pruugi tabeli vastendusvorming ühilduda rakenduse kasutajaliidese tasemel oleva vastendusvorminguga.
  2. Kontrollimise vajadus on kaardistamata tabelite/vaadete/veergude puhul.
  3. Samuti on vaja kontrollida, kas keskkonna heterogeensed andmebaasid on kooskõlas üldise rakenduse kaardistamisega.

Vaatame ka mõningaid huvitavaid andmebaaside testimise tööriistu andmebaasiskeemide valideerimiseks.

  • Antiga integreeritud DBUnit sobib väga hästi kaardistamise testimiseks.
  • SQL Server võimaldab testijatel andmebaasi skeemi kontrollida ja päringuid teha, kirjutades lihtsaid päringuid, mitte koodi kaudu.

Näiteks kui arendajad soovivad tabeli struktuuri muuta või selle kustutada, soovib testija tagada, et kõik seda tabelit kasutavad salvestatud protseduurid ja vaated ühilduvad konkreetse muudatusega. Teine näide võib olla see, et kui testijad soovivad kontrollida skeemimuutusi kahe andmebaasi vahel, saavad nad seda teha lihtsate päringute abil.

Andmebaasi tabel, veergude testimine

Vaatleme erinevaid andmebaaside ja veergude testimise kontrolle.

  1. Kas andmebaasi väljade ja veergude vastendamine taustaprogrammis ühildub nende vastendustega kasutajaliideses?
  2. Andmebaasi väljade ja veergude pikkuse ja nimetamistava kontrollimine vastavalt nõuetele.
  3. Kasutamata/kaardistamata andmebaasitabelite/veergude olemasolu kontrollimine.
  4. Ühilduvuse kinnitamine
  • andmetüüp
  • väljade pikkused

taustaandmebaasi veergudest koos rakenduse esiotsas olevate veergudega.

  1. Kas andmebaasiväljad võimaldavad kasutajal sisestada soovitud kasutajasisendeid vastavalt ärinõuete spetsifikatsiooni dokumentidele.

Võtmete ja indeksite testimine

Olulised võtmete ja indeksite kontrollid –

  1. Kontrollige, kas see on vajalik
  • Esmane võti
  • võõrvõti

vajalikele tabelitele on loodud piirangud.

  1. Kontrollige, kas võõrvõtmete viited kehtivad.
  2. Kontrollige, kas primaarvõtme andmetüüp ja vastavad võõrvõtmed on kahes tabelis samad.
  3. Kontrollige, kas kõigi võtmete ja indeksite puhul on järgitud nõutavaid nimetamistavasid.
  4. Kontrollige nõutavate väljade ja indeksite suurust ja pikkust.
  5. Kas nõutav
  • Clustered indeksid
  • Ei Clustered indeksid

on loodud nõutavatele tabelitele vastavalt ärinõuetele.

Salvestatud protseduuride testimine

Olulised testid salvestatud protseduuride kontrollimiseks on:

  1. Kas arendusmeeskond võttis kasutusele nõutavad A) kodeerimisstandardid ja B) erandite ja vigade käsitlemine. Kõigi testitava rakenduse kõigi moodulite salvestatud protseduuride jaoks.
  2. Kas arendusmeeskond kattis kõik tingimused/tsüklid, rakendades testitavale rakendusele nõutavad sisendandmed?
  3. Kas arendusmeeskond rakendas õigesti TRIM-i toimingut, kui andmed võeti andmebaasi nõutavatest tabelitest?
  4. Kas salvestatud protseduuri käsitsi täitmine annab lõppkasutajale vajaliku tulemuse?
  5. Kas salvestatud protseduuri käsitsi käivitamine tagab tabeliväljade värskendamise vastavalt testitava rakenduse nõuetele?
  6. Kas salvestatud protseduuride täitmine võimaldab vajalike käivitajate kaudset kutsumist?
  7. Kasutamata salvestatud protseduuride olemasolu kinnitamine.
  8. Tingimuse Allow Null valideerimine, mida saab teha andmebaasi tasemel.
  9. Tõsiasi, et kõik salvestatud protseduurid ja funktsioonid on edukalt käivitatud, kontrollitakse, kui testitav andmebaas on tühi.
  10. Salvestatud protseduurimoodulite üldise integratsiooni valideerimine vastavalt testitava rakenduse nõuetele.

Mõned kasulikud andmebaasi testimise tööriistad salvestatud protseduuride testimiseks on LINQ, SP Test Tool jne.

Päästiku testimine

  1. Kas käivitajate kodeerimisfaasis on järgitud nõutavaid kodeerimistavasid?
  2. Kontrollige, kas vastavate DML-tehingute jaoks käivitatud päästikud on täitnud nõutavad tingimused.
  3. Kas päästik värskendab andmeid õigesti pärast nende käivitamist?
  4. Nõutava värskendamise/lisamise/kustutamise valideerimine käivitab testitava rakenduse valdkonna funktsionaalsuse.

Andmebaasiserveri valideerimine

Andmebaasiserveri valideerimine

  1. Kontrollige andmebaasiserveri konfiguratsioone vastavalt ärinõuetele.
  2. Kontrollige nõutava kasutaja volitusi teha ainult neid toiminguid, mida rakendus nõuab.
  3. Kontrollige, kas andmebaasiserver suudab rahuldada maksimaalse lubatud arvu kasutajatehingute vajadusi, mis on ette nähtud ärinõuete spetsifikatsioonides.

Funktsionaalse andmebaasi testimine

Funktsionaalse andmebaasi testimine on andmebaasi testimise tüüp, mida kasutatakse andmebaasi funktsionaalsete nõuete kinnitamiseks lõppkasutaja vaatenurgast. Funktsionaalse andmebaasi testimise põhieesmärk on testida, kas lõppkasutajate poolt andmebaasiga seotud tehingud ja toimingud toimivad ootuspäraselt või mitte.

Järgnevalt on toodud põhitingimused, mida tuleb andmebaasi valideerimisel järgida.

  • Kas väli on kohustuslik, lubades sellel väljal NULL-väärtusi?
  • Kas iga välja pikkus on piisav?
  • Kas kõigil sarnastel väljadel on tabelites samad nimed?
  • Kas andmebaasis on arvutatud välju?

See konkreetne protsess on väljade kaardistamise valideerimine lõppkasutaja vaatepunktist. Selle konkreetse stsenaariumi korral teeks testija toimingu andmebaasi tasemel ja seejärel navigeeriks vastava kasutajaliidese üksuse juurde, et jälgida ja kinnitada, kas väljade õiged kontrollimised on läbi viidud või mitte.

Samuti tuleks teha vastupidine tingimus, mille korral testija teeb esmalt toimingu kasutajaliideses ja seejärel valideeritakse samad tagaotsast.

Andmete terviklikkuse ja järjepidevuse kontrollimine

Järgmised kontrollid on olulised

  1. Kas andmed on loogiliselt hästi organiseeritud?
  2. Kas tabelites salvestatud andmed on õiged ja vastavad ärinõuetele?
  3. Kas testitavas rakenduses on tarbetuid andmeid?
  4. Kas kasutajaliidesest uuendatud andmete osas on andmed nõuete kohaselt salvestatud?
  5. Kas TRIM-i toimingud sooritati andmetega enne andmete sisestamist testitavasse andmebaasi?
  6. Kas tehingud on tehtud ärinõuete spetsifikatsioonide järgi ja kas tulemused on õiged või mitte?
  7. Kui tehing on edukalt sooritatud, on andmed nõuetekohaselt seotud?
  8. Kas andmed on edukalt veeretatud, kui lõppkasutaja ei ole tehingut edukalt sooritanud?
  9. Kas andmed on tagatud, kui tehingut ei ole edukalt sooritatud ja kõnealusesse tehingusse on kaasatud mitu heterogeenset andmebaasi?
  10. Kas kõik tehingud on sooritatud süsteemi ärinõuetes ettenähtud projekteerimisprotseduuride abil?

Sisselogimine ja kasutaja turvalisus

Sisselogimise ja kasutaja turvamandaatide kinnitamisel tuleb arvesse võtta järgmisi asju.

  1. Kas rakendus takistab kasutajal rakenduses edasi tegutsemast a
  • vale kasutajanimi, kuid kehtiv parool
  • kehtiv kasutajanimi, kuid vale parool.
  • kehtetu kasutajanimi ja parool.
  1. Kas kasutajal on lubatud teha ainult neid konkreetseid toiminguid, mis on ette nähtud ärinõuetega?
  2. Kas andmed on kaitstud volitamata juurdepääsu eest?
  3. Kas erinevate õigustega on loodud erinevad kasutajarollid?
  4. Kas kõigil kasutajatel on ärispetsifikatsioonidega nõutud juurdepääsutasemed määratud andmebaasile?
  5. Kontrollige, et tundlikud andmed, nagu paroolid, krediitkaardinumbrid, oleksid krüptitud ja neid ei salvestata andmebaasi lihttekstina. Hea tava on tagada, et kõikidel kontodel peaksid olema keerulised ja kergesti äraarvatavad paroolid.

Mittefunktsionaalne testimine

Mittefunktsionaalne testimine andmebaasi testimise kontekstis saab liigitada erinevatesse kategooriatesse vastavalt ärinõuetele. Need võivad olla koormustestid, stressitestid, Turvalisuse testimine, Kasutatavuse testimineja Ühilduvuse testimineja nii edasi. Koormustest ja ka stressitestid, mida saab rühmitada jõudlustestimise alla, teenivad mittefunktsionaalse testimise rolli osas kahte konkreetset eesmärki.

Riski kvantifitseerimine– Riski kvantifitseerimine aitab sidusrühmadel kindlaks teha erinevad süsteemi reageerimisaja nõuded nõutud koormuse korral. See on mis tahes esialgne eesmärk kvaliteedi tagamise ülesanne. Peame märkima, et koormustestimine ei vähenda riske otseselt, kuid riskide tuvastamise ja kvantifitseerimise protsesside kaudu pakub parandusvõimalusi ja tõuke riski leevendamiseks.

Minimaalne süsteemivarustuse nõue– süsteemi minimaalne konfiguratsioon, mis võimaldab süsteemil täita sidusrühmade ametlikult esitatud jõudlusootusi. Nii et kõrvalist riistvara, tarkvara ja sellega seotud omandikulusid saab minimeerida. Seda konkreetset nõuet võib liigitada üldiseks ettevõtte optimeerimise nõudeks.

Koormuse testimine

Iga koormuskatse eesmärk peaks olema selgelt mõistetav ja dokumenteeritud. Järgmist tüüpi konfiguratsioonid on kohustuslikud koormuse testimine.

  1. Kõige sagedamini kasutatavad kasutajatehingud võivad mõjutada kõigi teiste tehingute toimivust, kui need ei ole tõhusad.
  2. Viimasesse testkomplekti tuleks lisada vähemalt üks redigeerimata kasutajatehing, et selliste tehingute sooritamist saaks eristada muudest keerukamatest tehingutest.
  3. Kaasata tuleks olulisemad tehingud, mis hõlbustavad süsteemi põhieesmärkide saavutamist, kuna nende tehingute läbikukkumisel on definitsiooni järgi suurim mõju.
  4. Selleks tuleks lisada vähemalt üks muudetav tehing jõudlus Selliseid tehinguid saab teistest tehingutest eristada.
  5. Optimaalne reageerimisaeg suure hulga virtuaalsete kasutajate korral kõigi tulevaste nõuete jaoks.
  6. Efektiivsed ajad erinevate kirjete toomiseks.

Olulised koormuse testimise tööriistad on LoadRunner Professional, võida jooksja ja JMeter.

Mis on andmebaasi stressitestimine?

Andmebaasi stressitestimine on testimismeetod, mida kasutatakse suure koormusega andmebaasisüsteemi stressitestimiseks, nii et see mingil hetkel ebaõnnestub. See aitab tuvastada andmebaasisüsteemi rikkepunkti. See nõuab korralikku planeerimist ja jõupingutusi, et vältida ressursside ülekasutamist. Andmed stressitestimine on tuntud ka kui piinav testimine või väsimustestimine.

Olulised stressitestimise tööriistad on LoadRunner Professional ja JMeter.

Kõige sagedamini esinevad probleemid andmebaasi testimise ajal

A significant amount of overhead could be involved to determine the state of the database transactions

Lahendus: Üldine protsessi planeerimine ja ajastus tuleks korraldada nii, et ei tekiks aja- ja kulupõhiseid probleeme.

New test data have to be designed after cleaning up of the old test data.

Lahendus: Käes peaks olema eelnev plaan ja metoodika katseandmete genereerimiseks.

An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.

Lahendus: SQL-päringute hooldus ja nende pidev värskendamine on oluline osa üldisest testimisprotsessist, mis peaks olema osa üldisest testimisprotsessist. katsestrateegia.

The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.

Lahendus: Kvaliteedi ja projekti üldise ajakava kestuse vahel peaks olema hea tasakaal.

Andmebaasi testimisega seotud müüdid või väärarusaamad

müüdid

Database Testing requires plenty of expertise and it is a very tedious job

tegelikkus: Tarkvaratestimise tõhus ja tõhus andmebaaside testimine tagab kogu rakendusele pikaajalise funktsionaalse stabiilsuse, mistõttu on vaja kõvasti tööd teha.

Database testing adds extra work bottleneck

tegelikkus: Vastupidi, andmebaasi testimine lisab üldisele tööle rohkem väärtust, selgitades välja peidetud probleemid ja aidates seega ennetavalt üldist rakendust täiustada.

Database testing slows down the overall development process

tegelikkus: Märkimisväärne hulk andmebaasi testimist aitab parandada andmebaasirakenduse üldist kvaliteeti.

Database testing could be excessively costly

tegelikkus: Kõik andmebaasi testimise kulutused on pikaajaline investeering, mis toob kaasa rakenduse pikaajalise stabiilsuse ja töökindluse. Seega kulutused andmebaaside testimisele või SQL Testimine on vajalik.

Best Practices

  • Kõik andmed, sealhulgas metaandmed ja funktsionaalsed andmed, tuleb valideerida vastavalt nende kaardistamisele nõuete spetsifikatsiooni dokumentidega.
  • Kontrollimine testi andmed mis on loodud arendusmeeskonna poolt / temaga konsulteerides, tuleb kinnitada.
  • Väljundandmete valideerimine nii käsitsi kui ka automaatsete protseduuride abil.
  • Erinevate tehnikate, nagu põhjusliku tagajärje graafiku tehnika, samaväärsuse jaotamise tehnika ja piirväärtuse analüüsi tehnika, kasutuselevõtt nõutavate katseandmete tingimuste genereerimiseks.
  • Samuti tuleb valideerida nõutavate andmebaasitabelite viiteterviklikkuse valideerimisreeglid.
  • Tabeli vaikeväärtuste valimine andmebaasi järjepidevuse kontrollimiseks on väga oluline kontseptsioon Kas logisündmused on edukalt andmebaasi lisatud kõigi nõutavate sisselogimissündmuste jaoks
  • Kas plaanitud tööd täidetakse õigeaegselt?
  • Tehke andmebaasist õigeaegne varukoopia.

Kontrollige ka - Andmebaasi testimise intervjuu küsimused ja vastused