SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
Le role du testeur et le
black Box testing
Les héros méconnus du développement informatique
Par Brice Mattivi
À propos de moi…
• Ingénieur civil physicien de
l’ULiège
• Chercheur à l’ULiège
• Expert audio chez IPTrade
• Test manager (responsable du
“QTAC”) chez IPTrade
• Test & Interop Manager chez
British Telecom
Brice Mattivi
Plan de la
présentation
• Le testing
• La mentalité du testeur
• Techniques de tests (White Box, Black Box,
exploratory testing, unit testing…)
• Les outils du testeur
• Testing automatique vs Testing manuel
• Organisation
• Le mot de la fin
Le Testing
Définition, différentes tâches et rôles liés au testing
Que sont les
tests logiciels
Les tests logiciels sont un moyen
1. D'évaluer la qualité du logiciel
2. De réduire le risque de défaillance
de ce logiciel en cours de
fonctionnement
Objectifs
habituels des
tests
• Vérifier si toutes les exigences
spécifiées ont été satisfaites
• Prévenir des défauts
• Trouver des défaillances et défauts
• Obtenir une idée claire de la qualité de
l’objet testé
• Réduire le niveau de risque d'une
qualité logicielle inadéquate (p. ex. des
défaillances non détectées auparavant
se produisant en opération)
• Se conformer aux exigences ou aux
normes contractuelles, légales ou de
sécurité
Activités habituelles des équipes de tests
Analyse de spécifications
(Logical Test Plan)
Écriture de Tests Plan
Activités habituelles des équipes de tests
Tests fonctionnels
Tests d’intégration
Tests d’Interopérabilité
Tests de charge et performance
Activités habituelles des équipes de tests
Programmation/scripting
de tests automatiques
(fonctionnels/BB, les tests unitaires
sont faits par les programmeurs)
Revalidation de bugs
Vrai ou
faux?
❑ Testing et debugging sont synonymes
❑ Il est préférable de lancer les activités
de tests lorsque les activités de coding
sont terminées
❑ Le testing est parfois dénommé QA
❑ Un testeur professionnel est un
programmeur frustré ou un
développeur incapable de coder
❑ Il est préférable que le testeur ne
connaisse pas préalablement le
système, de telle sorte qu’il teste avec
l’esprit vierge.
F
F
V
F
V et F
Debugging vs
Testing
Les tests mettent en évidence des
défaillances qui sont dues à des défauts
dans le code.
Le debugging est l'activité de
développement qui trouve, analyse et
corrige les défauts.
Quand tester?
V Model
QA vs QC
• QA: Quality Assurance, s’occupe des
procédures.
• Le testing: Contrôle Qualité (QC), ne
vérifie pas les procédures, seulement
le résultat final
QA = QC: Abus de langage courant
• Une profession relativement récente
(ISTQB créé en 2002)
• Le testeur aime découvrir de nouvelles
choses et trouver la faille.
• Un développeur aime trouver des
solutions et concevoir/construire son code.
Testeur: un métier à part entière
Les rôles dans
une équipe de
testing
• Test manager
• Analyste
• Testeur
• Développeur (tests autos ou tools)
La mentalité du testeur
Comment
devient-on
testeur?
Souvent par
hasard
Peu de
vocation de
départ pour la
profession de
testeur. Mais
quand on y
prend goût...
Pas de formation en Testing en Belgique
intégrée à un cursus
Mais le testeur dispose généralement
• D’un profond intérêt pour l’informatique,
la technologie et la logique
• D’une formation dans les domaines de
la techno (bachelier en informatique,
ingénieur…)
• De beaucoup de rigueur et d’une
profonde envie d’explorer et de
comprendre
Une certification (exemple ISTQB) est un
plus, mais généralement acquise “en
cours de route”
L’état d’esprit
du testeur
• Le pessimisme professionnel
• Le goût de l’exploration
• La fiabilité
• Il représente l’utilisateur final au sein du
R&D
Le pessimisme
professionnel
• Le testeur sait qu’il y a des problèmes et
les cherche
• La loi de Murphy est son guide
• Combien de bugs restent dans le
système? Encore au moins un!
Le goût de
l’exploration
• Connaissance du système = réduction
des faux positifs
• Système en perpétuelle evolution
• Exploratory testing
La fiabilité
Un bon testeur doit toujours vérifier
plusieurs fois ce qu’il avance, car:
• Il est le garant de l’évaluation de la
qualité au sein du R&D
• Sa crédibilité personnelle est en jeu
Métrique intéressante: pourcentage
d’invalide
La psychologie
• Testeur: trouver un bug = excellente
nouvelle
• Programmeur: avoir “codé” un bug =
très mauvaise nouvelle.
Le représentant
du client au
sein du R&D
• Doit penser comme le client
• Garant de l’expérience utilisateur
• Gestionnaire de la priorité des bugs
Techniques de tests
7 principes
1. Les tests montrent la présence de
défauts, par leur absence
2. Les tests exhaustifs sont impossibles
3. Tester tôt économise du temps et de
l’argent
4. Regroupement des défauts
5. Paradoxe du pesticide
6. Les tests dépendent du contexte
7. L’absence d’erreurs est une illusion
Tests
fonctionnels vs
non-fonctionnels
• Fonctionnels: Tester ce que le
système fait (les fonctionnalités)
• Non-Fonctionnels: Tester comment
le système se comporte:
Performance,usabilité,sécurité…
White Box
Testing et tests
unitaires
• Basés sur les structures internes d’un
système.
• Généralement: tests effectués par les
programmeurs
• Exemple: tests unitaires où l’on identifie
les différents chemins d’exécution du
code.
Black Box
Testing
• Le black box testing consiste à tester
un code compilé en connaissant ses
spécifications
• Le black box testing n’a que faire des
mécaniques internes
• Exemples de techniques: partition,
valeurs limites, table de décision
Tests statiques
vs dynamiques
• Statiques: Inspection de code, de
documentation, de test plan, de
spécifications
• Dynamiques: Repose sur l’exécution du
code.
Le cas
particulier de
l’exploratory
testing
• Tests basés sur l’expérience du testeur
• Difficultés: consigné ce qui a été fait,
reproduire les scénarii fautifs
• Nécessite un testeur confirmé
Les régressions • Le cauchemar du testeur
• Le cauchemar du client
Les tests de
non-régression
• Tests autos (tests unitaires, tests
fonctionnels)
• Tests manuels avec un bon config
management
Les “exit criteria”
• Répondent à la question: quand faut-il
arrêter la phase de tests
• Nécessaire, car on peut toujours trouver
de nouveaux bugs
• Permettent de caractériser le niveau de
qualité requis
Exemples
d’exit criteria
• Date de sortie de release (aaargh)
• Couverture des tests
• Nombre de bugs trouvés dans les
dernières x semaines
• Criticité des bugs trouvés à la fin d’une
campagne de tests
Les outils du testeur
Bug Tracking
system
• Jira
• Bugzilla
• Mantis
• …
Test
management
system
• Test Link
• Zephyr
• TestRail
• …
Continuous
integration
• Jenkins
• TeamCity
• Bamboo
• …
Automatic
Testing
• Selenium (Web)
• Squish (UI, QT)
• …
Testing manuel vs Testing automatique
Le Testing automatique • Avantages
• Inconvénients
Quand
automatiser?
• Zone du système qui bouge peu (P1 des
tests de non-régression).
• Tests unitaires
• Tests de performance
• Tests de charge
Quand utiliser
des tests
manuels
• Nouvelles features
• Tests de régression “touchy”
• Partout où la flexibilité est importante
Paradoxe du pesticide: les tests
automatiques finissent par montrer de
moins en moins d’efficacité. L’humain
est plus flexible.
Organisation
Cinq types
d’organisation
• Développeurs/Testeurs
• Manager/Testeur
• Testeur au sein d’une équipe de Dev
• Équipe de Test semi-indépendante
• Équipe de Test indépendante
Développeurs/
Testeurs
• Au moins deux développeurs
• Un développeur ne joue jamais le rôle
de testeur pour son propre travail
• Le développeur teste bien entendu son
travail via les tests unitaires
CTO
Dev1 Dev2
CTO
Dev1 Dev2
Développeurs/
Testeurs
+ Organisation facile à mettre en place
- Switch de mentalité nécessaire
- Risque de ne pas accorder aux tests
l’importance requise
Manager/Tester
• Le management s’assure de la qualité
du produit
• Le CTO, un Product Manager voire un
Project Manager prend le rôle
CTO
Dev1 Dev2
Manager/Tester
+ Point de vue extérieur au
développement
+ Peu de risque de biais (quoique, pour le
CTO…)
- Manque de temps pour tester
- Risque de manque d’envie et/ou de
méthode pour la tâche.
Testeur au
sein d’une
équipe de
programmeurs
• Testeur = Un développeur pas comme
les autres (le gardien de but au foot)
• Peut dépendre du chef d’équipe de la
cellule de développement
• Peut aussi dépendre d’un test manager
et être détaché dans la cellule de
développement
CTO
Dev1 Dev2 Dev3 Tester
Team
Leader
1
Dev1.1 Dev1.2 Dev1.3
Tester
1
CTO
Test
Manag
er
Team
Leader
2
Dev2.1 Dev2.2 Dev2.3Tester
2
Testeur au
sein d’une
équipe de
programmeurs
+ Le testeur est intégré dans l’équipe et
perçu comme un allié.
+ Très bonne connaissance du produit
pour le testeur par “transpiration”
- Influence forte des développeurs
- Délicat à mettre en place pour de
grosses équipes
Une équipe de
test
indépendante
dans le dev
• Plusieurs testeurs en équipe sous la
direction d’un test manager
• Le test manager et d’autres
responsables de développement
(architecte, chefs d’équipe) dépendent
d’une même personne (typiquement, le
CTO)
Team
Leader
Dev1 Dev2 Dev3
CTO
Test
Manag
er
Dev4
Tester
1
Tester
2
Une équipe de
test
indépendante
intégrée au
dev
+ Bonne connaissance du produit pour les
testeurs
+ L’autorité commune peut highlighter le
fait que le test est important auprès des
équipes de dev
- Influence du CTO sur le test.
- L’équipe de test peut être perçue comme
un ennemi par les autres développeurs.
Une équipe de
test hors de la
structure de
dev
• L’équipe de test dépend d’un test
manager qui dépend d’un quality
manager
• Les testeurs peuvent travailler dans des
bâtiments séparés et/ou être des
consultants externes
Team
Leader
1
Dev1.1 Dev1.2 Dev1.3
CTO
Team
Leader
2
Dev2.1 Dev2.2 Dev2.3
Quality
Manag
er
Test
Manag
er
Tester
2
Tester
1
Tester
3
Une équipe de
test hors de la
structure de
dev
+ Complète indépendance.
+ Vraie possibilité de “bloquer une release”
par exemple
- Mauvaise communication avec les
développeurs
- Cellule de test perçue comme un ennemi
ou un mal (non-) nécessaire
- Connaissance du produit plus difficile à
acquérir par les testeurs
Le mot de la fin
Grâce aux testeurs professionnels,
les développeurs n’ont plus besoin
de tester leur code. V/F?
Faux
“La qualité est l’affaire
de tous”
Le rôle du testeur et le Blackbox testing

