how test java applications tips with sample test cases
Dans ce didacticiel, nous allons apprendre les composants impliqués dans une application Java et les différents types de tests qui doivent être effectués pour garantir une application de haute qualité et sans bogue.
C'est un série en trois parties sur le test des applications JAVA.
- Dans cet article, nous allons apprendre les composants J2EE et l'approche de test manuel pour une application J2EE.
- Dans le second, nous passerons en revue les Test automatisé approche de test des applications J2EE, et
- Dans le troisième, nous passerons en revue une liste complète des outils disponibles pour tester les applications J2EE.
Ce que vous apprendrez:
- Commençons par un aperçu des applications J2EE
- Test de l'application JAVA / J2EE
- Test manuel des applications Java:
- Conclusion
- lecture recommandée
Commençons par un aperçu des applications J2EE
À Java L'application Web se compose de plusieurs composants, chacun servant un objectif important. MVC , qui signifie Model View Controller, est le modèle de conception architecturale le plus populaire et le plus fréquemment utilisé.
Avant d'apprendre à tester, passons brièvement en revue divers composants d'une application J2EE.
- Client / Navigateur demande une adresse Web avec une URL.
- JSP (Java Server Pages) - JSP est une technologie côté serveur destinée à présenter des données à l'utilisateur. Il prend en charge l'affichage de contenu dynamique à l'aide de balises spéciales appelées balises JSP, qui aident à insérer du code Java dans les pages HTML. (Le HTML statique affiche toujours le même contenu). Lors de l'exécution, un JSP est converti en servlet. La logique métier n'est généralement pas écrite ici.
- JSF (Java Server Faces) - JSF est un cadre de composants de vue pour la conception efficace de l'interface utilisateur.
- Javascript / Jquery - sont des langages de script utilisés pour la validation côté client de la vue / écran.
- Servlet - Un servlet valide les données reçues de l'entrée, sélectionne le code de logique métier approprié et transmet les valeurs au code Bean.
- Enterprise Java Bean (EJB) - C'est là que toute la logique métier est généralement écrite et gérée. Le bean appelle ensuite le code pour lire, écrire ou mettre à jour la base de données. Une fois les opérations de la base de données terminées, la réponse est ensuite transférée vers le servlet, qui à son tour sélectionne la JSP appropriée pour afficher les résultats.
- Services Web - Les services Web sont des composants d'une application qui s'exécutent sur un serveur distinct et communiquent via le protocole HTTP.
- Base de données - stocke toutes les données de l'application.
Veuillez noter que toutes les applications Web ne suivent pas JSP -> Servlet -> EJB -> Modèle de base de données . La plupart des applications J2EE sont actuellement écrites avec un framework tel que Struts, Spring ou Hibernate. La conception des applications varie pour chaque exigence en fonction de la taille de l'application, du coût, du temps de développement, des ressources et de la taille de l'équipe.
Test de l'application JAVA / J2EE
Passons maintenant au test d'une application J2EE entière. Cela se fait en plusieurs étapes.Par exemple, considérons que nous avons trois écrans:
- Un écran de connexion
- Un écran d'affichage des employés, qui répertorie tous les employés de l'organisation
- Un écran de modification / ajout / suppression d'employé.
L'interface utilisateur (UI) de ces trois écrans est développée avec JSP / HTML et les validations effectuées via JavaScript. Comme il s'agit d'un exemple d'application, la logique se trouve dans le servlet et le DAO (objet d'accès aux données). DAO est une classe de connexion à la base de données.
Voici les exemples d'écrans:
Test manuel des applications Java:
Pendant les tests manuels JAVA, un testeur prépare les cas de test à partir du document de conception détaillé et essaie de couvrir tous les scénarios et extraits de code possibles.
# 1) TEST DE L'UNITÉ JAVA
Le test unitaire est un type de test dans lequel un utilisateur doit tester le plus petit des extraits de code pour la précision, l'exactitude et la satisfaction des exigences.
Prenons leexemple d'écran de connexion. L'écran de connexion a deux champs de texte: nom d'utilisateur et mot de passe, et a deux boutons: soumettre et annuler.
Les cas de test doivent couvrir toutes les boucles et instructions conditionnelles. Les cas de test doivent afficher les résultats attendus et les données de test. Voici quelques-uns des scénarios de test généraux qu'un utilisateur pourrait exécuter manuellement dans un écran de connexion. Les résultats sont ensuite notés dans le document de cas de test.
Vous trouverez ci-dessous un exemple de format de scénario de test pour l'écran de connexion.
S.No. | Cas de test | résultat attendu | Résultat actuel | Réussite / échec |
---|---|---|---|---|
4 | L'utilisateur entre un nom d'utilisateur de plus de 10 caractères | Message d'erreur 'Le nom d'utilisateur ne doit pas comporter plus de 10 caractères' doit s'afficher | Le message d'erreur ne s'affiche pas | ÉCHOUER |
1 | L'utilisateur vérifie l'apparence des étiquettes Nom d'utilisateur, mot de passe | Les étiquettes doivent être correctement orthographiées et affichées dans une police de taille normale | Le nom d'utilisateur et le mot de passe de l'étiquette s'affichent correctement | PASSE |
deux | L'utilisateur vérifie l'apparence du bouton Soumettre et annuler | Les boutons doivent être affichés avec le nom correct | Les boutons Soumettre et Annuler s'affichent correctement | PASSE |
3 | L'utilisateur vérifie la couleur d'arrière-plan de l'écran | Le formulaire de connexion doit être dans un tableau blanc et l'écran doit être de fond gris | L'apparence de l'écran ne correspond pas aux exigences. | ÉCHOUER |
4 | L'utilisateur laisse la zone de texte du nom d'utilisateur vide | Le message d'erreur «Le nom d'utilisateur ne peut pas être vide» doit s'afficher | Le message d'erreur «Le nom d'utilisateur ne peut pas être vide» s'affiche | PASSE |
5 | L'utilisateur entre une valeur dans la zone de texte du nom d'utilisateur et laisse la zone de texte du mot de passe vide | Le message d'erreur «Le mot de passe ne peut pas être vide» doit s'afficher | Le message d'erreur «Le mot de passe ne peut pas être vide» s'affiche | PASSE |
6 | L'utilisateur entre le nom d'utilisateur sous la forme «abcd» et le mot de passe sous la forme «xxxx» | Message d'erreur 'Combinaison de nom d'utilisateur et de mot de passe invalide' devrait être affiché | Message d'erreur 'Combinaison de nom d'utilisateur et de mot de passe invalide' est affiché | PASSE |
5 | L'utilisateur entre le nom d'utilisateur comme «testuser» et le mot de passe comme «mot de passe» et clique sur le bouton Soumettre | L'utilisateur doit pouvoir voir «l'écran Détails de l'employé» | L'écran des détails de l'employé s'affiche | PASSE |
Bien que le tableau répertorie certains des cas de test, voici la liste complète:
- Recherchez toute exception, y compris une exception de pointeur NULL
- Vérifiez si NULLS n'est pas autorisé pour le nom d'utilisateur et le mot de passe
- Vérifiez si le nom d'utilisateur / mot de passe est au bon format
- Vérifiez si les numéros ne sont pas autorisés pour le nom d'utilisateur
- Vérifiez si les caractères spéciaux ne sont pas autorisés dans le nom d'utilisateur
- Vérifiez si la bonne combinaison de nom d'utilisateur et de mot de passe est saisie, puis l'application vous amène à l'écran suivant, c'est-à-dire à l'écran d'informations sur les employés.
- Vérifiez si le nom d'utilisateur saisi est de longueur correcte
- Vérifiez si le champ de texte du nom d'utilisateur autorise uniquement le nombre maximum de caractères spécifié pour ce champ
- Vérifiez si le champ du mot de passe, s'il est spécifié dans les exigences, est visible sous la forme * lors de la saisie
- Vérifiez si les mots de passe sont sensibles à la casse
- Vérifiez si le nom d'utilisateur n'est pas sensible à la casse
- Vérifiez si la page de connexion ne se souvient pas du nom d'utilisateur ou du mot de passe, même après avoir quitté
- Vérifiez si le bouton Soumettre et Annuler fonctionne selon les exigences
- Si vous utilisez l'application pour la première fois, vérifiez si le nom d'utilisateur est autorisé à entrer dans l'application
- Supprimer une combinaison nom d'utilisateur / mot de passe de la base de données et vérifier si la combinaison ne peut pas se reconnecter
- Pour tous les cas ci-dessus, vérifiez si les messages d'erreur de validation appropriés sont affichés
- Vérifiez si les étiquettes et les boutons sont au bon endroit sur l'écran et qu'ils affichent correctement le texte
- Vérifiez si les apparences de l'écran sont conformes aux exigences
- Vérifier si les exceptions sont gérées
- Vérifiez si la journalisation est effectuée pour les actions requises
Après avoir parcouru les cas de test, vous vous rendrez peut-être compte que vous vous occupez principalement du test des champs, des boutons, des fonctionnalités et des validations d'un écran particulier. C'est exact, car les tests unitaires s'occupent très attentivement du test de chaque petit extrait de code et composant. Le même type de test doit être effectué pour tous les écrans.
Veuillez noter que les exemples ci-dessus ne sont que des exemples et que les cas de test sont préparés sur la base d'un document de conception détaillé et spécifique au projet.
Lire aussi=> Exemple de cas de test prêts à l'emploi et scénarios de test pour les tests d'applications Web.
# 2) TESTS D'INTÉGRATION
Dans les tests d'intégration, des modules individuels sont intégrés et testés ensemble pour leur exactitude.
meilleur logiciel de nettoyage gratuit pour windows 10
Que chacun des trois écrans de l'exemple ci-dessus soit développé par trois membres de l'équipe différents. Maintenant qu'ils ont terminé les tests unitaires, il est temps de rassembler tout le code et de vérifier s'ils fonctionnent bien ensemble. Des tests d'intégration sont effectués pour s'assurer que les données ou le contrôle sont correctement transférés d'un écran à un autre.
Voici quelques exemples de cas de test d'intégration pour l'exemple d'application des employés:
- Vérifiez si l'utilisateur connecté et la session sont les mêmes dans tous les autres nouveaux écrans intégrés
- Vérifiez si les autres modules ne mettent pas à jour / suppriment / insèrent un enregistrement dans la base de données non requis
- Qu'il y ait un champ de statut d'employé, qui dit 'Nouveau' lors de l'ajout, 'Mis à jour' lors de la modification et 'Supprimé' lors de la suppression. Bien que deux ou trois écrans puissent utiliser le même champ d'état, il est important de s'assurer que le champ n'est pas mal mis à jour.
- Vérifiez si l'en-tête, le pied de page, la taille et l'apparence de l'écran répondent aux exigences après l'intégration
- Vérifiez qu'en cliquant sur les boutons Soumettre, le contrôle est transféré à l'écran suivant
- Vérifiez qu'en cliquant sur le bouton Annuler, l'action effectuée est annulée
De plus, les cas de test d'intégration généraux pour une application J2EE peuvent être:
- Vérifiez le flux de données, objet, XML ou session de bout en bout. Vérifiez l'exactitude.
- Vérifier si la session est correctement gérée par chacun des modules
- Si des applications externes (services Web) sont impliquées, vérifiez si votre application est capable de passer des appels et de récupérer des données depuis l'application
# 3) TEST DU SYSTÈME
Dans les tests système, l'application entière est testée pour la fonctionnalité et l'exhaustivité par rapport aux exigences. Il serait probablement plus facile de demander quand les tests unitaires de chaque composant sont effectués et les composants du code sont également combinés et testés ensemble pendant les tests d'intégration, qu'est-ce qui pourrait être différent dans les tests système? Il n'est pas inexact de dire que l'idée dans System Testing est de casser l'application :)
Scénario 1: Vous développez une nouvelle application employé avec un framework;par exemple, Struts. Il existe également plusieurs autres applications s'exécutant sur différents serveurs de votre organisation. Cependant, tous appellent le même service Web existant pour récupérer l'adresse et le numéro de téléphone d'une personne en particulier.
Lors des tests d'intégration, vous auriez testé si votre application est capable de passer un appel au service Web et si vous êtes en mesure d'obtenir la réponse. Mais que se passe-t-il s'il y a un problème dans le service Web lui-même? Ou le service Web ne répond pas à certaines entrées rares? Le service Web, dans notre cas, ne peut accepter qu'un numéro d'employé de 6 caractères maximum. Ou, le service Web lève des exceptions pour certains formats d'adresse lors du retour. Ceci est externe, mais cela fait également partie des tests du système.
Scénario n ° 2 : Votre demande d'employé est terminée. Vous ajoutez un employé et cela génère un numéro d'employé # 1001. Vous modifiez, supprimez, mettez à jour, ajoutez, modifiez, supprimez, ajoutez, ajoutez, ajoutez, modifiez, supprimez et enfin en ajoutez un autre. Et si le nouveau numéro d'employé est à nouveau le # 1001?
Scénario n ° 3 : Supposons que deux utilisateurs utilisent l'application en même temps. Les deux commencent à travailler sur le même employé, on supprime. Que faire si l'autre utilisateur est en mesure de procéder à la modification des mêmes employés telle qu'elle est stockée dans la session?
Voici quelques aspects importants du test du système:
- Assurez-vous que le flux de données et le contrôle sont corrects de bout en bout
- Assurer la sécurité des données de transaction
- Assurez-vous que l'application respecte toutes les fonctionnalités métier
- Vérifiez si l'application fonctionne bien en tant que produit final - vérifiez les liens rompus, la gestion de session, les cookies, la journalisation, la gestion des erreurs, la gestion des exceptions, la validation et le flux des transactions.
# 4) TESTS DE PERFORMANCE
Ce type de test est effectué lorsqu'un grand nombre d'utilisateurs utilise l'application ou une grande quantité de données dans la base de données, ou les deux. Voici quelques-uns des cas:
- Si plusieurs utilisateurs se connectent en même temps, vérifiez que les applications ne se bloquent pas / ne plantent pas
- Si une grande quantité de données est disponible dans la base de données - vérifiez que les grilles de l'écran de recherche ne prennent pas beaucoup de temps pour exécuter les requêtes avant l'expiration de la session
- Dans un environnement multi-thread, vérifiez que l'application est capable de bien gérer tous les threads
- Dans les applications où un grand nombre d'objets est créé, vérifiez si une mémoire suffisante est allouée, le garbage collection est géré et qu'il n'y a pas d'exceptions de mémoire insuffisante
Conclusion
Dans cet article, nous avons couvert une vue d'ensemble d'une application J2EE. Nous avons également vu comment effectuer manuellement des tests unitaires, d'intégration, fonctionnels et système pour chacun des composants de l'application avec un exemple.
Dans le article suivant , nous verrons comment les tests d'automatisation peuvent être bénéfiques pour les grandes applications J2EE.
À propos de l'auteur: Ceci est un article invité de Padmavaty S.Avec plus de 7 ans d'expérience en tests logiciels, elle possède une vaste expérience dans les tests de framework Java, J2EE, MVC et Struts.
Faites-nous savoir si vous travaillez sur le test d'applications JAVA. Partagez votre expérience et vos questions dans les commentaires ci-dessous.
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Exemple de questions sur la certification de test ISTQB avec réponses
- Comment effectuer des tests d'automatisation des applications JAVA / J2EE (partie 2)
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Les 20 meilleurs conseils pratiques de test de logiciels à lire avant de tester une application
- Test des applications de soins de santé - Conseils et scénarios de test importants (partie 2)
- Comment trouver un bug dans l'application? Trucs et astuces
- Test de base de données avec JMeter
- Machine virtuelle Java: comment JVM aide à exécuter une application Java