Académique Documents
Professionnel Documents
Culture Documents
Par
Emna BAYOUDH
Hazem GDARA
Réalisé au sein de Tritux
Par
Emna BAYOUDH
Hazem GDARA
Réalisé au sein de TriTux
Le : Le :
Signature : Signature :
Dédicaces
Nous dédions cet événement marquant de notre vie à nos chères familles, nous ont doté
d’une éducation digne, leur amour a fait de nous ce que nous somme aujourd’hui.
A nos professeurs qui nous encouragent souvent de mieux faire et qui nous bénéficient
avec leurs connaissances.
Et aussi, à nos chers amis et leur soutien infini.
i
Remerciements
ii
Table des matières
Dédicaces i
Remerciements ii
Introduction Générale 1
2 Etat de l’art 8
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Automatisation des tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Test automatisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Intérêt des tests automatisés . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Critères de l’automatisation . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4 Automatisation des tests dans les entreprises . . . . . . . . . . . . . 10
2.2.5 Exemple d’utilisation de l’automatisation . . . . . . . . . . . . . . . 11
2.2.6 Certification ISTQB . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Choix techniques pour l’automatisation des tests . . . . . . . . . . . . . . . 13
2.3.1 Selenium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Choix du langage de programmation . . . . . . . . . . . . . . . . . 16
2.3.3 Framework de génération de test . . . . . . . . . . . . . . . . . . . 18
2.4 Architecture de l’application . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Choix techniques pour l’application . . . . . . . . . . . . . . . . . . . . . . 20
2.5.1 Partie back-end : Spring Boot . . . . . . . . . . . . . . . . . . . . . 20
2.5.2 Partie front-end : Angular8 . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
iii
Table des matières Table des matières
Conclusion Générale 72
Bibliographie 73
iv
Table des figures
2.1 Pourcentage d’utilisation des projets d’automatisation des tests par les en-
treprises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 ISTQB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Selenium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Le projet et les outils Selenium . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Langage JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Cucumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.7 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8 Architecture MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.9 Spring Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.10 Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
v
Table des figures Table des figures
vi
Liste des tableaux
vii
Introduction Générale
1
Introduction Générale
2
Chapitre 1
1.1 Introduction
Pour notre premier chapitre, nous commençons notre travail en le mettant dans son
contexte général. Nous présentons l’organisme d’accueil au sein duquel s’est déroulé notre
stage de projet de fin d’étude. Ensuite, nous donnons un aperçu sur la problématique
dont découle l’idée et la demande de ce dernier en étudiant l’existant. Ceci nous permet
d’avoir des objectifs à atteindre pour réaliser le travail demandé. Et enfin, nous proposons
la méthodologie adoptée dans notre projet.
3
Chapitre 1. Cadre du projet et étude de l’existant 1.3. Etude de l’existant
4
Chapitre 1. Cadre du projet et étude de l’existant 1.3. Etude de l’existant
5
Chapitre 1. Cadre du projet et étude de l’existant 1.3. Etude de l’existant
6
Chapitre 1. Cadre du projet et étude de l’existant 1.4. Méthodologie adoptée
1.5 Conclusion
Dans ce chapitre, nous avons présenté notre organisme d’accueil, puis nous avons éla-
boré une étude de l’existant pour dégager les faiblesses de la solution actuelle et exposer
les objectifs de notre projet. Enfin, nous avons présenté notre méthodologie de cycle de
vie de notre projet à suivre. Notre chapitre suivant déterminera la notion de l’automati-
sation des tests, ses intérêts, ses critères et son importance. Il présentera aussi nos choix
techniques des différents outils de réalisation du projet et l’architecture adoptée.
7
Chapitre 2
Etat de l’art
2.1 Introduction
Pour éclaircir le contexte de notre projet et le valoriser encore, nous allons montrer
dans ce chapitre l’indisponibilité de l’automatisation des tests en la définissant, présentant
ses intérêts, sa priorité pour les entreprise, des chiffres dans le marché et en s’argument
par la certification ISTQB. Ensuite, nous allons présenter nos choix techniques pour l’au-
tomatisation des tests et la réalisation de notre plateforme web et nous allons exposer
l’architecture adoptée.
8
Chapitre 2. Etat de l’art 2.2. Automatisation des tests
un processus dans lequel des outils logiciels exécutent des tests préprogrammés sur une
application logicielle avant sa mise en production. Un logiciel spécial est utilisé pour
contrôler l’exécution du test, les résultats réels, la comparaison des résultats estimés,
la configuration des conditions préalables, ainsi que d’autres fonctions de contrôle et de
rapport de test [f].
9
Chapitre 2. Etat de l’art 2.2. Automatisation des tests
Nous pouvons identifier quatre critères clés où l’automatisation des tests est pertinente
afin d’obtenir le meilleur retour sur investissement (ROI) :
10
Chapitre 2. Etat de l’art 2.2. Automatisation des tests
La gestion des tests consiste à construire un référentiel centralisé où les tests sont accom-
pagnés par une grande documentation. Dans ces dernières années, la gestion de projet
était en tête des préoccupations comme le présente, et l’automatisation des tests venait
juste derrière avec 38 pourcent de réponses à égalité avec la gestion des exigences [i].
Figure 2.1 – Pourcentage d’utilisation des projets d’automatisation des tests par les
entreprises
11
Chapitre 2. Etat de l’art 2.2. Automatisation des tests
Après avoir bien introduit l’automatisation des tests, nous devons savoir par quels
outils techniques nous pouvons réaliser notre travail.
En cas de forte volumétrie de tests à automatiser, nous recommandons d’utiliser un fra-
mework de test automatique qui remédiera au principal facteur d’échec des projets d’au-
tomatisation, à savoir la maintenabilité des scripts. Un framework de test est un ensemble
d’hypothèses, de concepts et d’outils qui supporteront l’automatisation des tests. Il en
existe plusieurs types. Nous devons choisir le framework le plus adapté au contexte de
l’entreprise et qui est assisté via des bonnes pratiques d’utilisation.
La prochaine section présentra nos choix techniques pour la tâche d’automatisation des
tests web.
12
Chapitre 2. Etat de l’art 2.3. Choix techniques pour l’automatisation des tests
13
Chapitre 2. Etat de l’art 2.3. Choix techniques pour l’automatisation des tests
2.3.1 Selenium
Selenium, dont le logo est présenté dans la figure 2.3, est un projet englobant un en-
semble d’outils et de librairies rendant possible et facile l’automatisation de navigateur
web.
Selenium est à la fois un enregistreur (player) de tests sur les différents navigateurs
(Chrome, Firefox, etc), un serveur de test, un driver de navigateur, un pilote de ser-
veur de test, etc.
Nous pouvons présenter le projet et les outils Selenium, comme l’indique aussi la figure
2.4, par :
— L’enregistreur de test : Il permet d’enregistrer les actions faites dans le projet
et de créer des scénarios de tests sans tarder, mais demande généralement d’être
complété pour avoir une couverture satisfaisante et globale.
— Les players de test permettent d’exécter les tests. Il existe deux grands types de
player :
— Les players locaux : ils tournent sur la machine de l’utilisateur et bloquent (au
moins partiellement) l’utilisateur (Ex : Selenium IDE, TestComplete, Katalon,
Ranorex).
— Les serveurs : ils tournent sur une machine liée ou non au projet. Ils sont
plus performants, ne bloquent pas l’utilisateur et peuvent s’intégrer dans un
workflow de développement (Ex : Selenium webdriver, IBM rational functional
tester, etc). Les actions sont les différentes commandes qui seront jouées dans
14
Chapitre 2. Etat de l’art 2.3. Choix techniques pour l’automatisation des tests
15
Chapitre 2. Etat de l’art 2.3. Choix techniques pour l’automatisation des tests
est rendu dans les mêmes polices, les images sont affichées au même endroit et les liens
nous mènent à la même destination. Ce qui se passe en dessous est aussi différent. Sele-
nium résume ces différences, cache leurs détails et leurs subtilités à la personne qui écrit le
code. Cela nous permet d’écrire plusieurs lignes de code pour effectuer un flux de travail
compliqué, mais ces mêmes lignes s’exécutent sur Firefox, Internet Explorer, Chrome et
tous les autres navigateurs pris en charge [m].
Outils et supports
L’approche de conception minimaliste de Selenium lui confère polyvalence à inclure
en tant que composant dans des applications plus importantes. L’infrastructure environ-
nante fournie sous l’égide du Selenium nous donne les outils pour assembler notre grille de
navigateurs afin que les tests puissent être exécutés sur différents navigateurs et plusieurs
systèmes d’exploitation sur une gamme de machines. Grâce à une interface de program-
mation simple fournie pour les langues les plus courantes, ces tests se dérouleront sans
relâche en parallèle et nous rendent des rapports en cas d’erreur. C’est un objectif pour
nous aider, en nous fournissant des outils et de la documentation pour non seulement
contrôler les navigateurs, mais pour faciliter la mise à l’échelle et le déploiement de telles
grilles [m].
Utilisation de Selenium
Beaucoup des entreprises ont adopté Selenium pour leurs tests sur les navigateurs,
remplaçant souvent des efforts de plusieurs années impliquant d’autres outils propriétaires.
Vu qu’elle gagne en popularité, ses exigences et ses défis se multiplient. Alors que le Web
devient plus compliqué et de nouvelles technologies sont ajoutées, c’est la mission de
Selenium de les suivre autant que possible. Être un projet open source, est l’un des points
forts de cet outil [m].
16
Chapitre 2. Etat de l’art 2.3. Choix techniques pour l’automatisation des tests
Encore un point fort de Selenium, c’est que nous pouvons également écrire des tests
en utilisant la célèbre méthode BDD (Behavior-Driven Development).
En bref, BDD contribue à améliorer la lisibilité de nos tests en structurant un flux de test
en utilisant les instructions Given, When et Then ou And (GWT) qui n’est autre que le
langage Gherkin. En conséquence, non seulement les ingénieurs d’automatisation des tests
ayant des compétences en programmation, mais également les experts du domaine et les
testeurs d’entreprise peuvent comprendre les tests et contribuer de manière significative
au processus de création de test, de débogage des résultats de test et de leur maintenance.
Citons un exemple d’un test écrit en BDD :
L’outil le plus répandu et le framework intégré dans le Webdriver Selenium que nous
pouvons utiliser si nous choisissons le BDD est Cucumber.
Cucumber
Cucumber, indiqué dans la figure 2.6, est une approche de test qui prend en charge le
développement basé sur le comportement BDD. Il représente la façon d’agir de l’applica-
tion dans un simple texte utilisant le langage Gherkin.
17
Chapitre 2. Etat de l’art 2.4. Architecture de l’application
L’outil Cucumber est basé sur le cadre de développement axé sur le comportement qui
sert à lier entre les personnes suivantes :
— Ingénieur logiciel et analyste d’affaires.
— Testeur manuel et testeur d’automatisation.
— Testeur manuel et développeurs.
Cucumber permet également au client de comprendre le code de l’application car il utilise
le langage Gherkin qui est en texte brut, simple et compréhensible. N’importe qui dans
l’organisation peut comprendre le comportement du logiciel [n].
JUnit a joué un rôle très important dans le cadre de développement et de test pilotés.
Ce cadre de test utilise pour tester les applications écrites en Java et facilite et garantie
la conception de tests répétables. Une enquête de recherche réalisée en 2013 sur 10 000
projets Java hébergés sur GitHub a constaté que JUnit était la bibliothèque externe la plus
communément incluse. Chaque bibliothèque a été utilisée par 30,7 pourcent des projets
[m].
Après avoir bien choisi les outils dont nous allons utiliser pour la réalisation de l’au-
tomatisation des tests, nous devons passer à la mise en place de notre plateforme.
Par conséquent, il faut sélectionner une architecture sur laquelle se base notre travail. La
section prochaine présentera notre choix.
18
Chapitre 2. Etat de l’art 2.4. Architecture de l’application
Cette architecture est la plus communément retrouvée au sein des applications web mais
existe également au niveau des applications lourdes, d’où vient notre choix.
Le modèle
Le modèle définit les données utilisées par l’application. En effet, c’est ici que le lien
se fera entre notre application et notre base de données. Ces données pourront être mises
à jour dans le contrôleur et consultées au niveau de la vue.
La vue
La vue définit la façon dont les informations seront présentées à l’écran (via des compo-
sants par exemple). C’est l’interface utilisateur. Là, nous utiliserons les données récupérées
par le modèle afin de les présenter à l’utilisateur.
Le contrôleur
Dans le contrôleur, nous retrouvons toute la logique métier. Lorsque l’utilisateur inter-
agit avec la vue, la requête est traitée par le contrôleur. Il fonctionne comme un "listener",
il attend que l’utilisateur interagisse avec la vue pour en récupérer la requête. Alors, c’est
lui qui définit la logique d’affichage, et affichera la vue suivante à l’écran.
19
Chapitre 2. Etat de l’art 2.5. Choix techniques pour l’application
Vu que notre démarche nous conduit dans le développement avec Java, et pour utiliser
l’architecture présentée dans notre projet, nous trouvons que les frameworks Spring Boot
et Angular nous offrent le bon environnement pour la réalisation de notre application web.
Spring Boot fournit une bonne plateforme aux développeurs Java pour développer une ap-
plication Spring autonome et de production que nous pouvons simplement exécuter. Nous
pouvons commencer avec des configurations minimales sans avoir besoin d’une configura-
tion Spring complète.
Nous avons choisi Spring Boot en raison des fonctionnalités et des avantages qu’il offre,
comme indiqué ici :
— Il fournit un moyen flexible de configuration des beans Java et XML et les tran-
sactions de base de données.
— Il fournit un traitement par lots puissant et gère les points de terminaison REST.
— Dans Spring Boot, tout est configuré automatiquement ; aucune configuration ma-
nuelle n’est nécessaire.
— Il offre une application de ressort basée sur des annotations.
20
Chapitre 2. Etat de l’art 2.5. Choix techniques pour l’application
Avantages
Spring Boot offre les avantages suivants à ses développeurs :
— Facile à comprendre et à développer des applications de ressort.
— Augmente la productivité.
— Réduit le temps de développement.
Buts
Spring Boot est conçu avec les objectifs suivants :
— Pour éviter une configuration XML complexe dans Spring.
— Pour développer plus facilement des applications Spring prêtes pour la production.
— Pour réduire le temps de développement et exécuter l’application indépendamment.
— Pour offrir un moyen plus simple de démarrage avec l’application [q].
Depuis 2009 jusqu’à aujourd’hui, Google a sorti 3 différentes versions d’Angular : An-
gularJS (2009), Angular 2 (2016) et Angular 4 (2017).
A partir de la version 2, le framework a été complètement reformulé. AngularJS n’est
donc pas compatible avec les versions ultérieures. En contrepartie, il est possible de mi-
grer entre la version 2 et la version 4 [r].
Le code source d’Angular est écrit et développé en TypeScript. Le TypeScript est une
couche supérieur au Javascript développé par Microsoft qui se compile en JavaScript
simple. Il permet de créer des classes, des variables, des signatures de fonction et l’utili-
sation de modules, étant un langage typé. Il est important de souligner que l’utilisation
du TypeScript est optionnel, nous pouvons l’utiliser dans un fichier de ce même type.
21
Chapitre 2. Etat de l’art 2.6. Conclusion
Angular est basé sur une architecture de composants complètement indépendants les uns
des autres. Il analyse la vue HTML correspondante et détecte s’il comporte des compo-
sants imbriqués, une fois le composant principal est chargé. Si c’est le cas, Angular va
trouver toutes les correspondances et exécuter le code lié à celles-ci. Nous pouvons imbri-
quer autant de composants que nous le souhaitons.
Un composant dans ce framework alimente la génération d’une partie de code html et
fournit des fonctionnalités à celle-ci. Alors, un composant est constitué d’une classe dans
laquelle on pourra définir sa logique d’application avec des propriétés, des méthodes, etc
[r].
2.6 Conclusion
Dans ce chapitre, nous avons exposé l’importance de l’automatisation des tests. Puis,
nous avons présenté les choix technologiques pour la réalisation de notre travail.
Dans le prochain chapitre, nous allons aborder la spécification des besoins pour présenter
les besoins fonctionnels et non fonctionnels et décrire les différents cas d’utilisation en
spécifiant le Backlog Produit.
22
Chapitre 3
3.1 Introduction
Ce chapitre décrit l’essentiel du travail effectué durant l’analyse et la spécification des
besoins. Pour l’établir, nous allons identifier les besoins fonctionnels et non fonctionnels.
Ensuite, nous décrivons l’aspect fonctionnel de notre application à travers le diagramme
de cas d’utilisations général. Et enfin, nous détaillons le Backlog Produit de notre travail.
23
Chapitre 3. Spécification des besoins 3.3. Besoins non fonctionnels
24
Chapitre 3. Spécification des besoins 3.5. Backlog Produit
La figure 3.1 représente le diagramme de cas d’utilisation général qui illustre qu’après une
authentification réalisée, un membre de l’équipe qualité peut gérer l’exécution de pro-
cessus de test automatique et les packages de tests en visualisant le projet à examiner.
Un membre de l’équipe software peut sélectionner un projet parmis ceux qu’il lui sont
attribués pour consulter ses tests déjà exécutés et ses rapports générés. L’Administrateur
gère tous les utilisateurs et les projets en les associant.
25
Chapitre 3. Spécification des besoins 3.5. Backlog Produit
26
Chapitre 3. Spécification des besoins 3.6. Conclusion
3.6 Conclusion
Dans ce chapitre, nous avons présenté les besoins fonctionnels et non fonctionnels.
Puis nous avons décrit le diagramme de cas d’utilisation globale et le Backlog Produit de
notre projet.
Le chapitre suivant va entamer notre premier Sprint celui de premier profil : Administra-
teur.
27
Chapitre 4
4.1 Introduction
Dans ce chapitre, nous commençons la mise en place des profils. En appliquant la
méthodologie Agile, notre premierSprint se présente dans une conception et une réalisation
du profil : Administrateur, en mettant en œuvre ses principales fonctionnalités. Nous
présentons le Sprint Backlog, les diagrammes de cas d’utilisations, de séquences, de classe
et finalement nous illustrons les modules réalisés relatifs à ce Sprint.
28
Chapitre 4. Sprint 1 : Profil Administrateur 4.2. Sprint Backlog
Pour mieux illustrer les différentes manières dont l’administrateur peut interagir avec
le système, les fonctionnalités mentionnées dans le Sprint Backlog 1 sont représentées
dans un diagramme de cas d’utilisation dans la figure 4.1.
Cette figure montre que l’Administrateur doit s’authentifier en saisissant son login et son
mot de passe. Encore, il est capable de gérer les utilisateurs en les créant, modifiant,
consultant, supprimant ou l’affectant à un rôle. Il peut aussi gérer les projets à tester en
appliquant le même principe. Et sa dernière fonctionnalité est d’affecter les projets que
nous voulons tester à des rôles.
29
Chapitre 4. Sprint 1 : Profil Administrateur 4.3. Conception
4.3 Conception
Dans cette section, nous présenterons les différents diagrammes de séquence détaillés
et le diagramme de classe pour ce premier Sprint.
30
Chapitre 4. Sprint 1 : Profil Administrateur 4.3. Conception
Si les données saisies sont incorrectes, un message d’erreur s’affiche pour refaire la saisie.
La figure de référence 4.2 illustre le diagramme de séquence d’authentification.
31
Chapitre 4. Sprint 1 : Profil Administrateur 4.3. Conception
32
Chapitre 4. Sprint 1 : Profil Administrateur 4.3. Conception
33
Chapitre 4. Sprint 1 : Profil Administrateur 4.3. Conception
34
Chapitre 4. Sprint 1 : Profil Administrateur 4.3. Conception
35
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
4.4 Réalisation
Dans cette partie, nous présenterons les différents modules réalisés relatifs au premier
Sprint.
36
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
Une fois l’utilisateur est bien identifié, et plus précisément l’administrateur, il se trouve
dans l’interface Espace admin. A travers cette interface, l’administrateur peut gérer ses
différentes fonctionnalitées comme l’illustre la figure 4.10.
37
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
La figure 4.12 montre les différentes étapes de la création d’un utilisateur : la saisie
du nom, prénom, login et mot de passe.
A partir de cette interface, l’administrateur doit aussi lui affecter un rôle (équipe qualité
ou software). Et il termine cette tâche en cliquant sur "Enregistrer" ou "Annuler".
Par la suite, nous pouvons trouver que l’utilisateur est bien ajouté dans la liste des
utilisateurs comme l’illustre la figure 4.13.
38
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
Par conséquent, nous pouvons également constater que les données de cet utilisateur
ont changé dans la liste comme montré dans la figure 4.15.
39
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
La suppression d’un utilisateur est aussi possible. A travers la liste affichée des uti-
lisateurs enregistrés, l’administrateur peut choisir un ou plusieurs qu’il veut supprimer
et il clique sur l’icône de la corbeille. Une fois la procédure est terminée, un message de
confirmation s’affiche comme le montre la figure 4.16.
40
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
41
Chapitre 4. Sprint 1 : Profil Administrateur 4.4. Réalisation
La figure 4.20 indique aussi qu’à partir de l’interface de gestion des projets, l’adminis-
trateur peut affecter un projet à un rôle. Pour cette raison, il sélectionne le nom de rôle
et le nom de projet et il termine par "Enregistrer" ou "Annuler".
L’administrateur peut aussi supprimer un projet déjà affecté pour un rôle. La figure
4.21 illustre cette tâche. Il sélectionne parmis ceux qu’ils sont déjà attribués à une équipe
bien déterminée et termine par “Enregistrer” ou “Annuler”.
42
Chapitre 4. Sprint 1 : Profil Administrateur 4.5. Conclusion
4.5 Conclusion
Dans ce chapitre, nous avons détaillé la conception et la réalisation du premier Sprint :
administrateur.
Dans le chapitre d’après, nous allons établir le même démarche pour la mise en place du
deuxième acteur : Equipe qualité.
43
Chapitre 5
5.1 Introduction
Dans ce chapitre, notre deuxième Sprint se présente dans une conception et une réa-
lisation du deuxième profil à savoir l’Équipe qualité : Testeurs, en mettant en œuvre ses
principales fonctionnalités. Nous présentons le deuxième Sprint Backlog, les diagrammes
de cas d’utilisations, de séquences, de classe et finalement nous illustrons les modules
réalisés relatifs au deuxième Sprint.
44
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.2. Sprint Backlog
45
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.2. Sprint Backlog
Pour mieux illustrer les différentes manières dont les testeurs peuvent interagir avec le
système, les fonctionnalités mentionnées dans le Sprint Backlog 2 sont illustrées dans un
diagramme de cas d’utilisation de la figure 5.1.
La figure 5.1 montre qu’un testeur : équipe qualité, peut être authentifié en entrant
son login et son mot de passe pour accéder à notre plateforme et commencer son travail.
Dans un premier lieu, il peut visualiser le projet à tester en sélectionnant un qui lui est
déjà attribué et ça lui donne la possibilité de consulter ses différents modules à tester.
Puis, il passe à la gestion de l’exécution de processus de test automatique. Par conséquent,
il commence par ouvrir son IDE (dans notre cas c’est l’IntelliJ IDEA), écrire les scénarios
des tests en script BDD et les développer en Java, puis il doit développer le script d’exé-
cution et le lancer. Une fois terminé, le testeur ferme son IDE. Cela provoque la création
d’un dossier sur son terminal, portant le nom du projet, où nous pouvons trouver tous les
scripts déjà développés et stockés et les rapports déjà générés.
Dès qu’il termine cette étape, il passe à la préparation de l’environnement de test sur la
plateforme d’automatisation. Il importe le ou les fichiers dont les packages de tests et les
scénarios sont déjà développés, à partir du schéma exact. Et il importe encore les rapports
déjà générés.
Ensuite, il termine avec la consultation des résultats sous forme des rapports.
Au cours de préparation d’un projet, ce dernier peut passer par plusieurs étapes et plu-
sieurs éléments peuvent être gérés, d’où la dernière fonctionnalité d’un testeur se présente
dans la gestion des packages de tests en les créant, modifiant, consultant ou bien les sup-
primant à partir de son IDE.
46
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.3. Conception
5.3 Conception
Dans cette section, nous présenterons les différents diagrammes de séquence détaillés
qui décrivent comment et dans quel ordre notre acteur : l’équipe qualité, et les autres objets
fonctionnent ensemble, et le diagramme de classe qui représente les différents éléments
composants de notre système et leurs relations dans ce deuxième Sprint.
47
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.3. Conception
48
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.3. Conception
La figure 5.4 montre comment le testeur clique sur le bouton “BDD” d’après l’interface
de la deuxième étape pour importer les fichiers en script BDD et les ajouter à la classe
"BDD" de la base de données.
Comme ça, il peut partager son progrès du travail (les scénarios traités) avec les autres
testeurs et l’équipe software qui travaillent sur le même projet.
La même procédure est établie pour l’importation des fichiers en script Java et leur
ajout dans la classe "Script" de la base de données, d’où il clique sur "Script", comme
illustrée dans la figure 5.5. Cette procédure est réalisée pour partager les script réalisés
entre les testeurs qui travaillent sur le même projet et pour les réutiliser dans le cas de
nécessité.
49
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.3. Conception
50
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.3. Conception
51
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.3. Conception
Figure 5.7 – Diagramme de séquence “Consulter les rapports des tests exécutés”
52
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
5.4 Réalisation
Dans cette partie, nous présenterons les différents modules réalisés relatifs au deuxième
Sprint.
Un membre de l’équipe qualité : un testeur, passe par différentes étapes afin de réaliser
son travail. Par conséquent, nous avons choisis de répartir ses fonctionnalités principales
en 4 étapes. Ces dernières seront bien explicites dans les prochaines sections.
53
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
54
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
Juste après, le testeur se trouve dans une nouvelle interface dans le navigateur. Dans
notre exemple, le testeur a choisi de tester le projet "Jumia". D’où, la page d’accueil de
cette application est ouverte comme montré dans la figure 5.11.
55
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
Puis, il traite les scénarios en script BDD en un code Java à l’aide de Selenium.
C’est la tâche de l’automatisation des tests, là où il fait appel à plusieurs bibliothèques
comme cucumber.api.java : lorsque Cucumber analyse les étapes, il recherche des méthodes
annotées avec des mots clés Gherkin pour localiser les définitions d’étape correspondantes,
comme dans notre exemple dans la figure 5.13, ces définitions d’étapes sont définies dans
une classe du même package avec CucumberTest. Et la bibliothèque org.openqa.selenium,
qui contient la classe WebDriver nécessaire pour instancier un nouveau navigateur chargé
avec un pilote spécifique.
56
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
Ensuite, il transforme chaque ligne de script en BDD en un script Java bien précis en
utilisant des différentes méthodes.
La figure 5.14 montre des exemples déjà développés.
Cette exécution est possible en cliquant sur l’icône à côté du nom de cette classe et puis
sur “Run ‘Main Runner’”, et représentée dans la figure 5.16.
57
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
Dans la même étape, le testeur clique sur le premier bouton “BDD” pour importer
les fichiers des “Feature” qu’il désire. Cette action provoque l’apparition d’une nouvelle
interface là où il peut sélectionner le schéma du fichier, comme indiqué dans la figure 5.18.
58
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
Ensuite, le testeur clique sur le deuxième bouton “Script” pour importer les fichiers des
“Steps” dont leurs “Feature” sont déjà sélectionnés. Cette action provoque l’apparition
d’une nouvelle interface là où il peut sélectionner comme indiqué dans la figure 5.19.
La figure 5.20 montre que tous les fichiers nécessaires sont importés avec succès. Main-
tenant le testeur doit cliquer sur “Suivant” pour passer à la prochaine étape celle de l’exé-
cution des tests d’une manière automatique sur notre plateforme.
59
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
Alors, le testeur doit importer le schéma du rapport depuis son dossier. Pour mieux
présenter cette tâche, nous présentons la figure 5.22.
60
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.4. Réalisation
61
Chapitre 5. Sprint 2 : Profil Equipe qualité 5.5. Conclusion
Les résultats du test sont présentés sous forme de rapport, ouvert dans le navigateur,
comme illustrés dans la figure 5.25, pour éclaircir les sorties du test pour l’équipe qualité.
Dans cet exemple, nous désirons présenter le succès des deux premières lignes du scénario
“Creer un compte methode1” d’où leur coloration en vert, l’échec de la troisième ligne en
rouge avec la description détaillée du problème et l’ignorance des autres tests en bleu.
5.5 Conclusion
Dans ce chapitre, nous avons détaillé la réalisation du deuxième Sprint qui consiste à
la création du profil équipe qualité.
Dans notre suivant chapitre, nous allons établir le même travail pour le dernier acteur :
Equipe software.
62
Chapitre 6
6.1 Introduction
Dans ce dernier chapitre, notre dernier Sprint se présente dans une conception et une
réalisation du troisième profil à savoir l’Équipe software : Les développeurs de projet, les
chefs de projet et les PO (Product Owner). Nous présentons le troisième Sprint Backlog,
les diagrammes de cas d’utilisations, de séquences, de classe et finalement nous illustrons
les modules réalisés relatifs au dernier Sprint.
63
Chapitre 6. Sprint 3 : Profil Equipe software 6.3. Conception
Pour illustrer les différentes manières dont l’équipe software peut interagir avec notre
système, les fonctionnalités mentionnées dans le Backlog Sprint 3 sont bien définies dans
un diagramme de cas d’utilisation de la figure 6.1.
La figure 6.1 montre qu’un membre de l’équipe software peut être authentifié en entrant
son login et son mot de passe pour accéder à notre application et commencer son travail.
Premièrement, il doit sélectionner un projet parmis ceux qu’il lui sont attribués, pour
pouvoir consulter les résultats de processus de test établis par l’équipe qualité. Puis,
il peut consulter le ou les scénarios des tests écrits en scripts BDD pour savoir quelle
fonctionnalité ou quel élément du projet est testé et il peut aussi consulter les rapports
de tests générés pour connaître les anomalies du projet.
6.3 Conception
Dans cette section, nous présenterons les différents diagrammes de séquence détaillés
qui décrivent comment et dans quel ordre notre acteur : l’équipe software, et les autres ob-
jets fonctionnent ensemble, et le diagramme de classe qui représente les différents éléments
composants de notre système et leurs relations dans ce dernier Sprint.
64
Chapitre 6. Sprint 3 : Profil Equipe software 6.3. Conception
La première étape consiste à sélectionner un projet parmis ceux qu’il lui sont attribués
pour pouvoir consulter ses résultats de processus de test. Cette tâche provoque que le
contrôleur charge aussi tous les packages-test relatifs à ce projet sélectionné. La figure 6.2
illustre la démarche de cette étape.
65
Chapitre 6. Sprint 3 : Profil Equipe software 6.3. Conception
66
Chapitre 6. Sprint 3 : Profil Equipe software 6.3. Conception
Figure 6.4 – Diagramme de séquence “Consulter les rapports des tests exécutés”
67
Chapitre 6. Sprint 3 : Profil Equipe software 6.4. Réalisation
6.4 Réalisation
Dans cette dernière partie, nous présenterons les différents modules réalisés relatifs au
dernier sprint.
Ainsi que l’équipe qualité, un membre de l’équipe software passe par différentes étapes
afin de réaliser son travail. Par conséquent, nous avons choisi de répartir ses troix fonc-
tionnalités principales en 4 étapes. Ces dernières seront bien explicites dans les prochaines
sections.
68
Chapitre 6. Sprint 3 : Profil Equipe software 6.4. Réalisation
69
Chapitre 6. Sprint 3 : Profil Equipe software 6.4. Réalisation
70
Chapitre 6. Sprint 3 : Profil Equipe software 6.5. Conclusion
6.4.4 Rapport
Dans une dernière figure (la figure 6.11), nous présenterons la vue du rapport comme
prémédité.
Cette prise nous suggère les résultats obtenus après l’exécution du processus de test au-
tomatique d’une manière simple, explicite et claire.
6.5 Conclusion
Dans ce dernier chapitre de notre rapport, nous avons présenté les différentes étapes
du dernier Sprint, à savoir l’élaboration du Sprint Backlog, la conception détaillée et la
réalisation de ses différents modules, ensuite la conception détaillée et puis la réalisation.
71
Conclusion Générale
Le début de cette nouvelle décennie sera, surement, marqué par l’automatisation des
tests pour les applications web. Les enjeux liés à la fiabilité et à la qualité des livrables sont
devenus si importants que l’automatisation est incontournable. Mais beaucoup d’équipes
de tests et d’entreprises n’en sont pas encore là et la route qui les sépare de l’automatisa-
tion est encore longue.
Afin d’assurer aux clients la bonne qualité de son livrable, notre projet de fin d’étude,
qui a été réalisé au sein de l’entreprise TriTux, consiste à concevoir et développer une
plateforme web d’automatisation des tests pour les applications web.
Pour réaliser cet objectif, nous avons commencé par une recherche approfondie sur l’auto-
matisation des tests et une présentation des différents choix technologiques adoptés. Puis,
nous nous sommes focalisés sur l’extraction des différents besoins et fonctionnalités de
l’application développée. Enfin, nous avons atteint la phase de conception et réalisation
de notre projet via les différents sprints réalisés.
Au cours de cette étape, nous avons passé par deux volets importants :
— La réalisation et le développement des scénarios de tests automatisés sur un exemple
d’application web existante dynamique en utilisant plusieurs technologies ten-
dances telles que Selenium, Cucumber et Junit. Cette approche permet de faire
gagner du temps et de la qualité dès les premières exécutions en s’assurant que les
fonctionnalités clés de l’application (et les autres) sont fonctionnelles.
— Le développement et la création d’une plateforme web, à l’aide des frameworks
Spring Boot et Angular, où nous pouvons intégrer et importer nos tests automati-
sés, visualiser les rapports générés et aussi travailler en collaboration avec d’autres
testeurs et encore l’équipe software qui s’intéresse à la réalisation de livrable. Cette
solution facilite le dialogue entre les deux équipes et surtout nous aide à gagner du
temps.
Cette plateforme aide l’entreprise à bien réviser les projets développés avant de les livrer
aux clients et augmente sa crédibilité dans le marché informatique et l’avantage majeur
de cette automatisation est le fait de pouvoir paralléliser les tests pour une maximisation
de couverture de risques.
Ce projet nous a procuré une grande opportunité pour bien appliquer nos connaissances
acquises pendant notre cursus à l’ISTIC et nous a permis d’aborder un nouveau domaine
métier pour confirmer nos potentiels dans le domaine de l’automatisation des tests.
Ce n’était pas seulement une chance pour appréhender et découvrir le milieu professionnel
mais aussi un défi pour réaliser un produit de qualité et de valeur ajoutée et d’apprendre
un ensemble de technologies très répandus dans le domaine de génie logiciel.
Pour conclure, nous espérons avoir accompli nos tâches initialement fixées et atteint nos
objectifs définis. Ce projet recèle plusieurs perspectives comme l’automatisation des tests
des applications mobile en utilisant Appium et desktop pour l’améliorer et le rendre plus
riche. Ce qui nous donne envie d’aller plus loin dans ce domaine.
72
Bibliographie
73