Avis d'expert : Les Tests Logiciels

CloudNetCare
CloudNetCareCloudNetCare
1
Les tests logiciels
Comment mettre en place un processus de
« tests en continu » en ligne avec son usine logicielle ?
© 2015 nLiive. Tous droits réservés
2
© 2015 nLiive. Tous droits réservés
Table des matières
3.	 Quelques Familiarités
4.	 Pas d’intégration continue fiable
sans « test en continu »
5.	 Les différentes typologies de
test
6.	 Le cycle du « test en continu »
7.	 Les tests unitaires : Tests au
niveau du code
8.	 Les tests d’intégration
9.	 Les tests fonctionnels : Tests au
niveau des composants métiers
10.	 Les tests d’UI : Tests au niveau
de l’interface graphique
11.	 La différence entre tests
unitaires et tests fonctionnels 1
12.	 La différence entre tests
unitaires et tests fonctionnels 2
13.	 Les tests de performance
14.	 Les tests de charge
15.	 Combien ça coûte ?
16.	 Le bug informatique le plus cher
de l’histoire !
17.	 La supervision applicative 1
18.	 La supervision applicative 2
19.	 Signature
3
© 2015 nLiive. Tous droits réservés
Quelques familiarités !
«  Avant, ça marchait ce bouton ; pourquoi ça
marche plus maintenant ?! »
« Mais, vous l’aviez pas corrigé ce bug-là ? Je ne
comprends pas ; plus vous codez, moins l’appli
fonctionne ?! »
La régression et les bugs sont catastrophiques
pour un projet, non seulement pour le temps
perdu à corriger, mais surtout pour l’image de
marque vis-à-vis de l’utilisateur final… Prenez-
les devants !
4
© 2015 nLiive. Tous droits réservés
L’intégration continue se répand dans la plupart
des organisations aujourd’hui. Les usines
logicielles, qui permettent l’évolution constante
des applicatifs, automatisent
l’intégration de chaque builds
et leur mise en production. Les
tests logiciels doivent s’adapter
et s’intégrer à ces « usines  »
afin d’assurer la qualité et
l’efficacité de ce processus.
C’est pourquoi nous parlons
de «  tests  en  continu  » ou
« continuous testing ».
Le «  continuous testing  » est le
fait d’automatiser et orchestrer
l’ensemble des tests logiciels à
tous les niveaux, on parle alors de
« Sofware Quality Assurance ».
La mise en place d’une couverture de tests
performante est un exercice complexe qui
nécessite d’être pris en compte le plus tôt possible.
Pas d’intégration continue fiable
sans « tests en continu »
5
© 2015 nLiive. Tous droits réservés
La détection des bugs et des régressions peut avoir lieu à tous les niveaux et pour chaque type
de test :
Test « boite blanche » : une boîte blanche (White Box) est un module d’un système dont on peut
prévoir le fonctionnement interne car on connaît les caractéristiques de fonctionnement de
l’ensemble des éléments qui le composent. Autrement dit une boîte blanche est un module qui
comporte aussi peu de boîtes noires que possible.
Test « boite noire » : une boîte noire (Black Box) est un module d’un système dont on ne connait
pas le fonctionnement interne.
Les différentes typologies de test
*Plus généralement catégorisés dans « tests fonctionnels » au sens large
6
© 2015 nLiive. Tous droits réservés
Le cycle du « test en continu »
7
© 2015 nLiive. Tous droits réservés
Les tests unitaires :
Tests au niveau du code
•	 Qu’est-ce que c’est ?
Les tests unitaires ont pour objectif de valider
le code des composants de l’application. Ils ne
font pas appel aux bases de données (Mock).
•	 Comment sont-ils réalisés ?
Les tests unitaires sont écrits par les
développeurs. Ils sont réalisés avec des
frameworks de tests et sont inclus dans
l’environnement de développement
(IDE – Eclipse/Visual Studio/etc.).
Ils doivent :
»» Etre lancés le plus souvent possible,
idéalement à chaque build
»» Etre indépendants de l’environnement de
production et reproductibles (utilisation de
frameworks de Mock)
Aucune erreur ne doit être détectée avant de
synchroniser le code source : l’intégrité du build
est la priorité absolue.
Les parties-prenantes :
»» Développeurs
8
© 2015 nLiive. Tous droits réservés
Les tests d’intégration
•	 Qu’est-ce que c’est ?
Les tests d’intégrations permettent de valider
que l’ensemble des modules développés
séparément interagissent correctement au sein
d’une solution.
Lors d’un déploiement sur un environnement
de « Staging* », ils garantissent l’intégration des
modules entres eux.
*Staging : un environnement de Staging est
un environnement idéalement identique à
l’environnement de Production (ISO-PROD)
mise en place pour des fins de tests (également
souvent nommé PRE-PROD/INTEGRATION/
TEST/etc.)
•	 Comment sont-ils réalisés ?
Les tests d’intégration sont écrits par
des personnes techniques en charge de
l’architecture de production.
Les parties-prenantes :
»» Développeurs
»» Architectes techniques
9
© 2015 nLiive. Tous droits réservés
Les tests fonctionnels :
Tests au niveau des composants métiers
•	 Qu’est-ce que c’est ?
Ils permettent de s’assurer que l’application
répond aux spécifications fonctionnelles et ce
en toutes circonstances.
•	 Comment sont-ils réalisés ?
Les tests fonctionnels sont écrits par des
personnes proches du métier de l’application.
Ils sont réalisés grâce à des outils «  non-
techniques », en dehors de l’environnement de
développement.
Ils peuvent être faits directement au niveau des
composants métiers (sans solliciter l’interface
utilisateur) ou peuvent être réalisés dans
l’interface utilisateurs et seront alors couplés
avec les tests d’UI (User Interface).
Les parties-prenantes :
»» Equipe QA (Quality Assurance)
»» Equipe métiers
10
© 2015 nLiive. Tous droits réservés
Les tests d’UI :
Tests au niveau de l’interface graphique
•	 Qu’est-ce que c’est ?
Les tests d’UI sont effectués via l’interface
utilisateur et permettent de tester toute la
chaine d’interaction.
•	 Comment sont-ils réalisés ?
Comme les tests fonctionnels, les tests d’UI sont
écrits par des personnes proches du métier de
l’application.
Ils sont réalisés dans le contexte final
d’exécution (réel navigateur web) par des outils
pilotant la souris et le clavier.
Ce sont les tests les plus efficaces pour détecter
les régressions.
Les parties-prenantes :
»» Equipe QA (Quality Assurance)
»» Equipe métiers
»» Expert UX (User Experience)
11
© 2015 nLiive. Tous droits réservés
La différence entre tests unitaires et tests fonctionnels 1
Il est primordial de bien différencier les tests unitaires des tests fonctionnels :
»» Les tests unitaires ciblent les composants un à un et ne font pas intervenir de jeux de
données en bases de données
»» Les tests fonctionnels ciblent le système complet, intégrant l’utilisation de jeux de données en
bases de données
12
© 2015 nLiive. Tous droits réservés
La différence entre tests unitaires et tests fonctionnels 2
PL = Presentation Layer
BLL = Business Logic Layer
DAL = Data Access Layer
13
© 2015 nLiive. Tous droits réservés
Les tests de performance
•	 Qu’est-ce que c’est ?
Les tests de performance permettent de
mesurer individuellement les temps de réponse
des composants du système dans un contexte
d’usage normal.
Par exemple, dans un contexte Web, ce test
permet de mesurer les temps de réponse
des interactions utilisateur et de détecter les
ralentissements éventuels entre les versions.
Si l’on souhaite étendre les mesures de
performance au contexte particulier d’un grand
nombre d’utilisateurs simultanés, on parle alors
de test de charge.
Les parties-prenantes :
»» Equipe QA (Quality Assurance)
»» Equipe métiers
»» Expert UX (User Experience)
14
© 2015 nLiive. Tous droits réservés
Les tests de montée en charge (TMC)
•	 Qu’est-ce que c’est ?
Les tests de charge sont des tests de
performance particuliers où l’objectif est de
solliciter le système en charge.
Dans un contexte web, ce test va créer un
nombre d’utilisateurs prédéfinis afin de valider
la performance et la fiabilité de l’application lors
d’un pic d’affluence.
Il existe deux types de tests de charge :
»» L’injecteur de requêtes http, qui stresse le
serveur dans un environnement simulé
»» Le pilotage de réels navigateurs web
(Chrome, IE, Firefox), qui reproduit
l’ensemble du contexte et est beaucoup plus
fiable
Les parties-prenantes :
»» Equipe QA (Quality Assurance)
»» Equipe métiers
»» Expert UX (User Experience)
15
© 2015 nLiive. Tous droits réservés
Combien ça coute ?
La détection des bugs et leur correction est une
des activités les plus chères pour les équipes de
développement.
L’amélioration des processus de test se traduit
directement par une réduction de coût global et surtout
une meilleure image auprès des utilisateurs.
Par ce que le coût des tests représente entre 30% et
40% des coûts de développement, l’amélioration des
pratiques est un enjeu majeur.
La mise en place d’un processus de « tests en continu »
est une réponse possible et efficace.
Elle permet :
»» La réduction du temps de recette pour les équipes de
développement
»» La réduction des coûts de correction
»» L’amélioration de l’image pour les utilisateurs finaux
Dans le domaine du Web, des outils innovants arrivent
et simplifient grandement sa mise en place et son
utilisation au quotidien.
16
© 2015 nLiive. Tous droits réservés
Le bug informatique le plus cher de l’histoire !
Ariane 5, vol 501, le 4 juin 1996 :
La fusée s’est brisée et a explosé en vol, 40
secondes après le décollage…
Le système de navigation, utilisé depuis
longtemps sur Ariane 4, étant réputé fiable, le
CNES a demandé de ne pas faire de tests pour
Ariane 5, et ainsi économiser 100 000$ ...
Finalement ce sont 370 millions qui partent en
fumée !
17
© 2015 nLiive. Tous droits réservés
La supervision applicative 1
La mise en place d’un processus de
«  continuous  testing  » vise à fiabiliser les
« mises en production », mais le cycle de contrôle de
la qualité ne s’arrête pas pour autant. Il est vital de
surveiller en permanence l’applicatif une fois déployé
en production et c’est ici qu’intervient la Supervision
Applicative.
•	 Qu’est-ce que c’est ?
La Supervision Applicative (monitoring actif) est
le fait de lancer continuellement des tests de
parcours utilisateur pour s’assurer de la fiabilité de
l’application en production.
Par opposition à l’utilisation de tags inclus dans les pages du site déclenchés par les internautes
réels (monitoring passif – analytics), la supervision applicative permet de détecter des problèmes
avant que des internautes réels ne les découvrent.
Toutes les mesures étant effectuées dans un contexte identique (même source géographique,
même opérateur, même navigateur, même ordinateur source), elle permet de mesurer de
manière fiable toutes les variations de comportement du site et donc d’anticiper les mesures à
prendre.
18
© 2015 nLiive. Tous droits réservés
La supervision applicative 2
La supervision applicative valide le point de vue
de l’utilisateur final et il est donc primordial de
superviser l’application à l’aide de véritables
navigateurs afin de reproduire un contexte réel.
Ceci inclut la surveillance des requêtes externes
vers les « services tiers » (tags analytics, réseaux
sociaux, modules de paiement, Publicités, etc.).
L’impact des services tiers sur la performance
globale d’un site web en production peut être
très significatif et il est important de bien
monitorer tous les liens externes.
•	 Comment est-elle réalisée ?
A la différence des autres tests détaillés en
amont, la supervision applicative est gérée par
les équipes de production.
Les tests sont lancés directement sur
l’application dans son environnement de
production, et permettent aux équipes métiers
de maîtriser l’expérience utilisateur en continu.
Les parties-prenantes :
»» Equipe de production
»» Expert UX (User Experience)
»» Marketing
19
© 2015 nLiive. Tous droits réservés
Conclusion
La mise en place d’une réelle stratégie d’assurance qualité logicielle (Software Quality Assurance)
inclus non seulement la mise en place d’un processus de « continuous testing », mais également
un contrôle permanent de l’applicatif une fois déployé en production avec la mise en place d’une
solution de supervision applicative complémentaire.
20
© 2015 nLiive. Tous droits réservés
Jean-Baptiste Marcé
Plus de 20 ans d’expérience et d’expertise
dans la conception et l’industrialisation de
développement logiciel.
De formation Ingénieur INSA (également
titulaire d’un Master 2), il a débuté sa carrière
à la DGA puis a évolué chez différents éditeurs
de logiciels (domaine de la santé, Webagencies,
e-business) où il a tenu successivement les
fonctions de chef de projet, d’architecte
technique et de directeur technique. Il a vécu
plus de 7 ans en Allemagne et a une véritable
ouverture sur l’international.
Véritable concepteur d’architectures complexes
évolutives et garant du cycle de vie des logiciels,
il a tissé un réseau professionnel conséquent.
1 sur 20

