database crud testing through ui with sample test cases
Hvad er CRUD-operationer og hvordan man udfører CRUD-test gennem UI:
Mennesker begyndte at lagre information allerede inden flere årtier! Og i disse dage blev fladfildatabaser brugt i computerhistorikken, hvor alle data blev gemt i en fil.
Senere, i begyndelsen af 1970'erne, udviklede IBM den første Relational Database Model, der introducerede 'indekser' for let at hente dataene.
Hvad du lærer:
- CRUD-driftsoversigt
- Hvorfor er databasetest vigtig?
- De 4 grundlæggende databasefunktioner
- Definition af CRUD
- CRUD-test
- Hvordan testes en softwares CRUD-funktionalitet?
- Konklusion
- Anbefalet læsning
CRUD-driftsoversigt
I øjeblikket er det mest almindelige datalagringssystem Database hvor softwaren opretter, læser, opdaterer og sletter dataene gennem forespørgsler. Computersoftware kan reagere på brugernes krav på en hurtigere og effektiv måde gennem korrekt designet database og forespørgsler.
Dette indebærer, at test og verifikation af database er en meget vigtig faktor.
Grafiske brugergrænsefladesvar (GUI) -svar som fejlmeddelelser, succesmeddelelser osv. Betragtes som meget vigtige af næsten alle testadministratorer. Dette skyldes, at GUI tilfældigvis er den synlige del af et program, som brugerne kan se. Dog er databasetest lige så vigtig.
Ud af min erfaring har jeg set mange manuelle testere, der betragter dette som et kedeligt job, men det er det faktisk ikke.
I denne vejledning vil vi diskutere black box-databasefunktionstest gennem brugergrænseflade og MySQL-forespørgsler på en enkel måde med nemme eksempler.
Hvorfor er databasetest vigtig?
Nedenstående punkter vil forklare vigtigheden af databasetest på en meget kort måde.
- Data er et vigtigt aktiv, og de skal gemmes og beskyttes.
- Databaser bliver komplekse med nye teknologier og platforme. Derfor øges chancerne for bugs.
- Der kan være kritiske funktioner forbundet med de værdier, der er gemt i databasen.
- Problemer i databasen eller forespørgsler kan føre til større problemer med funktionaliteten.
- For at sikre, at data kortlægges korrekt eller ej.
Databasetest kan udføres som en enhedstest, test af sort boks , hvid boks test og grå tekst.
De 4 grundlæggende databasefunktioner
Databasebaseret software har generelt fire hovedfunktioner, hvilket vil fremgå af eksemplerne nedenfor.
Eksempel 1:
Facebook, det mest berømte sociale netværk.
- Du kan oprette en ny konto
- Se dine kontooplysninger
- Rediger kontooplysninger
- Slet kontoen
- Du kan oprette kommentarer
- Se dem
- Rediger dem
- Slet dem
Eksempel 2:
LinkedIn, det berømte Jobsøgningswebsted:
hvordan man bruger github-udvidelse til visuelt studie
- Du kan oprette din profil
- Se det
- Rediger det
- Slet det
- Du kan tilføje indlæg
- Se dem
- Rediger dem
- Slet dem
Har du bemærket et sæt almindelige aktiviteter her?
Ja! Du har ret.
Det meste af softwaren understøtter disse funktioner ved oprettelse, visning, redigering og sletning fra, hvor udtrykket er GRUSOM kommer.
Definition af CRUD
I computerprogrammering, GRUSOM står for Opret, læs, opdater og slet. Dette er de fire store og grundlæggende funktioner ved vedvarende opbevaring. Disse gøres ofte i softwareapplikationer gennem formularer.
- skab - INDSÆT en post i databasen.
- Læs eller Hent - VÆLG posten fra databasen, og se den.
- Opdatering - OPDATER posten helt eller delvist.
- Slet eller Destroy - DROP / SLET posten.
Baseret på softwarekravene kan CRUD-cyklusser variere.
For eksempel: undertiden opretter sælger en konto, og brugeren ser den. Brugeren har muligvis ikke privilegiet til at redigere eller slette det. På den anden side kan kravet være: brugeren opretter sin konto, og sælgeren verificerer og godkender den. Disse cyklusser er meget vigtige set fra en testers synspunkt.
For de funktioner, der er diskuteret ovenfor, kører der en tilsvarende forespørgsel i databasen.
Nedenfor er eksempler på MYSQL-forespørgsler for hver handling
Handling | Eksempel på forespørgsel |
---|---|
SKAB | INDSÆT TIL tabelnavn (kolonne1, kolonne2, kolonne3, ...) VÆRDIER (værdi1, værdi2, værdi3, ...); |
LÆS | VÆLG * fra bordet; |
OPDATER | OPDATER tabelnavn SET kolonne1 = værdi11, kolonne2 = værdi22 HVOR tilstand; |
SLET | SLET FRA TABEL tabelnavn, hvor kolonne1 = ‘værdi11’; |
Tre variationer af CRUD er BRØD (Gennemse, læse, redigere, tilføje, slette), DAVE (Slet, tilføj, vis, rediger) og CRAP (Opret, repliker, tilføj, behandl).
CRUD-test
CRUD-test er en sort boks-test af databasefunktionaliteten.
Som vi ved betragter test af sort boks testsoftwaresystemet som en “sort boks, og testene udføres gennem brugergrænsefladen.
Vi forstod, at enhver front-end-handling som konto-registrering, redigering af personlige oplysninger, visning af detaljer, sletning af konto osv. Har en tilsvarende CRUD-handling i databasen. CRUD-test udføres for at kontrollere, om disse handlinger afspejles korrekt i databasen eller ej.
CRUD-test er forskellig fra almindelig test af sort boks front-end, hvor vi kontrollerer for succesmeddelelser som 'Konto oprettet med succes' efter en brugerregistrering osv. Her skal vi kontrollere, om kontooplysningerne faktisk bliver indtastet i databasen eller ej.
Der er to måder, hvorpå en manuel tester kan gøre dette:
# 1) Udfør forespørgsler på egen hånd- Testere med en god forståelse af SQL-sprog og softwarekrav kan lave deres egne forespørgsler for at teste databasen. På denne måde kan alle mulige sager verificeres med gode forespørgsler.
# 2) Udfør forespørgsler ved hjælp af en udvikler- Testere kan begynde med at kontrollere applikationens brugergrænseflade og få forespørgsler fra udvikleren.
Følgende spørgsmål bør overvejes, når der skrives testcases til CRUD-operationer:
- Hvilken type CRUD-handling er gyldig, og hvad er ugyldig for en testapplikation?
- Hvilken relation har / skal CRUD-handlinger have med hinanden?
- Hvornår udføres CRUD-handlinger?
- Hvem har adgang til CRUD-funktionaliteten? Sætter systemet forskellige privilegier for forskellige brugere?
Den generelle testproces for DB-test er ikke meget forskellig fra den sædvanlige manuelle GUI-test af sort boks.
Synes godt om,
Trin 1: Forbered testmiljøet.
Trin 2: Udfør testtrinnene.
Trin 3: Kontroller testresultatet.
Trin 4: Valider faktiske resultater i henhold til de forventede resultater.
Trin 5: Rapporter fejl og andre fund.
For at kontrollere testresultatet bruges GUI-svar og forespørgselsresultat. Til CRUD-test af sort boks har vi bare brug for en forespørgsel, som er VÆLG.
Som vi alle ved, gemmer databaser data. Når vi har brug for at hente dataene, bruges SELECT-forespørgslen. I test af sort boks er vi bare nødt til at bruge denne forespørgsel for at se, om handlingerne gennem brugergrænsefladen viser ordentlige refleksioner i databasen eller ej.
'SELECT' kan bruges på følgende måder:
# 1) Hvis en tester ønsker at kontrollere og verificere alle data, kan han bruge startsymbolet (*) i SELECT-forespørgsel. Dette er den enkleste form for SELECT-forespørgsel.
SELECT * FROM table_name;
Ovenstående sætning markerer alle felter fra alle rækkerne fra tabellen_navn_navn.
# 2) I nogle tilfælde kan det første forespørgselsresultat være rodet. Hvis en tester kun er interesseret i nogle felter, kan følgende script bruges.
typecast char til streng c ++
SELECT ‘field_1’, ‘field_2’, ‘field_3’ FROM table_name;
Ovenstående erklæring vælger felterne, 'field_1', 'field_2' og 'field_3' fra alle rækkerne fra tabellen table_name.
# 3) Hvis en tester ønsker at se resultaterne baseret på eventuelle kriterier, kan WHERE-klausul bruges.
SELECT ‘field_1’ FROM table_name WHERE field_2 = ‘success’;
Ovenstående udsagn vælger feltet 'felt_1' fra alle rækkerne fra tabellen navn til tabel, hvor 'felt2' er 'succes'.
Hvordan testes en softwares CRUD-funktionalitet?
Overvej følgende Eksempel af et brugergrænseflade, som tillader visse brugerrettigheder til at bruge MySQL-database til at gemme dataene.
EKSEMPEL | DATABASEOPLYSNINGER |
---|---|
1. Kan OPRETTE et produkt med alle detaljer inklusive produktnavn, produktbeskrivelse, produktpris ved hjælp af formularen 'Produkt tilføje' | Database: Shopping_DB Tabel: produkt Felter: produktnavn, produktdetaljer, produktpris Opretter en række i tabellen 'produkt' med detaljer tilføjet i tilsvarende felter |
2. Kan LÆSE produktoplysninger, produktbeskrivelse, produktpris på 'Produktoplysninger-side'. | Database: Shopping_DB Tabel: produkt Felter: produktnavn, produktdetaljer, produktpris Vælger alle data eller vælg bestemte data fra tabellen 'produkter' |
3. Kan OPDATERE produktnavnet, produktbeskrivelsen, produktprisen ved hjælp af formularen 'Produktredigering'. | Database: Shopping_DB Tabel: produkt Felter: produktnavn, produktdetaljer, produktpris Opdater alle detaljer eller bestemte detaljer i en bestemt række i tabellen 'produkter' |
4. Kan SLETTE produktet | Database: Shopping_DB Tabel: produkt Felter: produktnavn, produktdetaljer, produktpris Slet alle detaljer i 'produkter' -tabellen ved at droppe tabellen eller slette en bestemt række fra den. |
Lad os kontrollere, hvordan CRUD-funktionalitet kan kontrolleres i denne sag.
Bemærk :Udfør altid CRUD-test i databasedumps, fordi denne test kan medføre ændringer i databasen. Kommandoen nedenfor kan bruges til at tage en dump af hele databasen.
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
# 1) Opret funktionalitet
Tilføjelse af et nyt produkt, følgende trin kan følges:
- Indlæs formularen 'Produkt tilføj'.
- Indtast produktnavnet, sig 'testnavn'.
- Indtast produktbeskrivelse, sig 'dette er testproduktdetalje'.
- Indtast produktpris, sig '100'.
- Indsend formularen.
Kontrol af resultatet:
- Tester verificerer manuelt, om produktet vises med alle detaljerne i frontenden af softwareapplikationen.
- Tester udfører forespørgslen i MYSQL-databaseserver for at kontrollere, om den bestemte række er til stede
Forespørgsel:
hvordan man åbner torrentede filer mac
SELECT * FROM products WHERE product_name = ‘test name’;
Forespørgselsresultat fra MySQL:
En række med de tilsvarende detaljer skal vises som,
mysql> VÆLG * FRA produkter WHERE product_name = 'test name'; + ------------- + ----------------------------- + ----- ------------ + | produktnavn | produkt_detaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | testnavn | dette er testproduktoplysninger 100 | |
Andre sager at overveje:
- For nogle systemer har forskellige brugere forskellige privilegier. I så fald skal testere muligvis kontrollere svaret for hver brugerrolle.
- Hvis duplikatprodukter ikke er tilladt, kan en tester kontrollere det ved at tilføje et produkt med de samme detaljer igen. Denne gang skal databasen ikke have en anden post, der svarer til det samme produkt.
- Hvis softwaren tillader flere produktionsoprettelser ad gangen, kan testeren kontrollere, om alle detaljerne i alle produkterne i indsendelsen blev indtastet korrekt i databasen eller ej.
- Prøv forskellige inputkombinationer.
- Tjek hvad der sker under serverens nedetid.
# 2) LÆS Funktionalitet
For at kontrollere, om den oprettede post er læsbar, kan følgende trin følges:
- Opret nogle produkter med forskellige inputkombinationer gennem CREATE-funktionalitet, sig testnavn 1, testnavn 2, testnavn 3.
- Prøv at søge efter produkterne.
Kontrol af resultatet:
- Testeren verificerer manuelt, om produktoplysningerne er korrekte.
- Tester sammenligner detaljerne med dem, der er gemt i databasen.
Forespørgsel:
VÆLG * FRA produkter, HVOR produktnavn = 'testnavn 1' ELLER produktnavn = 'testnavn 12' ELLER produktnavn = 'testnavn 3'; |
Forespørgselsresultat fra MySQL:
Detaljerne om de valgte produkter skal vises. Testeren kan verificere og sammenligne dette med resultaterne i brugergrænsefladen.
mysql> VÆLG * FRA produkter HVOR produktnavn = ‘testnavn 1’ ELLER produktnavn = ‘testnavn 12’ ELLER produktnavn = ‘testnavn 3’; + ------------- + ----------------------------- + ----- ------------ + | produktnavn | produkt_detaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | testnavn 1 | dette er testproduktdetalje1 | 100 | | testnavn 2 | dette er testproduktdetalje2 100 | | testnavn 3 | dette er testproduktdetalje3 | 100 | |
Andre sager at overveje:
- Se emner en ad gangen.
- Se flere emner ad gangen.
- Forsøger at se et element, der ikke findes.
- Prøv at søge under forskellige forhold.
- Prøv at tjekke funktionaliteten for forskellige brugerroller.
- Tjek hvad der sker under serverens nedetid.
# 3) UPDATE-funktionalitet
For at redigere eller opdatere eksisterende poster kan følgende trin følges:
- Opret et produkt ved hjælp af CREATE-funktionalitet.
- Rediger forskellige felter i produktet, sig 'testnavn' til 'V Neck Top'.
- Indsend
Kontrol af resultatet:
- Tester verificerer manuelt, at produktoplysningerne er ændret
- Tester udfører MYSQL-forespørgsel og ser detaljerne
Forespørgsel:
SELECT * FROM products WHERE product_name = ‘V Neck Top’;
Forespørgselsresultat fra MySQL:
En række med tilsvarende detaljer skal vises.
mysql> VÆLG * FRA produkter WHERE product_name = ‘V Neck Top’; + ------------- + ----------------------------- + ----- ------------ + | produktnavn | produkt_detaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | Top med V-hals | dette er testproduktoplysninger 100 | + ------------- + ----------------------------- + ----- ------------ + |
Hvis du søger med et gammelt produktnavn, skal databasen ikke returnere detaljerne.
Andre sager at overveje:
- Opdater flere elementer ad gangen.
- Opdater til en nøgleværdi, der allerede findes.
- Opdater alle detaljer eller delvise detaljer.
- Opdater felterne med forskellige inputkombinationer.
- Tjek den opdaterede funktion for forskellige privilegier.
- Tjek hvad der sker under serverstop.
# 4) SLET funktionalitet
For at kontrollere sletningsfunktionen kan følgende trin følges:
- Opret et produkt med CREATE-funktionalitet.
- Slet produktet.
Kontrol af resultatet:
- Testeren kontrollerer manuelt, om produktet fjernes fra brugergrænsefladen
- Tester kontrollerer manuelt MySQL-databasen og bekræfter, at den tilsvarende række er slettet.
Forespørgsel :
SELECT * FROM products WHERE product_name = ‘test name’;
Forespørgselsresultat fra MySQL:
Dette skal vise forespørgselsresultatet som vist nedenfor.
mysql>SELECT * FROM products WHERE product_name = ‘test name’; Empty set (0.00 sec)
Andre sager at overveje:
- Slet flere elementer i en enkelt anmodning.
- Slet et opdateret element.
- Tag to faner, og prøv at give sletningsanmodning for et produkt fra begge faner helt.
Konklusion
Databasetest er meget vigtigt, da det bekræfter sikkerhed og pålidelighed af en softwareapplikation. De fleste softwareapplikationer beskæftiger sig med oprettelse, læsning og opdatering og sletning af data til / fra databasen. I henhold til softwarekrav kan CRUD-cyklusser variere. En tester skal planlægge testsager baseret på CRUD-cyklus.
CRUD-funktionaliteter kan testes manuelt og verificeres fra brugergrænsefladen og databasen. SELECT-forespørgslen kan bruges til at verificere de ændringer i databasen, der svarer til hver CRUD-operation.
Er du ekspert i CRUD-test? Har du nogle interessante fakta at dele med vores læsere, der er nye i CRUD? Du er velkommen til at udtrykke dine tanker / forslag i kommentarfeltet nedenfor !!
Anbefalet læsning
- Databasetestning med JMeter
- ISTQB-testcertificeringseksempler på spørgsmålspapirer med svar
- Bedste softwaretestværktøjer 2021 (QA Test Automation Tools)
- Nøgleforskelle mellem test af sort boks og test af hvid boks
- Test af Primer eBook Download
- En enkel tilgang til XML til databasetest
- 40+ bedste databasetestværktøjer - populære datatestløsninger
- GUI Testing Tutorial: A Complete User Interface (UI) Testing Guide