SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionTremeur Balbous
 
mon exposé fin d'etudes
mon exposé fin d'etudesmon exposé fin d'etudes
mon exposé fin d'etudesFiras Hajri
 
Web-formation | Les outils Lean sur la variabilité
Web-formation | Les outils Lean sur la variabilitéWeb-formation | Les outils Lean sur la variabilité
Web-formation | Les outils Lean sur la variabilitéXL Groupe
 
Guide amdec (très intéressant)
Guide amdec (très intéressant)Guide amdec (très intéressant)
Guide amdec (très intéressant)pascalbaudin
 
Découvrez la Value Stream Mapping (VSM)
Découvrez la Value Stream Mapping (VSM)Découvrez la Value Stream Mapping (VSM)
Découvrez la Value Stream Mapping (VSM)XL Groupe
 
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh finiRapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh finiHamza Mefteh
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisationNassim Amine
 
ingénierie inverse.pptx
ingénierie inverse.pptxingénierie inverse.pptx
ingénierie inverse.pptxSalemAlfarhani
 
Cours TPM.doc
Cours TPM.docCours TPM.doc
Cours TPM.docSou Tibon
 
Présentation Tests Fonctionnels
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests FonctionnelsDATANYWARE.com
 
Green, le jeu de l'environnement
Green, le jeu de l'environnementGreen, le jeu de l'environnement
Green, le jeu de l'environnementCIPE
 
Presentation Des MéTiers De La Mce (V2 )
Presentation Des MéTiers De La Mce  (V2 )Presentation Des MéTiers De La Mce  (V2 )
Presentation Des MéTiers De La Mce (V2 )youri59490
 

Tendances (20)

Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - Introduction
 
Api gemma
Api gemmaApi gemma
Api gemma
 
mon exposé fin d'etudes
mon exposé fin d'etudesmon exposé fin d'etudes
mon exposé fin d'etudes
 
Web-formation | Les outils Lean sur la variabilité
Web-formation | Les outils Lean sur la variabilitéWeb-formation | Les outils Lean sur la variabilité
Web-formation | Les outils Lean sur la variabilité
 
Ttup
TtupTtup
Ttup
 
Guide amdec (très intéressant)
Guide amdec (très intéressant)Guide amdec (très intéressant)
Guide amdec (très intéressant)
 
Cours uml
Cours umlCours uml
Cours uml
 
Introduction à Scrum
Introduction à ScrumIntroduction à Scrum
Introduction à Scrum
 
Découvrez la Value Stream Mapping (VSM)
Découvrez la Value Stream Mapping (VSM)Découvrez la Value Stream Mapping (VSM)
Découvrez la Value Stream Mapping (VSM)
 
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh finiRapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
Rapport PFE Ingénieurs - ULT-2016 - Hamza Mefteh fini
 
Exposé amdec
Exposé amdecExposé amdec
Exposé amdec
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
ingénierie inverse.pptx
ingénierie inverse.pptxingénierie inverse.pptx
ingénierie inverse.pptx
 
Scrum
ScrumScrum
Scrum
 
Cours TPM.doc
Cours TPM.docCours TPM.doc
Cours TPM.doc
 
Présentation Tests Fonctionnels
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests Fonctionnels
 
Auto diagnostic-1
Auto diagnostic-1Auto diagnostic-1
Auto diagnostic-1
 
Amdec
AmdecAmdec
Amdec
 
Green, le jeu de l'environnement
Green, le jeu de l'environnementGreen, le jeu de l'environnement
Green, le jeu de l'environnement
 
Presentation Des MéTiers De La Mce (V2 )
Presentation Des MéTiers De La Mce  (V2 )Presentation Des MéTiers De La Mce  (V2 )
Presentation Des MéTiers De La Mce (V2 )
 

En vedette

Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec SeleniumSOAT
 
Cas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCloudNetCare
 
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"
C'est en testant, que l'on va de l'avant"LE ROUZIC Stéphanie
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Central
 
Offre Audit et Test De Performance
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De PerformanceCabinet Openi
 
Introduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NIIntroduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NIslemoslideshare
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Claude Falguiere
 
Dot Net performance monitoring
 Dot Net performance monitoring Dot Net performance monitoring
Dot Net performance monitoringKranthi Paidi
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
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 2010Claude Falguiere
 
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 ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?cyrilpicat
 
Clustering Java applications with Terracotta and Hazelcast
Clustering Java applications with Terracotta and HazelcastClustering Java applications with Terracotta and Hazelcast
Clustering Java applications with Terracotta and Hazelcastb0ris_1
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logicielUSTHB & DELTALOG
 