Recommandé

Présentation Tests Fonctionnels par
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests FonctionnelsDATANYWARE.com
13.7K vues9 diapositives
Automatisation des tests - objectifs et concepts - partie 2 par
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
2.4K vues48 diapositives
ISTQB Test Process par
ISTQB Test ProcessISTQB Test Process
ISTQB Test ProcessHoangThiHien1
8.3K vues25 diapositives
Qa analyst training par
Qa analyst training Qa analyst training
Qa analyst training Dinesh Pokhrel
332 vues63 diapositives
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL par
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFLINTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFL
INTRODUCTION TO ISTQB FOUNDATION LEVEL - CTFLRahul R Pandya
1.4K vues25 diapositives
ISTQB - What's testing par
ISTQB - What's testingISTQB - What's testing
ISTQB - What's testingHoangThiHien1
1.2K vues26 diapositives

Contenu connexe

Tendances

Chapter 5 - Test Management par
Chapter 5 - Test ManagementChapter 5 - Test Management
Chapter 5 - Test ManagementNeeraj Kumar Singh
6.5K vues42 diapositives
Difference between functional testing and non functional testing par
Difference between functional testing and non functional testingDifference between functional testing and non functional testing
Difference between functional testing and non functional testingpooja deshmukh
1.3K vues10 diapositives
ISTQB Foundation Level Basic par
ISTQB Foundation Level BasicISTQB Foundation Level Basic
ISTQB Foundation Level BasicSelin Gungor
2.9K vues17 diapositives
Principes de L'intégration Continue par
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration ContinueXavier Warzee
4.5K vues30 diapositives
Agile QA and Testing process par
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
1K vues13 diapositives
Software Testing Life Cycle – A Beginner’s Guide par
Software Testing Life Cycle – A Beginner’s GuideSoftware Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSyed Hassan Raza
288 vues22 diapositives