Contenu connexe

Tendances

Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxStrategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxNicolas Fédou
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineGeeks Anonymes
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitairesPHPPRO
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test Imen Turki
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de testsSabrine MASTOURA
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17Marc Hage Chahine
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...TelecomValley
 
Field research and interaction design: course #6
Field research and interaction design: course #6Field research and interaction design: course #6
Field research and interaction design: course #6nicolas nova
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)LeClubQualiteLogicielle
 
Présentation Tests Fonctionnels
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests FonctionnelsDATANYWARE.com
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logicielSylvain Leroy
 
Présentation Agile Testing
Présentation Agile TestingPrésentation Agile Testing
Présentation Agile Testingjubehr
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Sylvain Leroy
 
Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?Gilles Brieux
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 

Tendances (20)

Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeauxStrategie de test à agile tour bordeaux
Strategie de test à agile tour bordeaux
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Qualité logiciel - Generalités
Qualité logiciel - GeneralitésQualité logiciel - Generalités
Qualité logiciel - Generalités
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitaires
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de tests
 
Test logiciel
Test logicielTest logiciel
Test logiciel
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
 
Field research and interaction design: course #6
Field research and interaction design: course #6Field research and interaction design: course #6
Field research and interaction design: course #6
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
 
Présentation Tests Fonctionnels
Présentation Tests FonctionnelsPrésentation Tests Fonctionnels
Présentation Tests Fonctionnels
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logiciel
 
