database crud testing through ui with sample test cases
Hva er CRUD-operasjoner og hvordan du utfører CRUD-testing gjennom brukergrensesnitt:
Mennesker begynte å lagre informasjon allerede før flere tiår! Og i disse dager ble flate fildatabaser brukt i datahistorikken der alle dataene ble lagret i en fil.
Senere, tidlig på 1970-tallet, utviklet IBM den første Relational Database Model, som introduserte 'indekser' for å enkelt hente dataene.
Hva du vil lære:
- CRUD Operations Oversikt
- Hvorfor er databasetesting viktig?
- De 4 grunnleggende databasefunksjonalitetene
- Definisjon av CRUD
- CRUD-testing
- Hvordan teste CRUD-funksjonaliteten til en programvare?
- Konklusjon
- Anbefalt lesing
CRUD Operations Oversikt
For tiden er det vanligste datalagringssystemet Database der programvaren oppretter, leser, oppdaterer og sletter dataene gjennom spørringer. Dataprogramvare kan svare på brukerens krav på en raskere og effektiv måte gjennom riktig utformet database og spørsmål.
Dette innebærer at testing og verifisering av database er en viktig faktor.
Grafisk brukergrensesnitt (GUI) -svar som feilmeldinger, suksessmeldinger etc. anses å være svært viktige av nesten alle testansvarlige. Dette skyldes at GUI tilfeldigvis er den synlige delen av et program, som brukerne kan se. Imidlertid er databasetesting like viktig.
Ut av min erfaring har jeg sett mange manuelle testere som anser dette som en kjedelig jobb, men det er det faktisk ikke.
I denne opplæringen vil vi diskutere funksjonalitetstesting i black box-databaser gjennom brukergrensesnitt og MySQL-spørsmål på en enkel måte med enkle eksempler.
Hvorfor er databasetesting viktig?
Punktene nedenfor vil forklare viktigheten av databasetesting på en veldig kort måte.
- Data er en viktig ressurs, og den må lagres og beskyttes.
- Databaser blir kompliserte med ny teknologi og plattformer. Derfor øker sjansene for feil.
- Det kan være kritiske funksjoner knyttet til verdiene som er lagret i databasen.
- Problemer i databaser eller spørsmål kan føre til store funksjonalitetsproblemer.
- For å sikre at Data blir kartlagt riktig eller ikke.
Databasetesting kan gjøres som en enhetstest, svart boks test , hvit boks test og grå rute tekst.
De 4 grunnleggende databasefunksjonalitetene
Databasebasert programvare har generelt fire hovedfunksjonaliteter som vil fremgå av eksemplene nedenfor.
Eksempel 1:
Facebook, det mest berømte nettverket for sosiale nettverk.
- Du kan opprette en ny konto
- Se kontoopplysningene dine
- Rediger kontodetaljer
- Slett kontoen
- Du kan opprette kommentarer
- Se dem
- Rediger dem
- Slett dem
Eksempel 2:
LinkedIn, det berømte Jobbsøk-nettstedet:
hvordan åpne en krukke med java
- Du kan opprette profilen din
- Se det
- Rediger den
- Slett det
- Du kan legge til innlegg
- Se dem
- Rediger dem
- Slett dem
Har du lagt merke til et sett med vanlige aktiviteter her?
Ja! Du har rett.
Det meste av programvaren støtter disse funksjonene ved å opprette, vise, redigere og slette fra hvor begrepet GRUSOM kommer.
Definisjon av CRUD
I dataprogrammering, GRUSOM står for Create, Read, Update og Delete. Dette er de fire viktigste og grunnleggende funksjonene til vedvarende lagring. Disse gjøres ofte i programvare gjennom skjemaer.
- Skape - INSERT en oppføring i databasen.
- Lese eller Hent - VELG oppføringen fra databasen og vis den.
- Oppdater - OPPDATER oppføringen helt eller delvis.
- Slett eller Destroy - DROP / SLET oppføringen.
Basert på programvarekravene kan CRUD-syklusene variere.
For eksempel: Noen ganger oppretter selger en konto, og brukeren ser den. Brukeren har kanskje ikke privilegiet til å redigere eller slette det. På den annen side kan kravet være: brukeren oppretter kontoen sin og selgeren bekrefter og godkjenner den. Disse syklusene er veldig viktige sett fra en testers synspunkt.
For funksjonalitetene som er diskutert ovenfor, kjører det et tilsvarende spørsmål i databasen.
Nedenfor er eksempler på MYSQL-spørsmål for hver handling
Handling | Eksempel på spørring |
---|---|
SKAPE | INSERT INTO table_name (column1, column2, column3, ...) VERDIER (verdi1, verdi2, verdi3, ...); |
LESE | VELG * fra tabellen; |
OPPDATER | OPPDATER tabellnavn SETT kolonne1 = verdi11, kolonne2 = verdi22 HVOR tilstand; |
SLETT | SLETT FRA TABELL tabellnavn der kolonne1 = ‘verdi11’; |
Tre varianter av CRUD er BRØD (Bla gjennom, les, rediger, legg til, slett), DAVE (Slett, Legg til, Vis, Rediger) og DRITT (Opprett, repliker, legg til, behandle).
CRUD-testing
CRUD testing er en svart boks testing av databasefunksjonaliteten.
Som vi vet anser Black Box-testing testprogramvaresystemet som en “black-box, og testene gjennomføres gjennom brukergrensesnittet.
Vi forsto at hver front-end-handling som kontoregistrering, redigering av personlige detaljer, visning av detaljer, sletting av konto osv. Har en tilsvarende CRUD-handling i databasen. CRUD-testing gjøres for å sjekke om disse handlingene gjenspeiler seg riktig i databasen eller ikke.
CRUD-testing er forskjellig fra vanlig svart-boks front-end-testing der vi ser etter suksessmeldinger som 'Konto opprettet' etter en brukerregistrering etc. Her må vi sjekke om kontodetaljene faktisk blir lagt inn i databasen eller ikke.
Det er to måter en manuell tester kan gjøre dette på:
# 1) Utfør spørsmål på egenhånd- Testere med god forståelse av SQL-språk og programvarekrav kan lage sine egne spørsmål for å teste databasen. På denne måten kan alle mulige saker bekreftes med gode spørsmål.
# 2) Utfør spørsmål ved hjelp av en utvikler- Testere kan begynne med å verifisere brukergrensesnittet til applikasjonen og få spørsmål fra utvikleren.
Følgende spørsmål bør vurderes når du skriver testsaker for CRUD-operasjoner:
- Hva slags CRUD-handling er gyldig og hva er ugyldig for en testapplikasjon?
- Hva slags forhold har / skal CRUD-handlingene ha med hverandre?
- Når utføres CRUD-handlingene?
- Hvem har tilgang til CRUD-funksjonaliteten? Setter systemet forskjellige privilegier for forskjellige brukere?
Den generelle testprosessen for DB-testing er ikke veldig forskjellig fra vanlig manuell GUI-testing for svart boks.
Som,
Trinn 1: Forbered testmiljøet.
Steg 2: Utfør teststrinnene.
Trinn 3: Sjekk testresultatet.
Trinn 4: Valider faktiske resultater i henhold til forventede resultater.
Trinn 5: Rapporter feil og andre funn.
For å sjekke testresultatet brukes GUI-respons og spørringsresultat. For CRUD black box testing trenger vi bare et spørsmål, som er SELECT.
Som vi alle vet lagrer databaser data. Når vi trenger å hente dataene, brukes SELECT-spørringen. I svart boksetesting må vi bare bruke dette spørsmålet for å se om handlingene gjennom brukergrensesnittet viser riktige refleksjoner i databasen eller ikke.
‘SELECT’ kan brukes på følgende måter:
#1) Hvis en tester vil sjekke og verifisere alle dataene, kan han bruke startsymbolet (*) i SELECT-spørring. Dette er den enkleste formen for SELECT-spørring.
SELECT * FROM table_name;
Ovennevnte uttalelse velger alle feltene fra alle radene fra tabellen_navn_tabell.
# 2) I noen tilfeller kan det første søkeresultatet være rotete. Hvis en tester bare er interessert i noen felt, kan følgende skript brukes.
youtube til mp4 converter høy kvalitet
SELECT ‘field_1’, ‘field_2’, ‘field_3’ FROM table_name;
Ovennevnte uttalelse velger feltene, 'field_1', 'field_2' og 'field_3' fra alle radene fra tabellen_name_tabell.
# 3) Hvis en tester vil se resultatene basert på noen kriterier, kan WHERE-klausulen brukes.
SELECT ‘field_1’ FROM table_name WHERE field_2 = ‘success’;
Ovennevnte uttalelse velger feltet 'field_1' fra alle radene fra tabellen_navn-tabellen, der 'felt2' er 'suksess'.
Hvordan teste CRUD-funksjonaliteten til en programvare?
Vurder følgende Eksempel av et brukergrensesnitt, som tillater visse brukerrettigheter for å bruke MySQL-databasen til å lagre dataene.
EKSEMPEL | DATABASISDETALJER |
---|---|
1. Kan OPPRETTE et produkt med alle detaljer, inkludert, produktnavn, produktbeskrivelse, produktpris ved å bruke skjemaet 'Produkt Legg til' | Database: Shopping_DB Tabell: produkt Felt: produktnavn, produktinformasjon, produktpris Oppretter en rad i tabellen 'produkt' med detaljer lagt til i tilsvarende felt |
2. Kan LES detaljene produktnavn, produktbeskrivelse, produktpris i ‘Produktdetaljer-siden’. | Database: Shopping_DB Tabell: produkt Felt: produktnavn, produktinformasjon, produktpris Velger alle data eller velger bestemte data fra tabellen 'produkter' |
3. Kan OPPDATERE produktnavnet, produktbeskrivelsen, produktprisen ved å bruke skjemaet ‘Produktredigering’. | Database: Shopping_DB Tabell: produkt Felt: produktnavn, produktinformasjon, produktpris Oppdater alle detaljer eller spesifikke detaljer i en bestemt rad i tabellen 'produkter' |
4. Kan SLETTE produktet | Database: Shopping_DB Tabell: produkt Felt: produktnavn, produktinformasjon, produktpris Slett alle detaljer i 'produkter' -tabellen ved å slippe tabellen eller slette en bestemt rad fra den. |
La oss sjekke hvordan CRUD-funksjonalitet kan kontrolleres for denne saken.
Merk :Utfør alltid CRUD-testing i databasedumpene fordi denne testen kan forårsake endringer i databasen. Kommandoen nedenfor kan brukes til å ta en dump av hele databasen.
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
# 1) OPPRETT Funksjonalitet
Når du legger til et nytt produkt, kan følgende trinn følges:
- Last inn 'Product Add' -skjema.
- Skriv inn produktnavnet, si 'testnavn'.
- Skriv inn produktbeskrivelse, si 'dette er testproduktdetaljer'.
- Angi produktpris, si ‘100’.
- Send inn skjemaet.
Kontroll av resultatet:
- Tester verifiserer manuelt om produktet vises med alle detaljene i frontenden av programvaren.
- Tester utfører spørringen i MYSQL-databaseserver for å sjekke om den aktuelle raden er tilstede
Spørsmål:
hva brukes java til i dag
SELECT * FROM products WHERE product_name = ‘test name’;
Spørringsresultat fra MySQL:
En rad med tilsvarende detaljer skal vises som,
mysql> VELG * FRA produkter WHERE product_name = ‘test name’; + ------------- + ----------------------------- + ----- ------------ + | produktnavn | produktdetaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | testnavn | dette er testproduktdetaljer 100 | |
Andre saker å vurdere:
- For noen systemer vil forskjellige brukere ha forskjellige privilegier. I så fall kan det hende at testere må sjekke svaret for hver brukerroller.
- Hvis dupliserte produkter ikke er tillatt, kan en tester sjekke det ved å legge til et produkt med de samme detaljene igjen. Denne gangen skal databasen ikke ha en ny oppføring som tilsvarer det samme produktet.
- Hvis programvaren tillater flere produktopprettelser om gangen, kan testeren sjekke om alle detaljene til alle produktene i innleveringen ble lagt inn riktig i databasen eller ikke.
- Prøv forskjellige inngangskombinasjoner.
- Sjekk hva som skjer under serverens nedetid.
# 2) LES funksjonalitet
For å sjekke om den opprettede oppføringen er lesbar, kan følgende trinn følges:
- Lag noen produkter med forskjellige inngangskombinasjoner gjennom CREATE funksjonalitet, si testnavn 1, testnavn 2, testnavn 3.
- Prøv å søke etter produktene.
Kontroll av resultatet:
- Tester verifiserer manuelt om produktdetaljene er riktige.
- Tester sammenligner detaljene med de som er lagret i databasen.
Spørsmål:
VELG * FRA produkter HVOR produktnavn = ‘testnavn 1’ ELLER produktnavn = ‘testnavn 12’ ELLER produktnavn = ‘testnavn 3’; |
Spørringsresultat fra MySQL:
Detaljene for de valgte produktene må vises. Testeren kan verifisere og sammenligne dette med resultatene i brukergrensesnittet.
mysql> VELG * FRA produkter HVOR produktnavn = ‘testnavn 1’ ELLER produktnavn = ‘testnavn 12’ ELLER produktnavn = ‘testnavn 3’; + ------------- + ----------------------------- + ----- ------------ + | produktnavn | produktdetaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | testnavn 1 | dette er testproduktdetalj1 | 100 | | testnavn 2 | dette er testproduktdetaljer2 | 100 | | testnavn 3 | dette er testproduktdetalj3 | 100 | |
Andre saker å vurdere:
- Vis elementene om gangen.
- Vis flere elementer om gangen.
- Prøver å se et element som ikke eksisterer.
- Prøv å søke med forskjellige forhold.
- Prøv å sjekke funksjonaliteten for forskjellige brukerroller.
- Sjekk hva som skjer under serverens nedetid.
# 3) UPDATE Funksjonalitet
For å redigere eller oppdatere eksisterende oppføringer kan følgende trinn følges:
- Lag et produkt ved hjelp av CREATE-funksjonalitet.
- Rediger forskjellige felt i produktet, si 'testnavn' til 'V Neck Top'.
- Sende inn
Kontroll av resultatet:
- Tester bekrefter manuelt at produktdetaljene er endret
- Tester utfører MYSQL-spørring og ser detaljene
Spørsmål:
SELECT * FROM products WHERE product_name = ‘V Neck Top’;
Spørringsresultat fra MySQL:
En rad med tilsvarende detaljer skal vises.
mysql> VELG * FRA produkter WHERE product_name = ‘V Neck Top’; + ------------- + ----------------------------- + ----- ------------ + | produktnavn | produktdetaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | Topp med V-hals | dette er testproduktdetaljer 100 | + ------------- + ----------------------------- + ----- ------------ + |
Hvis du søker med et gammelt produktnavn, skal databasen ikke returnere detaljene.
Andre saker å vurdere:
- Oppdater flere elementer om gangen.
- Oppdater til en nøkkelverdi som allerede eksisterer.
- Oppdater alle detaljer eller delvis detaljer.
- Oppdater feltene med forskjellige inngangskombinasjoner.
- Sjekk den oppdaterte funksjonen for forskjellige privilegier.
- Sjekk hva som skjer under serverstoppetid.
# 4) SLETT Funksjonalitet
For å sjekke slettingsfunksjonaliteten kan følgende trinn følges:
- Lag et produkt med CREATE funksjonalitet.
- Slett produktet.
Kontroll av resultatet:
- Tester sjekker manuelt om produktet er fjernet fra brukergrensesnittet
- Tester sjekker manuelt MySQL-databasen og bekrefter at den tilsvarende raden er slettet.
Spørsmål :
SELECT * FROM products WHERE product_name = ‘test name’;
Spørringsresultat fra MySQL:
Dette skal vise søkeresultatet som vist nedenfor.
mysql>SELECT * FROM products WHERE product_name = ‘test name’; Empty set (0.00 sec)
Andre saker å vurdere:
- Slett flere elementer i en enkelt forespørsel.
- Slett et oppdatert element.
- Ta to faner og prøv å gi sletteforespørsel om et produkt fra begge fanene helt.
Konklusjon
Databasetesting er veldig viktig da det bekrefter sikkerheten og påliteligheten til et program. De fleste programvareapplikasjoner håndterer oppretting, lesing og oppdatering og sletting av data til / fra databasen. I henhold til programvarekrav kan CRUD-sykluser variere. En tester bør planlegge testsaker basert på CRUD-syklus.
CRUD-funksjoner kan testes manuelt og verifiseres fra brukergrensesnittet og databasen. SELECT-spørringen kan brukes til å verifisere endringene i databasen som tilsvarer hver CRUD-operasjon.
Er du ekspert på CRUD-testing? Har du noen interessante fakta å dele med leserne våre som er nye for CRUD? Uttrykk gjerne dine tanker / forslag i kommentarfeltet nedenfor !!
Anbefalt lesing
- Databasetesting med JMeter
- ISTQB Testing Certification Sample Question Papers With Answers
- Beste verktøy for testing av programvare 2021 (QA Test Automation Tools)
- Viktige forskjeller mellom Black Box Testing og White Box Testing
- Testing Primer eBook Download
- En enkel tilnærming for XML til databasetesting
- 40+ beste databasetestverktøy - populære datatestløsninger
- GUI Testing Tutorial: A Complete User Interface (UI) Testing Guide