how test java applications tips with sample test cases
I den här handledningen lär vi oss de komponenter som är inblandade i en Java-applikation och de olika typerna av tester som behöver utföras för att säkerställa en högkvalitativ, felfri applikation.
Det här är en tredelad serie om testning av JAVA-applikationer.
- I den här artikeln lär vi oss J2EE-komponenterna och manuell testmetod för en J2EE-applikation.
- I det andra kommer vi att granska Automatiserad testning metod för att testa J2EE-applikationer och
- I det tredje kommer vi att granska en omfattande lista över verktyg som är tillgängliga för testning av J2EE-applikationer.
Vad du kommer att lära dig:
- Låt oss börja med en översikt över J2EE-applikationer
- Testar JAVA / J2EE-applikationen
- Manuell Java-applikationstestning:
- Slutsats
- Rekommenderad läsning
Låt oss börja med en översikt över J2EE-applikationer
TILL Java webbapplikationen består av flera komponenter som alla har ett viktigt syfte. MVC , som står för Model View Controller, står som det mest populära och ofta använda arkitektoniska designmönstret.
Innan vi lär oss testa, låt oss kort gå igenom olika komponenter i en J2EE-applikation.
- Klient / webbläsare frågar efter en webbadress med en URL.
- JSP (Java Server Pages) - JSP är en serversida-teknik avsedd att presentera data för användaren. Den stöder visning av dynamiskt innehåll med hjälp av speciella taggar som kallas JSP-taggar, som hjälper till att infoga Java-kod inom HTML-sidor. [Statisk HTML visar alltid samma innehåll]. Vid körning konverteras en JSP till en Servlet. Affärslogik skrivs vanligtvis inte här.
- JSF (Java Server Faces) - JSF är en vykomponentram för effektiv design av användargränssnittet.
- Javascript / Jquery - är skriptspråk som används för klientsidevalidering av vyn / skärmen.
- Servlet - En Servlet validerar data som tas emot från ingången, väljer lämplig affärslogik kod och vidarebefordrar värdena till Bean-koden.
- Enterprise Java Bean (EJB) - Det är här hela affärslogiken typiskt skrivs och hanteras. Bönan anropar sedan koden för att antingen läsa, skriva eller uppdatera databasen. När databasåtgärderna är färdiga överförs svaret sedan tillbaka till Servlet, som i sin tur väljer lämplig JSP för att visa resultaten.
- Webbservice - Webbtjänster är komponenter i ett program som körs på en separat server och kommunicerar via HTTP-protokoll.
- Databas - lagrar alla data i applikationen.
Observera att inte alla webbapplikationer följer JSP -> Servlet -> EJB -> Databasmodell . De flesta av J2EE-applikationerna är för närvarande skrivna med ett ramverk som Struts, Spring eller Hibernate. Utformningen av applikationer varierar för varje krav baserat på applikationens storlek, kostnad, utvecklingstid, resurser och teamstorlek.
Testar JAVA / J2EE-applikationen
Låt oss nu gå över till att testa en hel J2EE-applikation. Detta görs i flera steg.Till exempel, anser att vi har tre skärmar:
- En inloggningsskärm
- En medarbetares skärm som visar alla anställda i organisationen
- En anställd modifiering / tillägg / borttagning skärm.
Användargränssnittet (User Interface) för dessa tre skärmar är utvecklat med JSP / HTML och valideringen utförs via JavaScript. Eftersom det är ett exempelapplikation finns logiken i Servlet och DAO (Data Access Object). DAO är en klass för anslutning till databasen.
Nedan är exempel på skärmar:
Manuell Java-applikationstestning:
Under manuell JAVA-testning förbereder en testare testfallet från det detaljerade designdokumentet och försöker täcka alla möjliga scenarier och kodavsnitt.
# 1) JAVA ENHETSTESTNING
Enhetstestning är en typ av testning varvid en användare behöver testa de minsta av kodavsnitten för noggrannhet, korrekthet och uppfylla kraven.
Låt oss taexempel på inloggningsskärmen. Inloggningsskärmen har två textfält: användarnamn och lösenord och har två knappar: skicka och avbryt.
Testfallet bör täcka alla slingor och villkorliga uttalanden. Testfall bör visa förväntade resultat och testdata. Nedan följer några av de allmänna testfall som en användare kan utföra manuellt i en inloggningsskärm. Resultaten noteras sedan i testfallsdokumentet.
Nedan följer ett provformat för inloggningsskärmen.
S.No. | Testfall | Förväntat resultat | Faktiskt resultat | Godkänd / misslyckad |
---|---|---|---|---|
4 | Användaren anger ett användarnamn på mer än 10 tecken | Felmeddelande ”Användarnamnet får inte vara mer än tio tecken” ska visas | Felmeddelande visas inte | MISSLYCKAS |
1 | Användaren kontrollerar utseendet på etiketterna Användarnamn, lösenord | Etiketterna ska stavas korrekt och visas med typsnitt i normalstorlek | Etikettens användarnamn och lösenord visas korrekt | PASSERA |
två | Användaren kontrollerar utseendet på knappen Skicka och avbryt | Knapparna ska visas med rätt namn | Knapparna Skicka och Avbryt visas korrekt | PASSERA |
3 | Användaren kontrollerar skärmens bakgrundsfärg | Inloggningsformuläret ska vara inom ett vitt bord och skärmen ska vara bakgrundsgrå | Skärmens utseende matchar inte kraven. | MISSLYCKAS |
4 | Användaren lämnar användarnamns textruta som tom | Felmeddelande ”Användarnamnet får inte vara tomt” ska visas | Felmeddelande ”Användarnamnet får inte vara tomt” visas | PASSERA |
5 | Användaren anger något värde i användarnamns textruta och lämnar lösenordets textruta som Tom | Felmeddelande ”Lösenordet får inte vara tomt” ska visas | Felmeddelande 'Lösenordet kan inte vara tomt' visas | PASSERA |
6 | Användaren anger användarnamn som “abcd” och lösenord som “xxxx” | Felmeddelande 'Ogiltig kombination av användarnamnet och lösenordet' ska visas | Felmeddelande 'Ogiltig kombination av användarnamnet och lösenordet' visas | PASSERA |
5 | Användaren anger användarnamnet som 'testanvändare' och lösenordet som 'lösenord' och klickar på knappen Skicka | Användaren ska kunna se 'Skärmen för medarbetardetaljer' | Skärmen för medarbetardetaljer visas | PASSERA |
Medan tabellen listar några av testfallet, nedan är den fullständiga listan:
- Kontrollera eventuella undantag inklusive NULL-pekareundantag
- Kontrollera om NULLS inte är tillåtna för användarnamn och lösenord
- Kontrollera om användarnamn / lösenord är i rätt format
- Kontrollera om siffror inte är tillåtna för användarnamnet
- Kontrollera om specialtecken inte är tillåtna i användarnamnet
- Kontrollera om rätt kombination av användarnamn och lösenord anges, sedan tar applikationen dig till nästa skärm, dvs information om anställda
- Kontrollera om det angivna användarnamnet har rätt längd
- Kontrollera om textfältet för användarnamnet endast tillåter det maximala antalet tecken som anges för det fältet
- Kontrollera om lösenordsfältet, om det anges i kraven, syns som * när du anger
- Kontrollera om lösenord är skiftlägeskänsliga
- Kontrollera om användarnamnet inte är skiftlägeskänsligt
- Kontrollera om inloggningssidan inte kommer ihåg användarnamnet eller lösenordet, även efter att du avslutat
- Kontrollera om knappen Skicka och Avbryt fungerar enligt kraven
- Om du använder applikationen första gången, kontrollera om användarnamnet har behörighet att gå in i applikationen
- Ta bort en kombination av användarnamn och lösenord från databasen och kontrollera om kombinationen inte kan logga in igen
- För alla ovanstående fall, kontrollera om lämpliga valideringsfelmeddelanden visas
- Kontrollera om etiketterna och knapparna är på rätt plats på skärmen och att de visar texten korrekt
- Kontrollera om skärmens utseende är enligt kraven
- Kontrollera om undantag hanteras
- Kontrollera om loggning utförs för nödvändiga åtgärder
Efter att ha gått igenom testfallet kanske du inser att du mestadels har att göra med testning av fält, knappar, funktionalitet och valideringar av en viss skärm. Detta är korrekt, eftersom enhetstestning mycket angeläget handlar om testning av varje litet kodavsnitt och komponent. Samma typ av testning bör utföras för alla skärmar.
Observera att ovanstående endast är exempel, och testfall bereds baserat på ett projektspecifikt och detaljerat designdokument.
Läs också=> Prov färdigt att använda testfall och testscenarier för testning av webbapplikationer.
# 2) INTEGRATIONSTESTNING
I integreringstest integreras och testas enskilda moduler tillsammans för korrekthet.
oracle pl sql intervjufrågor och svar för erfaren pdf
Låt var och en av de tre skärmarna i exemplet ovan utvecklas av tre olika teammedlemmar. Nu när de är färdiga med enhetstestning är det dags att samla all kod och kontrollera om de fungerar bra tillsammans. Integrationstester utförs för att säkerställa att data eller kontroll överförs korrekt från en skärm till en annan.
Här är några exempel på integreringstestfall för exempel på anställdansökan:
- Kontrollera om användaren är inloggad och sessionen är densamma på alla andra nya integrerade skärmar
- Kontrollera om de andra modulerna inte uppdaterar / tar bort / infogar någon post i databasen som inte krävs
- Låt det finnas ett anställds statusfält som säger ”Nytt” vid tillägget, ”Uppdaterat” om ändring och ”Raderat” vid borttagning. Även om två eller tre skärmar kan använda samma statusfält är det viktigt att se till att fältet inte uppdateras felaktigt.
- Kontrollera om sidhuvudet, sidfoten, skärmstorleken och utseendet uppfyller kraven efter integrationen
- Kontrollera att kontrollen överförs till nästa skärm när du klickar på Submit-knapparna
- Kontrollera att den utförda åtgärden avbryts när du klickar på knappen Avbryt
Dessutom kan de allmänna integrationstestfallen för en J2EE-applikation vara:
- Kontrollera dataflödet, antingen Object, XML eller Session från slut till slut. Kontrollera om det är korrekt.
- Kontrollera om sessionen hanteras korrekt av var och en av modulerna
- Om externa applikationer (webbtjänster) är inblandade, kontrollera om din applikation kan ringa och hämta data från programmet
# 3) SYSTEMTESTNING
Vid systemtestning testas hela applikationen för funktionalitet och fullständighet med avseende på kraven. Det skulle troligen vara lättare att fråga när enhetstestning av varje komponent utförs och kodkomponenterna kombineras och testas tillsammans under integrationstest, vad kan vara annorlunda vid systemtestning? Det är inte felaktigt att säga att tanken i Systemtestning är att bryta applikationen :)
Scenario 1: Du utvecklar en ny medarbetaransökan med en ram;till exempelStruts. Det finns också flera andra applikationer som körs på olika servrar i din organisation. Men alla ringer samma befintliga webbtjänst för att hämta adress och telefonnummer för en viss person.
Under integrationstestning skulle du ha testat om din applikation kan ringa ett samtal till webbtjänsten och om du kan få svaret. Men tänk om det finns ett problem i själva webbtjänsten? Eller svarar inte webbtjänsten på några sällsynta ingångar? Webbtjänsten, i vårt fall, kan bara ta ett anställdsantal på högst 6 tecken. Eller webbtjänsten ger undantag för vissa adressformat när du återvänder. Detta är externt, men det är också en del av systemtestning.
Scenario # 2 : Din anställdsansökan är komplett. Du lägger till en anställd och den genererar ett anställd nummer # 1001. Du ändrar, raderar, uppdaterar, lägger till, modifierar, tar bort, lägger till, lägger till, lägger till, modifierar, tar bort och sedan slutligen lägger till ytterligare en. Vad händer om det nya anställdas nummer igen är # 1001?
Scenario # 3 : Låt oss anta att två användare använder applikationen samtidigt. Båda börjar arbeta med samma anställd, raderar en. Vad händer om den andra användaren kan fortsätta med modifieringen av samma anställda som den lagras i sessionen?
Nedan följer några viktiga aspekter av systemtestning:
- Se till att dataflödet och kontrollen är korrekt från början till slut
- Säkerställa transaktionsdataens säkerhet
- Se till att applikationen följer alla affärsfunktioner
- Kontrollera om applikationen fungerar som slutprodukt - kontrollera trasiga länkar, sessionshantering, cookies, loggning, felhantering, undantagshantering, validering och transaktionsflöde.
# 4) PRESTANDA TESTNING
Denna typ av testning utförs när det skulle finnas ett stort antal användare som använder applikationen eller stora mängder data i databasen, eller båda. Nedan följer några av fallen:
- Om flera användare loggar in samtidigt ska du kontrollera att applikationerna inte hänger / kraschar
- Om det finns en stor mängd data i databasen - kontrollera att sökskärmsnäten inte tar mycket lång tid att utföra frågor innan sessionstimeout
- Kontrollera att applikationen klarar av alla trådar i en tråd med flera trådar
- I applikationer där ett stort antal objekt skapas, kontrollera om tillräckligt minne tilldelas, skräpsamling hanteras och att det inte finns några undantag för minne
Slutsats
I den här artikeln har vi täckt en översikt över en J2EE-applikation. Vi har också sett hur man manuellt utför enhets-, integrations-, funktions- och systemtester för var och en av komponenterna i applikationen med ett exempel.
I nästa artikel , kommer vi att se hur Automation-testning kan vara fördelaktigt för stora J2EE-applikationer.
Om författaren: Detta är en gästartikel av Padmavaty S. Med totalt 7+ års erfarenhet av programvarutestning har hon lång erfarenhet av att testa Java, J2EE, MVC och Struts framework.
Låt oss veta om du arbetar med att testa JAVA-applikationer. Dela din erfarenhet och frågor i kommentarerna nedan.
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- ISTQB-testcertifieringsprovfrågeställningar med svar
- Hur man utför automatiseringstestning av JAVA / J2EE-applikationer (del 2)
- Bästa verktyg för testning av programvara 2021 [QA Test Automation Tools]
- Topp 20 praktiska testtips för programvara du bör läsa innan du testar någon applikation
- Testa sjukvårdsprogram - Tips och viktiga testscenarier (del 2)
- Hur hittar jag ett fel i applikationen? Tips och tricks
- Databastestning med JMeter
- Java Virtual Machine: Hur JVM hjälper till att köra Java-applikationen