====== Environnement de développement ====== ===== Github et Github Classroom ===== - Vous avez déjà dû accepter l'invitation dans la classroom github: https://classroom.github.com/a/9T9biNFl - Si besoin, voici **{{:2020_2021:s3:methodo:td:invitationgithub.pdf|la procédure à suivre; il suffit de se laisser guider}}.** Vous avez donc à présent un répertoire en ligne sous [[https://github.com/IUT-DEPT-INFO-UCA/|github]] qui contient le code qui sert de base à ce premier TD sur l'environnement de développement. ===== Git ===== Choisissez votre outil préféré pour travailler avec git, par exemple : * //github desktop//, en sélectionnant directement dans votre dépôt github : {{:2020_2021:s3:methodo:td:i_2020-08-13_a_15.14.11.png?200|}} * //[[https://www.gitkraken.com/|gitkracken]]// * //[[https://www.sourcetreeapp.com/|sourcetree]]// * ou en ligne de commandes TODO : leur expliquer comment avoir le dépôt sur leur machine propre. A cette étape, le code de votre dépôt se trouve recopié sur votre machine. Nous allons travailler avec ce code. ===== Eclipse et maven ===== Suivre le tutoriel ci-joint et répondez aux questions suivantes : - Quelles sont les classes de codes à tester ? - Quelles sont les classes de tests? - Quels sont les tests? - Comment est structuré un projet Maven? Quels sont les fichiers importants ? A cette étape, vous avez un projet Eclipse sur votre machine qui est à jour avec le code distant et tous les tests passent. Nous allons nous intéresser à présent à la qualité des codes. ===== La couverture de code ===== Suivre le tutoriel suivant puis répondez aux questions suivantes : - Quelles sont les classes non testées? - Quelles sont les classes dont la totalité du code a été testée? - Comment pourrions-nous améliorer la couverture de tests? (A ne pas faire). - Est-ce que la couverture de code est suffisante pour garantir qu'un code est bien testé? Que pouvez-vous aussi apprendre sur un code par la couverture de code? ((Identifier les codes morts, les codes par lesquels un programme ne passe jamais, ...)) Quand on vous demandera la couverture de tests dans les TDs suivant, on attend des copies d'écran du même type que {{:2019_2020:s3:methodo:td:env1:capture_d_e_cran_2019-08-25_a_15.28.57.png?100|}} A cette étape, vous savez visualiser la couverture de codes et identifier les codes non testés. Nous allons nous intéresser plus précisément à la qualité des codes. ===== La qualité du code ===== Pour évaluer la qualité de vos codes sur votre machine et vous améliorer tout seul, suivez le tutoriel suivant. Plus tard dans vos projets, vous pourrez choisir d'utiliser des outils tels que https://sonarcloud.io/ - Comment vous assurez que vos codes ne contiennent pas de grosses erreurs? - D'après vous pourquoi sonarlint parle de "code smell"? - Pourquoi SonarLint peut-il vous aider à vous améliorer? - SonarLint peut-il vous aider à trouver des bugs? - Est-ce qu'un bad smell est forcément une erreur? A cette étape, vous avez maintenant un outil sur votre machine qui vous permet d'améliorer la qualité de vos codes et de vous améliorer. L'étape d'après.... ===== Rechercher les bugs dans du code ===== - [[2019_2020:s3:methodo:td:debug|Passage au Déverminage des codes (Debugging)]] ===== Les tests Junit ===== - Est-ce qu'un code testé est un code sans erreur? - Ajouter des tests pour couvrir la globalité du code de Hello.java ===== Visualiser son code sous forme d'un diagramme de classes ===== **ObjectAid** sous Install new software > add > http://www.objectaid.com/update/current ... Puis après avoir relancé Eclipse, sous New > Other > Object Aid..> Classes .... ensuite vous posé simplement les classes à visualiser sur votre diagramme. ===== OLD ===== Pour ne pas rater les points importants : {{fa>arrow-circle-right?24}} - Ouvrir eclipse - Créer un projet java et faîtes bien attention à sa localisation sur votre machine {{ :2018_2019:s3:methodo:td:createiavaproject.png?direct&300 |}} - Attention à localiser le projet "localement" i.e. pas dans ''Document'' - Créer un nouveau folder de "sources" de nom ''tests'' pour y placer les tests{{ :2018_2019:s3:methodo:td:createsourcefolder.png?direct&300 |}} - {{fa>arrow-circle-right?24}} POURQUOI ? [[2019_2020:s3:methodo:td:env1:tests|Révision ou Apprentissage sur les tests.]] Attention cette page contient des informations qui sont utilisées dans le test. - Récupérer le dépôt distant par un simple download (https://git-iutinfo.unice.fr/blay/MiProject.git) {{ :2018_2019:s3:methodo:td:depotdownload.png?direct&300 |}} - Recopier le contenu des répertoires ''src'' et ''tests'' dans les répertoires correspondant de votre projet puis un **refresh** pour voir les codes sous eclipse. Attention, préservez la structure elle correspond aux packages ! {{ :2018_2019:s3:methodo:td:refresh.png?direct&300 |}} - Il vous manque la référence ''Junit''. Clique droit sur la « boule jaune » et valider. {{ :2018_2019:s3:methodo:td:junit.png?direct&300 |}} {{ :2018_2019:s3:methodo:td:junit4.png?direct&300 |}} - Exécuter les tests unitaires {{ :2018_2019:s3:methodo:td:excuterjunit.png?direct&300 |}} - Quelle est lʼerreur ? (on en vous demande pas de la corriger, mais de la comprendre puis de la situer dans vos codes.){{ :2018_2019:s3:methodo:td:resultattest.png?direct&300 |}} - {{fa>arrow-circle-right?24}} **Visualiser la couverture de tests** {{ :2018_2019:s3:methodo:td:coverage.png?direct&300 |}} (voir sous [[2019_2020:s3:methodo:td:env1:tests|Tests en Java - Rappel ou Apprentissage]] les explications sur la couverture de tests.) - Quelle classe nʼest pas du tout couverte par des tests? - Quelle méthode est partiellement couverte? - Quand on vous demandera la couverture de tests dans les TDs suivant, on attend des copies d'écran du même type que {{:2019_2020:s3:methodo:td:env1:capture_d_e_cran_2019-08-25_a_15.28.57.png?100|}} - Installer un nouvel outil pour évaluer la qualité des codes : chercher sonar dans « eclipse Markeplace » - https://www.sonarlint.org/ {{ :2018_2019:s3:methodo:td:sonarlint.png?direct&300 |}} - Si vous avez une erreur qui interdit de relancer eclipse et uniquement dans ce cas : Effacer tout sous ''.eclipse'' qui vous est propre dont des fichiers générés avec sonarlint, puis relancez. - Analyser ces codes. {{ :2018_2019:s3:methodo:td:sonarlintanalyse.png?direct&300 |}} - Quels problèmes sont identifiés ? - [[2019_2020:s3:methodo:td:debug|Passage au Déverminage des codes (Debugging)]] /* - Passons au gestionnaire de version - Ajouter au code un bug que sonar detecte et pas les tests. - Vous connecter à sonar - generer un token - 3422ffb9768a3d56160226512fb8435cfc09982c - signaler que vous avez fini à lʼenseignant. */ - Vérifier que tous les points suivants sont clairs pour vous. - Structurer mon projet en séparant bien code et tests - Tester un programme java avec Junit et comprendre les erreurs - Evaluer la couverture de mes codes - Evaluer la qualité de mes codes avec Sonarlint. Maintenant vous pouvez vous tester [[https://lms.univ-cotedazur.fr/mod/quiz/view.php?id=29064]] /* [[2019_2020:s3:methodo:td:env|{{fa>angle-double-right?50|Gestion de version}}]]** Je peux aborder la** [[2018_2019:s3:methodo:td:env|gestion de version]] */ **ObjectAid** sous Install new software > add > http://www.objectaid.com/update/current ... Puis après avoir relancé Eclipse, sous New > Other > Object Aid..> Classes .... ensuite vous posé simplement les classes à visualiser sur votre diagramme.