Beruflich Dokumente
Kultur Dokumente
Réalisé par :
BENMANSOUR KAOUTHAR Encadré par:
CHANAOUI ILYASS
HABACHI MAROUANE
MHAMDI MOHAMMED Mr. NAJOUI
PLAN
PARTIE PARTIE
A B
MISE EN Insertion de
SITUATION bibliothèque
INTRODUCTION TEST
FIXTURES
DOMAINES
D’APPLICATIO Exécution
N des tests
Exemple
LES complet
FONCTIONALITES
Une présentation détaillée
de l’outils et de ces
fonctionnalités
PARTIE A
Mise en situation
• Le test unitaire est un processus de vérification d’une unique unité de logiciel, elle-même définie
comme étant la plus petite partie non divisible d’un code source. Par exemple, dans le cadre d’un
développement en langage C, il est communément admis que l’unité de logiciel est une fonction de
code. Ainsi, le test unitaire revient à tester une seule et unique fonction de code source à la fois,
isolément des autres fonctions du projet.
• Le but du test unitaire est de confronter une fonction de code aux exigences de conception
correspondantes, et donc de s’assurer qu’elle fonctionne correctement en toutes circonstances. Les
tests unitaires jouent un rôle clé dans l’amélioration de la qualité des logiciels, en permettant de
détecter les erreurs rapidement (particulièrement lorsqu’ils sont effectués durant le développement),
notamment dans le cadre de la méthode Test Driven Development), de diminuer les erreurs en phase
de maintenance (les tests unitaires faisant par la suite office de tests de non-régression), d’améliorer la
documentation du code source (la lecture de tests unitaires étant souvent très instructive pour
comprendre le fonctionnement d’une fonction de code).
Mise en situation
INTRODUCTION
• Le compilateur LLVM.
GOOGLE TEST
• les tests unitaires, bonne pratique d’Assurance Qualité
Logiciel, sont exigés dans de nombreuses normes de
Sureté de Fonctionnement Logiciel comme
• la DO-178,
• l’IEC 61508,
• l’IEC 62304,
• l’ISO 26262,
• l’EN 50128,
LES
FONCTIONNALITEES
• GTest Runner est un testeur automatique basé sur Qt5 et une interface utilisateur
graphique avec de puissantes fonctionnalités pour les plates-formes Windows et Linux.
• L'interface utilisateur de Google Test est un programme de test qui exécute votre binaire
de test, vous permet de suivre sa progression via une barre de progression et affiche une
liste des échecs de test. En cliquant sur l'un d'entre eux, le texte de l'échec s'affiche.
L'interface utilisateur de Google Test est écrite en C#.
• GTest TAP Listener est un auditeur d'événements pour Google Test qui met en œuvre le
protocole TAP pour la sortie des résultats des tests.
LES FONCTIONNALITEES
• gtest-parallel est un testeur qui effectue des tests à partir du binaire en parallèle pour
fournir une accélération significative.
• GoogleTest Adapter est une extension VS Code permettant de visualiser les tests
Google dans une arborescence, et d'exécuter/débugger les tests.
• C++ TestMate est une extension VS Code permettant d'afficher Google Tests dans une
arborescence, et d'exécuter/déboguer vos tests.
• Cornichon est un petit analyseur DSL Gherkin qui génère du code pour Google Test.
EXEMPLE
D’APPLICATION
PARTIE B
L’ENVIRONNENT GOOGLE TEST EST GÉNÉRALEMENT DIVISE EN 3
PARTIE :
LE CODE
LA CASE DE TEST
LA BIBLIOTHÈQUE DE GOOGLE TEST
Etape 1: Insertion de bibliothèque
Dans le cadre de l’utilisation d’un test fixture, on va utiliser TEST_F() à la place de TEST() pour pouvoir accéder aux objets
qu’on a construit précédemment.
Par exemple:
Etape 3: Exécution des tests
This file defines a test with the macro, TEST. T here are two
names inside of the parentheses which specify the name for the
series of tests, AddTest, and the specific test name,
TwoAndTwo.
This is the output to the console when the test passes or fails
(see below). An assertion is used to check equality between 4
and the call of the function Add with arguments (2, 2).
Then, main initializes the testing environment and runs all tests.
Etape 5: EXEMPLE COMPLET
Compilation
g++ -I(path to googletest)/include/ -I(.h directory) -c Test.cc Add.cc
./a.out
g++ -pthread *.o libgtest.a
Google testing uses pthreading and
-pthread must be passed as a flag
when linking. For more information
on compiling, check out our other
post here.
Etape 5: EXEMPLE COMPLET