Vous êtes sur la page 1sur 34

Automatisation des tests

Maitrise des
Grands Projets
Informatiques

Vesela Balev

Maitrise des Grands Projets Automatisation


des tests
Informatiques Définition
Types
Automatisation des tests
Tests - Automatisation et QA

Vesela Balev

INSA
vesela.gocheva@insa-rouen.fr

13 novembre 2017

Vesela Balev Maitrise des Grands Projets Informatiques


Automatisation des tests

Maitrise des
Sommaire Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Automatisation des tests


Définition
Types
Automatisation des tests et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Automatisation des tests

Maitrise des
Sources Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests

PLURALSIGHT, Jason Roberts, Testing Automation: The et QA

Big Picture

Wikipedia

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Tests manuels Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Tests automatiques Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Bénéfices Grands Projets
Informatiques

Vesela Balev
Auto Manuel
Automatisation
des tests
Exécution aussi souvent que Coût à chaque exécution Définition
Types
nécessaire Automatisation des tests
et QA

Exécution à tout moment Limité aux heures de travail

Plus rapide Plus lent

Moins d’erreurs Dépend du testeur

Contrôle de versions Systèmes externes

Coût de création Coût de création

Maintenance Maintenance
Vesela Balev Maitrise des Grands Projets Informatiques
Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Coût relatif Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Coût relatif Grands Projets
Informatiques

Vesela Balev
Développement Production
Automatisation
des tests
Test KO Test KO Définition
Types
Automatisation des tests
et QA
Analyse de l’erreur Création d’un ticket

Réparation Analyse des logs et du récit


utilisateur

Test OK Reproduction

Réparation

Intégration

Mise en production
Vesela Balev Maitrise des Grands Projets Informatiques
Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Happiness Factor Grands Projets
Informatiques
I Utilisateurs finaux : Vesela Balev
I Moins de problèmes d’utilisation ⇒ peuvent se
Automatisation
concentrer sur leur métier. des tests
Définition
I Équipe de développement : Types
Automatisation des tests
et QA
I Moins de temps passé en réparation.
I Plus de temps pour le développement de nouvelles

fonctionnalités.
I Moins de stress et de déception.
I Augmente la compréhension du système.
I Augmente la confiance.

I Facilite les changements.

I Organisation :
I Réduction du coût.
I Amélioration de la réputation / fiabilité de l’entreprise.
I Diminution du turnover.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Implémentation Grands Projets
Informatiques

Vesela Balev
L’automatisation des tests introduit des coûts initiaux liés
à: Automatisation
des tests
I Formation / remise à niveau de l’équipe de Définition
Types

développement. Automatisation des tests


et QA

I Hardware.
I Licences software ou OS.
I Diminution de la productivité pendant les phases de
développement.
I Augmentation de "time to market" des premières
releases.
⇒ L’automatisation des tests est un investissement à long
terme.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Long terme vs court terme Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Test unitaire Grands Projets
Informatiques

Vesela Balev
En programmation informatique, le test unitaire (unit test)
Automatisation
ou test de composants est une procédure permettant de des tests
Définition
vérifier le bon fonctionnement d’une partie précise d’un Types
Automatisation des tests
logiciel ou d’une portion d’un programme (appelée unité et QA

ou module).

Caractéristiques :
I Détaillé ;
I Focalisé ;
I Généralement rapide à exécuter ;
I Facile à obtenir une grande couverture de tests.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Exemple Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Unité Grands Projets
Informatiques

Vesela Balev

Automatisation
Selon Martin Fowler : des tests
https://martinfowler.com/bliki/UnitTest.html Définition
Types
Automatisation des tests
. . . it’s a situational thing - the team decides what makes et QA

sense to be a unit for the purposes of their understanding


of the system and its testing.

Nous parlons aussi d’unité de comportement (unit of


behavior). L’équipe définit les unités de comportement
par rapport au contexte et chaque unités est testée en
isolation des autres unités.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Test d’intégration Grands Projets
Informatiques

Vesela Balev

En programmation informatique, le test d’intégration Automatisation


des tests
(integration test) est une procédure permettant Définition
Types
d’assembler plusieurs modules du système et de tester Automatisation des tests
et QA
leur comportement ensemble.

Généralement si le code testé utilise des dépendances


externes, le test est considéré comme un test
d’intégration, pas comme un test unitaire. Les
dépendances externes sont le plus souvent : l’utilisation
d’une base de données, de fichiers externes, d’API
externes, etc.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Test d’intégration Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Caractéristiques : Définition
Types

I Beaucoup moins détaillé que les tests unitaires ; Automatisation des tests
et QA

I Orienté "travailler ensemble" ;


I Plus lent à exécuter surtout si beaucoup de
dépendances externes ;
I Difficile à obtenir une grande couverture de tests, car
beaucoup plus de possibilités.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Exemple Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Test fonctionnel d’interface utilisateur Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
En programmation informatique, le test fonctionnel Définition
Types

d’interface utilisateur ou test de bout en bout (functional Automatisation des tests


et QA

UI test or full stack test) est une procédure permettant de


tester le système dans son ensemble.

Attention : dans ce type de test nous ne testons pas le


"look and feel" des interfaces utilisateur, uniquement leur
fonctionnalités.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Test fonctionnel d’interface utilisateur Grands Projets
Informatiques
Caractéristiques :
Vesela Balev
I Nous testons des scénarios d’utilisation de A à Z ;
Automatisation
I Orienté "utilisateur final" ; des tests
Définition

I Le plus lent à exécuter ; Types


