Fondamentaux de Test
Fondamentaux de Test
Fondamentaux de Test
t n
Se former autrement
pour une nouvelle génération d’ingénieurs
1
Tests et validation
❑ Introduction
❑ Chapitre 1 : Fondamentaux de Test
❑ Chapitre 2 : Test pendant le cycle de vie
❑ Chapitre 3 : Techniques statiques
❑ Chapitre 4 : Technique de conception des tests
❑ Chapitre 5 : Gestion des tests
❑ Chapitre 6 : Outils de support aux tests
❑ Laboratoire de tests
2
Plan
3
Que sont les tests?
➢ Un logiciel qui ne fonctionne pas correctement peut entraîner de
nombreux problèmes, y compris la perte d'argent, de temps ou
entacher la réputation de l'entreprise
➢ Les tests logiciels sont un moyen d'évaluer la qualité du logiciel et de
réduire le risque de défaillance de ce logiciel en cours de
fonctionnement.
➢ Perception habituelle :
➢ Consistent uniquement en l’exécution de tests
➢ Exécuter le logiciel, est une partie des tests, mais pas l’ensemble des activités de test.
➢ Le processus de test comprend également des activités telles que la
planification des tests, l'analyse, la conception et la mise en œuvre
des tests, le suivi de la progression et des résultats des tests.
➢ Test statique et test dynamique :
➢ Contrairement au test dynamique, qui exige l’exécution du logiciel, les techniques de
tests statiques reposent sur l’examen manuel (revues) ou l’analyse(analyse statique)
du code ou de la documentation du projet sans exécution du code.
➢ Les tests dynamiques et les tests statiques peuvent être utilisés comme des moyens
pour atteindre des objectifs similaires, et fourniront des informations permettant
l’amélioration du système à tester et des processus de développement et de test.
4
Que sont les tests?
6
Que sont les tests?
➢ Tester et déboguer :
Tester et déboguer sont différents. Les tests dynamiques peuvent montrer des
défaillances causées par des défauts. Déboguer est l’activité de développement
qui trouve, analyse et supprime les causes de la défaillance. Les tests de
confirmation ultérieurs effectués par un testeur assurent que la correction résout
effectivement la défaillance. La responsabilité de chaque activité est différente :
les testeurs testent, les développeurs déboguent.
7
Pourquoi Tester ?
➢ Contribution des tests au succès
➢ La participation des testeurs à la revue des exigences ou au raffinement
des User Stories pourrait permettre de détecter des défauts dans ces
produits d’activités. L'identification et l'élimination des défauts dans les
exigences réduit le risque de développement de fonctionnalités
incorrectes ou non testables.
➢ Le fait que les testeurs travaillent en étroite collaboration avec les
concepteurs du système pendant la conception du système peut aider
chaque partie à mieux comprendre la conception et a façon de la tester.
Cette meilleure compréhension peut réduire le risque de défauts de fond
dans la conception et permettre d'identifier les tests à un stade précoce.
➢ Le fait que les testeurs travaillent en étroite collaboration avec les
développeurs pendant que le code est en cours de développement peut
augmenter la compréhension du code et de la façon de le tester par
chaque partie. Cette meilleure compréhension peut réduire le risque de
défauts dans le code et les tests.
➢ Le fait que les testeurs vérifient et valident le logiciel avant sa sortie
permet de détecter des défaillances qui auraient pu être manquées et aide
au processus d'élimination des défauts ayant causé les défaillances (c.-à-
d. le débogage). Cela augmente la probabilité que le logiciel réponde aux
besoins des parties prenantes et satisfasse les exigences. 8
Pourquoi Tester ?
9
Pourquoi Tester ?
➢ Erreurs, défauts et défaillances
➢ Un être humain peut faire une erreur
➢ Une erreur peut produire un défaut dans le code, dans un logiciel ou
un système, ou dans un document.
➢ Si un défaut dans du code est exécuté, le système n’effectuera pas ce
qu’il aurait dû faire (ou fera ce qu’il n’aurait pas dû faire), générant
une défaillance.
➢ Des défauts dans les logiciels, systèmes ou documents peuvent
générer des défaillances, mais tous les défauts ne le font pas.
10
Pourquoi Tester ?
11
Pourquoi Tester ?
➢ Avec l’aide des tests, il est possible de mesurer la qualité des logiciels en termes de
défauts trouvés, pour des caractéristiques et exigences tant fonctionnelles que non-
fonctionnelles (p.ex. fiabilité, utilisabilité, rentabilité, maintenabilité et portabilité).
➢ Les tests peuvent augmenter le niveau de confiance en la qualité d’un logiciel s’ils
trouvent peu ou pas de défauts. Un test conçu correctement et qui est exécuté sans
erreur réduit le niveau de risque général du système. Quand les tests trouvent des
défauts, la qualité du système logiciel s’accroît quand ces défauts sont corrigés.
Peut commettre
une erreur
(méprise)
13
Les 7 principes de test
Les tests montrent la présence de défauts
1
Les tests peuvent prouver la présence de défauts, mais ne peuvent en prouver l’absence.
Tester tôt
3 Être dans la prévention est le meilleur investissement.
Paradoxe du pesticide
5 Si les mêmes tests sont répétés de nombreuses fois, un système de tests évolue.
Implémentation et exécution
des tests
16
Le processus de test fondamental
17
Le processus de test fondamental
18
Le processus de test fondamental
• Implémentation et exécution des tests :
– Finaliser, développer et prioriser les cas de test (yc l’identification des données de test)
– Développer et prioriser les procédures de test, créer les données de test et,
éventuellement, préparer les harnais de test et écrire les scripts de tests automatiques
– Créer des suites de tests à partir des procédures de test pour une exécution rentable
des tests
– Vérifier que les environnements de tests ont été mis en place correctement
– Vérifier et mettre à jour la traçabilité bidirectionnelle entre les bases de test et les cas
de test
– Exécuter les procédures de test soit manuellement soit en utilisant des outils d’exécution
de tests, en suivant la séquence planifiée
– Consigner les résultats de l’exécution des tests et enregistrer les identités et versions des
logiciels en test, outils de test et testware
– Comparer les résultats actuels et les résultats attendus
– Signaler les divergences comme des incidents et les analyser de façon à établir leur
cause (p.ex. défaut dans le code, dans les données de test, dans la documentation de
test, ou méprise dans la manière d’exécuter le test)
– Répéter les activités de test en réponse aux actions prises pour chaque divergence. Par
exemple, réexécution d’un test qui était préalablement défaillant de façon à valider une
correction (test de confirmation), exécution d’un test corrigé et/ou exécution de tests de
façon à s’assurer que des défauts n’ont pas été introduits dans des secteurs non modifiés
du logiciel ou que le défaut corrigé n’a pas découvert d’autres défauts (test de
régression) 19
Le processus de test fondamental
20
Le processus de test fondamental
• Activités de clôture des tests
– Vérifier quels livrables prévus ont été livrés
– Clôturer les rapports d’incidents ou créer des demandes
d’évolution pour ceux restant ouverts
– Documenter l’acceptation du système (PV d’acceptation)
– Finaliser et archiver les testwares, environnements de test et
infrastructures de test pour une réutilisation future
– Fournir les testwares à l’organisation en charge de la
maintenance
– Analyser les leçons apprises pour identifier les changements
nécessaires pour les versions et projets futurs
– Utiliser l’information collectée pour améliorer la maturité
des tests
21
Le processus de test fondamental
• Les produits d'activités du test sont créés dans le cadre
du processus de test et sont gérés à l'aide d'outils de
gestion des tests et d’outils de gestion des défauts.
– Exemple: plans de test, rapports d'avancement des tests, les
conditions de test définies et priorisées, cas de test, les
procédures de test et l’ordonnancement de ces procédures de
test, les suites de test, un calendrier d'exécution des tests, les
rapports de défauts …
• Il est important d'établir et de maintenir la traçabilité tout
au long du processus de test entre chaque élément des
bases de test et les divers produits d'activités du test
associés à cet élément puisque les produits d'activités du
test et les noms de ces produits varient considérablement.
22
Psychologie de test
Clôturer
24
Exercices
1. Lequel est visible pour l’utilisateur final comme écart
entre la spécification technique et le comportement
attendu ?
A. Une erreur
B. Une faute
C. Un défaut
D. Une défaillance
2. Que veut dire un test objectif ?
A. Les tests unitaires
B. Les tests systèmes
C. Un test indépendant
D. Un test destructif
25
Exercice
s
3. Lesquels de ces objectifs de test sont valides ?
1. Trouver les défauts
2. Avoir confiance dans le niveau de la qualité du logiciel
3. Identifier les causes des défauts
4. Prévenir les défauts
A. 1, 2 et 3
B. 2, 3 et 4
C. 1, 2 et 4
D. 1, 3 et 4
26
Exercice
s
4. Soit la liste suivante d’activités du processus de test :
1. Analyse et conception
2. Activités de clôture de test
3. Evaluer les critères de sortie et informer
4. Planification et contrôle
5. Implémentation et exécution
Dans quel ordre logique ces activités se déroulent ?
A. 1, 2 ,3 , 4 et 5
B. 4, 1, 5 , 3 et 2
C. 4, 5, 1, 3 et 2
D. 1, 4, 5, 3 et 2
27
Exercice
s
5. Lequel des énoncés suivants décrit un principe clé
des tests logiciels?
A. Les tests automatisés permet d’établir plus de confiance sur la
qualité des produits logiciels.
B. Pour un système de logiciel, il est normalement impossible de tester
toutes les combinaisons d'entrée et de sortie.
C. Le test logiciel exhaustif est, avec suffisamment d'efforts et le
soutien de l'outil, faisable pour tous les logiciels.
D. Le but du test de logiciel est de démontrer l'absence de défauts dans
les produits logiciels.
28
Exercice
s
6. Quels sont les défauts les moins couteux à corriger?
A. Les défauts utilisateurs trouvés par des consommateurs.
B. Les défauts trouvés dans les fonctionnalités du système rarement
utilisés.
C. Les défauts détectés tôt dans le cycle de vie.
D. Les défauts mineurs trouvés par les utilisateurs.
7. Lequel des problèmes ci-dessous représente une
conséquence directe des défaillances logicielles?
A. Mauvaise réputation.
B. Manque de méthodologie.
C. Formation inadéquate.
D. Conformité réglementaire.
29