Performance serveur et apache
Performance serveur et apachePerformance serveur et apache
Performance serveur et apacheafup Paris
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionDave Olsen
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels Bilel Abed
 

En vedette (20)

objective C
objective Cobjective C
objective C
 
Allons plus loin avec Selenium
Allons plus loin avec SeleniumAllons plus loin avec Selenium
Allons plus loin avec Selenium
 
Cas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCareCas Client Bouygues Telecom - CloudNetCare
Cas Client Bouygues Telecom - CloudNetCare
 
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"
C'est en testant, que l'on va de l'avant"
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec Presentation
 
Offre Audit et Test De Performance
Offre Audit et Test De PerformanceOffre Audit et Test De Performance
Offre Audit et Test De Performance
 
Introduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NIIntroduction to NI, LabVIEW, ELVIS and Planet NI
Introduction to NI, LabVIEW, ELVIS and Planet NI
 
LabView Workshop
LabView WorkshopLabView Workshop
LabView Workshop
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012
 
Dot Net performance monitoring
 Dot Net performance monitoring Dot Net performance monitoring
Dot Net performance monitoring
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
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
 
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 ?
Softshake 2015 - Comment tester et optimiser la performance d'un SI ?
 
Tests de performances
Tests de performancesTests de performances
Tests de performances
 
Clustering Java applications with Terracotta and Hazelcast
Clustering Java applications with Terracotta and HazelcastClustering Java applications with Terracotta and Hazelcast
Clustering Java applications with Terracotta and Hazelcast
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Performance serveur et apache
Performance serveur et apachePerformance serveur et apache
Performance serveur et apache
 
Measuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb EditionMeasuring Web Performance - HighEdWeb Edition
Measuring Web Performance - HighEdWeb Edition
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Indicadores de Desempenho na Conferência de Recebimento e Expedição
Indicadores de Desempenho na Conferência de Recebimento e ExpediçãoIndicadores de Desempenho na Conferência de Recebimento e Expedição
Indicadores de Desempenho na Conferência de Recebimento e Expedição
 
Planejamento de cenários I
Planejamento de cenários IPlanejamento de cenários I
Planejamento de cenários I
 

Similaire à Avis d'expert : Les Tests Logiciels

qualité logicielle (8).pdf
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdfNoamHaythem
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
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
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
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 AgileDenis Voituron
 
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...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...Sébastien Levert
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015Julien Vq
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Présentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptxPrésentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptxZALIMAZA
 
Présentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptxPrésentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptxZALIMAZA
 
Présentation DEVOPSS.pptx
Présentation DEVOPSS.pptxPrésentation DEVOPSS.pptx
Présentation DEVOPSS.pptxZALIMAZA
 
Présentation DEVOPS_.pptx
Présentation DEVOPS_.pptxPrésentation DEVOPS_.pptx
Présentation DEVOPS_.pptxZALIMAZA
 
Présentation DEVOPS_Black.pptx
Présentation DEVOPS_Black.pptxPrésentation DEVOPS_Black.pptx
Présentation DEVOPS_Black.pptxZALIMAZA
 
Présentation DEVOPS_hyper.pptx
Présentation DEVOPS_hyper.pptxPrésentation DEVOPS_hyper.pptx
Présentation DEVOPS_hyper.pptxZALIMAZA
 

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

Test unitaires
Test unitairesTest unitaires
Test unitaires
 
qualité logicielle (8).pdf
qualité logicielle (8).pdfqualité logicielle (8).pdf
qualité logicielle (8).pdf
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
Comment construire son laboratoire de tests mobiles avec HP Mobile Center
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
 
Conformiq
ConformiqConformiq
Conformiq
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
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
 
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...
SharePoint Summit 2012 - Les tests automatisés et SharePoint 2010, c'est poss...
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Présentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptxPrésentation DEVOPS_Mauritanie.pptx
Présentation DEVOPS_Mauritanie.pptx
 
Présentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptxPrésentation DEVOPS-Majeur.pptx
Présentation DEVOPS-Majeur.pptx
 
Présentation DEVOPSS.pptx
Présentation DEVOPSS.pptxPrésentation DEVOPSS.pptx
Présentation DEVOPSS.pptx
 
Présentation DEVOPS_.pptx
Présentation DEVOPS_.pptxPrésentation DEVOPS_.pptx
Présentation DEVOPS_.pptx
 
Présentation DEVOPS_Black.pptx
Présentation DEVOPS_Black.pptxPrésentation DEVOPS_Black.pptx
Présentation DEVOPS_Black.pptx
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Présentation DEVOPS_hyper.pptx
Présentation DEVOPS_hyper.pptxPrésentation DEVOPS_hyper.pptx
Présentation DEVOPS_hyper.pptx
 

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.