[JAVA] [Critique de livre] Test unitaire sur le site de programmation qui peut être réalisé sans aucune expérience

J'ai toujours voulu lire un livre lié aux tests, mais il m'est arrivé de trouver ce livre dans une librairie, alors je l'ai acheté. Bien que j'aie de nombreuses occasions de faire des tests unitaires sur le terrain, je n'ai pas beaucoup appris, donc j'ai pensé que c'était une bonne occasion de le lire.

http://www.shoeisha.co.jp/book/detail/9784798118918

[Composition et contenu]

Ce livre se compose de trois parties. Il y a des chapitres détaillés dans chaque partie. J'écrirai une brève explication de chaque partie (chapitre) et les impressions et notes post-lecture que j'y ai ressenties.

** <Partie 1 Le test unitaire ne peut être sous-estimé> **

――Chapitre 1: Pourquoi recommander un test unitaire pour un site très occupé --Chapitre 2: Familiarisez-vous avec les tests unitaires des applications Web

・ La première partie donne un aperçu des tests unitaires sous le thème «Les tests unitaires ne peuvent pas être sous-estimés».   Dans le chapitre 1, vérifiez les types et les objectifs des tests effectués lors du développement du système. Après avoir confirmé qu'il existe de nombreux tests tels que le test d'intégration, le test système / test de charge, le test de sécurité, etc. autres que le test unitaire, il explique que la qualité du premier test unitaire est importante.

De plus, comme méthode d'exécution d'un test unitaire, il est recommandé de "créer une classe de test et de l'exécuter / confirmer automatiquement". (Ce livre continuera sous la forme d'explication de la méthode de test unitaire pour créer une classe de test dans les sections suivantes (chapitre).)

↑↑ Ce document explique comment utiliser JUnit pour effectuer des tests unitaires de programmes Java.

Le chapitre 2 présente les points à noter lors du test unitaire d'une application Web et les principales méthodes de test unitaire. L'auteur recommande de subdiviser le test car "tester après avoir tout fait = cela prend du temps", mais pour les applications Web créées avec MVC, la plage à tester est réduite comme suit. Je vous recommande de le tester. (① → ②)

① Premier modèle de test (2) Tester l'application Web (View / Model / Controller) sur le conteneur Web

En ce qui concerne la méthode de test unitaire, le test de la boîte blanche et le test de la boîte noire sont brièvement présentés, mais comme il ne décrit pas comment faire des cas de test détaillés, je pense que vous devriez vous référer à des livres autres que ce livre. La partie 1 se concentre sur l'examen des perspectives de test dans le développement de système plutôt que sur des méthodes de test unitaire spécifiques. Personnellement, je pensais que ** je ferais tout le MVC puis effectuerais un test unitaire **, donc la perspective de pouvoir tester en petites parties ** était une nouvelle découverte.

** <Partie 2 Test unitaire de haute valeur> **

--Chapitre 3: Classe de test créée avec Eclipse et JUnit

・ Le thème de la partie 2 est "Test unitaire de haute valeur". Le test unitaire du programme Java est en fait expliqué à l'aide d'un exemple. (Environnement Eclipse + JUnit + DbUnit)   Le chapitre 3 traite de la création et de l'exécution d'une classe de test à l'aide d'un exemple de code. Présente comment utiliser les annotations JUnit4 et les méthodes pour juger des résultats de test (assertXXX / fail, etc.). J'ai pu déplacer la source en utilisant l'échantillon, donc j'ai appris pratiquement tout sur la classe de test. Il contient toutes les méthodes d'annotation requises pour créer une classe de test, donc je pense que c'est un chapitre utile en tant que manuel pour la construction de JUnit.

Les chapitres 4 et 5 concernent les tests d'accès à la base de données. J'ai découvert DBUnit pour la première fois dans ce livre. J'ai été impressionné par le fait qu'il était très pratique d'avoir un cadre de test. Il existe également de nombreuses informations pratiques telles que l'utilisation de DBUnit et les annotations. Je ne l'ai pas encore utilisé sur le terrain, donc je veux vraiment profiter de l'occasion pour l'utiliser. Puisqu'il est utilisé sous l'environnement JUnit, il semble familier. DBUnit est très pratique car vous pouvez sauvegarder l'état avant le test (@Before) et renvoyer les données de sauvegarde au DB (@After) après le test. (Les tests peuvent se dérouler efficacement!) Des échantillons sont également inclus dans ce chapitre, vous pouvez donc vérifier la méthode tout en bougeant réellement vos mains.

Chapitre 6. À propos des objets Mock. Je n'ai plus jamais utilisé cela. (Je suis parfaitement conscient du manque d'étude ...) Il est précisé que pour créer un objet Mock, il est nécessaire de comprendre les spécifications afin d'imiter le comportement. (D'un autre côté, si vous créez une classe Mock, il est écrit qu'il est plus efficace de créer une classe réelle puis de la tester.) Je pense que cela vaut la peine d'être lu comme une méthode que vous pourrez utiliser dans le futur. * Mock = pseudo.

