database crud testing through ui with sample test cases
Što su CRUD operacije i kako izvršiti CRUD testiranje putem korisničkog sučelja:
Ljudska bića počela su pohranjivati informacije čak i prije nekoliko desetljeća! A u to su se vrijeme baze podataka s ravnim datotekama koristile u računalnoj povijesti, gdje su svi podaci bili pohranjeni u datoteci.
Kasnije, početkom 1970-ih, IBM je razvio prvi model relacijske baze podataka, koji je uveo 'indekse' za lako dohvaćanje podataka.
Što ćete naučiti:
- Pregled operacija CRUD-a
- Zašto je testiranje baze podataka važno?
- 4 osnovne funkcionalnosti baze podataka
- Definicija CRUD-a
- CRUD testiranje
- Kako testirati CRUD funkcionalnost softvera?
- Zaključak
- Preporučena literatura
Pregled operacija CRUD-a
Trenutno je najčešći sustav za pohranu podataka Baza podataka gdje softver stvara, čita, ažurira i briše podatke putem upita. Računalni softver može brže i učinkovitije odgovoriti na zahtjeve korisnika putem pravilno dizajnirane baze podataka i upita.
To implicira da je testiranje i provjera baze podataka mnogo važan čimbenik.
Reakcije grafičkog korisničkog sučelja (GUI) poput poruka o pogreškama, poruka o uspjehu itd. Gotovo svi menadžeri ispitivanja smatraju vrlo važnima. To je zato što je GUI slučajno vidljivi dio aplikacije koji korisnici mogu vidjeti. Međutim, testiranje baze podataka jednako je važno.
Iz svog iskustva vidio sam mnoge ručne testere koji ovo smatraju dosadnim poslom, ali to zapravo nije.
U ovom ćemo uputstvu na jednostavan način s jednostavnim primjerima razgovarati o testiranju funkcionalnosti baze podataka crnog okvira putem upita korisničkog sučelja i MySQL.
Zašto je testiranje baze podataka važno?
Dolje navedene točke objasnit će važnost testiranja baze podataka na vrlo kratak način.
- Podaci su važna imovina i treba ih sačuvati i zaštititi.
- Baze podataka postaju složene s novim tehnologijama i platformama. Stoga se šanse za bugove povećavaju.
- Mogu biti kritične funkcionalnosti povezane s vrijednostima pohranjenim u bazi podataka.
- Problemi u bazi podataka ili upiti mogu dovesti do velikih problema s funkcionalnošću.
- Da bi se osiguralo da su podaci pravilno mapirani ili ne.
Ispitivanje baze podataka može se provesti kao jedinični test, test crne kutije , test bijele kutije i tekst u sivom okviru.
4 osnovne funkcionalnosti baze podataka
Softver zasnovan na bazi podataka obično ima četiri glavne funkcije, što će biti jasno iz primjera u nastavku.
Primjer 1:
Facebook, najpoznatija web stranica za društvene mreže.
- Možete stvoriti novi račun
- Pogledajte detalje o svom računu
- Uredite detalje računa
- Izbrišite račun
- Možete stvarati komentare
- Pogledajte ih
- Uredite ih
- Izbriši ih
Primjer 2:
LinkedIn, poznato web mjesto za traženje posla:
web stranice za pretvaranje YouTube video zapisa u mp3
- Možete stvoriti svoj profil
- Pogledajte ga
- Uredite ga
- Obriši
- Možete dodati postove
- Pogledajte ih
- Uredite ih
- Izbriši ih
Jeste li ovdje primijetili niz uobičajenih aktivnosti?
Da! U pravu si.
Većina softvera podržava ove funkcije stvaranja, pregledavanja, uređivanja i brisanja odakle pojam Surovo dolazi.
Definicija CRUD-a
U računalnom programiranju, Surovo kratica je Stvaranje, čitanje, ažuriranje i brisanje. To su četiri glavne i osnovne funkcije trajne pohrane. To se često radi u softverskim aplikacijama putem obrazaca.
- Stvoriti - UMETNITE unos u bazu podataka.
- Čitati ili Dohvati - ODABERITE unos iz baze podataka i pregledajte ga.
- Ažuriraj - AŽURIRATI unos u potpunosti ili djelomično.
- Izbrisati ili Uništi - PUSTI / BRISI unos.
Ovisno o softverskim zahtjevima, CRUD ciklusi mogu se razlikovati.
Na primjer: ponekad prodavač kreira račun i korisnik ga pregledava. Korisnik možda neće imati privilegiju uređivati ga ili brisati. S druge strane, zahtjev bi mogao biti: korisnik kreira svoj račun, a prodavač ga provjerava i odobrava. Ti su ciklusi vrlo važni s gledišta testera.
Za gore opisane funkcionalnosti u bazi podataka pokreće se odgovarajući upit.
Dolje su dati primjeri MYSQL upita za svaku akciju
Akcijski | Uzorak upita |
---|---|
STVORITI | INSERT INTO ime_tablice (stupac1, stupac2, stupac3, ...) VRIJEDNOSTI (vrijednost1, vrijednost2, vrijednost3, ...); |
ČITATI | SELECT * iz tablice; |
AŽURIRAJ | AŽURIRANJE ime_tabele SET stupac1 = vrijednost11, stupac2 = vrijednost22 GDJE stanje; |
IZBRISATI | IZBRIŠI IZ TABLE ime_tablice gdje je column1 = 'value11'; |
Tri su varijacije CRUD-a KRUH (Pregledavanje, čitanje, uređivanje, dodavanje, brisanje), DAVE (Izbriši, Dodaj, Prikaži, Uredi) i SRANJE (Stvaranje, kopiranje, dodavanje, obrada).
CRUD testiranje
CRUD testiranje je crni okvir testiranja funkcionalnosti baze podataka.
Kao što znamo, testiranje crne kutije testni softverski sustav smatra „crnom kutijom i testovi se provode putem korisničkog sučelja.
Shvatili smo da svaka prednja radnja poput registracije računa, uređivanja osobnih podataka, pregledavanja detalja, brisanja računa itd. Ima odgovarajuću CRUD akciju u bazi podataka. CRUD testiranje vrši se kako bi se provjerilo odražavaju li se ove radnje u bazi podataka pravilno ili ne.
CRUD testiranje razlikuje se od uobičajenog crnog okvira front-end testiranja gdje provjeravamo poruke o uspjehu poput 'Račun uspješno stvoren' nakon registracije korisnika itd. Ovdje moramo provjeriti ulaze li detalji računa u bazu podataka ili ne.
Postoje dva načina na koja ručni tester može to učiniti:
# 1) Sami izvršavamo upite- Ispitivači s dobrim razumijevanjem SQL jezika i zahtjeva softvera mogu postaviti vlastite upite za testiranje baze podataka. Na taj se način svi mogući slučajevi mogu provjeriti dobrim upitima.
# 2) Izvršite upite uz pomoć programera- Ispitivači mogu započeti s provjerom korisničkog sučelja aplikacije i dobiti upite od programera.
Sljedeća pitanja treba uzeti u obzir prilikom pisanja testnih slučajeva za CRUD operacije:
- Kakva je vrsta CRUD radnje valjana, a koja nevaljana za testnu aplikaciju?
- Kakav odnos / trebaju imati radnje CRUD međusobno?
- Kada se izvršavaju CRUD akcije?
- Tko pristupa CRUD funkcionalnosti? Postavlja li sustav različite povlastice za različite korisnike?
Opći postupak ispitivanja za DB testiranje se ne razlikuje mnogo od uobičajenog ručnog testiranja GUI crnog okvira.
Kao,
Korak 1: Pripremite test okruženje.
Korak 2: Izvršite korake ispitivanja.
Korak 3: Provjerite rezultat testa.
Korak 4: Potvrdite stvarne rezultate prema očekivanim rezultatima.
Korak 5: Prijavi greške i druge nalaze.
Da bi se provjerio rezultat testa, koriste se GUI odgovor i rezultat upita. Za CRUD testiranje crne kutije samo trebamo upit, a to je SELECT.
Kao što svi znamo, baze podataka pohranjuju podatke. Kada trebamo dohvatiti podatke, koristi se SELECT upit. U testiranju crne kutije, jednostavno moramo upotrijebiti ovaj upit da vidimo pokazuju li radnje putem korisničkog sučelja odgovarajuće odraze u bazi podataka ili ne.
‘SELECT’ se može koristiti na sljedeće načine:
# 1) Ako tester želi provjeriti i provjeriti sve podatke, može upotrijebiti simbol pokretanja (*) u SELECT upitu. Ovo je najjednostavniji oblik SELECT upita.
SELECT * FROM table_name;
Gornja izjava odabire sva polja iz svih redaka iz tablice ime_tablice.
# 2) U nekim slučajevima, prvi rezultat upita može biti neuredan. Ako je ispitivač zainteresiran samo za neka polja, tada se može koristiti sljedeća skripta.
koji je najbolji softver za održavanje računala
SELECT ‘field_1’, ‘field_2’, ‘field_3’ FROM table_name;
Gornja izjava odabire polja, 'polje_1', 'polje_2' i 'polje_3' iz svih redaka tablice tablice_ime.
# 3) Ako ispitivač želi vidjeti rezultate na temelju bilo kojeg kriterija, tada se može koristiti klauzula WHERE.
SELECT ‘field_1’ FROM table_name WHERE field_2 = ‘success’;
Gornja izjava odabire polje, 'polje_1' iz svih redaka tablice tablice_ime, gdje je 'polje2' 'uspjeh'.
Kako testirati CRUD funkcionalnost softvera?
Uzmite u obzir sljedeće Primjer korisničkog sučelja, koje omogućuje određene korisničke privilegije za korištenje MySQL baze podataka za pohranu podataka.
PRIMJER | DETALJI BAZE BAZA |
---|---|
1. Može STVORITI proizvod sa svim pojedinostima, uključujući naziv proizvoda, opis proizvoda i cijenu proizvoda pomoću obrasca 'Dodavanje proizvoda' | Baza podataka: Shopping_DB Tablica: proizvod Polja: naziv_proizvoda, detalji_proizvoda, cijena_proizvoda Stvara redak u tablici 'proizvod' s detaljima dodanim u odgovarajuća polja |
2. Možete PROČITATI detalje naziv proizvoda, opis proizvoda, cijena proizvoda na stranici „Pojedinosti o proizvodu“. | Baza podataka: Shopping_DB Tablica: proizvod Polja: naziv_proizvoda, detalji_proizvoda, cijena_proizvoda Odabire sve podatke ili odabire određene podatke iz tablice ‘proizvodi’ |
3. Možete AŽURIRATI naziv proizvoda, opis proizvoda, cijenu proizvoda pomoću obrasca ‘Product Edit’. | Baza podataka: Shopping_DB Tablica: proizvod Polja: naziv_proizvoda, detalji_proizvoda, cijena_proizvoda Ažurirajte sve pojedinosti ili pojedine pojedinosti u određenom retku tablice 'proizvodi' |
4. Može li IZBRISATI proizvod | Baza podataka: Shopping_DB Tablica: proizvod Polja: naziv_proizvoda, detalji_proizvoda, cijena_proizvoda Izbrišite sve pojedinosti iz tablice 'proizvodi' ispuštanjem tablice ili iz nje izbrišite određeni redak. |
Provjerimo kako se u ovom slučaju može provjeriti CRUD funkcionalnost.
Bilješka :Uvijek provodite CRUD testiranje na odlagalištima baze podataka, jer ovo testiranje može uzrokovati promjene u bazi podataka. Naredba u nastavku može se koristiti za izvođenje cijele baze podataka.
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
# 1) STVORI funkcionalnost
Dodavanjem nove stavke proizvoda mogu se slijediti sljedeći koraci:
- Učitajte obrazac 'Dodavanje proizvoda'.
- Unesite naziv proizvoda, recite 'naziv testa'.
- Unesite opis proizvoda, recite 'ovo je detalj testnog proizvoda'.
- Unesite cijenu proizvoda, recite ‘100’.
- Pošaljite obrazac.
Provjera rezultata:
- Tester ručno provjerava je li proizvod sa svim detaljima prikazan na prednjem kraju softverske aplikacije.
- Tester izvršava upit na MYSQL poslužitelju baze podataka da provjeri je li određeni redak prisutan
Upit:
Java programer intervju pitanja i odgovori
SELECT * FROM products WHERE product_name = ‘test name’;
Rezultat upita iz MySQL-a:
Red s odgovarajućim detaljima trebao bi biti prikazan kao,
mysql> SELECT * FROM products WHERE product_name = 'naziv testa'; + ------------- + ----------------------------- + ----- ------------ + | naziv_proizvoda | detalji_proizvoda | cijena_proizvoda | + ------------- + ----------------------------- + ----- ------------ + | naziv testa | ovo su detalji o testnom proizvodu | 100 | |
Ostali slučajevi koje treba razmotriti:
- Za neke sustave različiti će korisnici imati različite privilegije. U tom slučaju, testeri će možda morati provjeriti odgovor za svaku korisničku ulogu.
- Ako duplicirani proizvodi nisu dopušteni, tester to može provjeriti dodavanjem proizvoda s istim detaljima još jednom. Ovaj put baza podataka ne bi trebala imati drugi unos koji odgovara istom proizvodu.
- Ako softver dopušta više izrada proizvoda istovremeno, tester može provjeriti jesu li svi detalji svih proizvoda u prijavi ispravno unijeti u bazu podataka ili nisu.
- Isprobajte različite kombinacije unosa.
- Provjerite što se događa tijekom zastoja poslužitelja.
# 2) PROČITAJTE Funkcionalnost
Da biste provjerili je li stvoreni unos čitljiv, mogu se slijediti sljedeći koraci:
- Stvorite neke proizvode s različitim kombinacijama unosa putem CREATE funkcionalnosti, recimo naziv testa 1, naziv testa 2, naziv testa 3.
- Pokušajte potražiti proizvode.
Provjera rezultata:
- Tester ručno provjerava jesu li detalji o proizvodu točni.
- Tester uspoređuje detalje s onima spremljenima u bazu podataka.
Upit:
ODABERITE * IZ proizvoda GDJE product_name = ‘test name 1’ ILI product_name = ‘test name 12’ ILI product_name = ‘test name 3’; |
Rezultat upita iz MySQL-a:
Moraju se prikazati detalji odabranih proizvoda. Tester to može provjeriti i usporediti s rezultatima u korisničkom sučelju.
mysql> ODABERITE * IZ proizvoda GDJE proizvod_ime = 'naziv testa 1' ILI ime proizvoda = 'naziv testa 12' ILI ime proizvoda = 'naziv testa 3'; + ------------- + ----------------------------- + ----- ------------ + | naziv_proizvoda | detalji_proizvoda | cijena_proizvoda | + ------------- + ----------------------------- + ----- ------------ + | naziv testa 1 | ovo je detalj testnog proizvoda1 | 100 | | naziv testa 2 | ovo je detalj testnog proizvoda2 | 100 | | naziv testa 3 | ovo je detalj testnog proizvoda3 | 100 | |
Ostali slučajevi koje treba razmotriti:
- Pregledajte stavke jednu po jednu.
- Pregledajte više stavki odjednom.
- Pokušaj pregledavanja stavke koja ne postoji.
- Pokušajte pretraživati s različitim uvjetima.
- Pokušajte provjeriti funkcionalnost za različite korisničke uloge.
- Provjerite što se događa tijekom zastoja poslužitelja.
# 3) UPDATE Funkcionalnost
Za uređivanje ili ažuriranje postojećih unosa mogu se slijediti sljedeći koraci:
- Stvorite proizvod pomoću funkcije CREATE.
- Uredite različita polja proizvoda, recite 'naziv testa' na 'V Neck Top'.
- podnijeti
Provjera rezultata:
- Tester ručno provjerava jesu li se promijenili detalji proizvoda
- Tester izvršava MYSQL upit i vidi detalje
Upit:
SELECT * FROM products WHERE product_name = ‘V Neck Top’;
Rezultat upita iz MySQL-a:
Trebao bi se prikazati redak s odgovarajućim pojedinostima.
mysql> ODABERITE * IZ proizvoda WHERE naziv proizvoda = ‘V vratni vrh’; + ------------- + ----------------------------- + ----- ------------ + | naziv_proizvoda | detalji_proizvoda | cijena_proizvoda | + ------------- + ----------------------------- + ----- ------------ + | V vratni vrh | ovo su detalji o testnom proizvodu | 100 | + ------------- + ----------------------------- + ----- ------------ + |
Ako pretražujete sa starim nazivom proizvoda, baza podataka ne bi trebala vraćati detalje.
Ostali slučajevi koje treba razmotriti:
- Ažurirajte više stavki odjednom.
- Ažurirajte na ključnu vrijednost koja već postoji.
- Ažurirajte sve pojedinosti ili djelomične pojedinosti.
- Ažurirajte polja različitim kombinacijama unosa.
- Provjerite ažuriranu značajku za različite privilegije.
- Provjerite što se događa tijekom zastoja poslužitelja.
# 4) IZBRIŠI funkcionalnost
Da biste provjerili funkcionalnost brisanja, mogu se slijediti sljedeći koraci:
- Stvorite proizvod s funkcijom CREATE.
- Izbrišite proizvod.
Provjera rezultata:
- Tester ručno provjerava je li proizvod uklonjen iz korisničkog sučelja
- Tester ručno provjerava MySQL bazu podataka i potvrđuje da je odgovarajući redak izbrisan.
Upit :
SELECT * FROM products WHERE product_name = ‘test name’;
Rezultat upita iz MySQL-a:
Ovo bi trebalo prikazati rezultat upita kako je prikazano u nastavku.
mysql>SELECT * FROM products WHERE product_name = ‘test name’; Empty set (0.00 sec)
Ostali slučajevi koje treba razmotriti:
- Izbrišite više stavki u jednom zahtjevu.
- Izbrišite ažuriranu stavku.
- Uzmite dvije kartice i pokušajte dati zahtjev za brisanje proizvoda s obje kartice.
Zaključak
Testiranje baze podataka vrlo je važno jer potvrđuje sigurnost i pouzdanost softverske aplikacije. Većina softverskih aplikacija bavi se stvaranjem, čitanjem i ažuriranjem i brisanjem podataka u / iz baze podataka. Prema softverskim zahtjevima, CRUD ciklusi mogu se razlikovati. Tester bi trebao planirati test slučajeve na temelju CRUD ciklusa.
CRUD funkcionalnosti mogu se ručno testirati i provjeriti putem korisničkog sučelja i baze podataka. Upit SELECT može se koristiti za provjeru promjena u bazi podataka koje odgovaraju svakoj CRUD operaciji.
Jeste li stručnjak za CRUD testiranje? Imate li zanimljivih činjenica koje biste podijelili s našim čitateljima koji su novi u CRUD-u? Slobodno izrazite svoje misli / prijedloge u odjeljku za komentare ispod !!
Preporučena literatura
- Ispitivanje baze podataka pomoću JMetera
- Uzorci ispitnih radova s odgovorima na ISTQB testiranje
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Ključne razlike između testiranja crne kutije i bijele kutije
- Preuzimanje e-knjige za testiranje primera
- Jednostavan pristup za XML testiranje baze podataka
- 40+ najboljih alata za testiranje baza podataka - popularna rješenja za testiranje podataka
- Vodič za GUI testiranje: Kompletni vodič za testiranje korisničkog sučelja (UI)