database crud testing through ui with sample test cases
Vad är CRUD-operationer och hur man utför CRUD-testning genom användargränssnittet:
Människor började lagra information redan innan flera decennier! Och på den tiden användes plattfilsdatabaser i datahistoriken där all data lagrades i en fil.
Senare, i början av 1970-talet utvecklade IBM den första Relational Database Model, som introducerade 'index' för att enkelt hämta data.
Vad du kommer att lära dig:
- CRUD Operations Översikt
- Varför är databastestning viktigt?
- De 4 grundläggande databasfunktionerna
- Definition av CRUD
- CRUD-testning
- Hur testar jag programvarans CRUD-funktion?
- Slutsats
- Rekommenderad läsning
CRUD Operations Översikt
För närvarande är det vanligaste datalagringssystemet Databas där programvaran skapar, läser, uppdaterar och raderar data genom frågor. Datorprogramvara kan svara på användarkraven på ett snabbare och effektivt sätt genom korrekt utformad databas och frågor.
Detta innebär att testning och verifiering av databasen är en mycket viktig faktor.
Grafiska användargränssnitt (GUI) svar som felmeddelanden, framgångsmeddelanden etc. anses vara mycket viktiga av nästan alla testansvariga. Detta beror på att GUI råkar vara den synliga delen av ett program som användarna kan se. Databastestning är dock lika viktigt.
Av min erfarenhet har jag sett många manuella testare som betraktar detta som ett tråkigt jobb, men det är faktiskt inte.
I den här handledningen kommer vi att diskutera funktionalitetstestning i svart rutan genom användargränssnitt och MySQL-frågor på ett enkelt sätt med enkla exempel.
Varför är databastestning viktigt?
Poängen nedan kommer att förklara vikten av databastestning på ett mycket kort sätt.
- Data är en viktig tillgång och den måste sparas och skyddas.
- Databaser blir komplexa med ny teknik och plattformar. Därför ökar chanserna för buggar.
- Det kan finnas kritiska funktioner kopplade till värdena som lagras i databasen.
- Problem i databas eller frågor kan leda till stora problem med funktionaliteten.
- För att säkerställa att data mappas ordentligt eller inte.
Databastestning kan göras som ett enhetstest, svart låda test , vitlåda test och grå ruttext.
De 4 grundläggande databasfunktionerna
Databasbaserad programvara har i allmänhet fyra huvudfunktioner, vilket framgår av exemplen nedan.
Exempel 1:
Facebook, den mest kända webbplatsen för sociala nätverk.
- Du kan skapa ett nytt konto
- Visa dina kontouppgifter
- Redigera kontoinformation
- Ta bort kontot
- Du kan skapa kommentarer
- Visa dem
- Redigera dem
- Ta bort dem
Exempel 2:
LinkedIn, den berömda webbplatsen Jobbsökning:
webbtjänsttestning med soapui-intervjufrågor
- Du kan skapa din profil
- Visa det
- Redigera den
- Radera det
- Du kan lägga till inlägg
- Visa dem
- Redigera dem
- Ta bort dem
Har du märkt en uppsättning vanliga aktiviteter här?
ja! Du har rätt.
Det mesta av programvaran stöder dessa funktioner för att skapa, visa, redigera och ta bort varifrån termen GRYM kommer.
Definition av CRUD
I datorprogrammering, GRYM står för Skapa, läsa, uppdatera och ta bort. Dessa är de fyra huvudsakliga och grundläggande funktionerna för ihållande lagring. Dessa görs ofta i programvara via formulär.
- Skapa - INSÄTT en post i databasen.
- Läsa eller Hämta - VÄLJ posten från databasen och visa den.
- Uppdatering - UPPDATERA posten helt eller delvis.
- Radera eller förstör - DROP / RADERA posten.
Baserat på programvarukraven kan CRUD-cyklerna variera.
Till exempel: ibland skapar säljaren ett konto och användaren ser det. Användaren har kanske inte behörigheten att redigera eller ta bort den. Å andra sidan kan kravet vara: användaren skapar sitt konto och säljaren verifierar och godkänner det. Dessa cykler är mycket viktiga ur en testares synvinkel.
För de funktioner som diskuterats ovan finns en motsvarande fråga som körs i databasen.
Nedan ges exempel på MYSQL-frågor för varje åtgärd
Handling | Exempel på fråga |
---|---|
SKAPA | INSERT INTO table_name (column1, column2, column3, ...) VÄRDEN (värde1, värde2, värde3, ...); |
LÄSA | VÄLJ * från tabellen; |
UPPDATERING | UPPDATERA tabellnamn SET kolumn1 = värde11, kolumn2 = värde22 VAR tillstånd; |
RADERA | RADERA FRÅN TABELL tabellnamn där kolumn1 = ‘värde11’; |
Tre varianter av CRUD är BRÖD (Bläddra, läsa, redigera, lägga till, radera), DAVE (Radera, Lägg till, Visa, Redigera) och SKIT (Skapa, replikera, lägga till, bearbeta).
CRUD-testning
CRUD-testning är en svart låda-testning av databasfunktionaliteten.
Som vi vet betraktar Black Box-testet testprogramvarasystemet som en “black-box och testerna genomförs via användargränssnittet.
Vi förstod att varje front-end-åtgärd som kontoregistrering, redigering av personuppgifter, visningsinformation, radering av konto etc. har en motsvarande CRUD-åtgärd i databasen. CRUD-testning görs för att kontrollera om dessa åtgärder återspeglas korrekt i databasen eller inte.
CRUD-test skiljer sig från vanliga svarta rutans front-end-test där vi söker efter framgångsmeddelanden som “Konto framgångsrikt skapat” efter en användarregistrering etc. Här måste vi kontrollera om kontouppgifterna faktiskt kommer in i databasen eller inte.
Det finns två sätt som en manuell testare kan göra detta:
# 1) Utför frågor på egen hand- Testare med god förståelse för SQL-språk och programvarukrav kan göra sina egna frågor för att testa databasen. På så sätt kan alla möjliga fall verifieras med bra frågor.
# 2) Utför frågor med hjälp av en utvecklare- Testare kan börja med att verifiera applikationens användargränssnitt och få frågor från utvecklaren.
Följande frågor bör övervägas när du skriver testfall för CRUD-operationer:
- Vilken typ av CRUD-åtgärd är giltig och vad är ogiltigt för en testapplikation?
- Vilken relation har / ska CRUD-åtgärderna ha med varandra?
- När utförs CRUD-åtgärderna?
- Vem har åtkomst till CRUD-funktionen? Ställer systemet olika behörigheter för olika användare?
Den allmänna testprocessen för DB-testning skiljer sig inte så mycket från vanliga manuella GUI-test för svart ruta.
Tycka om,
Steg 1: Förbered testmiljön.
Steg 2: Utför teststegen.
Steg 3: Kontrollera testresultatet.
Steg 4: Validera faktiska resultat enligt förväntade resultat.
Steg 5: Rapportera fel och andra upptäckter.
För att kontrollera testresultatet används GUI-svar och frågeresultat. För CRUD Black Box-testning behöver vi bara en fråga, som är SELECT.
Som vi alla vet lagrar databaser data. När vi behöver hämta data används SELECT-frågan. I svarta rutan testning, vi måste bara använda denna fråga för att se om åtgärderna genom UI visar korrekta reflektioner i databasen eller inte.
'VÄLJ' kan användas på följande sätt:
# 1) Om en testare vill kontrollera och verifiera alla data kan han använda startsymbolen (*) i SELECT-frågan. Detta är den enklaste formen av SELECT-frågan.
SELECT * FROM table_name;
Ovanstående uttalande markerar alla fält från alla raderna från tabellen tabellnamn.
# 2) I vissa fall kan det första frågeresultatet vara rörigt. Om en testare bara är intresserad av vissa fält kan följande skript användas.
youtube till mp4 omvandlare hög kvalitet
SELECT ‘field_1’, ‘field_2’, ‘field_3’ FROM table_name;
Ovanstående uttalande väljer fälten, 'field_1', 'field_2' och 'field_3' från alla raderna från tabellen_namn-tabellen.
# 3) Om en testare vill se resultaten baserat på några kriterier kan WHERE-klausulen användas.
SELECT ‘field_1’ FROM table_name WHERE field_2 = ‘success’;
Ovanstående uttalande markerar fältet 'field_1' från alla raderna från tabellen_namn-tabellen, där 'field2' är 'framgång'.
Hur testar jag programvarans CRUD-funktion?
Tänk på följande Exempel i ett användargränssnitt, som tillåter vissa användarbehörigheter för att använda MySQL-databas för att lagra data.
EXEMPEL | DATABASDETALJER |
---|---|
1. Kan SKAPA en produkt med alla detaljer inklusive produktnamn, produktbeskrivning, produktpris med hjälp av formuläret ”Produkt Lägg till” | Databas: Shopping_DB Tabell: produkt Fält: produktnamn, produktinformation, produktpris Skapar en rad i tabellen 'produkt' med detaljer som läggs till i motsvarande fält |
2. Kan LÄSA detaljerna produktnamn, produktbeskrivning, produktpris i ”Produktinformation sida”. | Databas: Shopping_DB Tabell: produkt Fält: produktnamn, produktinformation, produktpris Markerar alla data eller väljer en viss data från tabellen 'produkter' |
3. Kan UPPDATERA produktnamn, produktbeskrivning, produktpris med hjälp av formuläret ”Produktredigering”. | Databas: Shopping_DB Tabell: produkt Fält: produktnamn, produktinformation, produktpris Uppdatera alla detaljer eller särskilda detaljer i en viss rad i tabellen 'produkter' |
4. Kan RADERA produkten | Databas: Shopping_DB Tabell: produkt Fält: produktnamn, produktinformation, produktpris Ta bort alla detaljer i 'produkter' -tabellen genom att släppa tabellen eller ta bort en viss rad från den. |
Låt oss kontrollera hur CRUD-funktionalitet kan kontrolleras för detta fall.
Notera :Utför alltid CRUD-testning i databasdumparna eftersom denna testning kan orsaka förändringar i databasen. Kommandot nedan kan användas för att ta en dumpning av hela databasen.
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
# 1) SKAPA Funktionalitet
Lägga till en ny produkt kan följande steg följas:
- Ladda formuläret ”Produkt Lägg till”.
- Ange produktnamnet, säg ”testnamn”.
- Ange produktbeskrivning, säg ”detta är testproduktdetaljer”.
- Ange produktpris, säg '100'.
- Skicka in formuläret.
Kontroll av resultatet:
- Tester verifierar manuellt om produkten visas med alla detaljer i programändans framsida.
- Tester kör frågan i MYSQL-databasservern för att kontrollera om den specifika raden finns
Fråga:
testkörningsrapportmall i Excel
SELECT * FROM products WHERE product_name = ‘test name’;
Frågeresultat från MySQL:
En rad med motsvarande detaljer ska visas som,
mysql> VÄLJ * FRÅN produkter WHERE product_name = ‘test name’; + ------------- + ----------------------------- + ----- ------------ + | produktnamn | produkt_detaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | testnamn | detta är testproduktinformation 100 | |
Andra fall att överväga:
- För vissa system har olika användare olika behörigheter. I så fall kan testare behöva kontrollera svaret för varje användarroll.
- Om duplicerade produkter inte är tillåtna kan en testare kontrollera det genom att lägga till en produkt med samma detaljer igen. Den här gången bör databasen inte ha en andra post som motsvarar samma produkt.
- Om programvaran tillåter flera produktsättningar åt gången kan testaren kontrollera om alla detaljer i alla produkter i inlämningen har lagts in i databasen ordentligt eller inte.
- Prova olika inmatningskombinationer.
- Kontrollera vad som händer under serverstopp.
# 2) LÄS Funktionalitet
För att kontrollera om den skapade posten är läsbar kan följande steg följas:
- Skapa några produkter med olika inmatningskombinationer genom att skapa funktion, säg testnamn 1, testnamn 2, testnamn 3.
- Försök att söka efter produkterna.
Kontroll av resultatet:
- Tester verifierar manuellt om produktinformationen är korrekt.
- Tester jämför detaljerna med de som sparats i databasen.
Fråga:
VÄLJ * FRÅN produkter VAR produktnamn = 'testnamn 1' ELLER produktnamn = 'testnamn 12' ELLER produktnamn = 'testnamn 3'; |
Frågeresultat från MySQL:
Detaljerna för de valda produkterna måste visas. Testaren kan verifiera och jämföra detta med resultaten i användargränssnittet.
mysql> VÄLJ * FRÅN produkter VAR produktnamn = ‘testnamn 1’ ELLER produktnamn = ‘testnamn 12’ ELLER produktnamn = ‘testnamn 3’; + ------------- + ----------------------------- + ----- ------------ + | produktnamn | produkt_detaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | testnamn 1 | detta är testproduktdetaljer1 | 100 | | testnamn 2 | detta är testproduktdetaljer2 | 100 | | testnamn 3 | detta är testproduktdetalj3 | 100 | |
Andra fall att överväga:
- Visa objekt en i taget.
- Visa flera objekt åt gången.
- Försöker visa ett objekt som inte finns.
- Försök att söka med olika förhållanden.
- Prova att kontrollera funktionaliteten för olika användarroller.
- Kontrollera vad som händer under serverstopp.
# 3) UPDATE-funktionalitet
För att redigera eller uppdatera befintliga poster kan följande steg följas:
- Skapa en produkt med CREATE-funktionalitet.
- Redigera olika fält i produkten, säg 'testnamn' till 'V Neck Top'.
- Skicka in
Kontroll av resultatet:
- Tester verifierar manuellt att produktinformationen har ändrats
- Tester kör MYSQL-frågan och ser detaljerna
Fråga:
SELECT * FROM products WHERE product_name = ‘V Neck Top’;
Frågeresultat från MySQL:
En rad med motsvarande detaljer ska visas.
mysql> VÄLJ * FRÅN produkter WHERE product_name = ‘V Neck Top’; + ------------- + ----------------------------- + ----- ------------ + | produktnamn | produkt_detaljer | produktpris | + ------------- + ----------------------------- + ----- ------------ + | V-ringad topp | detta är testproduktinformation 100 | + ------------- + ----------------------------- + ----- ------------ + |
Om du söker med ett gammalt produktnamn ska databasen inte returnera informationen.
Andra fall att överväga:
- Uppdatera flera objekt åt gången.
- Uppdatera till ett nyckelvärde som redan finns.
- Uppdatera alla detaljer eller partiella detaljer.
- Uppdatera fälten med olika inmatningskombinationer.
- Kontrollera den uppdaterade funktionen för olika privilegier.
- Kontrollera vad som händer under serverstopp.
# 4) RADERA Funktionalitet
För att kontrollera borttagningsfunktionen kan följande steg följas:
- Skapa en produkt med CREATE-funktionalitet.
- Ta bort produkten.
Kontroll av resultatet:
- Testaren kontrollerar manuellt om produkten tas bort från användargränssnittet
- Tester kontrollerar MySQL-databasen manuellt och bekräftar att motsvarande rad har tagits bort.
Fråga :
SELECT * FROM products WHERE product_name = ‘test name’;
Frågeresultat från MySQL:
Detta bör visa frågeresultatet enligt nedan.
mysql>SELECT * FROM products WHERE product_name = ‘test name’; Empty set (0.00 sec)
Andra fall att överväga:
- Ta bort flera objekt i en enda begäran.
- Ta bort ett uppdaterat objekt.
- Ta två flikar och försök att ta bort en begäran om en produkt från båda flikarna helt och hållet.
Slutsats
Databastestning är mycket viktigt eftersom det bekräftar säkerheten och tillförlitligheten hos en programapplikation. De flesta programvaror handlar om att skapa, läsa och uppdatera och ta bort data till / från databasen. Enligt programvarukrav kan CRUD-cykler variera. En testare bör planera testfall baserat på CRUD-cykel.
CRUD-funktioner kan testas manuellt och verifieras från användargränssnittet och databasen. SELECT-frågan kan användas för att verifiera ändringarna i databasen som motsvarar varje CRUD-operation.
Är du expert på CRUD-testning? Har du några intressanta fakta att dela med våra läsare som är nya för CRUD? Uttryck gärna dina tankar / förslag i kommentarfältet nedan !!
Rekommenderad läsning
- Databastestning med JMeter
- ISTQB-testcertifieringsprovfrågeställningar med svar
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Viktiga skillnader mellan Black Box Testing och White Box Testing
- Testing Primer eBook Download
- En enkel metod för testning av XML till databas
- 40+ bästa databastestverktyg - Populära datatestlösningar
- GUI Testing Tutorial: A Complete User Interface (UI) Testing Guide