how test java applications tips with sample test cases
In deze tutorial leren we de componenten die betrokken zijn bij een Java-applicatie en de verschillende soorten tests die moeten worden uitgevoerd om een hoogwaardige, foutvrije applicatie te garanderen.
Dit is een driedelige serie over het testen van JAVA-applicaties.
- In dit artikel leren we de J2EE-componenten en handmatige testbenadering voor een J2EE-applicatie.
- In de tweede zullen we de Geautomatiseerd testen aanpak voor het testen van J2EE-toepassingen, en
- In de derde zullen we een uitgebreide lijst met tools bekijken die beschikbaar zijn voor het testen van J2EE-applicaties.
Wat je leert:
- Laten we beginnen met een overzicht van J2EE-applicaties
- JAVA / J2EE-applicatie testen
- Handmatige Java-applicatie testen:
- Gevolgtrekking
- Aanbevolen literatuur
Laten we beginnen met een overzicht van J2EE-applicaties
NAAR Java webapplicatie bestaat uit verschillende componenten die elk een belangrijk doel dienen. MVC , wat staat voor Model View Controller, staat als het meest populaire en meest gebruikte architectonische ontwerppatroon.
Laten we, voordat we leren testen, kort het verschillende componenten van een J2EE-applicatie.
- Client / browser vraagt om een webadres met een URL.
- JSP (Java Server Pages) - JSP is een server-side technologie die bedoeld is om gegevens aan de gebruiker te presenteren. Het ondersteunt de weergave van dynamische inhoud met behulp van speciale tags, JSP-tags genaamd, die helpen bij het invoegen van Java-code in HTML-pagina's. (Statische HTML geeft altijd dezelfde inhoud weer). Tijdens runtime wordt een JSP geconverteerd naar een servlet. Bedrijfslogica wordt hier doorgaans niet geschreven.
- JSF (Java Server Faces) - JSF is een raamwerk voor weergavecomponenten voor het effectieve ontwerp van de gebruikersinterface.
- Javascript / Jquery - zijn scripttalen die worden gebruikt voor validatie van de weergave / het scherm aan de clientzijde.
- Servlet - Een servlet valideert de gegevens die worden ontvangen van de invoer, selecteert de juiste business logic-code en geeft de waarden door aan de Bean-code.
- Enterprise Java Bean (EJB) - Dit is waar de volledige bedrijfslogica doorgaans wordt geschreven en afgehandeld. De bean roept vervolgens de code op om de database te lezen, te schrijven of bij te werken. Zodra de databasebewerkingen zijn voltooid, wordt het antwoord teruggestuurd naar de Servlet, die op zijn beurt de juiste JSP selecteert om de resultaten weer te geven.
- Webservices - Webservices zijn componenten van een applicatie die op een aparte server draaien en communiceren via HTTP-protocol.
- Database - slaat de volledige gegevens van de applicatie op.
Houd er rekening mee dat niet alle webtoepassingen de JSP -> Servlet -> EJB -> Databasemodel De meeste J2EE-applicaties zijn momenteel geschreven met een framework zoals Struts, Spring of Hibernate. Het ontwerp van applicaties varieert voor elke vereiste op basis van de grootte van de applicatie, kosten, ontwikkeltijd, middelen en teamgrootte.
JAVA / J2EE-applicatie testen
Laten we nu overgaan tot het testen van een volledige J2EE-applicatie. Dit gebeurt in verschillende stappen.Bijvoorbeeld, bedenk dat we hebben drie schermen:
- Een inlogscherm
- Een medewerkersweergavescherm waarop alle medewerkers in de organisatie staan
- Een medewerker wijziging / toevoeging / verwijdering scherm.
De UI (User Interface) voor deze drie schermen is ontwikkeld met JSP / HTML en de validaties worden uitgevoerd via JavaScript. Omdat het een voorbeeldtoepassing is, zit logica in de Servlet en DAO (Data Access Object). DAO is een klasse om verbinding te maken met de database.
Hieronder staan de voorbeeldschermen:
Handmatige Java-applicatie testen:
Tijdens handmatige JAVA-testen bereidt een tester de testcases voor vanuit het gedetailleerde ontwerpdocument en probeert hij elk mogelijk scenario en codefragment te dekken.
# 1) TESTEN VAN JAVA-EENHEID
Unit testing is een soort testen waarbij een gebruiker de kleinste codefragmenten moet testen op nauwkeurigheid, juistheid en het voldoen aan de vereisten.
Laten we devoorbeeld van het inlogschermHet inlogscherm heeft twee tekstvelden: gebruikersnaam en wachtwoord, en heeft twee knoppen: indienen en annuleren.
De testgevallen moeten alle lussen en voorwaardelijke uitspraken omvatten. Testgevallen moeten de verwachte resultaten en de testgegevens weergeven. Hieronder staan enkele van de algemene testcases die een gebruiker handmatig zou kunnen uitvoeren in een inlogscherm. De resultaten worden vervolgens genoteerd in het testcase-document.
Hieronder ziet u een voorbeeld van een testcase-indeling voor het inlogscherm.
S.No. | Testgeval | verwacht resultaat | Werkelijke resultaat | Pass / Fail |
---|---|---|---|---|
4 | De gebruiker voert een gebruikersnaam in van meer dan 10 tekens | Foutmelding 'Gebruikersnaam mag niet meer dan 10 tekens bevatten' moet worden weergegeven | Foutmelding wordt niet weergegeven | MISLUKT |
1 | De gebruiker controleert het uiterlijk van de labels Gebruikersnaam, Wachtwoord | De labels moeten correct worden gespeld en weergegeven in lettertype van normale grootte | De gebruikersnaam en het wachtwoord van het label worden correct weergegeven | SLAGEN VOOR |
twee | De gebruiker controleert het uiterlijk van de knop Verzenden en annuleren | De knoppen moeten worden weergegeven met de juiste naam | De knoppen Verzenden en Annuleren worden correct weergegeven | SLAGEN VOOR |
3 | De gebruiker controleert de achtergrondkleur van het scherm | Het inlogformulier moet in een witte tabel staan en het scherm moet een grijze achtergrond hebben | Het schermbeeld komt niet overeen met de eisen. | MISLUKT |
4 | De gebruiker laat het tekstvak voor de gebruikersnaam leeg | Foutmelding 'Gebruikersnaam mag niet leeg zijn' moet worden weergegeven | Foutmelding 'Gebruikersnaam mag niet leeg zijn' wordt weergegeven | SLAGEN VOOR |
5 | De gebruiker voert een waarde in het tekstvak voor de gebruikersnaam in en laat het tekstvak voor het wachtwoord leeg | Foutmelding 'Wachtwoord mag niet leeg zijn' moet worden weergegeven | Foutmelding 'Wachtwoord mag niet leeg zijn' wordt weergegeven | SLAGEN VOOR |
6 | Gebruiker voert gebruikersnaam in als 'abcd' en wachtwoord als 'xxxx' | Foutmelding 'Ongeldige combinatie van gebruikersnaam en wachtwoord' moet worden weergegeven | Foutmelding 'Ongeldige combinatie van gebruikersnaam en wachtwoord' is weergegeven | SLAGEN VOOR |
5 | De gebruiker voert de gebruikersnaam in als 'testuser' en het wachtwoord als 'wachtwoord' en klikt op de knop Verzenden | De gebruiker moet het scherm 'Werknemersgegevens' kunnen zien | Het scherm met werknemersgegevens wordt weergegeven | SLAGEN VOOR |
Terwijl de tabel enkele van de testgevallen opsomt, is hieronder de volledige lijst:
- Controleer op een uitzondering, inclusief een uitzondering op de NULL-pointer
- Controleer of NULLS niet zijn toegestaan voor gebruikersnaam en wachtwoord
- Controleer of gebruikersnaam / wachtwoord de juiste indeling heeft
- Controleer of cijfers niet zijn toegestaan voor gebruikersnaam
- Controleer of speciale tekens niet zijn toegestaan in Gebruikersnaam
- Controleer of de juiste combinatie van gebruikersnaam en wachtwoord is ingevoerd, dan brengt de applicatie je naar het volgende scherm, namelijk het werknemersinformatiescherm
- Controleer of de ingevoerde gebruikersnaam de juiste lengte heeft
- Controleer of het tekstveld voor de gebruikersnaam alleen het maximale aantal tekens toestaat dat voor dat veld is opgegeven
- Controleer of het wachtwoordveld, indien gespecificeerd in de vereisten, zichtbaar is als * tijdens het invoeren
- Controleer of wachtwoorden hoofdlettergevoelig zijn
- Controleer of de gebruikersnaam niet hoofdlettergevoelig is
- Controleer of de aanmeldingspagina de gebruikersnaam of het wachtwoord niet meer weet, zelfs niet na het afsluiten
- Controleer of de knop Verzenden en Annuleren werkt volgens de vereisten
- Als u de applicatie voor het eerst gebruikt, controleer dan of de gebruikersnaam toestemming heeft om de applicatie te openen
- Verwijder een gebruikersnaam / wachtwoord combinatie uit de database en controleer of de combinatie niet opnieuw kan inloggen
- Controleer voor alle bovenstaande gevallen of de juiste validatiefoutmeldingen worden weergegeven
- Controleer of de labels en knoppen op de juiste plaats op het scherm zitten en of ze de tekst correct weergeven
- Controleer of de schermweergaven voldoen aan de vereisten
- Controleer of uitzonderingen worden afgehandeld
- Controleer of er logboekregistratie is uitgevoerd voor vereiste acties
Na het doornemen van de testcases, realiseert u zich misschien dat u vooral te maken heeft met het testen van velden, knoppen, functionaliteit en validaties van een bepaald scherm. Dit is juist, aangezien Unit Testing zich zeer goed bezighoudt met het testen van elk klein codefragment en onderdeel. Voor alle schermen moet hetzelfde type testen worden uitgevoerd.
Houd er rekening mee dat het bovenstaande slechts voorbeelden zijn en dat testcases worden voorbereid op basis van een projectspecifiek en gedetailleerd ontwerpdocument.
Lees ook Voorbeeld gebruiksklare testcases en test scenario's voor het testen van webapplicaties.
# 2) INTEGRATIETESTEN
Bij integratietesten worden individuele modules geïntegreerd en samen op juistheid getest.
de eenvoudigste manier om de waarden in een array toe te voegen, is door
Laat elk van de drie schermen in het bovenstaande voorbeeld zijn ontwikkeld door drie verschillende teamleden. Nu ze klaar zijn met het testen van eenheden, is het tijd om alle code bij elkaar te brengen en te kijken of ze goed samenwerken. Er worden integratietests uitgevoerd om ervoor te zorgen dat gegevens of besturingselementen correct van het ene scherm naar het andere worden overgedragen.
Hier zijn enkele voorbeelden van integratietestcases voor het voorbeeld van een werknemer:
- Controleer of de aangemelde gebruiker en de sessie hetzelfde zijn in alle andere nieuwe geïntegreerde schermen
- Controleer of de andere modules geen record in de database updaten / verwijderen / invoegen
- Laat er een werknemersstatusveld zijn met de tekst ‘Nieuw’ bij toevoeging, ‘Bijgewerkt’ bij wijziging en ‘Verwijderd’ bij verwijdering. Hoewel twee of drie schermen hetzelfde statusveld kunnen gebruiken, is het belangrijk ervoor te zorgen dat het veld niet verkeerd wordt bijgewerkt.
- Controleer na integratie of de koptekst, voettekst, schermgrootte en uiterlijk aan de eisen voldoen
- Controleer of wanneer u op de knop Verzenden klikt, de besturing naar het volgende scherm wordt overgebracht
- Controleer of wanneer u op de knop Annuleren klikt, de uitgevoerde actie wordt geannuleerd
Daarnaast kunnen de algemene integratietestgevallen voor een J2EE-applicatie zijn:
- Controleer de gegevensstroom, object, XML of sessie, van begin tot eind. Controleer op juistheid.
- Controleer of de sessie correct wordt beheerd door elk van de modules
- Als het om externe applicaties (webservices) gaat, controleer dan of uw applicatie in staat is om te bellen en gegevens terug te halen uit de applicatie
# 3) SYSTEEMTESTEN
Bij Systeemtesten wordt de gehele applicatie getest op functionaliteit en volledigheid ten opzichte van de eisen. Het zou waarschijnlijk gemakkelijker zijn om te vragen wanneer unit-testen van elk onderdeel worden uitgevoerd en de codecomponenten ook worden gecombineerd en samen getest tijdens integratietests, wat kan er anders zijn bij systeemtesten? Het is niet onnauwkeurig om te zeggen dat het idee van systeemtesten is om de applicatie te breken :)
Scenario 1: Je ontwikkelt een nieuwe medewerkersapplicatie met een framework;bijvoorbeeld, Struts. Er zijn ook verschillende andere applicaties die op verschillende servers in uw organisatie draaien. Ze bellen echter allemaal dezelfde bestaande webservice om het adres en telefoonnummer van een bepaalde persoon op te halen.
Tijdens de integratietest zou u hebben getest of uw applicatie in staat is om de webservice te bellen en of u de respons kunt krijgen. Maar wat als er een probleem is in de webservice zelf? Of reageert de webservice niet op enkele zeldzame inputs? De webservice kan in ons geval slechts een personeelsnummer van maximaal 6 tekens bevatten. Of de webservice genereert uitzonderingen voor bepaalde adresformaten tijdens het retourneren. Dit is extern, maar maakt ook deel uit van Systeemtesten.
Scenario # 2 : Uw werknemersaanvraag is voltooid. U voegt een werknemer toe en het genereert een werknemersnummer # 1001. U wijzigt, verwijdert, actualiseert, voegt toe, wijzigt, verwijdert, voegt toe, voegt toe, voegt toe, wijzigt, verwijdert en voegt uiteindelijk nog een toe. Wat moet ik doen als het nieuwe medewerkersnummer weer # 1001 is?
Scenario # 3 : Laten we aannemen dat twee gebruikers de applicatie tegelijkertijd gebruiken. Beiden gaan aan dezelfde medewerker werken, één verwijdert. Wat moet ik doen als de andere gebruiker door kan gaan met de wijziging van dezelfde medewerkers als deze in de sessie zijn opgeslagen?
Hieronder staan enkele belangrijke aspecten van systeemtesten:
- Zorg ervoor dat de stroom van gegevens en controle correct is van eind tot eind
- Zorg voor de beveiliging van de transactiegegevens
- Zorg ervoor dat de applicatie alle zakelijke functionaliteiten volgt
- Controleer of de applicatie goed werkt als een eindproduct - controleer verbroken koppelingen, sessiebeheer, cookies, logboekregistratie, foutafhandeling, afhandeling van uitzonderingen, validatie en transactiestroom.
# 4) PRESTATIETESTEN
Dit type testen wordt uitgevoerd wanneer er een groot aantal gebruikers de applicatie gebruikt of een grote hoeveelheid gegevens in de database, of beide. Hieronder staan enkele van de gevallen:
- Als meerdere gebruikers tegelijkertijd inloggen, controleer dan of de applicaties niet vastlopen / crashen
- Als er een grote hoeveelheid gegevens beschikbaar is in de database, controleer dan of de zoekschermrasters niet erg lang duren om query's uit te voeren voordat de sessie wordt onderbroken
- Controleer in een omgeving met meerdere threads of de toepassing alle threads goed kan verwerken
- Controleer in toepassingen waar grote aantallen objecten worden gemaakt of er voldoende geheugen is toegewezen, garbage collection wordt afgehandeld en of er geen uitzonderingen zijn als er onvoldoende geheugen is
Gevolgtrekking
In dit artikel hebben we een overzicht van een J2EE-applicatie behandeld. We hebben ook gezien hoe u handmatig unit-, integratie-, functionele en systeemtests kunt uitvoeren voor elk van de componenten van de applicatie met een voorbeeld.
In de volgend artikel , zullen we zien hoe automatiseringstesten gunstig kunnen zijn voor grote J2EE-toepassingen.
Over de auteur: Dit is een gastartikel van Padmavaty S. Met in totaal 7+ jaar ervaring in het testen van software heeft ze uitgebreide ervaring in het testen van Java, J2EE, MVC en Struts framework.
Laat het ons weten als u bezig bent met het testen van JAVA-applicaties. Deel uw ervaring en vragen in onderstaande opmerkingen.
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- ISTQB-testcertificering Voorbeeldvragen met antwoorden
- Automatiseringstests van JAVA / J2EE-applicaties uitvoeren (deel 2)
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Top 20 praktische tips voor het testen van software die u moet lezen voordat u een toepassing test
- Gezondheidszorgtoepassingen testen - tips en belangrijke testscenario's (deel 2)
- Hoe vind je een bug in de applicatie? Tips en trucs
- Database testen met JMeter
- Java Virtual Machine: hoe JVM helpt bij het uitvoeren van Java-applicaties