Tutorial de testare a bazelor de date
Ce este testarea bazelor de date?
Testarea bazei de date este un tip de testare software care verificฤ schema, tabelele, declanศatoarele etc. ale bazei de date testate. De asemenea, verificฤ integritatea ศi coerenศa datelor. Poate implica crearea de interogฤri complexe pentru a รฎncฤrca/testa baza de date ศi pentru a verifica capacitatea de rฤspuns.
De ce este importantฤ testarea bazelor de date?
Testarea bazei de date este importantฤ in testare software deoarece asigurฤ valorile datelor ศi informaศiile primite ศi stocate รฎn baza de date sunt valide sau nu. Testarea bazelor de date ajutฤ la salvarea pierderilor de date, salveazฤ datele privind tranzacศiile รฎntrerupte ศi nu accesul neautorizat la informaศii. Baza de date este importantฤ pentru orice aplicaศie software, prin urmare, testerii trebuie sฤ aibฤ cunoศtinศe bune de SQL pentru testarea bazelor de date.
GUI-ului i se acordฤ de obicei cel mai mare accent de cฤtre membrii echipei de testare ศi dezvoltare, deoarece interfaศa graficฤ cu utilizatorul se รฎntรขmplฤ sฤ fie cea mai vizibilฤ parte a aplicaศiei. Cu toate acestea, ceea ce este, de asemenea, important este sฤ validฤm informaศiile care sunt inima aplicaศiei, aka BAZฤ DE DATE.
Sฤ luฤm รฎn considerare o aplicaศie bancarฤ รฎn care un utilizator efectueazฤ tranzacศii. Acum, din punctul de vedere al Testฤrii bazei de date sau al Testฤrii bazei de date, lucrurile sunt importante:
- Aplicaศia stocheazฤ informaศiile despre tranzacศie รฎn baza de date a aplicaศiei ศi le afiศeazฤ corect utilizatorului.
- Nicio informaศie nu se pierde รฎn acest proces.
- Aplicaศia nu salveazฤ informaศii despre operaศiunile parศial efectuate sau anulate.
- Nicio persoanฤ neautorizatฤ nu are voie sฤ acceseze informaศiile utilizatorului.
Pentru a asigura toate aceste obiective de mai sus, trebuie sฤ folosim validarea sau testarea datelor.
Diferenศele dintre testarea interfeศei cu utilizatorul ศi testarea datelor
| Testarea interfeศei cu utilizatorul | Baza de date sau testarea datelor |
|---|---|
| Acest tip de testare este cunoscut ศi sub denumirea de testare a interfeศei grafice cu utilizatorul sau testare front-end. | Acest tip de testare este cunoscut ศi sub denumirea de testare backend sau testare a datelor. |
| Acest tip de testare se ocupฤ รฎn principal cu toate elementele testabile care sunt deschise utilizatorului pentru vizionare ศi interacศiune, cum ar fi Formulare, Prezentare, Grafice, Meniuri ศi Rapoarte etc. (create prin VB, VB.net, VC++, Delphi โ Instrumente front-end) | Acest tip de testare se ocupฤ รฎn principal cu toate elementele testabile care sunt รฎn general ascunse utilizatorului pentru vizionare. Acestea includ procese interne ศi stocare, cum ar fi Assembly, DBMS ca Oracle, SQL Server, MYSQL etc. |
|
Acest tip de testare include validarea
|
Acest tip de testare presupune validarea:
|
| Testerul trebuie sฤ cunoascฤ temeinic cerinศele de afaceri, precum ศi utilizarea instrumentelor de dezvoltare ศi utilizarea cadrelor ศi instrumentelor de automatizare. | Pentru a putea efectua testarea backend, testatorul trebuie sฤ aibฤ o experienศฤ solidฤ รฎn serverul de baze de date ศi conceptele Structured Query Language. |
Tipuri de testare a bazelor de date
Cele 3 tipuri de testare a bazelor de date sunt
รn acest tutorial de testare a bazei de date, vom analiza fiecare tip ศi subtipurile sale unul cรขte unul.
Testarea bazelor de date structurale
Testarea bazelor de date structurale este o tehnicฤ de testare a bazelor de date care valideazฤ toate elementele din depozitul de date care sunt utilizate รฎn principal pentru stocarea datelor ศi care nu au voie sฤ fie manipulate direct de cฤtre utilizatorii finali. Validarea serverelor de baze de date este, de asemenea, o consideraศie importantฤ รฎn testarea bazelor de date structurale. O finalizare cu succes a acestei teste necesitฤ stฤpรขnire รฎn interogฤrile SQL.
Ce este Schema Testing?
Testarea Schemei testarea bazei de date valideazฤ diverse formate de schemฤ asociate cu baza de date ศi verificฤ dacฤ formatele de mapare ale tabelelor/vizualizฤrilor/coloanelor sunt compatibile cu formatele de mapare ale interfeศei cu utilizatorul. Scopul principal al testฤrii schemei este de a se asigura cฤ maparea schemei dintre front-end ศi back-end este similarฤ. Astfel, este denumitฤ ศi testarea cartografierii.
Sฤ discutฤm cele mai importante puncte de control pentru testarea schemei.
- Validarea diferitelor formate de schemฤ asociate bazelor de date. De multe ori este posibil ca formatul de mapare al tabelului sฤ nu fie compatibil cu formatul de mapare prezent la nivelul interfeศei cu utilizatorul a aplicaศiei.
- Este nevoie de verificare รฎn cazul tabelelor/vizualizฤrilor/coloanelor nemapate.
- De asemenea, este necesar sฤ se verifice dacฤ bazele de date eterogene dintr-un mediu sunt รฎn concordanศฤ cu maparea generalฤ a aplicaศiei.
Sฤ ne uitฤm ศi la unele dintre instrumentele interesante de testare a bazelor de date pentru validarea schemelor bazelor de date.
- DBUnit care este integrat cu Ant este foarte potrivit pentru testarea cartografierii.
- SQL Server permite testerilor sฤ poatฤ verifica ศi interoga schema bazei de date prin scrierea de interogฤri simple ศi nu prin cod.
De exemplu, dacฤ dezvoltatorii doresc sฤ modifice o structurฤ de tabel sau sฤ o ศtergฤ, testatorul ar dori sฤ se asigure cฤ toate procedurile stocate ศi vizualizฤrile care folosesc acel tabel sunt compatibile cu modificarea respectivฤ. Un alt exemplu ar putea fi acela cฤ, dacฤ testerii doresc sฤ verifice modificฤrile schemei รฎntre 2 baze de date, pot face asta folosind interogฤri simple.
Tabelul bazei de date, Testarea coloanelor
Sฤ ne uitฤm la diferite verificฤri pentru testarea bazei de date ศi a coloanelor.
- Dacฤ maparea cรขmpurilor ศi coloanelor bazei de date din backend este compatibilฤ cu acele mapฤri din front-end?
- Validarea lungimii ศi convenศiei de denumire a cรขmpurilor ศi coloanelor bazei de date, conform cerinศelor.
- Validarea prezenศei oricฤror tabele/coloane de baze de date neutilizate/nemapate.
- Validarea compatibilitฤศii
- datatype
- lungimi de cรขmp
a coloanelor bazei de date back-end cu cea a celor prezente la front-end-ul aplicaศiei.
- Dacฤ cรขmpurile bazei de date permit utilizatorului sฤ furnizeze intrฤrile dorite de utilizator, conform cerinศelor documentelor cu specificaศiile cerinศelor de afaceri.
Testarea cheilor ศi indexurilor
Verificฤri importante pentru chei ศi indexuri โ
- Verificaศi dacฤ este necesar
- Cheia principala
- Cheie externฤ
au fost create constrรขngeri pe tabelele necesare.
- Verificaศi dacฤ referinศele pentru cheile strฤine sunt valide.
- Verificaศi dacฤ tipul de date al cheii primare ศi cheile strฤine corespunzฤtoare sunt aceleaศi รฎn cele douฤ tabele.
- Verificaศi dacฤ au fost respectate convenศiile de denumire necesare pentru toate cheile ศi indecศii.
- Verificaศi dimensiunea ศi lungimea cรขmpurilor ศi indecศilor obligatorii.
- Fie cฤ este necesar
- Clusterindici ed
- Nu Clusterindici ed
au fost create pe tabelele necesare, conform cerinศelor de afaceri.
Testarea procedurilor stocate
Testele importante pentru verificarea procedurilor stocate sunt:
- Dacฤ echipa de dezvoltare a adoptat convenศiile standard de codificare necesare, A) ศi B) gestionarea excepศiilor ศi erorilor. Pentru toate procedurile stocate pentru toate modulele pentru aplicaศia testatฤ.
- Dacฤ echipa de dezvoltare a acoperit toate condiศiile/buclele aplicรขnd datele de intrare necesare aplicaศiei testate?
- Dacฤ echipa de dezvoltare a aplicat corect operaศia TRIM ori de cรขte ori au fost preluate date din tabelele necesare din baza de date?
- Dacฤ executarea manualฤ a procedurii stocate oferฤ utilizatorului final rezultatul necesar?
- Dacฤ execuศia manualฤ a procedurii stocate asigurฤ cฤ cรขmpurile tabelului sunt actualizate conform cerinศelor aplicaศiei testate?
- Dacฤ executarea Procedurilor stocate permite invocarea implicitฤ a declanศatorilor necesari?
- Validarea prezenศei oricฤror proceduri stocate neutilizate.
- Validarea pentru condiศia Allow Null care se poate face la nivel de bazฤ de date.
- Validarea faptului cฤ toate Procedurile ศi Funcศiile stocate au fost executate cu succes atunci cรขnd baza de date testatฤ este goalฤ.
- Validarea integrฤrii globale a modulelor de proceduri stocate conform cerinศelor aplicaศiei testate.
Unele dintre instrumentele utile de testare a bazelor de date pentru testarea procedurilor stocate sunt LINQ, instrumentul de testare SP etc.
Testarea declanศatorului
- Dacฤ convenศiile de codare necesare au fost respectate รฎn timpul fazei de codare a declanศatorilor?
- Verificaศi dacฤ declanศatoarele executate pentru tranzacศiile DML respective au รฎndeplinit condiศiile cerute.
- Dacฤ declanศatorul actualizeazฤ datele corect odatฤ ce acestea au fost executate?
- Validarea Actualizarii/Inserฤrii/ศtergerii necesare declanศeazฤ funcศionalitatea รฎn domeniul aplicaศiei testate.
Validare server baze de date
- Verificaศi configuraศiile serverului de baze de date, aศa cum sunt specificate de cerinศele de afaceri.
- Verificaศi autorizarea utilizatorului necesar pentru a efectua numai acele niveluri de acศiuni care sunt cerute de aplicaศie.
- Verificaศi dacฤ serverul de baze de date este capabil sฤ rฤspundฤ nevoilor numฤrului maxim permis de tranzacศii utilizator, aศa cum este specificat de specificaศiile cerinศelor de afaceri.
Testarea bazelor de date funcศionale
Testarea bazelor de date funcศionale este un tip de testare a bazei de date care este utilizat pentru a valida cerinศele funcศionale ale unei baze de date din perspectiva utilizatorului final. Scopul principal al testฤrii bazei de date funcศionale este de a testa dacฤ tranzacศiile ศi operaศiunile efectuate de utilizatorii finali care au legฤturฤ cu baza de date funcศioneazฤ conform aศteptฤrilor sau nu.
Urmฤtoarele sunt condiศiile de bazฤ care trebuie respectate pentru validฤrile bazei de date.
- Dacฤ cรขmpul este obligatoriu, permiศรขnd valori NULL รฎn acel cรขmp?
- Dacฤ lungimea fiecฤrui cรขmp este de dimensiune suficientฤ?
- Dacฤ toate cรขmpurile similare au aceleaศi nume รฎn tabele?
- Dacฤ existฤ cรขmpuri calculate prezente รฎn baza de date?
Acest proces special este validarea mapฤrilor cรขmpului din punctul de vedere al utilizatorului final. รn acest scenariu particular, testerul ar efectua o operaศie la nivel de bazฤ de date ศi apoi ar naviga la elementul relevant al interfeศei cu utilizatorul pentru a observa ศi valida dacฤ validฤrile de cรขmp corespunzฤtoare au fost efectuate sau nu.
Ar trebui fฤcutฤ ศi condiศia inversฤ prin care prima operaศiune este efectuatฤ de cฤtre tester la interfaศa cu utilizatorul, iar apoi aceeaศi este validatฤ din back-end.
Verificarea integritฤศii ศi consecvenศei datelor
Urmฤtoarele verificฤri sunt importante
- Dacฤ datele sunt bine organizate din punct de vedere logic?
- Dacฤ datele stocate รฎn tabele sunt corecte ศi conform cerinศelor afacerii?
- Dacฤ existฤ date inutile รฎn aplicaศia testatฤ?
- Dacฤ datele au fost stocate conform cerinศelor รฎn ceea ce priveศte datele care au fost actualizate din interfaศa cu utilizatorul?
- Dacฤ operaศiunile TRIM au fost efectuate asupra datelor รฎnainte de inserarea datelor รฎn baza de date testatฤ?
- Dacฤ tranzacศiile au fost efectuate conform specificaศiilor cerinศelor de afaceri ศi dacฤ rezultatele sunt corecte sau nu?
- Dacฤ datele au fost angajate รฎn mod corespunzฤtor dacฤ tranzacศia a fost executatฤ cu succes?
- Dacฤ datele au fost retrocedate cu succes dacฤ tranzacศia nu a fost executatฤ cu succes de cฤtre utilizatorul final?
- Dacฤ datele au fost retrocedate dacฤ tranzacศia nu a fost executatฤ cu succes ศi mai multe baze de date eterogene au fost implicate รฎn tranzacศia รฎn cauzฤ?
- Dacฤ toate tranzacศiile au fost executate utilizรขnd procedurile de proiectare necesare, aศa cum sunt specificate de cerinศele de afaceri ale sistemului?
Logare ศi securitatea utilizatorului
Validarea acreditฤrilor de conectare ศi de securitate a utilizatorului trebuie sฤ ia รฎn considerare urmฤtoarele lucruri.
- Dacฤ aplicaศia รฎmpiedicฤ utilizatorul sฤ continue รฎn aplicaศie รฎn cazul a
- nume de utilizator invalid, dar parolฤ validฤ
- nume de utilizator valid, dar parolฤ nevalidฤ.
- nume de utilizator nevalid ศi parolฤ nevalidฤ.
- Dacฤ utilizatorului i se permite sฤ efectueze numai acele operaศiuni specifice care sunt specificate de cerinศele de afaceri?
- Dacฤ datele sunt protejate รฎmpotriva accesului neautorizat?
- Dacฤ existฤ roluri de utilizator diferite create cu permisiuni diferite?
- Dacฤ toศi utilizatorii au necesare niveluri de acces la baza de date specificatฤ, conform specificaศiilor de afaceri?
- Verificaศi dacฤ datele sensibile, cum ar fi parolele, numerele cฤrศilor de credit sunt criptate ศi nu sunt stocate ca text simplu รฎn baza de date. Este o practicฤ bunฤ sฤ vฤ asiguraศi cฤ toate conturile ar trebui sฤ aibฤ parole care sunt complexe ศi nu sunt uศor de ghicit.
Testare nefuncศionalฤ
Testare nefuncศionalฤ รฎn contextul testฤrii bazei de date pot fi clasificate รฎn diferite categorii, conform cerinศelor de afaceri. Acestea pot fi teste de รฎncฤrcare, testare de stres, Testarea securitฤศii, Testarea utilizabilitฤศii ศi Testarea compatibilitฤศii, ศi aศa mai departe. Testarea de sarcinฤ, precum ศi testarea de stres, care pot fi grupate รฎn gama Testฤrii performanศei, servesc douฤ scopuri specifice cรขnd vine vorba de rolul testฤrii nefuncศionale.
Cuantificarea risculuiโ Cuantificarea riscului ajutฤ pฤrศile interesate sฤ stabileascฤ diferitele cerinศe privind timpul de rฤspuns al sistemului la nivelurile necesare de รฎncฤrcare. Aceasta este intenศia originalฤ a oricฤrui de asigurare a calitฤศii sarcinฤ. Trebuie sฤ remarcฤm cฤ testarea sarcinii nu atenueazฤ riscul รฎn mod direct, ci prin procesele de identificare ศi cuantificare a riscului, prezintฤ oportunitฤศi corective ศi un impuls pentru remediere care va atenua riscul.
Cerinศa minimฤ de echipare a sistemuluiโ Configuraศia minimฤ a sistemului care va permite sistemului sฤ รฎndeplineascฤ aศteptฤrile de performanศฤ declarate oficial ale pฤrศilor interesate. Astfel cฤ hardware-ul, software-ul strฤin ศi costul de proprietate asociat pot fi minimizate. Aceastฤ cerinศฤ particularฤ poate fi clasificatฤ ca cerinศฤ generalฤ de optimizare a afacerii.
รncฤrcarea testelor
Scopul oricฤrui test de sarcinฤ trebuie sฤ fie clar รฎnศeles ศi documentat. Urmฤtoarele tipuri de configuraศii sunt obligatorii testarea sarcinii.
- Tranzacศiile utilizatorului cel mai frecvent utilizate au potenศialul de a afecta performanศa tuturor celorlalte tranzacศii dacฤ acestea nu sunt eficiente.
- Cel puศin o tranzacศie de utilizator fฤrฤ editare ar trebui inclusฤ รฎn suita finalฤ de testare, astfel รฎncรขt performanศa unor astfel de tranzacศii sฤ poatฤ fi diferenศiatฤ de alte tranzacศii mai complexe.
- Tranzacศiile mai importante care faciliteazฤ obiectivele de bazฤ ale sistemului ar trebui incluse, deoarece eศecul sub o รฎncฤrcare a acestor tranzacศii are, prin definiศie, cel mai mare impact.
- Ar trebui inclusฤ cel puศin o tranzacศie editabilฤ, astfel รฎncรขt performanศฤ a unor astfel de tranzacศii pot fi diferenศiate de alte tranzacศii.
- Timp de rฤspuns optim sub un numฤr mare de utilizatori virtuali pentru toate cerinศele potenศiale.
- Timp efectiv pentru preluarea diferitelor รฎnregistrฤri.
Instrumentele importante de testare a sarcinii sunt LoadRunner Professional, cรขศtigฤ alergฤtor ศi JMeter.
Ce este testarea de stres รฎn baza de date?
Testarea de stres a bazei de date este o metodฤ de testare folositฤ pentru a testa un sistem de baze de date cu o sarcinฤ mare, astfel รฎncรขt sฤ eศueze la un moment dat. Acest lucru ajutฤ la identificarea punctului de defalcare al sistemului de baze de date. Este nevoie de o planificare adecvatฤ ศi eforturi pentru a evita utilizarea excesivฤ a resurselor. Date testare stresanta este, de asemenea, cunoscut sub numele de testare chinuitoare sau testare la obosealฤ.
Instrumentele importante de testare a stresului sunt LoadRunner Professional ศi JMeter.
Cele mai frecvente probleme care apar รฎn timpul testฤrii bazei de date
A significant amount of overhead could be involved to determine the state of the database transactions
Soluลฃie: Planificarea generalฤ a procesului ศi calendarul trebuie organizate astfel รฎncรขt sฤ nu aparฤ probleme bazate pe timp ศi costuri.
New test data have to be designed after cleaning up of the old test data.
Soluลฃie: Ar trebui sฤ existe un plan ศi o metodologie prealabilฤ pentru generarea datelor de testare.
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.
Soluลฃie: Menศinerea interogฤrilor SQL ศi actualizarea lor continuฤ reprezintฤ o parte semnificativฤ a procesului general de testare, care ar trebui sฤ facฤ parte din strategie de testare.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
Soluลฃie: Ar trebui sฤ existe un echilibru fin รฎntre calitate ศi durata generalฤ a programului proiectului.
Mituri sau concepศii greศite legate de testarea bazelor de date
Database Testing requires plenty of expertise and it is a very tedious job
Realitate: Testarea eficientฤ ศi eficientฤ a bazelor de date รฎn testarea software-ului oferฤ stabilitate funcศionalฤ pe termen lung pentru aplicaศia generalฤ, prin urmare, este necesar sฤ se depunฤ o muncฤ grea รฎn spatele acesteia.
Database testing adds extra work bottleneck
Realitate: Dimpotrivฤ, testarea bazelor de date adaugฤ mai multฤ valoare lucrฤrii generale prin descoperirea problemelor ascunse ศi astfel contribuind รฎn mod proactiv la รฎmbunฤtฤศirea aplicaศiei generale.
Database testing slows down the overall development process
Realitate: O cantitate semnificativฤ de testare a bazei de date ajutฤ la รฎmbunฤtฤศirea generalฤ a calitฤศii aplicaศiei de bazฤ de date.
Database testing could be excessively costly
Realitate: Orice cheltuialฤ pentru testarea bazelor de date este o investiศie pe termen lung care duce la stabilitatea ศi robusteศea aplicaศiei pe termen lung. Astfel cheltuielile pentru testarea bazei de date sau SQL Testarea este necesarฤ.
Cele mai bune practici
- Toate datele, inclusiv metadatele, precum ศi datele funcศionale, trebuie validate รฎn conformitate cu maparea lor de cฤtre documentele de specificare a cerinศelor.
- Verificarea date de testare care a fost creat de/รฎn consultare cu echipa de dezvoltare trebuie validat.
- Validarea datelor de ieศire prin utilizarea atรขt a procedurilor manuale, cรขt ศi a celor de automatizare.
- Implementarea diferitelor tehnici, cum ar fi tehnica de graficare a cauzei efect, tehnica de partiศionare echivalenศฤ ศi tehnica de analizฤ a valorii la limitฤ pentru generarea condiศiilor necesare pentru datele de testare.
- Trebuie validate ศi regulile de validare a integritฤศii referenศiale pentru tabelele de baze de date necesare.
- Selectarea valorilor implicite ale tabelului pentru validarea conformitฤศii bazei de date este un concept foarte important Dacฤ evenimentele de jurnal au fost adฤugate cu succes รฎn baza de date pentru toate evenimentele de conectare necesare
- Lucrฤrile programate se executฤ รฎn timp util?
- Faceศi backup รฎn timp util al bazei de date.
De asemenea, verifica- รntrebฤri ศi rฤspunsuri la interviu pentru testarea bazei de date