Tendances(20)

Difference between functional testing and non functional testing par pooja deshmukh
Difference between functional testing and non functional testingDifference between functional testing and non functional testing
Difference between functional testing and non functional testing
pooja deshmukh1.3K vues
ISTQB Foundation Level Basic par Selin Gungor
ISTQB Foundation Level BasicISTQB Foundation Level Basic
ISTQB Foundation Level Basic
Selin Gungor2.9K vues
Principes de L'intégration Continue par Xavier Warzee
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration Continue
Xavier Warzee4.5K vues
Software Testing Life Cycle – A Beginner’s Guide par Syed Hassan Raza
Software Testing Life Cycle – A Beginner’s GuideSoftware Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s Guide
Syed Hassan Raza288 vues
Non-functional Testing (NFT) Overview par Assaf Halperin
Non-functional Testing (NFT) Overview Non-functional Testing (NFT) Overview
Non-functional Testing (NFT) Overview
Assaf Halperin5.4K vues
Test unitaire par IsenDev
Test unitaireTest unitaire
Test unitaire
IsenDev4.2K vues
ISTQB Test level, Test type par HoangThiHien1
ISTQB Test level, Test typeISTQB Test level, Test type
ISTQB Test level, Test type
HoangThiHien13.3K vues
automation testing benefits par nazeer pasha
automation testing benefitsautomation testing benefits
automation testing benefits
nazeer pasha6.7K vues
Chapter 4 - Quality Characteristics for Technical Testing par Neeraj Kumar Singh
Chapter 4 - Quality Characteristics for Technical TestingChapter 4 - Quality Characteristics for Technical Testing
Chapter 4 - Quality Characteristics for Technical Testing
Test Automation Strategies For Agile par Naresh Jain
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
Naresh Jain54K vues
발표자료 1인qa로살아남는6가지방법 par SangIn Choung
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
SangIn Choung5.9K vues

