how test java applications tips with sample test cases
In questo tutorial, impareremo i componenti coinvolti in un'applicazione Java e i vari tipi di test che devono essere eseguiti per garantire un'applicazione di alta qualità e priva di bug.
Questo è un serie in tre parti sul test delle applicazioni JAVA.
- In questo articolo impareremo i componenti J2EE e l'approccio di test manuale per un'applicazione J2EE.
- Nella seconda, esamineremo il file Test automatizzati approccio per testare le applicazioni J2EE e
- Nella terza, esamineremo un elenco completo di strumenti disponibili per testare le applicazioni J2EE.
Cosa imparerai:
- Cominciamo con la panoramica delle applicazioni J2EE
- Test dell'applicazione JAVA / J2EE
- Test manuale dell'applicazione Java:
- Conclusione
- Lettura consigliata
Cominciamo con la panoramica delle applicazioni J2EE
PER Giava l'applicazione web è composta da diversi componenti, ciascuno dei quali ha uno scopo importante. MVC , che sta per Model View Controller, è il modello di progettazione architettonica più popolare e utilizzato di frequente.
Prima di imparare a testare, esaminiamo brevemente il file vari componenti di un'applicazione J2EE.

- Client / Browser chiede un indirizzo web con un URL.
- JSP (Java Server Pages) - JSP è una tecnologia lato server destinata a presentare dati all'utente. Supporta la visualizzazione di contenuto dinamico con l'aiuto di tag speciali chiamati tag JSP, che aiutano a inserire codice Java all'interno delle pagine HTML. (HTML statico mostra sempre lo stesso contenuto). In fase di esecuzione, un JSP viene convertito in un servlet. La logica aziendale non è tipicamente scritta qui.
- JSF (Java Server Faces) - JSF è un framework di componenti di visualizzazione per la progettazione efficace dell'interfaccia utente.
- Javascript / Jquery - sono linguaggi di scripting utilizzati per la convalida lato client della vista / schermata.
- Servlet - Un Servlet convalida i dati ricevuti dall'input, seleziona il codice della logica di business appropriato e trasmette i valori al codice Bean.
- Enterprise Java Bean (EJB) - È qui che generalmente viene scritta e gestita l'intera logica aziendale. Il bean quindi chiama il codice per leggere, scrivere o aggiornare il database. Una volta completate le operazioni del database, la risposta viene quindi ritrasferita al Servlet, che a sua volta seleziona il JSP appropriato per visualizzare i risultati.
- Servizi web - I servizi Web sono componenti di un'applicazione che viene eseguita su un server separato e comunica tramite protocollo HTTP.
- Banca dati - memorizza tutti i dati dell'applicazione.
Tieni presente che non tutte le applicazioni web seguono il JSP -> Servlet -> EJB -> Modello database . La maggior parte delle applicazioni J2EE sono attualmente scritte con un framework come Struts, Spring o Hibernate. La progettazione delle applicazioni varia per ogni requisito in base alle dimensioni dell'applicazione, al costo, al tempo di sviluppo, alle risorse e alle dimensioni del team.
Test dell'applicazione JAVA / J2EE
Passiamo ora al test di un'intera applicazione J2EE. Ciò avviene in più passaggi.Per esempio, considera che abbiamo tre schermate:
- Una schermata di accesso
- Una schermata di visualizzazione dei dipendenti, che elenca tutti i dipendenti dell'organizzazione
- Una schermata di modifica / aggiunta / rimozione dei dipendenti.
L'interfaccia utente (interfaccia utente) per queste tre schermate è sviluppata con JSP / HTML e le convalide vengono eseguite tramite JavaScript. Poiché è un'applicazione di esempio, la logica è in Servlet e DAO (Data Access Object). DAO è una classe per la connessione al database.
Di seguito sono riportate le schermate di esempio:



