Andoh Michael (Ing Log)
Andoh Michael (Ing Log)
Andoh Michael (Ing Log)
Thème :
Année universitaire
2018/2019
Nous tenons tout d’abord à remercier le Bon Dieu Tout Puissant de nous avoir
aidés à réaliser ce modeste travail.
Dans nos jours l’informatique est devenu le moyen le plus important utilisé dans
chaque domaine sophistiqué, le développement des applications et logiciels sont
en constante évolution. Les entreprises pensent alors à gagner en temps et en
performances afin d’automatiser la procédure de tests logiciels, notre travail a
pour but de concevoir une application de test logiciel cette application est basé sur
les tests fonctionnels, et de gérer la gestion automatique de cette application en
utilisant un outil d’automatisation de test fonctionnel(Sélénium).
:الملخص
وتطوير التطبيقات والبرامج،في علوم الكمبيوتر اليوم أصبحت أهم الوسائل المستخدمة في كل مجال متطور
يهدف، تفكر الشركات بعد ذلك في اكتساب الوقت واألداء لتمت عملية اختبار البرمجيات.تتغير باستمرار
وإدارة اإلدارة التلقائية لهذا تطبيق،عملنا إلى تصميم تطبيق اختبار البرنامج الذي يستند إلى اختبار وظيفي
(Selenium).باستخدام أداة التشغيل اآللي لالختبار الوظيفي
Abstract:
In today's computer science has become the most important means used in every
sophisticated field, the development of applications and software are constantly
changing. Companies then think of gaining time and performance to automate the
software testing process, our work aims to design a software test application this
application based on functional testing, and manage the automatic management
of this application using a functional test automation tool (Selenium).
Introduction Générale
1. Contexte :
Notre époque d’aujourd’hui se caractérise par une utilisation indispensable des
nouvelles technologies dans tous les secteurs ou corps de métier. Dans une
économie de plus en plus globalisée, sophistiquée et potentiellement
concurrentielle, les entreprises qu’elles soient multinationales ou des PME (petite
et moyenne entreprises) se livrent une concurrence farouche pour la conquête de
leur part de marché. Ce qui nécessite la mise en place d’outils de gestion et d’aide
à la décision efficaces afin d’avoir un système managérial efficient.
Les outils d’analyses des données et de reporting sont devenus de plus en plus
demandés par les entreprises pour l’extraction de connaissance en vue de l’aide à
la décision. Le reporting est probablement l’application la plus utilisée de
l’informatique décisionnelle cela permet aux gestionnaires de :
1
Applications d’aide à la décision est plus précisément celles se basant sur les
tableaux de bord.
2. Problématique :
L’analyse prescriptive, descriptive ou prédictive nécessitent d’abord un volume
de donnée important et préalablement nettoyé et traité afin de rechercher
respectivement des alternatives de choix à présenter aux décideurs, ou trouver de
structure ou des modèles qui lient les données pour comprendre leurs interactions
par des applications des méthodes issues du domaine des statistiques ou enfin
l’application de méthode de data ming pour extraire des connaissances afin de
prédire des évènements futurs.
Aussi, il est impératif que l’utilisateur sache comment mieux exploiter toutes les
méthodes d’extraction de l’information, car s’il introduit une erreur dans sa
requête cela va forcément impacter le résultat dans l’affichage.
2
4. L’organisation du mémoire
Chapitre -I- Etat de l’Art de test logiciel : Dans cette partie, nous avons
explicité le test tout en montrant ses différentes typologies. Puisque les tests sont
multiples, nous n’avons pris que quelques types de tests : test fonctionnel, test de
régression, smoke test…
Chapitre – IV- Implémentation et Test : Ici, nous avons implémenté les outils
de notre système et avons testés les résultats obtenus.
Conclusion Générale : Nous avons terminé notre travail par une conclusion
générale dans laquelle nous mentionnons le but et la particularité de notre travail
et les objectifs atteints.
3
Chapitre I :
Etat de l’Art de
Test Logiciel
4
Introduction : Dans ce chapitre nous présentons d’une manière générale les tests
logiciels C’est quoi les tests, leurs différents types et leurs méthodes existant pour
qu’on puisse effectuer ces tests, en plus nous dévons aussi introduire les notions
d’un logiciel comment est-il définit leurs qualités et ça cycle de vie.
Micro-logiciel (firmware),
Application mobile,
Logiciel propriétaire ou logiciel libre (dont le code source est publié et/ou
librement modifiable), etc. [2]
5
2. Cycle de vie d’un logiciel
Le « cycle de vie d'un logiciel » : désigne toutes les étapes du développement
d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel découpage est
de permettre de définir des jalons intermédiaires permettant la validation du
développement logiciel, c'est-à-dire la conformité du logiciel avec les besoins
exprimés, et la vérification du processus de développement, c'est-à-dire
l'adéquation des méthodes mises en œuvre.
L'origine de ce découpage provient du constat que les erreurs ont un coût d'autant
plus élevé qu'elles sont détectées tardivement dans le processus de réalisation. Le
cycle de vie permet de détecter les erreurs au plus tôt et ainsi de maîtriser la qualité
du logiciel, les délais de sa réalisation et les coûts associés. [6]
Il existe deux différents types de catégorie de cycle de vie d’un logiciel une en «
V » et l’autre en «Cascade ».
6
Figure I. 1 : Modèle en Cascade [22].
7
2.2. Modèle en V : Le modèle de cycle de vie en V part du principe que les
procédures de vérification de la conformité du logiciel aux
spécifications doivent être élaborées dès les phases de conception.
La phase de conception
o Analyse des besoins et faisabilité : c'est-à-dire l'expression, le recueil
et la formalisation des besoins du demandeur (le client) et de
l'ensemble des contraintes.
o Spécifications
o Conception Architecturale : Il s'agit de l'élaboration des
spécifications de l'architecture générale du logiciel.
o Conception détaillée : consistant à définir précisément chaque sous-
ensemble du logiciel.
La phase de réalisation
o Codage : (Implémentation ou programmation), soit la traduction
dans un langage de programmation des fonctionnalités définies lors
de phases de conception.
8
o Tests unitaires : permettant de vérifier individuellement que chaque
sous-ensemble du logiciel est implémenté conformément aux
spécifications.
La phase de validation
o Tests d’intégration : dont l'objectif est de s'assurer de l'interfaçage des
différents éléments (modules) du logiciel. Elle fait l'objet de tests
d'intégration consignés dans un document.
o Test de validation
o Recette : c'est-à-dire la vérification de la conformité du logiciel aux
spécifications initiales.
La phase de conception : Le client et le prestataire définissent un cahier
des charges détaillant toutes les fonctionnalités recherchées dans le produit
final avant la conception du produit final. Le cahier des charges est un
document indispensable dans un projet car il lie le client et le prestataire
sous un contrat.
Le prestataire détermine les spécifications techniques de la solution dans la
technologie choisie, il effectue une estimation de délai pour chaque fonctionnalité
à développer.
Une dernière validation du produit est effectuée avant la mise en production. Suite
à la mise en production, le client vérifie, dans le cadre de la recette, que le produit
correspond bien à ses attentes.
9
3. Définition d’un test logiciel
Le test est une discipline vaste qui permet de s’assurer de la qualité des logiciels.
Cette qualité comprend différentes dimensions que l’on peut regrouper dans les
trois catégories suivantes : les fonctionnalités, l’ingénierie et l’adaptabilité : [6]
Fonctionnalités :
o Exactitude
o Fiabilité
o Utilisabilité
o Intégrité
Ingénierie :
o Efficacité
o Testabilité
o Documentation
o Structure
Adaptabilité :
o Flexibilité
o Réutilisabilité
o Maintenabilité
o Montée en charge
10
4. Les différents types de test logiciel
Test fonctionnel : est un type de test logiciel par lequel le système est testé
par rapport aux exigences / spécifications fonctionnelles.
Les fonctions (ou fonctionnalités) sont testées en leur fournissant une entrée et en
examinant la sortie. Les tests fonctionnels permettent de s'assurer que l'application
répond bien aux exigences. Ce type de test ne concerne pas la façon dont le
traitement se déroule, mais plutôt les résultats du traitement. Il simule l'utilisation
réelle du système mais ne fait aucune hypothèse de structure système.
Lors des tests fonctionnels, la technique Black Box Testing est utilisée dans
laquelle la logique interne du système testé n'est pas connue du testeur.
Les tests fonctionnels sont normalement effectués aux niveaux de test du système
et de test d’acceptation.
Pendant les tests de régression, les nouveaux scénarios de test ne sont pas créés,
mais les scénarios de test précédemment créés sont ré-exécutés.
Niveaux
Les tests de régression peuvent être effectués à tout niveau de test (unité,
intégration, système ou acceptation), mais ils sont principalement pertinents lors
des tests du système.
Ampleur
Dans un cas idéal, un test de régression complet est souhaitable, mais il existe
souvent des contraintes de temps / ressources. Dans ce cas, il est essentiel de
procéder à une analyse d’impact des modifications pour identifier les zones du
logiciel les plus susceptibles d’être affectées par ces modifications et celles des
utilisateurs en cas de dysfonctionnement, ainsi que les tests ciblés sur ces zones. .
12
En raison de l'ampleur et de l'importance des tests de régression, de plus en plus
d'entreprises et de projets adoptent des outils d'automatisation des tests de
régression.
13
Test de stress : Le test de stress est une forme de test de performance qui
mesure la vitesse de traitement du programme lorsque la charge du système
augmente. La charge du système signifie généralement le nombre
d'utilisateurs de programmes concurrents (clients). Il peut également se
référer au volume de données à traiter, au nombre d'enregistrements dans
une base de données, à la fréquence des messages entrants ou à des facteurs
similaires [7].
Test basé sur le code : Le test basé sur le code traite directement avec le
code source, il doit vérifier si le code du programme génère des erreurs
d'exécution. Les tests basés sur le code sont également utilisé pour évaluer
l'efficacité des algorithmes [7].
Le test structurel : Le test structurel est une approche dans laquelle les
tests sont dérivés de la connaissance de la structure du logiciel ou de son
implémentation interne (code source).
Chaque type admet une ou plusieurs méthodes pour tester et évaluer la qualité et
le rendement du logiciel afin de bien satisfaire les besoins des clients.
Test d’acceptation : Les tests d'acceptation sont des tests formels exécutés
pour vérifier si un système répond à ses exigences métier. Ils nécessitent
que l'application soit entièrement opérationnelle et se concentrent sur la
simulation du comportement des utilisateurs. Ils peuvent aussi aller plus
14
loin et mesurer la performance du système et rejeter les changements si
certains objectifs ne sont pas atteints.
Test d’intégration : Les tests d'intégration vérifient que les différents
modules ou services utilisés par votre application fonctionnent bien
ensemble. Par exemple, ils peuvent tester l'interaction avec la base de
données ou s'assurer que les micro-services fonctionnent ensemble comme
prévu. Ces types de tests sont plus coûteux à exécuter, car ils nécessitent
que plusieurs parties de l'application soient fonctionnelles.
Test unitaire : Les tests unitaires sont de très bas niveau, près de la source
de votre application. Ils consistent à tester les méthodes et fonctions
individuelles des classes, des composants ou des modules utilisés par votre
logiciel. Les tests unitaires sont en général assez bon marché à automatiser
et peuvent être exécutés très rapidement par un serveur d'intégration
continue.
Test système : est un niveau de test logiciel où un logiciel complet et
intégré est testé. Le but de cet essai est d’évaluer la conformité du système
aux exigences spécifiées.
15
Les types
Le test de charge : est un type de test de performance réalisé pour
évaluer le comportement d'un système face à une charge de travail
croissante.
Le test de résistance : est un type de test de performance réalisé pour
évaluer le comportement d'un système à la limite de sa charge de
travail ou au-delà.
Les tests d'endurance : sont un type de tests de performance
conduits pour évaluer le comportement d'un système lorsqu'une
charge de travail importante est donnée en permanence.
Spike Testing : est un type de test de performance réalisé pour
évaluer le comportement d'un système lorsque la charge augmente
brusquement et substantiellement.
Test de conformité : également appelé test de conformité, test de
réglementation, test de normalisation, est un type de test permettant de
déterminer la conformité d'un système aux normes internes ou externes.
[3]
Les normes internes pourraient être des normes établies par l'entreprise
elle-même. Par exemple, une société de développement d'applications Web
peut définir la norme selon laquelle toutes les pages Web doivent être
réactives.
Les normes externes peuvent être des normes établies à l'extérieur de
l'entreprise. Par exemple, la loi sur la transférabilité et la responsabilité en
matière d'assurance maladie (HIPAA) a établi des réglementations pour le
secteur de la santé.
Les tests de conformité pourraient également être effectués par une organisation
externe. Cela aboutit normalement à une sorte de certification de conformité.
La profondeur des tests de conformité peut aller d'un audit de haut niveau sur une
base d’échantillonnage à un examen détaillé de chaque norme spécifiée.
16
testé n'est pas connue du testeur. Ces tests peuvent être fonctionnels ou
non fonctionnels, bien que généralement fonctionnels.
Définition par ISTQB
Test en boîte blanche : test basé sur une analyse de la structure interne du
composant ou du système.
Technique de conception de test en boîte blanche : Procédure permettant
de dériver et / ou de sélectionner des cas de test sur la base d'une analyse
de la structure interne d'un composant ou d'un système.
La méthode de test de la boîte blanche est applicable aux niveaux de test logiciel
suivants :
18
Equipe : Le privilège de la relation équipe/client est mis en avant plutôt que
la négociation contractuelle.
Application : Préférer une application bien construite à une documentation
détaillée.
Acceptation : Le choix de l’acceptation du changement et de la flexibilité
au détriment d’un plan rigide.
8. Le test ad hoc : également connu sous le nom de test aléatoire ou test de
singe, est une méthode de test logiciel sans planification ni documentation.
Les tests sont effectués de manière informelle et aléatoire, sans procédure
formelle ni résultats escomptés.
Le testeur improvise les étapes et les exécute de manière arbitraire (comme un
singe qui tape en dansant). Bien que les défauts trouvés en utilisant cette méthode
soient plus difficiles à reproduire (en l’absence de tests élémentaires écrits), on
trouve parfois des défauts très intéressants qui n’auraient jamais été détectés si
des tests élémentaires écrits existaient et étaient strictement suivis. Cette méthode
est normalement utilisée lors des tests d’acceptation.
Planification et contrôle
Analyse et conception
Implémentation et exécution
Evaluation des critères de sortie et reporting
Activités de clôture
Certaines de ces activités de test peuvent être menées en parallèle (2 et 3), d’autres
en séquence (4 et 5)
19
L’approche de test basé sur les risques va permettre de mettre en phase, via le
planning, les activités de tests afin de réduire les risques produits identifiés. De
même cette approche va permettre de prioriser les activités.
Le contrôle du planning est une activité permanente qui consiste à comparer les
progrès réalisés avec l’avancement prévu et de réviser la planification des activités
si besoin.
Concernant les données de test, c’est durant cette activité que les données peuvent
être chargées en base de données, voire crées via des scripts si besoin.
20
9.4. Exécution des tests
Cette activité démarre lorsque l’objet du test est livré et que les critères d’entrée
sont satisfaits.
Les tests manuels doivent être exécutés selon les procédures de test avec un degré
de liberté pour permettre la couverture de scénarios intéressants - chaque anomalie
devra alors être suffisamment décrite pour pouvoir être reproduite.
21
Le reporting des tests peut être produit à la fin des différents niveaux de test
(tests unitaires, tests d’intégration, tests système)
9.6. Activités de clôture des tests
Ces activités peuvent être regroupées en 4 ensembles.
S’assurer que chaque activité de test est menée à terme, c’est à dire que les
tests planifiés ont été exécutés, ou ajournés ; les anomalies ont été corrigées,
recyclées, remises à plus tard ou déclarées contournables.
Donner des taches aux bons profils en attribuant des anomalies typées
(régression, performance, fonctionnelle) à ceux qui ont la compétence
requise.
Participer à des retours d’expérience avec rédaction de documentation sur
les leçons apprises à la fois sur le projet de test et sur le cycle de vie du
logiciel.
Archiver les résultats et les documents
Les métriques de suivi des activités de clôture des tests peuvent inclure
Pourcentage de cas de test exécutés
Pourcentage de cas de test identifiés comme réutilisable dans le répertoire
des cas de tests
Pourcentage de cas de test identifié comme test de non régression.
Ratio de cas de test automatisés, manuels.
Conclusion : Dans ce chapitre nous mettons l’accent sur les notions de base, nous
avons citez la définition d’un logiciel en informatique et les différents cycle de
vie d’un logiciel plus les tests d’un logiciel et les méthodes existant pour réaliser
ce test logiciel, Dans ce travail nous devons focaliser sur le test fonctionnel dans
le processus de prise de décision.
La chapitre qui suit traitera d’une maniéré détaille. L’Automatisation des tests
logiciels (test fonctionnel).
22
Chapitre II :
Automatisation
d’un test logiciel
23
Introduction :
Le test logiciel, comme il a été précisé dans le chapitre précèdent,
permettant de vérifier et de s’assurer de la fiabilité du logiciel d’un point de
vue développement ou fonctionnel. Ce test peut s’effectue selon deux
approches : manuel ou automatisé
1. Test manuel : Le test manuel est un test du logiciel où les tests sont
exécutés manuellement par un analyste de l'assurance qualité. Il est effectué
pour découvrir des bugs dans les logiciels en développement.
En test manuel, le testeur vérifie toutes les fonctionnalités essentielles de
l'application ou du logiciel donné. Dans ce processus, les testeurs de
logiciels exécutent les scénarios de test et génèrent les rapports de test sans
l'aide d'aucun outil de test de logiciel d'automatisation.
C'est une méthode classique de tous les types de tests et permet de détecter
les erreurs dans les systèmes logiciels. Il est généralement effectué par un
testeur expérimenté pour mener à bien le processus de test du logiciel. [10]
1.1. Avantages des tests manuels :
Méthode de test moins fiable car réalisée par l'homme. Par conséquent,
il est toujours sujet aux erreurs et aux erreurs.
Le processus de test manuel ne peut pas être enregistré, il est donc
impossible de réutiliser le test manuel.
Dans cette méthode de test, certaines tâches sont difficiles à effectuer
manuellement, ce qui peut nécessiter un temps supplémentaire de la
phase de test du logiciel.
24
de test et valider le logiciel. L’objectif est d’achever l’exécution du test en
moins de temps.
Les tests automatisés reposent entièrement sur le test pré-scripté qui
s'exécute automatiquement pour comparer les résultats réels aux résultats
attendus. Cela aide le testeur à déterminer si une application fonctionne
comme prévu.
Les tests automatisés vous permettent d'exécuter des tests répétitifs et des
tests de régression sans l'intervention d'un testeur manuel. Même si tous les
processus sont effectués automatiquement, l'automatisation nécessite un
certain effort manuel pour créer des scripts de test initiaux.
25
3. Etude comparatif entre test manuel et automatique :
Paramètre Test d'automatisation Test manuel
Définition Les tests d'automatisation Dans les tests manuels, les
utilisent des outils scénarios de test sont
d'automatisation pour exécutés par un testeur
exécuter des cas de test. humain et un logiciel.
Temps de traitement Les tests automatisés sont Les tests manuels prennent
nettement plus rapides beaucoup de temps et
qu'une approche manuelle. prennent beaucoup de
ressources humaines.
Essais exploratoires L'automatisation ne Les tests exploratoires sont
permet pas les tests possibles dans les tests
aléatoires manuels
Investissement initial L'investissement initial L'investissement initial
dans les tests automatisés dans les tests manuels est
est plus élevé. Bien que le comparativement plus
retour sur investissement faible. Le retour sur
soit meilleur à long terme. investissement est
inférieur aux tests
d'automatisation à long
terme.
Fiabilité Le test automatisé est une Les tests manuels ne sont
méthode fiable, car il est pas aussi précis en raison
exécuté par des outils et de la possibilité d'erreurs
des scripts. Il n'y a pas de humaines.
test de fatigue.
Observation humaine Les tests automatisés La méthode de test manuel
n'impliquent aucune permet l'observation
considération humaine. humaine, ce qui peut être
Cela ne garantit donc utile pour offrir un système
jamais une convivialité et convivial.
une expérience client
positives.
Exécution parallèle Ce test peut être exécuté Les tests manuels peuvent
sur différentes plates- être exécutés en parallèle,
formes d'exploitation en mais il faudrait augmenter
parallèle et réduit le temps vos ressources humaines,
d'exécution du test. ce qui est coûteux
Tests par lots Vous pouvez grouper Les tests manuels ne
plusieurs scripts de test peuvent pas être groupés.
26
pour une exécution
nocturne.
Connaissances en La connaissance de la Pas besoin de
programmation programmation est programmation en test
indispensable dans les tests manuel.
d'automatisation.
Installer Le test d'automatisation Les besoins de tests
nécessite une manuels ont une
configuration d'exécution configuration d'exécution
moins complexe. plus simple des tests
Approche idéale Les tests d'automatisation Le test manuel s'avère utile
sont utiles lors de lorsque le scénario de test
l'exécution fréquente du n'a besoin d'être exécuté
même ensemble de cas de qu'une ou deux fois.
test
Conception de test Les tests unitaires Les tests unitaires manuels
automatisés appliquent / n'entraînent pas la
pilotent la conception de conception dans le
développement pilotée par processus de codage
les tests.
27
Teste toute application Web basée sur la langue.
Test inter-navigateur.
Compatible avec les outils de développement orientés métier tels
que RSpec, Cucumber et Test / Unit.
Teste les boutons, formulaires, liens et réponses de la page Web.
4.3. Protractor : est un Framework d’automatisation fonctionnelle open
source (également connu sous le nom de Framework de test End to
End) spécialement conçu pour vérifier la santé des applications web
AngularJS. C’est un programme Node.js qui supporte les frameworks
de test Jasmine, Mocha et Cucumber. Il utilise Sélénium Web Driver
pour piloter les navigateurs et simuler l’interaction de l’utilisateur avec
une application AngularJS exécutée dans un navigateur. L’attente
automatique de Protractor peut automatiquement exécuter l’étape
suivante de votre test au moment où la page Web termine les tâches
en attente. Protractor est une infrastructure de test de bout en bout pour
les applications AngularJS et fonctionne comme un intégrateur de
solutions combinant des outils et des technologies puissants tels que
NodeJS, Sélénium
Web Driver, Jasmine, Cucumber et Mocha. Il a été initialement développé
par Google Developers pour prendre en charge les applications angulaires et
plus tard, il est publié en tant que Framework open source. Le rapporteur
prend désormais en charge les applications angulaires et non angulaires. Le
rapporteur est un wrapper écrit sur Webdriver.js, toutes les fonctionnalités
prises en charge par Sélénium Web driver sont prises en charge, en plus des
fonctionnalités spécifiques à l’angle.
28
repeat, etc., de sorte que le rapporteur a étendu la prise en charge de ces
localisateurs. Vous n'avez pas besoin de créer un XPath complexe pour les
localisateurs angulaires, dans Protractor, ces localisateurs sont prêts pour
vous, vous pouvez donc simplement utiliser by.model, by.repeater, etc.
Prend en charge les tests entre navigateurs : nous pouvons exécuter nos
scripts dans plusieurs navigateurs tels que Chrome, Firefox, Safari, IE11,
Edge. La configuration pour les tests inter-navigateurs est facile et ne prend
pas beaucoup de temps. Nous aborderons ce sujet en détail dans nos
prochains tutoriels.
Prise en charge du navigateur sans tête : Un navigateur sans tête est un sans
interface utilisateur. Protractor prend également en charge le navigateur sans
tête.
29
node.js, il peut utiliser la grande variété de packages disponibles dans le
nœud. On peut donc étendre son Framework ou ajouter des fonctionnalités
supplémentaires en installant des packages de nœuds. Par exemple, si vous
avez besoin d'un rapport HTML, vous pouvez simplement utiliser Jasmine
HTML Reporter. Pour le code épuré, vous pouvez installer eslint ou tslint.
De même, vous pouvez installer les packages de nœuds de votre choix.
Prise en charge des plates -formes de test sur le cloud : les plates -formes de
test basées sur le cloud nous permettent d'exécuter nos spécifications sur
plusieurs navigateurs (Chrome, Firefox, Safari, etc.) et sur plusieurs plates-
formes (Windows, Mac, Linux, Mobile, etc.). Protractor est pris en charge
par les principales plates-formes de tests sur le cloud telles que SauceLabs et
CrossBrowserTesting.com.
Prise en charge du flux de contrôle : l’API est basée sur des promesses gérées
par un flux de contrôle et adaptées à Jasmine. Les API de rapporteur sont
entièrement asynchrones. Toutes les fonctions renvoient des promesses. Il
maintient une file d'attente de promesses en attente, appelée flux de contrôle,
pour que l'exécution soit organisée. (Nous en parlerons davantage dans
Promises dans les prochaines sections du didacticiel).
30
Prise en charge de divers IDE et rédacteurs : vous pouvez choisir parmi une
multitude d'EDI sur le marché. Les éditeurs les plus populaires sont Visual
Studio Code, Web Storm, Visual Studio Professional, Atom et sublime.
(Nous couvrirons en détail nos prochains tutoriels).
31
Un éditeur de tableaux d'enregistrement pour les utilisateurs moins
techniques
La planification des tests peut être structurée à l'aide de suites de tests avec
des variables d'environnement. L'exécution du test peut être paramétrée et
mise en parallèle à l'aide de profils.
32
UFT signifie U nified F unctional T Esting. Il a été précédemment connu
sous le nom QTP (Q uick T is P rofessional). En fait, les vétérans de cet
outil continuent de le désigner par QTP.
QTP a été conçu à l'origine par la société Mercury Interactive, acquise par
Hewlett Packard (HP) en 2006. En 2011, avec l'introduction de la version
11.5, QTP a été renommé UFT.
En septembre 2017, HPE spin a fusionné dans Micro Focus. Depuis lors,
UFT est conçu, pris en charge et géré par Micro Focus.
UFT est l'un des outils de test d'automatisation commerciaux les plus
largement utilisés sur le marché aujourd'hui. Il est connu pour sa facilité
d'utilisation et son support par le fournisseur et la grande communauté de
testeurs en automatisation. Pour cette raison, les professionnels UFT
qualifiés sont toujours en demande. [20]
33
prend en charge de nombreux autres types de tests : tests basés sur les
données, tests distribués, etc.
34
4.10. Telerik TestStudio (Licence : Commercial) : est une solution de tests
fonctionnels automatisés pour les tests de régression, de
fonctionnement, de charge et d'API automatisés.
Contrairement à plusieurs autres solutions de test qui imposent leur
propre langage propriétaire, Telerik Test Studio utilise le langage C #
ou VB.Net. L'utilisation d'un vrai langage de codage signifie qu'il est
plus facile de trouver de l'aide en ligne. Les scripts de test peuvent
également être partagés via le contrôle de source avec d'autres
membres de l'équipe. [17]
Telerik est également un outil basé sur des icônes qui automatise les
tests fonctionnels ou de régression de toute application Web ou de
bureau. Même un testeur peu ou pas connaissant le codage peut
également utiliser Telerik. Il peut être utilisé à la fois pour
l'enregistrement et la lecture, ainsi que pour les scripts descriptifs. Les
testeurs peuvent écrire des scripts ou utiliser simplement la
fonctionnalité étendue d’enregistrement et de lecture proposée par
Telerik.
36
Courbe
Difficile Moyen Moyen Facile
d'apprentissage
Difficulté dans
Facilité l’installation et Facile à Facile à Facile à
d'utilisation l’intégration installer et à installer et à installer et
outils
Test unitaire,
test Test
Type de test Test
fonctionnel, fonctionnel, Test
supporté fonctionnel,
test de test de fonctionn
test de
régression, régression, test el
régression
test de monté de navigateur
en charge,
test de
couverture
Simulateur /
Oui Oui Oui Oui
Emulateur
Immense
Documentation Beaucoup de Documentati Documentation
document
/ Support de documentation on moyenne moyenne et une
ation et
communauté et une et une communauté
une large
communauté communauté active
communa
active active
uté active
Enregistrement Non,
/ Lecture des Oui Oui Oui nécessite
scénarios un outil
37
suppléme
ntaire
38
Conclusion : cette partie elle a été consacrée à la présentation des approches des
tests, le test manuel et le test automatique en présentant les avantages et
inconvénients de l’une de ces types des tests ainsi que certains outils utilisés. Dans
ce chapitre nous mettons l’accent seulement sur l’outil d’automatisation de test
fonctionnel qui fera l’objet de l’outil que nous allons développer pour le test des
tableaux de bord. Aussi, à l’issue de l’étude comparative présentée dans le
chapitre précèdent nous avons choisi l’outil sélénium pour l’automatisation de test
fonctionnel.
39
Chapitre III:
La Conception
De Notre
Système
40
Introduction
Nous allons présenter dans ce chapitre la conception de notre application
en modélisant le système via les diagrammes d’UML tel que cas
d’utilisation, classe et séquence.
41
1.2. Diagramme de cas d’utilisation des scénarios de test
Le diagramme de scénarios de test désigne une fonctionnalité de base de
notre système qui permet au testeur d’ajouter ou modifier ou supprimer et
ensuite enregistrer pour les exécuter autant de fois qu’il veut. Ci-dessous
représente le diagramme :
42
Figure III. 6 : Diagramme cas d’utilisation d’exécution des cas de test
43
1.5. Diagramme de séquence de la création des cas de test
Ce diagramme représente le scénario de création des cas de test qui
représentent les différentes conditions qu’on peut appliquer sur chaque
fonctionnalité. Le testeur peut créer un ou plusieurs cas de test. Ci-dessous
illustre ce diagramme :
44
2. Règles de gestion
Le diagramme de classe de notre système est basé sur les règles de gestion
suivante :
Un projet est composé d’un ou plusieurs référentiels.
Un référentiel est associé à un seul projet.
Un référentiel est composé d’un ou plusieurs scénarios.
Un scénario appartient à un seul référentiel.
Un scénario est composé d’un ou plusieurs cas de test.
Un cas de test appartient à un ou plusieurs scénarios.
3. Diagramme de classe du système
Ce diagramme permet de fournir une représentation abstraite des objets du
système qui interagissent. Ci-dessous nous présentons le diagramme de
classe de notre système.
45
Conclusion : Pour conclure, nous avons décrit notre système via une conception
en le modélisant suivant le langage UML tel que le diagramme de classe, cas
d’utilisation et le diagramme de séquence, ce qui nous fournit une base solide pour
passer à l’implémentation.
46
Chapitre IV:
Implémentation
Et Test
47
Introduction
Dans ce chapitre, nous allons présenter notre implémentation qui est basée
sur la conception de notre système.
D’abord, nous commencerons par présenter les outils utilisés (langage de
programmation java, sublime text 3 …) et puis notre outil de test via
captures d’écrans des interfaces. Deuxièmement, nous allons effectuer des
différents cas de tests sur notre application (tableau de bord) et enfin nous
montrons les résultats obtenus via captures d’écrans.
48
Le pilote de navigateur utilise le serveur HTTP pour obtenir la
demande HTTP et le serveur HTTP filtre toutes les commandes à
exécuter.
Ensuite, les commandes de votre script sélénium seront exécutées
sur le navigateur.
Enfin, le serveur HTTP renvoie la réponse au script de test
d'automatisation.
49
Figure IV.12 : Interface de la création de projet de test (a)
50
Figure IV.13 : Interface de la création de projet de test (b)
51
Figure IV.14 : Interface de la création de projet de test (c)
4. Interface d’accueil
Comme indiqué ci-dessous, chaque commande comporte quatre champs
Command - la commande actuelle à exécuter sur la page
Target - élément sur la page
Value - valeur à utiliser en cas de commandes comme
typeText
Description - fournir des informations supplémentaires
concernant la commande utilisée
52
Figure IV.15 : Interface d’accueil
53
le test en cliquant sur le bouton Run Test. Le Sélénium IDE va exécuter
le test en lançant l’application cible, renvoie le résultat de l’exécution sur
la console comme illustré ci-dessous :
5. Test et résultats
Nous allons présenter tableau de bord, son plan de test et aussi indiquer les
résultats des cas de test exécutés suivant les fonctionnalités de l’application.
5.1. Plan de test de l’application
Le plan de test définit ce que l’on va tester, comment on va le tester mais
aussi ce qui ne va pas être testé. Il regroupe les éléments à tester, les
fonctionnalités à tester, les types de tests à réaliser ainsi que les risques
54
associés au plan. Parmi les types de plan de tests, nous avons choisi le plan
de test fonctionnel de l’application.
5.2. Stratégie de test de l’application
La stratégie de tests présente l’approche recommandée d’évaluation des
cibles tests. Il consiste d’abord à identifier les techniques de tests et à
identifier les critères de complétion de tests. Les tests doivent être exécutés
dans des environnements sécurisés avec des données connues et contrôlées.
6. Fonctionnalités à tester
Nous allons présenter les fonctionnalités à tester sur le tableau de bord
Summer Olympic Games :
Choix d’édition- un utilisateur peut sélectionner ou changer
l’édition de jeux olympiques d’été en cliquant sur le bouton
Edition.
Choix de pays- un utilisateur peut choisir le pays participant
dans les jeux olympiques d’été en cliquant sur le bouton
Country.
Choix de médailles- un utilisateur peut sélectionner le type de
médaille
(L’or ou l’argent ou le bronze) remportée par chaque pays
participant dans les jeux olympiques d’été.
Les indicateurs de performance- un utilisateur peut pointer et
vérifier les indicateurs de performance
55
9. Résultats final d’exécution des tests
Nous allons entamer l’exécution des tests pour pouvoir exhiber les
fonctionnalités de l’application. Ci-dessous illustre l’exécution des tests :
Cas de test 1 : Nous commençons à ouvrir l’interface de tableau de bord
qui est lié avec sélénium.
A travers le sélénium, nous choisissons une édition (année=1896) et puis
nous sélectionnons trois pays (Alegria, United Kingdom et United States)
correspondants à cette édition.
Ensuite nous cliquons sur le bouton Run pour exécuter ces actions qui sont
enregistrées par sélénium.
En cours d’exécution, sélénium examine chaque action enregistrée et donne
le résultat correspondant à cette action comme illustré ci-dessous :
56
Figure IV.19 : Résultat de cas de test 1 avec succès
Cas de test 2 : Dans le cas de test 2, nous choisissons une autre édition
(année=1920) et puis nous sélectionnons trois autres pays (Argentina,
France et Germany) correspondants à cette édition.
Ensuite nous cliquons sur le bouton Run pour exécuter ces actions qui sont
enregistrées par sélénium.
En cours d’exécution, sélénium examine chaque action enregistrée et donne
le résultat correspondant à cette action comme illustré ci-dessous :
57
Figure IV.21 : Résultat de cas de test 2 avec succès
Cas de test 3 : Dans ce test, nous choisissons une édition (année=1980) et
puis nous sélectionnons le pays (Madagascar) correspondants à cette
édition. En cliquant sur le bouton d’exécution Run, sélénium examine que
le pays sélectionné ne se trouve pas dans la base de données qui entraine
une erreur dans le résultat d’exécution.
58
Figure IV.23 : Résultat de cas de test 3 avec échec
Remarque : le cas de test 3 a terminé avec un échec parce que nous avons
sélectionné un pays (Madagascar) qui ne se trouve pas dans la base de
données (Count).
10. Diagnostique du résultat du test
L’exécution des cas de test 1 et 2 a été réussie avec des résultats qui signifient
que les cas de test 1 et 2 ont aboutis, à l’exception de cas de test 3 qui a échoué,
il représente la fonctionnalité de sélection de pays.
Conclusion : En terminant notre mémoire, nous avons montré l’outil
d’automatisation de test et comment il fonctionne, l’application tableau de bord à
travers des captures d’écrans des interfaces les plus importantes et aussi
l’exécution et le résultat des tests.
59
CONCLUSION GENERALE
De nos jours l’informatique décisionnelle dévient indispensable dans la prise de
décision dans la gestion des organisations. La mise en place de fonction de
contrôle devient de ce fait une obligation pour les entreprises. Car, elle permet de
détecter les erreurs et les risques et les réparer à temps. Et l’outil qui est par
excellence indiqué pour cette tâche est bien évidemment le Tableau de bord. Car
c’est un document de référence, outil de management et d’aide à la décision et de
prévision, permet par ce contenu documenté et structuré d’anticiper les obstacles
(alertes, clignotantes) de conduire l’entreprise sur la bonne route avec la meilleure
visibilité possible (indicateur de gestion) pour atteindre la bonne destination
(respect des objectifs).
Pour atteindre nos objectifs, nous avons utilisé une plateforme d’automatisation
de test fonctionnel (sélénium). Nous avons amplement atteint les objectifs que
nous avions fixés au début de notre projet. Et nous avons suivis certaines étapes
nécessaires pour aboutir au résultat escompté. Voici ces étapes :
En premier lieu, nous avons procédé certains tests fonctionnels dans le but
de voir les défaillances du logiciel.
En second lieu, nous avons consacré cette partie au choix du test manuel ou
automatique. Nous avons opté pour ce dernier, car il est de loin celui qui
permet de faire moins d’erreur. Ce qui n’est le cas du test manuel. Puisqu’il
peut conduire à certaines dont : erreur de compétence ou erreur purement
humaine induite par inadvertance.
60
La troisième partie se porte sur l’outil d’automatisation. L’outil
d’automatisation choisi est le Sélénium. Et nous l’avons appliqué sur un
tableau de bord avec Summer Games Olympics comme exemple.
La quatrième étape a été consacrée à la conception de notre outil de test.
Et pour cela, nous avons utilisé le diagramme de classe et diagramme de
cas d’utilisation pour modéliser notre outil.
En dernière étape, nous procédé à l’implémentation de notre outil afin de
le tester sur un tableau.
L’aboutissement de notre projet s’est fait non pas sans problème. Nous
avons eu certains écueils parmi lesquels nous pouvons mentionnés :
Nous nous sommes butés sur un manque criant de documentation, le
manque d’expérience dans l’utilisation de l’outil.
61
Bibliographie
[1] Sten Pittet., (2019), Les différents types de tests dans Software Atlassian .Disponible à :
https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-
testing [En ligne le 5/Mars.2019].
[2] Serge Braudo, and Alexis Baumann. (sd). Conseiller honoraire à la Cour d'appel de
Versailles, Définition de Logiciel.Disponible à : https://www.dictionnaire-
juridique.com/definition/logiciel.php [En ligne le 5/Fév.2019].
62
[13] Ganesh Hegde.,(2019), Qu'est-ce que le rapporteur et comment aide-t-il à automatiser les
applications angulaires?,Disponible à : https://www.toolsqa.com/protractor/what-is-protractor/
[online le 3/Aout.2019].
[14] ARC Optimizer.,( 2019), Top 30 des outils d'automatisation de processus en 2019 - ARC
Optimizer,Disponible à : https://arcoptimizer.com/top-30-des-outils-dautomatisation-de-
processus-en-2019 [online le 3/Aout.2019].
[15] SMARTBEAR.,(2019),TestComplète Documentation/Informations générales : À propos
de TestComplete | Documentation TestComplete,Disponible à :
https://support.smartbear.com/testcomplete/docs/general-info/introducing-testcomplete.html
[online 3/Aout.2019].
[16] Rahul R Pandya (fondateur de Step2QA, architecte d'automatisation des tests)., (2017),
What is some information about Ranorex automation tools? – Quora,Disponible à :
https://www.quora.com/What-is-some-information-about-Ranorex-automation-tools
[3/Aout.209].
[17] Anshu Ranjan.,(2017), Studio de test /TelerikIntroduction au studio de test Telerik :
Introduction au studio de test Telerik,Disponible à : https://www.toolsqa.com/telerik-test-
studio/telerik-test-studio-introduction/ [online le 3/Aout.2019].
[18] CLUSIF (Club de la Sécurité des Systèmes d’Informations Français), « Démarche de
conception d’un Tableau de Bord qualité appliqué à la sécurité », Juin 1997, P. 9
[19] Josselin A., (2016), E2E Testing : Katalon Studio,Disponible à :
http://netforceteam.com/E2ETesting/index.php.[online 13/Aout.2019 ].
[20] Ankur Jain., (2006), Qu'est-ce que UFT (QTP )? (Test fonctionnel unifié Micro
Focus),Disponible à : https://www.learnqtp.com/what-is-qtp/ [online 13/Aout.2019].
[21] Vinod Rebby, Selenium WebDriver Architecture - JournalDev
https://www.journaldev.com/25698/selenium-webdriver-architecture [8/oct.2019]
[22] Introduction au Génie Logiciel, https://fr.slideshare.net/guest0032c8/introduction-au-
gnie-logiciel [8/oct.2019].
[23] Mémoire Online - Conception et Developpement d'un logiciel de gestion commerciale -
Mchangama Ismaila, https://www.memoireonline.com/02/09/2005/m_Conception-et-
Developpement-dun-logiciel--de-gestion-commerciale15.html [8/oct.2019].
[24] Software Testing, Test du système - Principes de base du test de logiciel,
http://softwaretestingfundamentals.com/system-testing/ [8/oct.2019].
63