database crud testing through ui with sample test cases
Wat zijn CRUD-bewerkingen en hoe u CRUD-tests uitvoert via de gebruikersinterface:
Mensen begonnen informatie op te slaan nog vóór enkele decennia! En in die tijd werden platte bestandsdatabases gebruikt in de computergeschiedenis waar alle gegevens in een bestand werden opgeslagen.
Later, begin jaren zeventig, ontwikkelde IBM het eerste relationele databasemodel, dat 'indexen' introduceerde om de gegevens gemakkelijk op te halen.
Wat je leert:
- Overzicht CRUD Operations
- Waarom is databasetesten belangrijk?
- De 4 basisdatabasefunctionaliteiten
- Definitie van CRUD
- CRUD-testen
- Hoe CRUD-functionaliteit van een software testen?
- Gevolgtrekking
- Aanbevolen literatuur
Overzicht CRUD Operations
Momenteel is het meest gebruikte gegevensopslagsysteem het Database waar de software de gegevens aanmaakt, leest, bijwerkt en verwijdert via Queries. Computersoftware kan op een snellere en effectieve manier reageren op de gebruikersvereisten door middel van een goed ontworpen database en queries.
Dit impliceert dat het testen en verifiëren van de database een veel belangrijke factor is.
Grafische gebruikersinterface (GUI) reacties zoals foutmeldingen, succesmeldingen etc. worden door bijna alle testmanagers als zeer belangrijk beschouwd. Dit komt omdat GUI het zichtbare deel van een applicatie is, dat de gebruikers kunnen zien. Het testen van databases is echter net zo belangrijk.
Uit mijn ervaring heb ik veel handmatige testers gezien die dit als een saaie klus beschouwen, maar dat is het eigenlijk niet.
In deze zelfstudie bespreken we het testen van de functionaliteit van black box-databasefuncties via gebruikersinterface en MySQL-query's op een eenvoudige manier met eenvoudige voorbeelden.
Waarom is databasetesten belangrijk?
De onderstaande punten zullen het belang van databasetesten in het kort toelichten.
- Gegevens zijn een belangrijk bezit en moeten worden bewaard en beschermd.
- Databases worden complex met nieuwe technologieën en platforms. Daarom neemt de kans op bugs toe.
- Er kunnen kritische functionaliteiten zijn gekoppeld aan de waarden die in de database zijn opgeslagen.
- Problemen in de database of query's kunnen tot grote functionaliteitsproblemen leiden.
- Om ervoor te zorgen dat de gegevens correct worden toegewezen of niet.
Database testen kan worden gedaan als een unit test, zwarte doos test witte doos test en grijze tekstvak.
De 4 basisdatabasefunctionaliteiten
Database-gebaseerde software heeft over het algemeen vier belangrijke functionaliteiten die duidelijk zullen worden uit de onderstaande voorbeelden.
Voorbeeld 1:
Facebook, de bekendste website voor sociaal netwerken.
- U kunt een nieuw account aanmaken
- Bekijk uw accountgegevens
- Accountgegevens bewerken
- Verwijder het account
- U kunt opmerkingen maken
- Bekijk ze
- Bewerk ze
- Verwijder ze
Voorbeeld 2:
LinkedIn, de beroemde Job Search-website:
hoe open ik .jar-bestanden
- U kunt uw profiel aanmaken
- Bekijk het
- Verander het
- Verwijder het
- U kunt berichten toevoegen
- Bekijk ze
- Bewerk ze
- Verwijder ze
Heb je hier een aantal gemeenschappelijke activiteiten opgemerkt?
Ja! Je hebt gelijk.
De meeste software ondersteunt deze functionaliteiten van het maken, bekijken, bewerken en verwijderen van waar de term WREED komt.
Definitie van CRUD
In computerprogrammering, WREED staat voor Create, Read, Update en Delete. Dit zijn de vier belangrijkste en basisfuncties van permanente opslag. Deze worden vaak gedaan in softwaretoepassingen via formulieren.
- Creëer - VOEG een item in de database in.
- Lezen of Ophalen - SELECTEER het item uit de database en bekijk het.
- Bijwerken - UPDATE het item geheel of gedeeltelijk.
- Verwijderen of Vernietigen - DROP / VERWIJDER de invoer.
Op basis van de softwarevereisten kunnen de CRUD-cycli variëren.
Bijvoorbeeld: soms maakt de verkoper een account aan en bekijkt de gebruiker het. De gebruiker heeft mogelijk niet het recht om het te bewerken of te verwijderen. Aan de andere kant zou de vereiste kunnen zijn: de gebruiker maakt zijn account aan en de verkoper verifieert en keurt het goed. Deze cycli zijn erg belangrijk vanuit het oogpunt van een tester.
Voor de functionaliteiten die hierboven zijn besproken, loopt er een overeenkomstige query in de database.
Hieronder vindt u voorbeelden van MYSQL-query's voor elke actie
Actie | Voorbeeldquery |
---|---|
CREËER | INVOEGEN IN tabelnaam (kolom1, kolom2, kolom3, ...) WAARDEN (waarde1, waarde2, waarde3, ...); |
LEZEN | SELECTEER * uit de tabel; |
BIJWERKEN | UPDATE table_name SET kolom1 = waarde11, kolom2 = waarde22 WAAR voorwaarde; |
VERWIJDEREN | VERWIJDEREN UIT TABEL table_name waarbij column1 = ‘waarde11’; |
Drie varianten van CRUD zijn BROOD (Bladeren, lezen, bewerken, toevoegen, verwijderen), DAVE (Verwijderen, Toevoegen, Bekijken, Bewerken) en CRAP (Maken, repliceren, toevoegen, verwerken).
CRUD-testen
CRUD-testen is een black box-test van de databasefunctionaliteit.
Zoals we weten, beschouwt Black Box-tests het testsoftwaresysteem als een 'black-box' en worden de tests uitgevoerd via de gebruikersinterface.
We begrepen dat elke front-end-actie, zoals accountregistratie, het bewerken van persoonlijke details, het bekijken van details, het verwijderen van een account etc. een overeenkomstige CRUD-actie in de database heeft. CRUD-tests worden gedaan om te controleren of deze acties correct in de database worden weergegeven of niet.
CRUD-testen is anders dan gewone black box front-end testen waarbij we controleren op succesberichten zoals 'Account succesvol aangemaakt' na een gebruikersregistratie enz. Hier moeten we controleren of de accountgegevens daadwerkelijk in de Database worden ingevoerd of niet.
Er zijn twee manieren waarop een handmatige tester dit kan doen:
# 1) Voer zelf vragen uit Testers met een goed begrip van de SQL-taal en softwarevereisten kunnen hun eigen vragen stellen om de database te testen. Op deze manier kunnen alle mogelijke gevallen worden geverifieerd met goede vragen.
# 2) Voer vragen uit met behulp van een ontwikkelaar Testers kunnen beginnen met het verifiëren van de gebruikersinterface van de applicatie en vragen krijgen van de ontwikkelaar.
De volgende vragen moeten worden overwogen bij het schrijven van testcases voor CRUD-operaties:
- Wat voor soort CRUD-actie is geldig en wat is ongeldig voor een testtoepassing?
- Wat voor relatie hebben / moeten de CRUD-acties met elkaar hebben?
- Wanneer worden de CRUD-acties uitgevoerd?
- Wie heeft toegang tot de CRUD-functionaliteit? Stelt het systeem verschillende rechten in voor verschillende gebruikers?
Het algemene testproces voor DB-testen verschilt niet veel van de gebruikelijke handmatige black box GUI-tests.
Leuk vinden,
Stap 1: Bereid de testomgeving voor.
Stap 2: Voer de teststappen uit.
Stap 3: Controleer het testresultaat.
Stap 4: Valideer de werkelijke resultaten op basis van de verwachte resultaten.
Stap 5: Rapporteer bugs en andere bevindingen.
Om het testresultaat te controleren, worden GUI-respons en Query-resultaat gebruikt. Voor CRUD black box-testen hebben we alleen een query nodig, namelijk SELECT.
Zoals we allemaal weten, slaan databases gegevens op. Wanneer we de gegevens moeten ophalen, wordt de SELECT-query gebruikt. Bij black box-tests hoeven we deze query alleen maar te gebruiken om te zien of de acties via de gebruikersinterface de juiste reflecties in de database laten zien of niet.
‘SELECT’ kan op de volgende manieren worden gebruikt:
# 1) Als een tester alle gegevens wil controleren en verifiëren, kan hij het startsymbool (*) gebruiken in de SELECT-query. Dit is de eenvoudigste vorm van SELECT-query.
De bovenstaande instructie selecteert alle velden uit alle rijen uit de tabel table_name.
# 2) In sommige gevallen kan het eerste zoekresultaat rommelig zijn. Als een tester slechts in enkele velden geïnteresseerd is, kan het volgende script worden gebruikt.
hoe u junit-testgevallen maakt in java
De bovenstaande instructie selecteert de velden ‘field_1’, ‘field_2’ en ‘field_3’ uit alle rijen van de tabel table_name.
# 3) Als een tester de resultaten wil zien op basis van welke criteria dan ook, dan kan de WHERE-clausule worden gebruikt.
De bovenstaande instructie selecteert het veld ‘field_1 'uit alle rijen van de tabel table_name, waarbij‘ field2 ’‘ succes ’is.
Hoe CRUD-functionaliteit van een software testen?
Stel je de volgende situatie voor Voorbeeld van een gebruikersinterface, die bepaalde gebruikersrechten toestaat voor het gebruik van MySQL Database om de gegevens op te slaan.
VOORBEELD | DATABASE DETAILS |
---|---|
1. Kan een product CREËREN met alle details, inclusief productnaam, productbeschrijving, productprijs met het formulier ‘Product toevoegen’ | Database: Shopping_DB Tafel: product Velden: product_name, product_details, product_price Creëert een rij in de tabel ‘product’ met toegevoegde details in de bijbehorende velden |
2. Kan de details van de productnaam, de productbeschrijving en de productprijs LEZEN op de ‘Productdetails-pagina’. | Database: Shopping_DB Tafel: product Velden: product_name, product_details, product_price Selecteert alle gegevens of selecteert een bepaalde gegevens uit de tabel ‘producten’ |
3. Kan de productnaam, productbeschrijving en productprijs UPDATEN met het formulier ‘Product bewerken’. | Database: Shopping_DB Tafel: product Velden: product_name, product_details, product_price Werk alle details of bepaalde details in een bepaalde rij in de tabel ‘producten’ bij |
4. Kan het product VERWIJDEREN | Database: Shopping_DB Tafel: product Velden: product_name, product_details, product_price Verwijder alle details in de ‘producten’ tabel door de tabel neer te zetten of door een bepaalde rij eruit te verwijderen. |
Laten we eens kijken hoe CRUD-functionaliteit voor dit geval kan worden gecontroleerd.
Notitie Voer altijd CRUD-tests uit in de databasedumps, omdat deze tests veranderingen in de database kunnen veroorzaken. De onderstaande opdracht kan worden gebruikt om een dump van de volledige database te maken.
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
# 1) CREËER functionaliteit
Als u een nieuw productitem toevoegt, kunnen de volgende stappen worden gevolgd:
- Laad het formulier ‘Product toevoegen’.
- Voer de productnaam in, zeg ‘testnaam’.
- Voer een productbeschrijving in, zeg ‘dit zijn details van het testproduct’.
- Voer de productprijs in, zeg ‘100’.
- Verstuur het formulier.
Het resultaat controleren:
- De tester controleert handmatig of het product wordt weergegeven met alle details in de voorkant van de softwareapplicatie.
- Tester voert de query uit in de MYSQL-databaseserver om te controleren of de betreffende rij aanwezig is
Vraag:
linux vind het verschil tussen twee bestanden
Queryresultaat van MySQL:
Een rij met de bijbehorende details moet worden weergegeven zoals,
mysql> SELECT * FROM producten WHERE product_name = ‘test name’; | product_naam | product_details | product_prijs | test naam | dit zijn testproductdetails | 100 | |
Andere gevallen om te overwegen:
- Voor sommige systemen hebben verschillende gebruikers verschillende rechten. In dat geval moeten testers mogelijk de respons voor elke gebruikersrol controleren.
- Als dubbele producten niet zijn toegestaan, kan een tester dat controleren door nogmaals een product met dezelfde gegevens toe te voegen. Deze keer mag de database geen tweede vermelding hebben die overeenkomt met hetzelfde product.
- Als de software meerdere productcreaties tegelijk toestaat, kan de tester controleren of alle details van alle producten in de inzending correct in de database zijn ingevoerd of niet.
- Probeer verschillende invoercombinaties.
- Controleer wat er gebeurt als de server uitvalt.
# 2) LEES Functionaliteit
Om te controleren of het gemaakte item leesbaar is, kunnen de volgende stappen worden gevolgd:
- Maak een aantal producten met verschillende invoercombinaties via de CREATE-functionaliteit, zeg testnaam 1, testnaam 2, testnaam 3.
- Probeer naar de producten te zoeken.
Het resultaat controleren:
- Tester controleert handmatig of de productdetails correct zijn.
- Tester vergelijkt de details met de gegevens die in de database zijn opgeslagen.
Vraag:
SELECTEER * UIT producten WHERE product_name = ‘testnaam 1’ OF product_name = ‘testnaam 12’ OR product_name = ‘testnaam 3’; |
Queryresultaat van MySQL:
De details van de geselecteerde producten moeten worden weergegeven. De tester kan dit verifiëren en vergelijken met de resultaten in UI.
mysql> SELECTEER * UIT producten WHERE product_name = ‘testnaam 1’ OR product_name = ‘testnaam 12’ OR product_name = ‘testnaam 3’; | product_naam | product_details | product_prijs | test naam 1 | dit is testproduct detail1 | 100 | test naam 2 | dit is testproduct detail2 | 100 | test naam 3 | dit is testproduct detail3 | 100 | |
Andere gevallen om te overwegen:
- Bekijk items een voor een.
- Bekijk meerdere items tegelijk.
- Probeer een item te bekijken dat niet bestaat.
- Probeer te zoeken met verschillende voorwaarden.
- Probeer de functionaliteit voor verschillende gebruikersrollen te controleren.
- Controleer wat er gebeurt als de server uitvalt.
# 3) UPDATE-functionaliteit
Om bestaande vermeldingen te bewerken of bij te werken, kunnen de volgende stappen worden gevolgd:
- Maak een product met de CREATE-functionaliteit.
- Bewerk verschillende velden van het product, zeg ‘testnaam’ tot ‘Top met V-hals’.
- Verzenden
Het resultaat controleren:
- De tester controleert handmatig of de productdetails zijn gewijzigd
- Tester voert MYSQL-query uit en ziet de details
Vraag:
Queryresultaat van MySQL:
Er moet een rij met bijbehorende details worden weergegeven.
mysql> SELECTEER * UIT producten WHERE product_name = ‘Top met V-hals’; | product_naam | product_details | product_prijs | Top met V-hals | dit zijn testproductdetails | 100 | |
Als u zoekt met een oude productnaam, zou de database de details niet moeten retourneren.
Andere gevallen om te overwegen:
- Werk meerdere items tegelijk bij.
- Werk bij naar een sleutelwaarde die al bestaat.
- Werk alle details of gedeeltelijke details bij.
- Werk de velden bij met verschillende invoercombinaties.
- Controleer de bijgewerkte functie voor verschillende privileges.
- Controleer wat er gebeurt als de server uitvalt.
# 4) DELETE-functionaliteit
Om de verwijderfunctie te controleren, kunnen de volgende stappen worden gevolgd:
- Maak een product met de CREATE-functionaliteit.
- Verwijder het product.
Het resultaat controleren:
- De tester controleert handmatig of het product uit de gebruikersinterface is verwijderd
- Tester controleert handmatig de MySQL-database en bevestigt dat de bijbehorende rij is verwijderd.
Vraag
Queryresultaat van MySQL:
Dit zou het zoekresultaat moeten weergeven zoals hieronder weergegeven.
Andere gevallen om te overwegen:
- Verwijder meerdere items in één verzoek.
- Verwijder een bijgewerkt item.
- Neem twee tabbladen en probeer een verwijderverzoek voor een product van beide tabbladen te geven.
Gevolgtrekking
Databasetests zijn erg belangrijk omdat het de veiligheid en betrouwbaarheid van een softwareapplicatie bevestigt. De meeste softwaretoepassingen hebben te maken met het maken, lezen en bijwerken en verwijderen van gegevens van / naar de database. Afhankelijk van de softwarevereisten kunnen CRUD-cycli variëren. Een tester moet testcases plannen op basis van de CRUD-cyclus.
CRUD-functionaliteiten kunnen handmatig worden getest en geverifieerd vanuit de gebruikersinterface en database. De SELECT-query kan worden gebruikt om de wijzigingen in de database te verifiëren die overeenkomen met elke CRUD-bewerking.
Ben jij een expert in CRUD-testen? Heb je interessante feiten om te delen met onze lezers die nieuw zijn bij CRUD? Voel je vrij om je mening / suggesties te geven in de comments hieronder !!
Aanbevolen literatuur
- Database testen met JMeter
- ISTQB-testcertificering Voorbeeldvragen met antwoorden
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Belangrijkste verschillen tussen Black Box-tests en White Box-tests
- Primer eBook downloaden testen
- Een eenvoudige aanpak voor XML naar databasetests
- 40+ beste databasetesttools - Populaire datatestoplossingen
- GUI-testhandleiding: een complete gebruikersinterface (UI) testhandleiding