En vedette

objective C par
objective Cobjective C
objective CSlimen Belhaj Ali
902 vues57 diapositives
Allons plus loin avec Selenium par
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec SeleniumSOAT
1.3K vues31 diapositives
Cas Client Bouygues Telecom - CloudNetCare par
Cas Client Bouygues Telecom - CloudNetCareCas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCloudNetCare
556 vues2 diapositives
C'est en testant, que l'on va de l'avant" par
C'est en testant, que l'on va de l'avant"C'est en testant, que l'on va de l'avant"
C'est en testant, que l'on va de l'avant"LE ROUZIC Stéphanie
1.2K vues48 diapositives
FPGA Camp - Aldec Presentation par
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Central
884 vues17 diapositives
Offre Audit et Test De Performance par
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De PerformanceCabinet Openi
1.2K vues9 diapositives

En vedette(20)

Allons plus loin avec Selenium par SOAT
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
SOAT1.3K vues
Cas Client Bouygues Telecom - CloudNetCare par CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCare
CloudNetCare556 vues
FPGA Camp - Aldec Presentation par FPGA Central
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec Presentation
FPGA Central884 vues
Offre Audit et Test De Performance par Cabinet Openi
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De Performance
Cabinet Openi1.2K vues
Introduction to NI, LabVIEW, ELVIS and Planet NI par slemoslideshare
Introduction to NI, LabVIEW, ELVIS and Planet NIIntroduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NI
slemoslideshare2.3K vues
Dot Net performance monitoring par Kranthi Paidi
 Dot Net performance monitoring Dot Net performance monitoring