Présentation Agile Testing
Présentation Agile TestingPrésentation Agile Testing
Présentation Agile Testing
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)
 
Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?Le test dans un cycle agile. Comment faire ?
Le test dans un cycle agile. Comment faire ?
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 

Similaire à Le rôle du testeur et le Blackbox testing

20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_allCARA_Lyon
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsAgile Tour 2009 Québec
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testablemartinsson
 
test_logiciel_rappel_Master1_Université_JKZ.pptx
test_logiciel_rappel_Master1_Université_JKZ.pptxtest_logiciel_rappel_Master1_Université_JKZ.pptx
test_logiciel_rappel_Master1_Université_JKZ.pptxEnochBidima3
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !Lucian Precup
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdfmido04
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciellauraty3204
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 
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
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...TelecomValley
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgileAgile Tour 2009 Québec
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agilelaurent bristiel
 
Le test dans un cycle agile comment faire ?
Le test dans un cycle agile comment faire ?Le test dans un cycle agile comment faire ?
Le test dans un cycle agile comment faire ?Aurelie ROBERT
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221Frédéric Delorme
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 

Similaire à Le rôle du testeur et le Blackbox testing (20)

20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all20110519 cara tests_agiles_grenoble_all
20110519 cara tests_agiles_grenoble_all
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succès
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testable
 
