database testing complete guide why
Kompletný sprievodca testovaním databázy s praktickými tipmi a príkladmi:
Počítačové aplikácie sú v dnešnej dobe zložitejšie s technológiami ako Android a tiež s množstvom aplikácií pre smartphony. Čím sú predné konce zložitejšie, tým sú zadné konce zložitejšie.
O to dôležitejšie je dozvedieť sa o testovaní DB a vedieť efektívne overiť databázy, aby sa zabezpečila bezpečnosť a kvalita databáz.
V tomto tutoriáli sa dozviete všetko o Testovaní údajov - prečo, ako a čo testovať?
Databáza je jednou z nevyhnutných častí softvérovej aplikácie.
Nezáleží na tom, či ide o web, počítač alebo mobil, klient-server, peer-to-peer, podnik alebo individuálne podnikanie; databáza je vyžadovaná všade na pozadí.
Podobne, či už sa jedná o zdravotnú starostlivosť, financie, leasing, maloobchod, poštu alebo ovládanie vesmírnej lode; databáza je vždy v zákulisí.
Ako sa zvyšuje zložitosť aplikácie, objavuje sa potreba silnejšej a bezpečnejšej databázy. Rovnako pre aplikácie s vysokou frekvenciou transakcií ( Napríklad, Aplikácia pre bankovníctvo alebo financie) je spojená nevyhnutnosť plne vybaveného nástroja DB Tool.
V dnešnej dobe máme veľké dáta, ktoré sú veľké a zložité a tradičné databázy ich nezvládajú.
Je ich niekoľko Databázové nástroje sú dostupné na trhu Napríklad, MS-Access, MS SQL Server, SQL Server, Oracle, Oracle Financial, MySQL, PostgreSQL, DB2, Toad, Admirer atď. Tieto nástroje sa líšia cenou, robustnosťou, funkciami a zabezpečením. Každý z nich má svoje výhody a nevýhody.
Čo sa dozviete:
- Prečo testovať databázu?
- Čo testovať (kontrolný zoznam na testovanie databázy)
- Ako otestovať databázu (podrobný proces)
Prečo testovať databázu?
Ďalej uvidíme, prečo by sa mali overiť nasledujúce aspekty DB:
# 1) Mapovanie údajov
V softvérových systémoch údaje často putujú tam a späť z používateľského rozhrania (používateľského rozhrania) do backendovej databázy a naopak. Je tu teda niekoľko aspektov, ktoré je potrebné sledovať:
- Skontrolujte, či sú polia vo formulároch používateľského rozhrania / rozhrania frontend konzistentne mapované so zodpovedajúcimi poľami v tabuľke DB. Spravidla sú tieto mapovacie informácie definované v dokumentoch požiadaviek.
- Kedykoľvek sa na prednom konci aplikácie vykoná určitá akcia, na zadnom konci sa vyvolá zodpovedajúca akcia CRUD (vytvorenie, načítanie, aktualizácia a odstránenie). Tester bude musieť skontrolovať, či je vyvolaná správna akcia a či je vyvolaná akcia sama o sebe úspešná alebo nie.
# 2) Overenie vlastností KYSELINY
Atomicita, konzistencia, izolácia a trvanlivosť. Každá transakcia, ktorú vykoná DB, musí spĺňať tieto štyri vlastnosti.
- Atomicita znamená, že transakcia buď zlyhala, alebo prešla. To znamená, že aj keď zlyhá jedna časť transakcie, znamená to, že zlyhala celá transakcia. Spravidla sa tomu hovorí pravidlo „všetko alebo nič“.
- Dôslednosť : Výsledkom transakcie bude vždy platný stav databázy
- Izolácia : Ak existuje viac transakcií a sú vykonávané naraz, výsledok / stav databázy by mal byť rovnaký, ako keby boli vykonané jedna za druhou.
- Trvanlivosť : Keď je transakcia vykonaná a potvrdená, nemali by ju byť schopné zmeniť žiadne vonkajšie faktory, ako napríklad strata napájania alebo zlyhanie
Navrhované čítanie = >> Výukový program pre transakcie MySQL
# 3) Integrita údajov
Pre ktorúkoľvek z Operácie CRUD , aktualizované a najnovšie hodnoty / stav zdieľaných údajov by sa mali zobraziť na všetkých formulároch a obrazovkách. Hodnota by sa nemala aktualizovať na jednej obrazovke a staršia hodnota by sa mala zobrazovať na inej obrazovke.
Keď sa aplikácia vykonáva, koncový užívateľ využíva hlavne operácie „CRUD“ uľahčené nástrojom DB .
C: Vytvoriť - Keď používateľ „uloží“ každú novú transakciu, vykoná sa operácia „vytvoriť“.
R: Načítať - Keď používateľ „vyhľadá“ alebo „prezerá“ každú uloženú transakciu, vykoná sa operácia „načítať“.
U: Aktualizácia - Keď používateľ upraví alebo upraví existujúci záznam, vykoná sa operácia „Aktualizovať“ v databáze.
D: Odstrániť - Keď používateľ „odstráni“ akýkoľvek záznam zo systému, vykoná sa operácia „Odstrániť“ DB.
Akákoľvek operácia v databáze, ktorú vykonáva koncový užívateľ, je vždy jednou z vyššie uvedených štyroch.
Navrhnite teda svoje testovacie prípady DB tak, aby zahŕňali kontrolu údajov na všetkých miestach, ktoré sa zobrazujú, aby ste zistili, či sú konzistentne rovnaké.
# 4) Zhoda obchodných pravidiel
Komplikovanejšie v databázach znamenajú komplikovanejšie komponenty, ako sú relačné obmedzenia, spúšťače, uložené procedúry atď. Testéri teda budú musieť prísť s vhodnými dotazmi SQL, aby mohli tieto zložité objekty overiť.
Čo testovať (kontrolný zoznam na testovanie databázy)
# 1) Transakcie
Pri testovaní transakcií je dôležité uistiť sa, že vyhovujú vlastnostiam kyselín.
Toto sú bežne používané vyhlásenia:
- ZAČÍNAJTE TRANSAKCIU TRANSAKCIE #
- KONIEC TRANSAKČNEJ TRANSAKCIE #
Príkaz Rollback zaručuje, že databáza zostane v konzistentnom stave.
- ROLLBACK TRANSACTION #
Po vykonaní týchto príkazov použite výber, aby ste sa uistili, že sa zmeny prejavili.
- VYBERTE * Z TABLENAME
# 2) Databázové schémy
Databázová schéma nie je nič iné ako formálna definícia toho, ako budú údaje usporiadané v databáze. Ak to chcete vyskúšať:
- Identifikujte požiadavky, na základe ktorých pracuje databáza. Vzorové požiadavky:
- Primárne kľúče, ktoré sa majú vytvoriť pred vytvorením ďalších polí.
- Cudzie kľúče by mali byť úplne indexované, aby bolo možné ich ľahko vyhľadať a vyhľadať.
- Názvy polí začínajúce alebo končiace určitými znakmi.
- Polia s obmedzením, ktoré môžu alebo nemôžu byť vložené do určitých hodnôt.
- Podľa dôležitosti použite jednu z nasledujúcich metód:
- SQL dotaz POPIS
na schválenie schémy.
- Regulárne výrazy na validáciu názvov jednotlivých polí a ich hodnôt
- Nástroje ako SchemaCrawler
# 3) Spúšťače
Keď sa na určitom stole odohrá určitá udalosť, je možné automaticky inštruovať vykonanie kódu (spúšťača).
Napríklad, do školy nastúpil nový študent. Študent navštevuje 2 triedy: matematiku a prírodovedu. Študent je pridaný do „tabuľky študentov“. Po pridaní do tabuľky študenta môže spúšťač pridať študenta do príslušných tabuliek predmetov.
Bežnou metódou na testovanie je vykonať najskôr nezávisle dopyt SQL vložený do Triggeru a zaznamenať výsledok. Pokračujte týmto krokom a vykonaním Triggeru ako celku. Porovnajte výsledky.
Testujú sa vo fáze testovania Black-box aj White-Box.
najlepší bezplatný prevodník z youtube na mp3 online
- Testovanie bielej skrinky : Pahýly a ovládače sa používajú na vloženie alebo aktualizáciu alebo odstránenie údajov, ktoré by mali za následok vyvolanie spúšťača. Základnou myšlienkou je iba otestovať samotný DB ešte predtým, ako dôjde k integrácii s front-endom (UI).
- Testovanie čiernej skrinky :
do) Od UI a DB je teraz k dispozícii integrácia; môžeme vložiť / vymazať / aktualizovať údaje z klientskeho rozhrania spôsobom, ktorý vyvolá Trigger. Potom je možné pomocou príkazov Select načítať údaje DB a zistiť, či bol spúšťač úspešný pri uskutočňovaní zamýšľanej operácie.
b) Druhým spôsobom, ako to otestovať, je priame načítanie údajov, ktoré by vyvolali spúšťač, a zistiť, či funguje podľa očakávania.
# 4) Uložené procedúry
Uložené procedúry sú viac-menej podobné používateľom definovaným funkciám. Môžu byť vyvolané príkazmi Call Procedure / Execute Procedure a výstup je zvyčajne vo forme výsledkových sád.
Tieto sú uložené v RDBMS a sú k dispozícii pre aplikácie.
Testujú sa tiež počas:
- Testovanie bielej skrinky: Pahýly sa používajú na vyvolanie uložených procedúr a potom sa výsledky overia oproti očakávaným hodnotám.
- Testovanie čiernej skrinky: Vykonajte operáciu z klientskeho rozhrania (UI) aplikácie a skontrolujte vykonávanie uloženej procedúry a jej výsledkov.
# 5) Obmedzenia poľa
Predvolená hodnota, jedinečná hodnota a cudzí kľúč:
- Vykonajte operáciu front-end, pri ktorej sa precvičí podmienka databázového objektu
- Výsledky overte pomocou dotazu SQL.
Kontrola predvolenej hodnoty pre určité pole je dosť jednoduchá. Je to súčasť overovania obchodných pravidiel. Môžete to urobiť manuálne alebo môžete použiť nástroje ako QTP. Z klientskeho rozhrania môžete vykonať akciu, ktorá pridá inú hodnotu ako predvolenú hodnotu poľa, a zistíte, či nedôjde k chybe.
Nasleduje ukážkový kód VBScript:
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) Výsledok vyššie uvedeného kódu je True, ak existuje predvolená hodnota, alebo False, ak nie.
Kontrolu jedinečnej hodnoty je možné vykonať presne tak, ako sme to urobili pre predvolené hodnoty. Skúste zadať hodnoty z používateľského rozhrania, ktoré bude toto pravidlo porušovať, a skontrolujte, či sa zobrazuje chyba.
Automatizačný kód VB Script môže byť:
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) PreCudzí kľúčvalidácia obmedzenia používa načítanie údajov, ktoré priamo vkladá údaje, ktoré porušujú dané obmedzenie, a zisťuje, či ich aplikácia obmedzuje alebo nie. Spolu s načítaním údajov koncového zariadenia vykonávajte aj operácie používateľského rozhrania rozhrania front-end spôsobom, ktorý porušuje obmedzenia a zisťuje, či sa zobrazuje príslušná chyba.
Činnosti testovania údajov
Tester databázy by sa mal zamerať na nasledujúce testovacie činnosti:
# 1) Zaistite mapovanie údajov:
Mapovanie údajov je jedným z kľúčových aspektov v databáze a každý tester softvéru by ho mal dôsledne testovať.
Uistite sa, že mapovanie medzi rôznymi formami alebo obrazovkami AUT a jeho DB je nielen presné, ale aj podľa projektových dokumentov (SRS / BRS) alebo kódu. V zásade musíte overiť mapovanie medzi každým front-endovým poľom s príslušným poľom back-endovej databázy.
Pri všetkých operáciách CRUD skontrolujte, či sa príslušné tabuľky a záznamy aktualizujú, keď používateľ klikne na „Uložiť“, „Aktualizovať“, „Hľadať“ alebo „Odstrániť“ z grafického používateľského rozhrania aplikácie.
Čo musíte overiť:
- Mapovanie tabuliek, mapovanie stĺpcov a mapovanie dátových typov.
- Mapovanie údajov vyhľadávania.
- Pre každú akciu používateľa v používateľskom rozhraní je vyvolaná správna operácia CRUD.
- Operácia CRUD je úspešná.
# 2) Zaistite ACID vlastnosti transakcií:
KYSELÉ vlastnosti transakcií DB odkazujú na „ TO tomicita “,„ C. samostatnosť “,„ Ja izolácia “a„ D naliehavosť “. Správne testovanie týchto štyroch vlastností sa musí vykonať počas aktivity testovania databázy. Musíte overiť, či každá jednotlivá transakcia spĺňa vlastnosti KYSELINY databázy.
Zoberme si jednoduchý príklad z nižšie uvedeného kódu SQL:
CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
Testovacia tabuľka ACID bude mať dva stĺpce - A & B. Existuje obmedzenie integrity, že súčet hodnôt v A a B by mal byť vždy 100.
Skúška atomicity zabezpečí, že všetky transakcie vykonané v tejto tabuľke budú všetky alebo žiadne, t. j. ak sa niektorý krok transakcie nepodarí, neaktualizujú sa žiadne záznamy.
Test konzistencie zabezpečí, že kedykoľvek sa aktualizuje hodnota v stĺpci A alebo B, súčet vždy zostáva 100. Neumožňuje vloženie, odstránenie alebo aktualizáciu v A alebo B, ak je celková suma iná ako 100.
Izolačný test zabezpečí, že ak sa dve transakcie dejú súčasne a pokúsia sa upraviť údaje z testovacej tabuľky ACID, potom sa tieto transakcie vykonávajú izolovane.
Skúška trvanlivosti zaistí, že po vykonaní transakcie nad touto tabuľkou to tak zostane, a to aj v prípade straty napájania, zlyhaní alebo chýb.
Táto oblasť vyžaduje dôslednejšie, dôkladnejšie a dôkladnejšie testovanie, ak vaša aplikácia používa distribuovanú databázu.
# 3) Zaistite integritu údajov
Zvážte, že rôzne moduly (t. J. Obrazovky alebo formuláre) aplikácie používajú rovnaké údaje rôznymi spôsobmi a vykonávajú s nimi všetky operácie CRUD.
V takom prípade zabezpečte, aby sa všade zobrazoval najnovší stav údajov. Systém musí na všetkých formulároch a obrazovkách zobrazovať aktualizované a najnovšie hodnoty alebo stav takýchto zdieľaných údajov. Toto sa nazýva Data Integrity.
Testovacie prípady na overenie integrity údajov databázy:
- Skontrolujte, či sú všetky spúšťače zavedené, aby sa aktualizovali záznamy referenčnej tabuľky.
- Skontrolujte, či v hlavných stĺpcoch každej tabuľky existujú nesprávne alebo neplatné údaje.
- Pokúste sa vložiť nesprávne údaje do tabuliek a sledujte, či nedošlo k poruche.
- Skontrolujte, čo sa stane, ak sa pokúsite vložiť dieťa pred vložením jeho rodiča (skúste sa hrať s primárnym a cudzím kľúčom).
- Vyskúšajte, či dôjde k akejkoľvek poruche, ak odstránite záznam, na ktorý stále odkazujú údaje v ktorejkoľvek inej tabuľke.
- Skontrolujte, či sú replikované servery a databázy synchronizované.
# 4) Zaistite presnosť implementovaných obchodných pravidiel:
Dnes databázy nie sú určené iba na ukladanie záznamov. V skutočnosti sa databázy vyvinuli do mimoriadne výkonných nástrojov, ktoré vývojárom poskytujú dostatočnú podporu pri implementácii obchodnej logiky na úrovni DB.
Niektoré jednoduché príklady výkonných funkcií sú „Referenčná integrita“, Relačné obmedzenia, Spúšťače a uložené procedúry.
Takže pomocou týchto a mnohých ďalších funkcií ponúkaných databázami vývojári implementujú obchodnú logiku na úrovni databáz. Tester musí zabezpečiť, aby implementovaná obchodná logika bola správna a fungovala presne.
Vyššie uvedené body popisujú štyri najdôležitejšie „Čo robiť“ testovania DB. Teraz prejdime k časti Ako na to.
Ako otestovať databázu (podrobný proces)
Všeobecná testovacia databáza testovacích procesov sa veľmi nelíši od iných aplikácií.
Nasledujú základné kroky:
Krok 1) Pripravte prostredie
Krok 2) Spustiť test
Krok č. 3) Skontrolujte výsledok skúšky
Krok č. 4) Potvrďte podľa očakávaných výsledkov
Krok č. 5) O výsledkoch informujte príslušné zainteresované stranyNa vývoj testov sa zvyčajne používajú dotazy SQL. Najčastejšie sa používa príkaz „Vybrať“.
Vyberte * odkiaľ
Okrem Select má SQL 3 dôležité typy príkazov:
- DDL: Jazyk definície údajov
- DML: Jazyk manipulácie s údajmi
- DCL: Jazyk riadenia údajov
Pozrime sa na syntax najbežnejšie používaných príkazov.
Jazyk definície údajov Používa CREATE, ALTER, RENAME, DROP a TRUNCATE na spracovanie tabuliek (a indexov).
Jazyk manipulácie s údajmi Zahŕňa príkazy na pridávanie, aktualizáciu a mazanie záznamov.
Jazyk kontroly údajov: Zaoberá sa udelením oprávnenia používateľom na manipuláciu a prístup k údajom. Dva použité výroky sú Grant a Revoke.
Udeliť syntax:
Udeliť výber / aktualizáciu
On
K;Odvolať syntax:
Revokeselect / update
na
od;Niekoľko praktických rád
# 1) Napíšte otázky sami:
Na presné otestovanie databázy by mal mať tester veľmi dobré znalosti príkazov SQL a DML (Data Manipulation Language). Tester by mal poznať aj vnútornú štruktúru DB AUT.
Môžete kombinovať grafické používateľské rozhranie a overenie údajov v príslušných tabuľkách, aby ste dosiahli lepšie pokrytie. Ak používate server SQL, môžete na písanie dotazov, ich vykonávanie a načítanie výsledkov využívať program SQL Query Analyzer.
Toto je najlepší a robustný spôsob testovania databázy, keď je aplikácia malej alebo strednej úrovne zložitosti.
Ak je aplikácia veľmi zložitá, potom môže byť pre testera ťažké alebo nemožné napísať všetky požadované dotazy SQL. V prípade zložitých otázok potrebujete pomoc od vývojára. Túto metódu vždy odporúčam, pretože vám dáva dôveru v testovanie a tiež zvyšuje vaše schopnosti v oblasti SQL.
# 2) Sledujte údaje v každej tabuľke:
Overenie údajov môžete vykonať pomocou výsledkov operácií CRUD. To je možné vykonať manuálne pomocou používateľského rozhrania aplikácie, keď poznáte integráciu databázy. To však môže byť zdĺhavá a ťažkopádna úloha, ak sú v rôznych databázových tabuľkách obrovské údaje.
Pri manuálnom testovaní údajov musí mať databázový tester dobrú znalosť štruktúry databázovej tabuľky.
# 3) Získajte dotazy od vývojárov:
Toto je najjednoduchší spôsob testovania databázy. Vykonajte ľubovoľnú operáciu CRUD z grafického používateľského rozhrania a overte jej dopady vykonaním príslušných dotazov SQL získaných od vývojára. Nevyžaduje dobrú znalosť jazyka SQL ani dobrú znalosť štruktúry databázy aplikácie.
Túto metódu je však potrebné používať opatrne. Čo ak je dopyt zadaný vývojárom sémanticky nesprávny alebo nespĺňa správne požiadavky používateľa? Proces jednoducho zlyhá pri overovaní údajov.
# 4) Využite nástroje na testovanie automatizácie databázy:
Pre proces testovania údajov je k dispozícii niekoľko nástrojov. Mali by ste si zvoliť správny nástroj podľa svojich potrieb a čo najlepšie ho využiť.
=> Tu je zoznam NAJLEPŠÍCH DB testovacích nástrojov, ktoré by ste mali skontrolovať
Záver
So všetkými týmito vlastnosťami, faktormi a procesmi, ktoré sa majú testovať na databáze, sa zvyšuje dopyt po testeroch, aby boli technicky zdatní v kľúčových koncepciách databázy. Napriek niektorým negatívnym presvedčeniam, že testovanie databázy vytvára nové úzke miesta a predstavuje veľa ďalších výdavkov - ide o oblasť testovania, ktorá priťahuje značnú pozornosť a dopyt.
Navrhované čítanie = >> Čo je to Testovanie bezpečnosti databázy
Dúfam, že tento tutoriál pomohol zamerať sa na to, prečo je to tak, a tiež vám poskytol základné podrobnosti o tom, čo ide do testovania databázy.
Dajte nám vedieť svoju spätnú väzbu a tiež zdieľajte svoje osobné skúsenosti, ak pracujete na testovaní DB.
Odporúčané čítanie
- Testovanie databázy pomocou JMeter
- 40+ najlepších nástrojov na testovanie databázy - populárne riešenia na testovanie údajov
- Jednoduchý prístup k testovaniu XML na databázu
- Výukový program na testovanie dátových skladov ETL (kompletný sprievodca)
- Výukový program na testovanie migrácie údajov: Kompletný sprievodca
- Top 10 nástrojov na návrh databázy na zostavenie komplexných dátových modelov
- Výukový program na testovanie dátových skladov s príkladmi Sprievodca testovaním ETL
- Ako testovať databázu Oracle
^
- SQL dotaz POPIS