Dot Net performance monitoring
Kranthi Paidi8.2K vues
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010 par Claude Falguiere
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Claude Falguiere3.8K vues
Softshake 2015 - Comment tester et optimiser la performance d'un SI ? par cyrilpicat
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
cyrilpicat1K vues
Clustering Java applications with Terracotta and Hazelcast par b0ris_1
Clustering Java applications with Terracotta and HazelcastClustering Java applications with Terracotta and Hazelcast
Clustering Java applications with Terracotta and Hazelcast
b0ris_17.9K vues
[PFE] Master en ingénierie du logiciel par USTHB & DELTALOG
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
USTHB & DELTALOG7.5K vues
Performance serveur et apache par afup Paris
Performance serveur et apachePerformance serveur et apache
Performance serveur et apache
afup Paris2.5K vues
Measuring Web Performance - HighEdWeb Edition par Dave Olsen
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
Dave Olsen6.9K vues
Automatisation des tests par Zhu Wei QI
Automatisation des testsAutomatisation des tests
Automatisation des tests
Zhu Wei QI8.5K vues
Test de logiciels par Bilel Abed
Test de logiciels Test de logiciels
Test de logiciels
Bilel Abed8.1K vues

Similaire à Avis d'expert : Les Tests Logiciels

Test unitaires par
Test unitairesTest unitaires
Test unitairesMohamed Akrouh
366 vues51 diapositives
qualité logicielle (8).pdf par
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdfNoamHaythem
7 vues11 diapositives
Concept de l’Intégration Continue par
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
2.4K vues17 diapositives
Comment construire son laboratoire de tests mobiles avec HP Mobile Center par
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterGuillaume Deshayes
973 vues51 diapositives
Conformiq par
ConformiqConformiq
ConformiqSoukaina Boujadi
479 vues49 diapositives
Industrialisation des développements logiciels par
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
1.9K vues74 diapositives

Similaire à Avis d'expert : Les Tests Logiciels(20)

qualité logicielle (8).pdf par NoamHaythem
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdf
NoamHaythem7 vues
Comment construire son laboratoire de tests mobiles avec HP Mobile Center par Guillaume Deshayes
Comment construire son laboratoire de tests mobiles avec HP Mobile CenterComment construire son laboratoire de tests mobiles avec HP Mobile Center
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
Industrialisation des développements logiciels par Sylvain Leroy
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy1.9K vues
[Agile Testing Day] Test & Métiers par Cellenza
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
Cellenza447 vues
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile par Denis Voituron
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Denis Voituron1.5K vues
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss... par Sébastien Levert
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
qualimétrie logiciel - Entreprise Software Analytic - nov 2015 par Julien Vq
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
Julien Vq1.4K vues
Présentation DEVOPS_Mauritanie.pptx par ZALIMAZA
Présentation DEVOPS_Mauritanie.pptxPrésentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptx
ZALIMAZA3 vues
Présentation DEVOPS-Majeur.pptx par ZALIMAZA
Présentation DEVOPS-Majeur.pptxPrésentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptx
ZALIMAZA12 vues
Présentation DEVOPSS.pptx par ZALIMAZA
Présentation DEVOPSS.pptxPrésentation DEVOPSS.pptx
Présentation DEVOPSS.pptx
ZALIMAZA15 vues
Présentation DEVOPS_.pptx par ZALIMAZA
Présentation DEVOPS_.pptxPrésentation DEVOPS_.pptx
Présentation DEVOPS_.pptx
ZALIMAZA17 vues
Présentation DEVOPS_Black.pptx par ZALIMAZA
Présentation DEVOPS_Black.pptxPrésentation DEVOPS_Black.pptx
Présentation DEVOPS_Black.pptx
ZALIMAZA4 vues
Présentation DEVOPS_hyper.pptx par ZALIMAZA
Présentation DEVOPS_hyper.pptxPrésentation DEVOPS_hyper.pptx
Présentation DEVOPS_hyper.pptx
ZALIMAZA5 vues