test_logiciel_rappel_Master1_Université_JKZ.pptx
test_logiciel_rappel_Master1_Université_JKZ.pptxtest_logiciel_rappel_Master1_Université_JKZ.pptx
test_logiciel_rappel_Master1_Université_JKZ.pptx
 
La revue de code : facile !
La revue de code : facile !La revue de code : facile !
La revue de code : facile !
 
formation istqb.pdf
formation istqb.pdfformation istqb.pdf
formation istqb.pdf
 
13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel13-Cours de Géniel Logiciel
13-Cours de Géniel Logiciel
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
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
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes Agile
 
Développement en méthode agile
Développement en méthode agileDéveloppement en méthode agile
Développement en méthode agile
 
Le test dans un cycle agile comment faire ?
Le test dans un cycle agile comment faire ?Le test dans un cycle agile comment faire ?
Le test dans un cycle agile comment faire ?
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 

Plus de Geeks Anonymes

Programmer sous Unreal Engine
Programmer sous Unreal EngineProgrammer sous Unreal Engine
Programmer sous Unreal EngineGeeks Anonymes
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesGeeks Anonymes
 
Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Geeks Anonymes
 
Reprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesReprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesGeeks Anonymes
 
Geeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes
 
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 Vulnérabilités au cœur des applications Web, menaces et contre-mesures Vulnérabilités au cœur des applications Web, menaces et contre-mesures
Vulnérabilités au cœur des applications Web, menaces et contre-mesuresGeeks Anonymes
 
191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materiellesGeeks Anonymes
 
"Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité "Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité Geeks Anonymes
 
Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Geeks Anonymes
 
Intelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleIntelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleGeeks Anonymes
 
Pour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoPour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoGeeks Anonymes
 
Become Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceBecome Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceGeeks Anonymes
 
Reconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueReconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueGeeks Anonymes
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language ProcessingGeeks Anonymes
 
Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Geeks Anonymes
 

Plus de Geeks Anonymes (20)

Programmer sous Unreal Engine
Programmer sous Unreal EngineProgrammer sous Unreal Engine
Programmer sous Unreal Engine
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexes
 
Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)
 
Reprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesReprendre le contrôle de ses données
Reprendre le contrôle de ses données
 
Geeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes - Le langage Go
Geeks Anonymes - Le langage Go
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 Vulnérabilités au cœur des applications Web, menaces et contre-mesures Vulnérabilités au cœur des applications Web, menaces et contre-mesures
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 
191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles
 
"Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité "Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité
 
Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...
 
Le langage rust
Le langage rustLe langage rust
Le langage rust
 
Test your code
Test your codeTest your code
Test your code
 
Intelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleIntelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelle
 
Pour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoPour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu video
 
Become Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceBecome Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open Source
 
Reconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueReconnaissance vocale et création artistique
Reconnaissance vocale et création artistique
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur
 
Modern sql
Modern sqlModern sql
Modern sql
 
Qt
QtQt
Qt
 

Le rôle du testeur et le Blackbox testing

  • 1. Le role du testeur et le black Box testing Les héros méconnus du développement informatique Par Brice Mattivi
  • 2. À propos de moi…
  • 3. • Ingénieur civil physicien de l’ULiège • Chercheur à l’ULiège • Expert audio chez IPTrade • Test manager (responsable du “QTAC”) chez IPTrade • Test & Interop Manager chez British Telecom Brice Mattivi
  • 4. Plan de la présentation • Le testing • La mentalité du testeur • Techniques de tests (White Box, Black Box, exploratory testing, unit testing…) • Les outils du testeur • Testing automatique vs Testing manuel • Organisation • Le mot de la fin
  • 5. Le Testing Définition, différentes tâches et rôles liés au testing
  • 6. Que sont les tests logiciels Les tests logiciels sont un moyen 1. D'évaluer la qualité du logiciel 2. De réduire le risque de défaillance de ce logiciel en cours de fonctionnement
  • 7. Objectifs habituels des tests • Vérifier si toutes les exigences spécifiées ont été satisfaites • Prévenir des défauts • Trouver des défaillances et défauts • Obtenir une idée claire de la qualité de l’objet testé • Réduire le niveau de risque d'une qualité logicielle inadéquate (p. ex. des défaillances non détectées auparavant se produisant en opération) • Se conformer aux exigences ou aux normes contractuelles, légales ou de sécurité
  • 8. Activités habituelles des équipes de tests Analyse de spécifications (Logical Test Plan) Écriture de Tests Plan
  • 9. Activités habituelles des équipes de tests Tests fonctionnels Tests d’intégration Tests d’Interopérabilité Tests de charge et performance
  • 10. Activités habituelles des équipes de tests Programmation/scripting de tests automatiques (fonctionnels/BB, les tests unitaires sont faits par les programmeurs) Revalidation de bugs
  • 11. Vrai ou faux? ❑ Testing et debugging sont synonymes ❑ Il est préférable de lancer les activités de tests lorsque les activités de coding sont terminées ❑ Le testing est parfois dénommé QA ❑ Un testeur professionnel est un programmeur frustré ou un développeur incapable de coder ❑ Il est préférable que le testeur ne connaisse pas préalablement le système, de telle sorte qu’il teste avec l’esprit vierge. F F V F V et F
  • 12. Debugging vs Testing Les tests mettent en évidence des défaillances qui sont dues à des défauts dans le code. Le debugging est l'activité de développement qui trouve, analyse et corrige les défauts.
  • 14. QA vs QC • QA: Quality Assurance, s’occupe des procédures. • Le testing: Contrôle Qualité (QC), ne vérifie pas les procédures, seulement le résultat final QA = QC: Abus de langage courant
  • 15. • Une profession relativement récente (ISTQB créé en 2002) • Le testeur aime découvrir de nouvelles choses et trouver la faille. • Un développeur aime trouver des solutions et concevoir/construire son code. Testeur: un métier à part entière
  • 16. Les rôles dans une équipe de testing • Test manager • Analyste • Testeur • Développeur (tests autos ou tools)
  • 17. La mentalité du testeur
  • 20. Peu de vocation de départ pour la profession de testeur. Mais quand on y prend goût... Pas de formation en Testing en Belgique intégrée à un cursus Mais le testeur dispose généralement • D’un profond intérêt pour l’informatique, la technologie et la logique • D’une formation dans les domaines de la techno (bachelier en informatique, ingénieur…) • De beaucoup de rigueur et d’une profonde envie d’explorer et de comprendre Une certification (exemple ISTQB) est un plus, mais généralement acquise “en cours de route”
  • 21. L’état d’esprit du testeur • Le pessimisme professionnel • Le goût de l’exploration • La fiabilité • Il représente l’utilisateur final au sein du R&D
  • 22. Le pessimisme professionnel • Le testeur sait qu’il y a des problèmes et les cherche • La loi de Murphy est son guide • Combien de bugs restent dans le système? Encore au moins un!
  • 23. Le goût de l’exploration • Connaissance du système = réduction des faux positifs • Système en perpétuelle evolution • Exploratory testing
  • 24. La fiabilité Un bon testeur doit toujours vérifier plusieurs fois ce qu’il avance, car: • Il est le garant de l’évaluation de la qualité au sein du R&D • Sa crédibilité personnelle est en jeu Métrique intéressante: pourcentage d’invalide
  • 25. La psychologie • Testeur: trouver un bug = excellente nouvelle • Programmeur: avoir “codé” un bug = très mauvaise nouvelle.
  • 26. Le représentant du client au sein du R&D • Doit penser comme le client • Garant de l’expérience utilisateur • Gestionnaire de la priorité des bugs
  • 28. 7 principes 1. Les tests montrent la présence de défauts, par leur absence 2. Les tests exhaustifs sont impossibles 3. Tester tôt économise du temps et de l’argent 4. Regroupement des défauts 5. Paradoxe du pesticide 6. Les tests dépendent du contexte 7. L’absence d’erreurs est une illusion
  • 29. Tests fonctionnels vs non-fonctionnels • Fonctionnels: Tester ce que le système fait (les fonctionnalités) • Non-Fonctionnels: Tester comment le système se comporte: Performance,usabilité,sécurité…
  • 30. White Box Testing et tests unitaires • Basés sur les structures internes d’un système. • Généralement: tests effectués par les programmeurs • Exemple: tests unitaires où l’on identifie les différents chemins d’exécution du code.
  • 31. Black Box Testing • Le black box testing consiste à tester un code compilé en connaissant ses spécifications • Le black box testing n’a que faire des mécaniques internes • Exemples de techniques: partition, valeurs limites, table de décision
  • 32. Tests statiques vs dynamiques • Statiques: Inspection de code, de documentation, de test plan, de spécifications • Dynamiques: Repose sur l’exécution du code.
  • 33. Le cas particulier de l’exploratory testing • Tests basés sur l’expérience du testeur • Difficultés: consigné ce qui a été fait, reproduire les scénarii fautifs • Nécessite un testeur confirmé
  • 34. Les régressions • Le cauchemar du testeur • Le cauchemar du client
  • 35. Les tests de non-régression • Tests autos (tests unitaires, tests fonctionnels) • Tests manuels avec un bon config management
  • 36. Les “exit criteria” • Répondent à la question: quand faut-il arrêter la phase de tests • Nécessaire, car on peut toujours trouver de nouveaux bugs • Permettent de caractériser le niveau de qualité requis
  • 37. Exemples d’exit criteria • Date de sortie de release (aaargh) • Couverture des tests • Nombre de bugs trouvés dans les dernières x semaines • Criticité des bugs trouvés à la fin d’une campagne de tests
  • 38. Les outils du testeur
  • 39. Bug Tracking system • Jira • Bugzilla • Mantis • …
  • 40. Test management system • Test Link • Zephyr • TestRail • …
  • 42. Automatic Testing • Selenium (Web) • Squish (UI, QT) • …
  • 43. Testing manuel vs Testing automatique
  • 44. Le Testing automatique • Avantages • Inconvénients
  • 45. Quand automatiser? • Zone du système qui bouge peu (P1 des tests de non-régression). • Tests unitaires • Tests de performance • Tests de charge
  • 46. Quand utiliser des tests manuels • Nouvelles features • Tests de régression “touchy” • Partout où la flexibilité est importante Paradoxe du pesticide: les tests automatiques finissent par montrer de moins en moins d’efficacité. L’humain est plus flexible.
  • 48. Cinq types d’organisation • Développeurs/Testeurs • Manager/Testeur • Testeur au sein d’une équipe de Dev • Équipe de Test semi-indépendante • Équipe de Test indépendante
  • 49. Développeurs/ Testeurs • Au moins deux développeurs • Un développeur ne joue jamais le rôle de testeur pour son propre travail • Le développeur teste bien entendu son travail via les tests unitaires
  • 51. Développeurs/ Testeurs + Organisation facile à mettre en place - Switch de mentalité nécessaire - Risque de ne pas accorder aux tests l’importance requise
  • 52. Manager/Tester • Le management s’assure de la qualité du produit • Le CTO, un Product Manager voire un Project Manager prend le rôle
  • 54. Manager/Tester + Point de vue extérieur au développement + Peu de risque de biais (quoique, pour le CTO…) - Manque de temps pour tester - Risque de manque d’envie et/ou de méthode pour la tâche.
  • 55. Testeur au sein d’une équipe de programmeurs • Testeur = Un développeur pas comme les autres (le gardien de but au foot) • Peut dépendre du chef d’équipe de la cellule de développement • Peut aussi dépendre d’un test manager et être détaché dans la cellule de développement
  • 56. CTO Dev1 Dev2 Dev3 Tester Team Leader 1 Dev1.1 Dev1.2 Dev1.3 Tester 1 CTO Test Manag er Team Leader 2 Dev2.1 Dev2.2 Dev2.3Tester 2
  • 57. Testeur au sein d’une équipe de programmeurs + Le testeur est intégré dans l’équipe et perçu comme un allié. + Très bonne connaissance du produit pour le testeur par “transpiration” - Influence forte des développeurs - Délicat à mettre en place pour de grosses équipes
  • 58. Une équipe de test indépendante dans le dev • Plusieurs testeurs en équipe sous la direction d’un test manager • Le test manager et d’autres responsables de développement (architecte, chefs d’équipe) dépendent d’une même personne (typiquement, le CTO)
  • 60. Une équipe de test indépendante intégrée au dev + Bonne connaissance du produit pour les testeurs + L’autorité commune peut highlighter le fait que le test est important auprès des équipes de dev - Influence du CTO sur le test. - L’équipe de test peut être perçue comme un ennemi par les autres développeurs.
  • 61. Une équipe de test hors de la structure de dev • L’équipe de test dépend d’un test manager qui dépend d’un quality manager • Les testeurs peuvent travailler dans des bâtiments séparés et/ou être des consultants externes
  • 62. Team Leader 1 Dev1.1 Dev1.2 Dev1.3 CTO Team Leader 2 Dev2.1 Dev2.2 Dev2.3 Quality Manag er Test Manag er Tester 2 Tester 1 Tester 3
  • 63. Une équipe de test hors de la structure de dev + Complète indépendance. + Vraie possibilité de “bloquer une release” par exemple - Mauvaise communication avec les développeurs - Cellule de test perçue comme un ennemi ou un mal (non-) nécessaire - Connaissance du produit plus difficile à acquérir par les testeurs
  • 64. Le mot de la fin
  • 65. Grâce aux testeurs professionnels, les développeurs n’ont plus besoin de tester leur code. V/F?
  • 66. Faux
  • 67. “La qualité est l’affaire de tous”