Le chapitre 7 présente comment obtenir une couverture d'écran. Vous pouvez apprendre comment obtenir une couverture à l'aide d'un outil appelé EMMA. J'avais utilisé EMMA sur le terrain, donc c'était juste pour une reconfirmation.

Dans la deuxième partie, tous les points à supprimer lors des tests dans le champ Java ont été introduits. Quant à la méthode de test, je n'ai pas la chance d'étudier, donc je serais très reconnaissant si j'avais un livre comme celui-ci.

** <Partie 3 Pour des tests continus> **

--Chapitre 8: Soyez conscient des tests avant la mise en œuvre ――Chapitre 9: Points de développement avec test en tête ――Chapitre 10: Points pour économiser davantage de travail lors des tests --Chapitre 11: Construire un environnement qui automatise la construction et les tests

・ Le thème de la partie 3 est d'être conscient du test dès la phase de fabrication afin de réaliser le test plus efficacement. Il présente également comment créer un environnement pour des tests continus en préparant un serveur de build.

Au début du chapitre 8, nous avons introduit l'expression «la qualité est intégrée dans le processus». Il souligne que c'est une bonne condition de test de considérer le test dès la prise en compte de l'architecture logicielle et d'avoir une compréhension commune au sein du projet. Le chapitre 9 indique également qu'il est important de concevoir pour réduire les tests inutiles tout en poursuivant le développement. Rendre les types d'arguments significatifs, comment tester les méthodes qui gèrent les dates système, etc. Il présente également comment utiliser des outils statiques tels que CheckStyle et FindBugs comme outils de recherche de bogues. Le chapitre 10 et les chapitres suivants traitent de la création d'un environnement pour améliorer l'efficacité des tests et l'automatisation.

[Impression] ・ Je travaille habituellement en tant qu'ingénieur Java, mais il y avait de nombreux outils que je ne connaissais pas avant de lire ce livre, donc c'était très utile. Jusqu'à présent, je n'ai fait que des tests vaguement, mais j'aimerais pratiquer des tests efficaces pour améliorer la qualité. Ce livre est facile à lire même pour les débutants, donc si vous n'êtes pas doué pour les tests, veuillez le lire.

Recommended Posts

[Critique de livre] Test unitaire sur le site de programmation qui peut être réalisé sans aucune expérience
[Critique de livre] Test unitaire sur le site de programmation qui peut être réalisé sans aucune expérience (suite 1-JUnit-)
Résumé des JDK pouvant être installés avec Homebrew (à partir de novembre 2019)
Organiser les méthodes qui peuvent être utilisées avec StringUtils
"Héritage" que même les débutants en orientation objet peuvent comprendre
Polymorphisme que même les débutants en orientation objet peuvent comprendre