Avis d'expert : Les Tests Logiciels

  • 1. 1 Les tests logiciels Comment mettre en place un processus de « tests en continu » en ligne avec son usine logicielle ? © 2015 nLiive. Tous droits réservés
  • 2. 2 © 2015 nLiive. Tous droits réservés Table des matières 3. Quelques Familiarités 4. Pas d’intégration continue fiable sans « test en continu » 5. Les différentes typologies de test 6. Le cycle du « test en continu » 7. Les tests unitaires : Tests au niveau du code 8. Les tests d’intégration 9. Les tests fonctionnels : Tests au niveau des composants métiers 10. Les tests d’UI : Tests au niveau de l’interface graphique 11. La différence entre tests unitaires et tests fonctionnels 1 12. La différence entre tests unitaires et tests fonctionnels 2 13. Les tests de performance 14. Les tests de charge 15. Combien ça coûte ? 16. Le bug informatique le plus cher de l’histoire ! 17. La supervision applicative 1 18. La supervision applicative 2 19. Signature
  • 3. 3 © 2015 nLiive. Tous droits réservés Quelques familiarités ! «  Avant, ça marchait ce bouton ; pourquoi ça marche plus maintenant ?! » « Mais, vous l’aviez pas corrigé ce bug-là ? Je ne comprends pas ; plus vous codez, moins l’appli fonctionne ?! » La régression et les bugs sont catastrophiques pour un projet, non seulement pour le temps perdu à corriger, mais surtout pour l’image de marque vis-à-vis de l’utilisateur final… Prenez- les devants !
  • 4. 4 © 2015 nLiive. Tous droits réservés L’intégration continue se répand dans la plupart des organisations aujourd’hui. Les usines logicielles, qui permettent l’évolution constante des applicatifs, automatisent l’intégration de chaque builds et leur mise en production. Les tests logiciels doivent s’adapter et s’intégrer à ces « usines  » afin d’assurer la qualité et l’efficacité de ce processus. C’est pourquoi nous parlons de «  tests  en  continu  » ou « continuous testing ». Le «  continuous testing  » est le fait d’automatiser et orchestrer l’ensemble des tests logiciels à tous les niveaux, on parle alors de « Sofware Quality Assurance ». La mise en place d’une couverture de tests performante est un exercice complexe qui nécessite d’être pris en compte le plus tôt possible. Pas d’intégration continue fiable sans « tests en continu »
  • 5. 5 © 2015 nLiive. Tous droits réservés La détection des bugs et des régressions peut avoir lieu à tous les niveaux et pour chaque type de test : Test « boite blanche » : une boîte blanche (White Box) est un module d’un système dont on peut prévoir le fonctionnement interne car on connaît les caractéristiques de fonctionnement de l’ensemble des éléments qui le composent. Autrement dit une boîte blanche est un module qui comporte aussi peu de boîtes noires que possible. Test « boite noire » : une boîte noire (Black Box) est un module d’un système dont on ne connait pas le fonctionnement interne. Les différentes typologies de test *Plus généralement catégorisés dans « tests fonctionnels » au sens large
  • 6. 6 © 2015 nLiive. Tous droits réservés Le cycle du « test en continu »
  • 7. 7 © 2015 nLiive. Tous droits réservés Les tests unitaires : Tests au niveau du code • Qu’est-ce que c’est ? Les tests unitaires ont pour objectif de valider le code des composants de l’application. Ils ne font pas appel aux bases de données (Mock). • Comment sont-ils réalisés ? Les tests unitaires sont écrits par les développeurs. Ils sont réalisés avec des frameworks de tests et sont inclus dans l’environnement de développement (IDE – Eclipse/Visual Studio/etc.). Ils doivent : »» Etre lancés le plus souvent possible, idéalement à chaque build »» Etre indépendants de l’environnement de production et reproductibles (utilisation de frameworks de Mock) Aucune erreur ne doit être détectée avant de synchroniser le code source : l’intégrité du build est la priorité absolue. Les parties-prenantes : »» Développeurs
  • 8. 8 © 2015 nLiive. Tous droits réservés Les tests d’intégration • Qu’est-ce que c’est ? Les tests d’intégrations permettent de valider que l’ensemble des modules développés séparément interagissent correctement au sein d’une solution. Lors d’un déploiement sur un environnement de « Staging* », ils garantissent l’intégration des modules entres eux. *Staging : un environnement de Staging est un environnement idéalement identique à l’environnement de Production (ISO-PROD) mise en place pour des fins de tests (également souvent nommé PRE-PROD/INTEGRATION/ TEST/etc.) • Comment sont-ils réalisés ? Les tests d’intégration sont écrits par des personnes techniques en charge de l’architecture de production. Les parties-prenantes : »» Développeurs »» Architectes techniques
  • 9. 9 © 2015 nLiive. Tous droits réservés Les tests fonctionnels : Tests au niveau des composants métiers • Qu’est-ce que c’est ? Ils permettent de s’assurer que l’application répond aux spécifications fonctionnelles et ce en toutes circonstances. • Comment sont-ils réalisés ? Les tests fonctionnels sont écrits par des personnes proches du métier de l’application. Ils sont réalisés grâce à des outils «  non- techniques », en dehors de l’environnement de développement. Ils peuvent être faits directement au niveau des composants métiers (sans solliciter l’interface utilisateur) ou peuvent être réalisés dans l’interface utilisateurs et seront alors couplés avec les tests d’UI (User Interface). Les parties-prenantes : »» Equipe QA (Quality Assurance) »» Equipe métiers
  • 10. 10 © 2015 nLiive. Tous droits réservés Les tests d’UI : Tests au niveau de l’interface graphique • Qu’est-ce que c’est ? Les tests d’UI sont effectués via l’interface utilisateur et permettent de tester toute la chaine d’interaction. • Comment sont-ils réalisés ? Comme les tests fonctionnels, les tests d’UI sont écrits par des personnes proches du métier de l’application. Ils sont réalisés dans le contexte final d’exécution (réel navigateur web) par des outils pilotant la souris et le clavier. Ce sont les tests les plus efficaces pour détecter les régressions. Les parties-prenantes : »» Equipe QA (Quality Assurance) »» Equipe métiers »» Expert UX (User Experience)
  • 11. 11 © 2015 nLiive. Tous droits réservés La différence entre tests unitaires et tests fonctionnels 1 Il est primordial de bien différencier les tests unitaires des tests fonctionnels : »» Les tests unitaires ciblent les composants un à un et ne font pas intervenir de jeux de données en bases de données »» Les tests fonctionnels ciblent le système complet, intégrant l’utilisation de jeux de données en bases de données
  • 12. 12 © 2015 nLiive. Tous droits réservés La différence entre tests unitaires et tests fonctionnels 2 PL = Presentation Layer BLL = Business Logic Layer DAL = Data Access Layer
  • 13. 13 © 2015 nLiive. Tous droits réservés Les tests de performance • Qu’est-ce que c’est ? Les tests de performance permettent de mesurer individuellement les temps de réponse des composants du système dans un contexte d’usage normal. Par exemple, dans un contexte Web, ce test permet de mesurer les temps de réponse des interactions utilisateur et de détecter les ralentissements éventuels entre les versions. Si l’on souhaite étendre les mesures de performance au contexte particulier d’un grand nombre d’utilisateurs simultanés, on parle alors de test de charge. Les parties-prenantes : »» Equipe QA (Quality Assurance) »» Equipe métiers »» Expert UX (User Experience)
  • 14. 14 © 2015 nLiive. Tous droits réservés Les tests de montée en charge (TMC) • Qu’est-ce que c’est ? Les tests de charge sont des tests de performance particuliers où l’objectif est de solliciter le système en charge. Dans un contexte web, ce test va créer un nombre d’utilisateurs prédéfinis afin de valider la performance et la fiabilité de l’application lors d’un pic d’affluence. Il existe deux types de tests de charge : »» L’injecteur de requêtes http, qui stresse le serveur dans un environnement simulé »» Le pilotage de réels navigateurs web (Chrome, IE, Firefox), qui reproduit l’ensemble du contexte et est beaucoup plus fiable Les parties-prenantes : »» Equipe QA (Quality Assurance) »» Equipe métiers »» Expert UX (User Experience)
  • 15. 15 © 2015 nLiive. Tous droits réservés Combien ça coute ? La détection des bugs et leur correction est une des activités les plus chères pour les équipes de développement. L’amélioration des processus de test se traduit directement par une réduction de coût global et surtout une meilleure image auprès des utilisateurs. Par ce que le coût des tests représente entre 30% et 40% des coûts de développement, l’amélioration des pratiques est un enjeu majeur. La mise en place d’un processus de « tests en continu » est une réponse possible et efficace. Elle permet : »» La réduction du temps de recette pour les équipes de développement »» La réduction des coûts de correction »» L’amélioration de l’image pour les utilisateurs finaux Dans le domaine du Web, des outils innovants arrivent et simplifient grandement sa mise en place et son utilisation au quotidien.
  • 16. 16 © 2015 nLiive. Tous droits réservés Le bug informatique le plus cher de l’histoire ! Ariane 5, vol 501, le 4 juin 1996 : La fusée s’est brisée et a explosé en vol, 40 secondes après le décollage… Le système de navigation, utilisé depuis longtemps sur Ariane 4, étant réputé fiable, le CNES a demandé de ne pas faire de tests pour Ariane 5, et ainsi économiser 100 000$ ... Finalement ce sont 370 millions qui partent en fumée !
  • 17. 17 © 2015 nLiive. Tous droits réservés La supervision applicative 1 La mise en place d’un processus de «  continuous  testing  » vise à fiabiliser les « mises en production », mais le cycle de contrôle de la qualité ne s’arrête pas pour autant. Il est vital de surveiller en permanence l’applicatif une fois déployé en production et c’est ici qu’intervient la Supervision Applicative. • Qu’est-ce que c’est ? La Supervision Applicative (monitoring actif) est le fait de lancer continuellement des tests de parcours utilisateur pour s’assurer de la fiabilité de l’application en production. Par opposition à l’utilisation de tags inclus dans les pages du site déclenchés par les internautes réels (monitoring passif – analytics), la supervision applicative permet de détecter des problèmes avant que des internautes réels ne les découvrent. Toutes les mesures étant effectuées dans un contexte identique (même source géographique, même opérateur, même navigateur, même ordinateur source), elle permet de mesurer de manière fiable toutes les variations de comportement du site et donc d’anticiper les mesures à prendre.
  • 18. 18 © 2015 nLiive. Tous droits réservés La supervision applicative 2 La supervision applicative valide le point de vue de l’utilisateur final et il est donc primordial de superviser l’application à l’aide de véritables navigateurs afin de reproduire un contexte réel. Ceci inclut la surveillance des requêtes externes vers les « services tiers » (tags analytics, réseaux sociaux, modules de paiement, Publicités, etc.). L’impact des services tiers sur la performance globale d’un site web en production peut être très significatif et il est important de bien monitorer tous les liens externes. • Comment est-elle réalisée ? A la différence des autres tests détaillés en amont, la supervision applicative est gérée par les équipes de production. Les tests sont lancés directement sur l’application dans son environnement de production, et permettent aux équipes métiers de maîtriser l’expérience utilisateur en continu. Les parties-prenantes : »» Equipe de production »» Expert UX (User Experience) »» Marketing
  • 19. 19 © 2015 nLiive. Tous droits réservés Conclusion La mise en place d’une réelle stratégie d’assurance qualité logicielle (Software Quality Assurance) inclus non seulement la mise en place d’un processus de « continuous testing », mais également un contrôle permanent de l’applicatif une fois déployé en production avec la mise en place d’une solution de supervision applicative complémentaire.
  • 20. 20 © 2015 nLiive. Tous droits réservés Jean-Baptiste Marcé Plus de 20 ans d’expérience et d’expertise dans la conception et l’industrialisation de développement logiciel. De formation Ingénieur INSA (également titulaire d’un Master 2), il a débuté sa carrière à la DGA puis a évolué chez différents éditeurs de logiciels (domaine de la santé, Webagencies, e-business) où il a tenu successivement les fonctions de chef de projet, d’architecte technique et de directeur technique. Il a vécu plus de 7 ans en Allemagne et a une véritable ouverture sur l’international. Véritable concepteur d’architectures complexes évolutives et garant du cycle de vie des logiciels, il a tissé un réseau professionnel conséquent.