Test manuale dell'applicazione Java:
Durante i test manuali JAVA, un tester prepara i casi di test dal documento di progettazione dettagliato e cerca di coprire ogni scenario e frammento di codice possibile.
# 1) TEST DELL'UNITÀ JAVA
Il test unitario è un tipo di test in cui un utente deve testare il più piccolo degli snippet di codice per l'accuratezza, la correttezza e la conformità ai requisiti.
Prendiamo il fileesempio della schermata di accesso. La schermata di accesso ha due campi di testo: nome utente e password e ha due pulsanti: invia e annulla.
I casi di test dovrebbero coprire tutti i cicli e le istruzioni condizionali. I casi di test dovrebbero visualizzare i risultati attesi e i dati dei test. Di seguito sono riportati alcuni dei casi di test generali che un utente potrebbe eseguire manualmente in una schermata di accesso. I risultati vengono quindi annotati nel documento del caso di test.
Di seguito è riportato un formato di test case di esempio per la schermata di accesso.
| S.No. | Caso di prova | Risultato atteso | Risultato attuale | Superato / Fallito |
|---|---|---|---|---|
| 4 | L'utente inserisce un nome utente di più di 10 caratteri | Messaggio di errore 'Il nome utente non deve contenere più di 10 caratteri' dovrebbe essere visualizzato | Il messaggio di errore non viene visualizzato | FALLIRE |
| uno | L'utente controlla l'aspetto delle etichette Nome utente, Password | Le etichette devono essere digitate correttamente e visualizzate con caratteri di dimensioni normali | Il nome utente e la password dell'etichetta vengono visualizzati correttamente | PASSAGGIO |
| Due | L'utente controlla l'aspetto del pulsante Invia e annulla | I pulsanti dovrebbero essere visualizzati con il nome corretto | I pulsanti Invia e Annulla vengono visualizzati correttamente | PASSAGGIO |
| 3 | L'utente controlla il colore di sfondo dello schermo | Il modulo di accesso dovrebbe essere all'interno di una tabella bianca e lo schermo dovrebbe essere di sfondo grigio | L'aspetto dello schermo non corrisponde ai requisiti. | FALLIRE |
| 4 | L'utente lascia la casella di testo del nome utente come vuota | Dovrebbe essere visualizzato il messaggio di errore 'Il nome utente non può essere vuoto' | Viene visualizzato il messaggio di errore 'Il nome utente non può essere vuoto' | PASSAGGIO |
| 5 | L'utente immette un valore nella casella di testo del nome utente e lascia vuota la casella di testo della password | Dovrebbe essere visualizzato il messaggio di errore 'La password non può essere vuota' | Viene visualizzato il messaggio di errore 'La password non può essere vuota' | PASSAGGIO |
| 6 | L'utente inserisce il nome utente come 'abcd' e la password come 'xxxx' | Messaggio di errore 'Combinazione nome utente Password non valida' dovrebbe essere visualizzato | Messaggio di errore 'Combinazione nome utente Password non valida' È visualizzato | PASSAGGIO |
| 5 | L'utente immette il nome utente come 'utente di prova' e la password come 'password' e fa clic sul pulsante Invia | L'utente dovrebbe essere in grado di vedere la 'schermata dei dettagli del dipendente' | Viene visualizzata la schermata dei dettagli del dipendente | PASSAGGIO |
Mentre la tabella elenca alcuni dei casi di test, di seguito è riportato l'elenco completo:
- Verificare la presenza di qualsiasi eccezione inclusa l'eccezione del puntatore NULL
- Controlla se NULL non sono consentiti per nome utente e password
- Controlla se nome utente / password sono nel formato corretto
- Controlla se i numeri non sono consentiti per il nome utente
- Controlla se i caratteri speciali non sono consentiti nel nome utente
- Verifica se è stata inserita la combinazione corretta di nome utente e password, quindi l'applicazione ti porta alla schermata successiva, ovvero la schermata delle informazioni sui dipendenti
- Controlla se il nome utente inserito è della lunghezza corretta
- Controlla se il campo di testo del nome utente consente solo il numero massimo di caratteri specificato per quel campo
- Verificare se il campo della password, se specificato nei requisiti, è visibile come * durante l'inserimento
- Controlla se le password fanno distinzione tra maiuscole e minuscole
- Controlla se il nome utente non fa distinzione tra maiuscole e minuscole
- Controlla se la pagina di accesso non ricorda il nome utente o la password, anche dopo essere usciti
- Controlla se i pulsanti Invia e Annulla funzionano secondo i requisiti
- Se si utilizza l'applicazione per la prima volta, verificare se il nome utente dispone dell'autorizzazione per accedere all'applicazione
- Elimina una combinazione nome utente / password dal database e controlla se la combinazione non è in grado di accedere nuovamente
- Per tutti i casi precedenti, controllare se vengono visualizzati i messaggi di errore di convalida appropriati
- Controlla se le etichette ei pulsanti sono nella posizione corretta sullo schermo e che visualizzano il testo correttamente
- Controlla se l'aspetto dello schermo è conforme ai requisiti
- Controlla se le eccezioni vengono gestite
- Verificare se la registrazione viene eseguita per le azioni richieste
Dopo aver esaminato i casi di test, potresti renderti conto che hai principalmente a che fare con il test di campi, pulsanti, funzionalità e convalide di una particolare schermata. Questo è accurato, poiché Unit Testing si occupa molto attentamente del test di ogni piccolo frammento di codice e componente. Lo stesso tipo di test dovrebbe essere eseguito per tutti gli schermi.
Si prega di notare che quanto sopra sono solo esempi e i casi di test sono preparati sulla base di un documento di progettazione dettagliato e specifico del progetto.
Leggi anche=> Esempi di casi di test pronti per l'uso e scenari di prova per il test delle applicazioni web.
# 2) TEST DI INTEGRAZIONE
Nel test di integrazione, i singoli moduli vengono integrati e testati insieme per verificarne la correttezza.
domande e risposte dell'intervista di supporto tecnico per le matricole
Lascia che ciascuna delle tre schermate nell'esempio precedente sia sviluppata da tre diversi membri del team. Ora che hanno finito con i test unitari, è il momento di riunire tutto il codice e verificare se funzionano bene insieme. Il test di integrazione viene eseguito per garantire che i dati o il controllo vengano trasferiti correttamente da una schermata all'altra.
Di seguito sono riportati alcuni casi di test di integrazione di esempio per l'esempio dell'applicazione Employee:
- Verificare se l'utente loggato e la sessione sono gli stessi in tutte le altre nuove schermate integrate
- Verificare se gli altri moduli non stanno aggiornando / cancellando / inserendo alcun record nel database non richiesto
- Lascia che ci sia un campo dello stato del dipendente, che dice 'Nuovo' in aggiunta, 'Aggiornato' in caso di modifica e 'Eliminato' in caso di eliminazione. Sebbene due o tre schermate possano utilizzare lo stesso campo di stato, è importante assicurarsi che il campo non venga aggiornato in modo errato.
- Verifica se l'intestazione, il piè di pagina, le dimensioni dello schermo e l'aspetto soddisfano i requisiti dopo l'integrazione
- Verificare che quando si fa clic sui pulsanti Invia, il controllo venga trasferito alla schermata successiva
- Verificare che quando si fa clic sul pulsante Annulla, l'azione eseguita venga annullata
Inoltre, i casi di test di integrazione generali per un'applicazione J2EE potrebbero essere:
- Controlla il flusso di dati, Object, XML o Session dall'inizio alla fine. Verificare la correttezza.
- Verificare se la sessione è gestita correttamente da ciascuno dei moduli
- Se sono coinvolte applicazioni esterne (servizi web), controlla se la tua applicazione è in grado di effettuare chiamate e recuperare i dati dall'applicazione
# 3) TEST DEL SISTEMA
In System testing, l'intera applicazione viene testata per funzionalità e completezza rispetto ai requisiti. Sarebbe probabilmente più facile chiedere quando viene eseguito il test unitario di ogni componente e anche i componenti del codice vengono combinati e testati insieme durante il test di integrazione, cosa potrebbe esserci di diverso nel test del sistema? Non è inesatto dire che l'idea in System Testing è di rompere l'applicazione :)
Scenario 1: Sviluppate una nuova applicazione per i dipendenti con un framework;per esempio, Struts. Esistono anche molte altre applicazioni in esecuzione su diversi server della tua organizzazione. Tuttavia, tutti chiamano lo stesso servizio Web esistente per recuperare l'indirizzo e il numero di telefono di una determinata persona.
Durante il test di integrazione, avresti verificato se la tua applicazione è in grado di effettuare una chiamata al servizio web e se sei in grado di ottenere la risposta. Ma cosa succede se c'è un problema nel servizio web stesso? Oppure il servizio web non risponde ad alcuni rari input? Il servizio web, nel nostro caso, può assumere solo un numero di dipendenti massimo di 6 caratteri. Oppure, il servizio web genera eccezioni per determinati formati di indirizzo durante la restituzione. Questo è esterno, ma fa anche parte del test di sistema.
Scenario n. 2 : La tua domanda di lavoro è completa. Aggiungi un dipendente e viene generato un numero di dipendente # 1001. Modificare, eliminare, aggiornare, aggiungere, modificare, eliminare, aggiungere, aggiungere, aggiungere, modificare, eliminare e infine aggiungere un altro. E se il numero del nuovo dipendente fosse di nuovo # 1001?
Scenario n. 3 : Supponiamo che due utenti utilizzino l'applicazione contemporaneamente. Entrambi iniziano a lavorare sullo stesso dipendente, uno elimina. Cosa succede se l'altro utente è in grado di procedere con la modifica degli stessi dipendenti così come sono memorizzati nella sessione?
Di seguito sono riportati alcuni aspetti importanti del test del sistema:
- Assicurarsi che il flusso di dati e controllo sia corretto da da un capo all'altro
- Garantire la sicurezza dei dati della transazione
- Assicurati che l'applicazione segua tutte le funzionalità aziendali
- Controlla se l'applicazione funziona bene come prodotto finale: controlla i collegamenti interrotti, la gestione delle sessioni, i cookie, la registrazione, la gestione degli errori, la gestione delle eccezioni, la convalida e il flusso delle transazioni.
# 4) TEST DELLE PRESTAZIONI
Questo tipo di test viene eseguito quando un numero elevato di utenti utilizza l'applicazione o una grande quantità di dati nel database o entrambi. Di seguito sono riportati alcuni dei casi:
- Se più utenti accedono contemporaneamente, controlla che le applicazioni non si blocchino o si blocchino
- Se nel database è disponibile una grande quantità di dati, verificare che le griglie della schermata di ricerca non impieghino molto tempo per eseguire le query prima del timeout della sessione
- In un ambiente multi-thread, verificare che l'applicazione sia in grado di gestire bene tutti i thread
- Nelle applicazioni in cui viene creato un numero elevato di oggetti, verificare se viene allocata memoria sufficiente, viene gestita la garbage collection e che non vi siano eccezioni di memoria insufficiente
Conclusione
In questo articolo, abbiamo coperto una panoramica di un'applicazione J2EE. Abbiamo anche visto come eseguire manualmente test di unità, integrazione, funzionalità e sistema per ciascuno dei componenti dell'applicazione con un esempio.
Nel articolo successivo , vedremo come i test di automazione possono essere utili per le grandi applicazioni J2EE.
Circa l'autore: Questo è un articolo ospite di Padmavaty S. Con oltre 7 anni di esperienza nel test del software, ha una vasta esperienza nel testare il framework Java, J2EE, MVC e Struts.
Facci sapere se stai lavorando al test di applicazioni JAVA. Condividi la tua esperienza e le tue domande nei commenti qui sotto.
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Documenti di domande campione di certificazione di test ISTQB con risposte
- Come eseguire il test di automazione delle applicazioni JAVA / J2EE (Parte 2)
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- I 20 migliori consigli pratici per il test del software da leggere prima di testare qualsiasi applicazione
- Test di applicazioni sanitarie - Suggerimenti e scenari di test importanti (Parte 2)
- Come trovare un bug nell'applicazione? Suggerimenti e trucchi
- Test di database con JMeter
- Java Virtual Machine: come JVM aiuta nell'esecuzione di applicazioni Java