database testing complete guide why
Cjelovit vodič za testiranje baze podataka s praktičnim savjetima i primjerima:
Računalne su aplikacije danas složenije s tehnologijama poput Androida i s puno aplikacija za pametne telefone. Što su prednji krajevi složeniji, stražnji krajevi postaju zamršeniji.
Stoga je još važnije naučiti o DB testiranju i biti u mogućnosti učinkovito provjeravati baze podataka kako bi se osigurala sigurnost i kvaliteta baza podataka.
U ovom vodiču naučit ćete sve o testiranju podataka - zašto, kako i što testirati?
Baza podataka jedan je od neizbježnih dijelova softverske aplikacije.
Nije važno je li to web, stolno računalo ili mobilni uređaj, klijent-poslužitelj, peer-to-peer, poduzeće ili pojedinačno poduzeće; baza podataka potrebna je svugdje na pozadini.
Slično tome, bilo da se radi o zdravstvu, financijama, leasingu, maloprodaji, pošti ili kontroli svemirskog broda; Baza podataka uvijek je u akciji iza scene.
Kako se složenost aplikacije povećava, javlja se potreba za jačom i sigurnijom bazom podataka. Na isti način, za aplikacije s velikom učestalošću transakcija ( Na primjer, Bankarstvo ili financije), povezana je potreba za potpuno opremljenim DB alatom.
Danas imamo velike i složene velike podatke s kojima se tradicionalne baze podataka ne mogu nositi.
Ima ih nekoliko Alati baze podataka dostupni su na tržištu Na primjer, MS-Access, MS SQL Server, SQL Server, Oracle, Oracle Financial, MySQL, PostgreSQL, DB2, Toad, Admirer itd. Ovi se alati razlikuju po cijeni, robusnosti, značajkama i sigurnosti. Svaka od ovih ima svoje prednosti i nedostatke.
Što ćete naučiti:
- Zašto testirati bazu podataka?
- Što testirati (kontrolni popis za testiranje baze podataka)
- Kako testirati bazu podataka (korak po korak)
Zašto testirati bazu podataka?
U nastavku ćemo vidjeti zašto treba provjeriti sljedeće aspekte DB-a:
# 1) Mapiranje podataka
U softverskim sustavima podaci često putuju naprijed-nazad od korisničkog sučelja (korisničkog sučelja) do pozadinskog DB-a i obrnuto. Evo nekoliko aspekata na koje treba paziti:
- Provjerite jesu li polja u obrascima UI / frontend mapirana dosljedno odgovarajućim poljima u DB tablici. Ti su podaci o mapiranju obično definirani u dokumentima sa zahtjevima.
- Kad god se određena radnja izvede na prednjem kraju aplikacije, na stražnjem kraju se poziva odgovarajuća CRUD (Stvori, preuzmi, ažuriraj i izbriši) radnja. Tester će morati provjeriti je li pozvana ispravna radnja i je li pozvana radnja sama po sebi uspješna ili nije.
# 2) Provjera valjanosti ACID svojstava
Atomicnost, dosljednost, izolacija i trajnost. Svaka transakcija koju DB izvrši mora se pridržavati ova četiri svojstva.
- Valentnost znači da transakcija ili ne uspije ili prođe. To znači da čak i ako jedan dio transakcije zakaže - to znači da je cijela transakcija propala. Obično se to naziva pravilom 'sve ili ništa'.
- Dosljednost : Transakcija će uvijek rezultirati važećim stanjem DB-a
- Izolacija : Ako postoji više transakcija i one se izvršavaju odjednom, rezultat / stanje DB-a treba biti isto kao da se izvršavaju jedna za drugom.
- Izdržljivost : Jednom kad je transakcija izvršena i počinjena, nikakvi vanjski čimbenici poput gubitka ili pada sustava ne bi je trebali moći promijeniti
Predloženo čitanje = >> MySQL Transaction Tutorial
# 3) Integritet podataka
Za bilo koji od CRUD operacije , ažurirane i najnovije vrijednosti / status dijeljenih podataka trebali bi se pojaviti na svim obrascima i zaslonima. Vrijednost se ne smije ažurirati na jednom zaslonu, a na drugom prikazati stariju vrijednost.
Kada je aplikacija u izvršenju, krajnji korisnik uglavnom koristi operacije 'CRUD' olakšane DB alatom .
C: Stvori - Kada korisnik 'Spremi' bilo koju novu transakciju, izvodi se operacija 'Stvori'.
R: Dohvati - Kada korisnik pretražuje ili pregleda bilo koju spremljenu transakciju, izvodi se operacija 'Dohvati'.
U: Ažuriranje - Kada korisnik 'Uredi' ili 'Izmijeni' postojeći zapis, izvodi se operacija 'Ažuriraj' DB-a.
D: Izbriši - Kada korisnik ‘Ukloni’ bilo koji zapis iz sustava, izvodi se operacija ‘Izbriši’ DB-a.
Svaka operacija baze podataka koju izvodi krajnji korisnik uvijek je jedna od gore navedene četiri.
Dakle, osmislite svoje DB test slučajeve na način da uključuju provjeru podataka na svim mjestima za koja se čini da li su dosljedno isti.
# 4) Sukladnost poslovnog pravila
Više složenosti u bazama podataka znači složenije komponente poput relacijskih ograničenja, okidača, pohranjenih postupaka itd. Tako će testeri morati smisliti odgovarajuće SQL upite kako bi provjerili ove složene objekte.
Što testirati (kontrolni popis za testiranje baze podataka)
# 1) Transakcije
Pri testiranju transakcija važno je osigurati da zadovoljavaju ACID svojstva.
Ovo su najčešće korištene izjave:
- POČNI TRANSAKCIJA TRANSAKCIJA #
- ZAVRŠI TRANSAKCIJU TRANSAKCIJA #
Izjava o vraćanju osigurava da baza podataka ostane u dosljednom stanju.
- TRANSAKCIJA ZA VRAĆANJE #
Nakon izvršavanja ovih izjava, koristite Select da biste bili sigurni da su promjene odražene.
- ODABERITE * IZ TABLENAME
# 2) Sheme baze podataka
Shema baze podataka nije ništa drugo nego formalna definicija kako će podaci biti organizirani unutar DB-a. Da biste ga testirali:
- Utvrdite zahtjeve na temelju kojih baza podataka djeluje. Uvjeti za uzorak:
- Primarni ključevi koji će se stvoriti prije nego što se kreira bilo koje drugo polje.
- Strani ključevi trebaju biti potpuno indeksirani radi lakšeg pronalaženja i pretraživanja.
- Imena polja koja počinju ili završavaju određenim znakovima.
- Polja s ograničenjem da se određene vrijednosti mogu ili ne mogu umetnuti.
- Upotrijebite jednu od sljedećih metoda prema važnosti:
- SQL upit DESC
za provjeru valjanosti sheme.
- Regularni izrazi za provjeru valjanosti imena pojedinačnih polja i njihovih vrijednosti
- Alati poput SchemaCrawler
# 3) Okidači
Kada se određeni događaj dogodi na određenoj tablici, može se automatski naložiti izvršenje dijela koda (okidača).
Na primjer, novi se učenik pridružio školi. Student pohađa 2 razreda: matematike i prirodnih znanosti. Učenik se dodaje na 'studentski stol'. Okidač bi mogao dodati učenika u odgovarajuće tablice predmeta nakon što se doda na studentski stol.
Uobičajena metoda za testiranje je da se prvo samostalno izvrši SQL upit ugrađen u okidač i zabilježi rezultat. Slijedite ovo s izvršavanjem Okidača u cjelini. Usporedite rezultate.
Oni se ispituju i u fazi testiranja crne i bijele kutije.
pitanja za internetske usluge u javi
- Ispitivanje bijele kutije : Stubs i pokretački programi koriste se za umetanje ili ažuriranje ili brisanje podataka koji bi rezultirali pozivanjem okidača. Osnovna je ideja samo testirati DB prije nego što se izvrši integracija s prednjim krajem (UI).
- Testiranje crne kutije :
do) Od korisničkog sučelja i DB-a, integracija je sada dostupna; možemo umetnuti / izbrisati / ažurirati podatke s prednjeg kraja na način da se aktivira Okidač. Nakon toga, naredbe Select mogu se koristiti za dohvaćanje DB podataka kako bi se vidjelo je li okidač uspješno izveo namjeravanu operaciju.
b) Drugi način da se to testira jest izravno učitavanje podataka koji bi pozivali Okidač i provjeravanje radi li kako je predviđeno.
# 4) Pohranjeni postupci
Pohranjene procedure više su ili manje slične korisničkim definiranim funkcijama. Na njih se mogu pozivati izrazi Pozivna procedura / Izvrši postupak, a izlaz je obično u obliku skupova rezultata.
Oni su pohranjeni u RDBMS i dostupni su za aplikacije.
Oni se također testiraju tijekom:
- Ispitivanje bijele kutije: Stubs se koriste za pozivanje pohranjenih procedura, a zatim se rezultati provjeravaju u skladu s očekivanim vrijednostima.
- Testiranje crne kutije: Izvršite operaciju s prednjeg kraja (UI) aplikacije i provjerite izvršavanje pohranjene procedure i njezinih rezultata.
# 5) Ograničenja polja
Zadana vrijednost, jedinstvena vrijednost i inozemni ključ:
- Izvršite front-end operaciju koja vježba stanje objekta baze podataka
- Potvrdite rezultate pomoću SQL upita.
Provjera zadane vrijednosti za određeno polje vrlo je jednostavna. To je dio provjere valjanosti poslovnih pravila. Možete to učiniti ručno ili možete koristiti alate poput QTP-a. Ručno možete izvršiti radnju koja će dodati vrijednost koja nije zadana vrijednost polja s prednjeg kraja i provjeriti rezultira li pogreškom.
Slijedi primjer VBScript koda:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) Rezultat gornjeg koda je True ako postoji zadana vrijednost ili False ako ne postoji.
Provjera jedinstvene vrijednosti može se izvršiti točno onako kako smo to učinili za zadane vrijednosti. Pokušajte unijeti vrijednosti iz korisničkog sučelja koje će kršiti ovo pravilo i provjerite prikazuje li se pogreška.
VB skripta za automatizaciju može biti:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) ZaStrani kljucprovjera valjanosti ograničenja koristi opterećenja podataka koja izravno unose podatke koji krše ograničenje i vide ograničava li ih aplikacija ili ne. Zajedno s učitavanjem podataka na stražnjoj strani, izvedite i operacije sučelja na način koji će prekršiti ograničenja i provjeriti prikazuje li se odgovarajuća pogreška.
Aktivnosti ispitivanja podataka
Tester baze podataka trebao bi se usredotočiti na sljedeće ispitne aktivnosti:
# 1) Osigurajte mapiranje podataka:
Mapiranje podataka jedan je od ključnih aspekata baze podataka i svaki bi ga ispitivač softvera trebao strogo testirati.
Uvjerite se da mapiranje između različitih oblika ili zaslona AUT-a i njegovog DB-a nije samo točno, već i prema projektnim dokumentima (SRS / BRS) ili kodu. U osnovi, trebate potvrditi mapiranje između svakog prednjeg polja s odgovarajućim poljem baze podataka pozadine.
Za sve CRUD operacije provjerite ažuriraju li se odgovarajuće tablice i zapisi kada korisnik klikne na 'Spremi', 'Ažuriraj', 'Pretraži' ili 'Izbriši' iz GUI-ja aplikacije.
Što trebate potvrditi:
- Mapiranje tablice, mapiranje stupaca i mapiranje vrsta podataka.
- Mapiranje podataka pretraživanja.
- Ispravna CRUD operacija poziva se za svaku radnju korisnika na korisničkom sučelju.
- CRUD operacija je uspješna.
# 2) Osigurajte ACID svojstva transakcija:
ACID svojstva DB transakcija odnose se na ' DO tomicity ',' C postojanost ',' Ja solacija ’i‘ D urabilnost ’. Ispravno testiranje ova četiri svojstva mora se obaviti tijekom aktivnosti ispitivanja baze podataka. Morate potvrditi da svaka pojedinačna transakcija zadovoljava ACID svojstva baze podataka.
Uzmimo jednostavan primjer ispod SQL koda:
CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
Ispitna tablica ACID imat će dva stupca - A i B. Postoji ograničenje integriteta da zbroj vrijednosti u A i B uvijek bude 100.
Ispitivanje atomskosti osigurat će da je bilo koja transakcija izvršena na ovoj tablici potpuna ili nijedna, tj. ne ažuriraju se zapisi ako bilo koji korak transakcije nije uspio.
Test konzistentnosti osigurat će da uvijek kad se vrijednost u stupcu A ili B ažurira, zbroj uvijek ostane 100. Neće dopustiti umetanje / brisanje / ažuriranje u A ili B ako je ukupni zbroj nešto drugo osim 100.
Ispitivanje izolacije osigurat će da se ako se dvije transakcije događaju istodobno i pokušavaju izmijeniti podaci ACID testne tablice, tada se te trakcije izvršavaju izolirano.
Ispitivanje trajnosti osigurat će da će jednom izvršena transakcija nad ovom tablicom ostati takva, čak i u slučaju gubitka napajanja, padova ili pogrešaka.
Ovo područje zahtijeva strože, temeljitije i pažljivije testiranje ako vaša aplikacija koristi distribuiranu bazu podataka.
# 3) Osigurajte integritet podataka
Uzmite u obzir da različiti moduli (tj. Zasloni ili obrasci) aplikacije koriste iste podatke na različite načine i izvode sve CRUD operacije s podacima.
U tom slučaju osigurajte da se najnovije stanje podataka odražava svugdje. Sustav mora prikazati ažurirane i najnovije vrijednosti ili status takvih zajedničkih podataka na svim obrascima i zaslonima. To se naziva cjelovitost podataka.
Test slučajevi za provjeru cjelovitosti podataka baze podataka:
- Provjerite jesu li svi okidači na mjestu kako biste ažurirali zapise referentne tablice.
- Provjerite postoje li netočni / nevaljani podaci u glavnim stupcima svake tablice.
- Pokušajte umetnuti pogrešne podatke u tablice i promatrajte ako se dogodi bilo koji kvar.
- Provjerite što se događa ako pokušate umetnuti dijete prije nego što umetnete roditelja (pokušajte se igrati s primarnim i stranim ključevima).
- Testirajte ako se dogodi neki kvar ako izbrišete zapis na koji još uvijek upućuju podaci iz bilo koje druge tablice.
- Provjerite jesu li replicirani poslužitelji i baze podataka sinkronizirani.
# 4) Osigurajte točnost primijenjenih pravila poslovanja:
Danas baze podataka nisu namijenjene samo za pohranu zapisa. Zapravo su baze podataka evoluirale u izuzetno moćne alate koji pružaju obimnu podršku programerima za implementaciju poslovne logike na razini DB-a.
Neki jednostavni primjeri moćnih značajki su 'Referencijalna cjelovitost', relacijska ograničenja, okidači i pohranjeni postupci.
Dakle, koristeći ove i mnoge druge značajke koje nude DB-ovi, programeri implementiraju poslovnu logiku na razini DB-a. Tester mora osigurati je li implementirana poslovna logika ispravna i funkcionira li točno.
Gornje točke opisuju četiri najvažnije 'Što treba' testirati DB. Sada, prijeđimo na dio 'Kako to'.
Kako testirati bazu podataka (korak po korak)
Baza podataka o općenitom testiranju procesa ispitivanja ne razlikuje se puno od bilo koje druge aplikacije.
Slijede osnovni koraci:
Korak 1) Pripremite okoliš
Korak 2) Pokrenite test
Korak # 3) Provjerite rezultat testa
Korak # 4) Potvrditi prema očekivanim rezultatima
Korak # 5) Izvjestite o nalazima odgovarajućim dionicimaZa razvoj testova obično se koriste SQL upiti. Najčešće korištena naredba je 'Odaberi'.
Odaberite * odakle
Osim Select, SQL ima 3 važne vrste naredbi:
- DDL: jezik definicije podataka
- DML: Jezik za manipulaciju podacima
- DCL: Jezik za kontrolu podataka
Pogledajmo sintaksu najčešće korištenih izjava.
Jezik definicije podataka Koristi CREATE, ALTER, RENAME, DROP i TRUNCATE za obradu tablica (i indeksa).
Jezik manipulacije podacima Uključuje izjave za dodavanje, ažuriranje i brisanje zapisa.
Jezik za kontrolu podataka: Bavi se davanjem ovlaštenja korisnicima za manipulaciju i pristup podacima. Odobri i Opozovi dvije su korištene izjave.
Sintaksa dodjele:
Dodijelite odabir / ažuriranje
Na
To;Opozovi sintaksu:
Opozovi odabir / ažuriranje
na
iz;Neki praktični savjeti
# 1) Napišite upite sami:
Da bi tačno testirao bazu podataka, ispitivač bi trebao dobro poznavati izjave SQL i DML (jezik za manipulaciju podacima). Tester bi također trebao znati unutarnju strukturu DB-a AUT.
Za bolju pokrivenost možete kombinirati GUI i provjeru podataka u odgovarajućim tablicama. Ako koristite SQL poslužitelj, tada možete koristiti SQL Query Analyzer za pisanje upita, njihovo izvršavanje i dohvaćanje rezultata.
Ovo je najbolji i robusni način testiranja baze podataka kada je aplikacija male ili srednje složenosti.
Ako je aplikacija vrlo složena, testeru će možda biti teško ili nemoguće napisati sve potrebne SQL upite. Za složene upite potražite pomoć programera. Uvijek preporučujem ovu metodu jer vam daje povjerenje u testiranje i također poboljšava vaše SQL vještine.
# 2) Promatrajte podatke u svakoj tablici:
Provjeru podataka možete izvršiti pomoću rezultata CRUD operacija. To se može učiniti ručno pomoću korisničkog sučelja aplikacije kada znate integraciju baze podataka. Ali ovo može biti dosadan i glomazan zadatak kada u različitim tablicama baze podataka postoje ogromni podaci.
Za ručno testiranje podataka, ispitivač baze podataka mora dobro poznavati strukturu tablice baze podataka.
# 3) Zatražite upite od programera:
Ovo je najjednostavniji način testiranja baze podataka. Izvršite bilo koju CRUD operaciju iz GUI-ja i provjerite njezine učinke izvršavanjem odgovarajućih SQL upita dobivenih od programera. Ne zahtijeva dobro poznavanje SQL-a niti dobro poznavanje strukture DB aplikacije.
Ali ovu metodu treba koristiti oprezno. Što ako je upit koji je dao programer semantički pogrešan ili ne ispunjava korisnikov zahtjev pravilno? Proces jednostavno neće uspjeti provjeriti valjanost podataka.
# 4) Iskoristite alate za testiranje automatizacije baze podataka:
Za postupak testiranja podataka dostupno je nekoliko alata. Trebali biste odabrati pravi alat prema vašim potrebama i iskoristiti ga na najbolji način.
=> Evo popisa TOP DB alata za testiranje koje biste trebali provjeriti
Zaključak
Uz sve ove značajke, čimbenike i procese za testiranje na bazi podataka, sve je veća potreba da testeri tehnički budu vješti u ključnim konceptima baze podataka. Unatoč nekim negativnim uvjerenjima da testiranje baze podataka stvara nova uska grla i puno dodatnih troškova - ovo je područje testiranja koje privlači značajnu pažnju i potražnju.
Predloženo čitanje = >> Što je ispitivanje sigurnosti baze podataka
Nadam se da je ovaj vodič pomogao da se usredotočite na to zašto je to tako da vam je pružio i osnovne detalje o tome što ide u testiranje baze podataka.
Obavijestite nas o svojim povratnim informacijama i podijelite svoja osobna iskustva ako radite na DB testiranju.
Preporučena literatura
- Ispitivanje baze podataka pomoću JMetera
- 40+ najboljih alata za testiranje baza podataka - popularna rješenja za testiranje podataka
- Jednostavan pristup za XML testiranje baze podataka
- Vodič za ispitivanje skladišta podataka ETL-a (cjelovit vodič)
- Vodič za testiranje migracije podataka: cjelovit vodič
- 10 najboljih alata za dizajn baze podataka za izgradnju složenih modela podataka
- Vodič za testiranje skladišta podataka sa primjerima | Vodič za ispitivanje ETL-a
- Kako testirati Oracle bazu podataka
^
- SQL upit DESC