Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 21 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
Problematique abordée: L’objectif de ce travail était de se familiariser avec les outils d'intégration continue dans un contexte devops en donnant les différentes étapes du processus d’intégration continue, les différents outils utilisés, et en analysant également les résultats obtenus.L’intégration continue une pratique clé du processus DevOps qui consiste à intégrer fréquemment et automatiquement des modifications afin de détecter rapidement les erreurs et de réduire le temps nécessaire pour mettre à jour le code. Son processus implique l'utilisation d'outils d'automatisation de tests qui permettent de compiler et de tester automatiquement le code à chaque modification, puis de signaler les erreurs aux développeurs. Les tests peuvent inclure des tests unitaires, des tests de performance, des tests de sécurité et d'autres types de tests qui vérifient que le code fonctionne correctement et est conforme aux exigences.
ANNEE 2022 - 2023
Intégration continue, Analyse statique et Automatisation des tests

Presentation d'outils
Junit: JUnit est un framework open-source pour les tests unitaires en Java. Il fournit des annotations et des méthodes pour faciliter l'écriture de tests unitaires en Java. Les tests unitaires sont des tests qui vérifient le comportement d'une unité de code (par exemple, une méthode ou une classe) de manière isolée, afin de s'assurer qu'elle fonctionne comme prévu.JUnit définit deux types de fichiers de tests. Les TestCase (cas de test) sont des classes contenant un certain nombre de méthodes de tests. Un TestCase sert généralement à tester le bon fonctionnement d'une classe.Une TestSuite permet d'exécuter un certain nombre de TestCase déjà définis.
Maven: Maven est un outil de gestion et d'automatisation de production des projets logiciels Java en général et Java EE en particulier. Il est utilisé pour automatiser l'intégration continue lors d'un développement de logiciel, il fournit un moyen de décrire les dépendances de votre projet, ainsi que les étapes de construction et de déploiement
Pour ce tutoriel, nous utiliserons le front d'un projet réalisé dans le cadre du cours d'Architecture Logiciel fait en Angular.

Utlisation des outils:
Nous avons monté notre projet avec le gestionnaire de dépendances Maven.
Nous avons crée des classes de test dans notre projet en important la bibliothèque JUnit 4.
Dans nos classes de test, nous avons ecrit des méthodes de test pour chaque fonctionnalité que nous voulons tester.
Au niveau de notre fichier pom.xml, nous avons pu generer la dependance Junit4 et les plugings neccesaires pour faire des rapports de tests detaillés
## Problematique abordée:
L’objectif de ce travail était de se familiariser avec les outils d'intégration continue dans un contexte devops en donnant les différentes étapes du processus d’intégration continue, les différents outils utilisés, et en analysant également les résultats obtenus.L’intégration continue une pratique clé du processus DevOps qui consiste à intégrer fréquemment et automatiquement des modifications afin de détecter rapidement les erreurs et de réduire le temps nécessaire pour mettre à jour le code. Son processus implique l'utilisation d'outils d'automatisation de tests qui permettent de compiler et de tester automatiquement le code à chaque modification, puis de signaler les erreurs aux développeurs. Les tests peuvent inclure des tests unitaires, des tests de performance, des tests de sécurité et d'autres types de tests qui vérifient que le code fonctionne correctement et est conforme aux exigences.

## Objectif:

Ces pratiques nous permettront d'améliorer la qualité de notre code, de détecter les erreurs plus rapidement et de déployer des versions de votre application plus rapidement et en toute confiance. Un des principaux but du DevOps


## Presentation d'outils
- Pour l'intégration continue
Il existe plusieurs plateformes d'intégration continue, telles que Travis CI, CircleCI, Jenkins, GitLab CI/CD, qui offrent des plans gratuits pour les projets open source.
- Pour l'analyse statique du code
On configure l'analyse statique du code en ajoutant des outils d'analyse statique tels que SonarQube, CodeClimate, Codacy, etc. Ces outils peuvent détecter des problèmes de qualité de code tels que des vulnérabilités, des erreurs de syntaxe et des erreurs de style.
- Pour l'automatisation des tests
On ajoute des tests automatisés pour les différentes parties de l'application en utilisant des frameworks de test tels que JUnit, PyTest, Mocha, etc. Ces tests automatisés doivent être ajoutés dans le fichier de configuration de l'étape de test sur la plateforme d'intégration continue.

## Utilisation des outils:
Nous nous sommes tournés vers l'utilisation de la version gratuite d'azure devops qui est une plateforme de microsoft qui nous regroupe tout ce dont on a besoin pour lancer l'intégration continue (à travers un fichier azure-pipelines.yml) avec une interface assez intuitive et interactive facilitant la , concernant l'analyse du code, nous la faisons via sonarqube

Les limites des outils qu'on a utlisés:
Jenkins :
Expand Down