Automatisation des tests
et QA
I Plus difficile à obtenir une grande couverture de
tests ;
I Potentiellement très fragile, le plus petit changement
dans l’interface utilisateur peut provoquer
l’invalidation du test.
I Le plus difficile à automatiser.

Dans beaucoup de cas les organisations préfèrent laisser


ce type de tests en manuel et tester en même temps
l’ergonomie.
Vesela Balev Maitrise des Grands Projets Informatiques
Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Couverture Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types

La profondeur est la capacité d’un type de tests d’entrer Automatisation des tests
et QA

"dans les détails".

L’étendue est la capacité d’un type de tests de tester une


large gamme de fonctionnalités de l’application.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Couverture Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Phases logiques Grands Projets
Informatiques

Vesela Balev
La méthode AAA est le test pattern le plus largement
Automatisation
utilisé en automatisation de tests. Il consiste à séparer le des tests
Définition
code de test en 3 parties : Types
Automatisation des tests

I Arrange : mise en place de la configuration et QA

nécessaire : l’initialisation des objets nécessaires, la


configuration des simulateurs, l’initialisation des
données de tests, etc.
I Act : exécution du test, on "déroule" le scénario de
test pour avoir une réponse.
I Assert : vérification, on compare la réponse obtenue
dans la phase précédente avec la réponse attendue.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Mocks Grands Projets
Informatiques
Les mocks (stubs, fakes, test doubles) sont des objets
Vesela Balev
permettant de simuler un objet réel de façon contrôlée. Il
permet généralement de gagner de temps lors du Automatisation
des tests
développement et de l’exécution du test, d’optimiser la Définition

couverture du test et d’augmenter la fiabilité des tests : Types


Automatisation des tests
et QA
I pour simuler une base de données, un service web, etc.,
les interactions entre l’application et ces outils prennent
du temps, l’utilisation de mock pour simuler leurs
fonctionnements peut être un gain de temps considérable ;
I certains cas d’erreurs sont très difficile à reproduire,
l’utilisation de mock permet de simuler une erreur pour
pouvoir traiter ce cas et donc améliorer la couverture de
code, par exemple le catch d’une exception ;
I sans l’utilisation de mock, le test peut retourner une erreur
ne provenant pas du code qui est testé (par exemple une
base de données).
Vesela Balev Maitrise des Grands Projets Informatiques
Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Data-driven testing Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests

Data-driven testing est une technique qui utilise une et QA

source de données d’entrée et de résultats attendus. Le


programme de test "lit" les données en entrée, exécute le
test et compare avec le résultat attendu.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Data-driven testing Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Data-driven testing Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Combien de tests de chaque type Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Combien de tests de chaque type Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Définition
Types
Automatisation des tests
et QA

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Bon test automatique Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
I Isolé, pas d’effets (indésirables) sur les autres tests. Définition
Types
Automatisation des tests
I Indépendant, les tests peuvent être exécutés dans et QA

n’importe quel ordre.


I Répétable, dans les mêmes conditions donne
toujours le même résultat.
I Maintenable, facile à changer.
I De valeur, vérifie et garantit la qualité requise.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Automatisation de tests Grands Projets
Informatiques

Vesela Balev

Automatisation
Le tests automatisés ne peuvent pas remplacer les des tests
tests manuels. Définition
Types
Automatisation des tests
et QA

Pour complimenter les tests automatiques, les experts


QA exécutent des tests manuels, qui sont souvent des
tests des interfaces utilisateurs, mais pas seulement, ils
peuvent vérifier les données dans les bases de données,
les logs, etc. Si le système est bien couvert avec des
tests automatiques les experts QA peuvent utiliser les
tests d’exploration.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Exploratory testing Grands Projets
Informatiques

Vesela Balev

Automatisation
des tests
Selon Cem Kaner : Définition
Types
http://www.kaner.com/pdfs/QAIExploring.pdf Automatisation des tests
et QA

A style of software testing that emphasizes the personal


freedom and responsibility of the individual tester to
continually optimize the quality of his/her work by treating
test-related learning, test design, test execution, and test
result interpretation as mutually supportive activities that
run in parallel throughout the project.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Exploratory testing Grands Projets
Informatiques

Vesela Balev

I Explorer et enquêter. Automatisation


des tests
I Comprendre et apprendre sur le produit. Définition
Types

I Cas d’utilisation différents y compris en mode Automatisation des tests


et QA

dégradé.
I Signaler les exigences manquantes ou les bugs
probables.
I Recherchez des résultats prévisibles et
imprévisibles.
I L’expérience passée guide les futurs tests (plutôt que
le script de test rigide).

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Exploratory testing Grands Projets
Informatiques

Vesela Balev

Avantages : Automatisation
des tests
I Moins de travail à l’avance requis. Définition
Types
I Intellectuellement stimulant. Automatisation des tests
et QA

I Des idées pour de futures fonctionnalités.

Mais attention, c’est une approche :


I Disciplinée.
I Pas "random".
I Qui donne beaucoup de liberté, mais exige
beaucoup de responsabilités.

Vesela Balev Maitrise des Grands Projets Informatiques


Définition
Automatisation des tests Types
Automatisation des tests et QA

Maitrise des
Automatisation et QA Grands Projets
Informatiques

Vesela Balev

Impliquez les experts QA pour aider à : Automatisation


des tests
I analyser les besoins ; Définition
Types
Automatisation des tests
I identifier des exigences manquantes ou des et QA

difficultés potentielles de test ;


I définir les critères d’acceptation ;
I faire du pair programming avec les développeurs lors
de l’écriture des tests automatisés ;
I identifier des tests et des données de test
manquants.

Vesela Balev Maitrise des Grands Projets Informatiques