Test Istqb
Test Istqb
Test Istqb
0
Résumé du Conseil international des qualifications pour les tests de
logiciels
Zied HANNACHI
1.1. Qu’est-ce que le test logiciel ?
• Le mauvais fonctionnement d’un logiciel peut entraîner de graves pertes financières, voire des risques de sécurité.
• Les tests logiciels sont un processus visant à rechercher des bogues et à améliorer la qualité d'un logiciel.
• Le processus de test vérifie non seulement si le logiciel fonctionne, mais également les besoins de
l'utilisateur.
• Les tests logiciels peuvent être dynamiques (exécution du logiciel) ou statiques (analyse et révision).
• Les testeurs utilisent non seulement des outils, mais aussi des compétences intellectuelles et
analytiques.
1.1.1. Cibles de test
Les objectifs des tests peuvent varier en fonction de facteurs tels que le produit testé, le niveau de test, les risques et le processus de développement logiciel suivi. De plus, des facteurs
commerciaux tels que la structure organisationnelle, les facteurs concurrentiels et les délais de mise sur le marché peuvent également affecter les objectifs de test.
1.1.2. Test et débogage de logiciels
• Les tests dynamiques peuvent déclencher des échecs causés par des bugs dans le
logiciel ou détecter directement des bugs.
• Les tests de confirmation sont de préférence effectués par la même personne qui a effectué
les tests initiaux.
• Les tests statiques s'occupent du débogage lorsqu'ils trouvent un bug et trouvent directement les bugs. Aucune reconstruction
ou diagnostic requis.
1.2. Pourquoi les tests logiciels sont-ils nécessaires ?
• Les défauts trouvés peuvent être corrigés pour contribuer à des objets
de test de meilleure qualité.
• Les tests logiciels sont également nécessaires pour répondre aux exigences contractuelles ou légales.
1.2.2. Tests et assurance qualité (AQ)
• Les tests sont une forme de contrôle qualité (CQ) et représentent une approche corrective axée sur le produit.
• Le contrôle de la qualité se concentre sur les activités qui contribuent à atteindre des niveaux de qualité appropriés.
• Les tests sont un élément important du contrôle qualité et peuvent inclure des méthodes formelles, la simulation et le prototypage.
• L’assurance qualité (AQ) est une approche préventive et axée sur les processus.
• L'assurance qualité se concentre sur la mise en œuvre et l'amélioration des processus, aboutissant à un bon produit.
• Il s'applique à la fois aux processus de développement et de test de logiciels et relève de la responsabilité de toutes les personnes participant au projet.
• Les résultats des tests sont utilisés dans les processus de contrôle qualité et d’assurance qualité.
• Bien que les résultats des tests soient utilisés pour corriger les erreurs au cours du processus de contrôle qualité, ils fournissent des informations sur les performances des
• Les gens font des erreurs, ce qui peut provoquer des bogues logiciels et éventuellement conduire à un échec.
• Des erreurs peuvent survenir pour de nombreuses raisons, notamment la pression du temps, la complexité de l'entreprise, les processus, l'infrastructure ou la communication.
• Des erreurs peuvent être trouvées dans la documentation, le code source ou le fichier de build.
• Les erreurs détectées au début des produits peuvent conduire à des produits défectueux dans les étapes ultérieures.
• Les erreurs humaines et logicielles ne sont pas les seules causes de dysfonctionnements ; Les conditions environnementales peuvent également l'affecter.
• La cause première est la principale raison pour laquelle un problème survient et est déterminée par l’analyse des causes profondes.
• L'élimination de la cause première garantit que des dysfonctionnements ou des erreurs similaires peuvent être évités ou réduits en
fréquence.
1.3. Principes de test
• Objectif de l'épreuve :Le but des tests est de montrer la présence de bugs dans le logiciel. Cependant, aucun test ne peut détecter tous les bugs dans
un logiciel ou prouver qu’il n’y a pas de bugs. Les tests réduisent la probabilité qu'il reste des bogues non découverts, mais ne garantissent pas une
absence totale de bogues.
• Test à 100 % impossible :Il n'est souvent pas possible de tester tous les éléments logiciels. Une plus grande efficacité peut être obtenue grâce aux tests en
utilisant des stratégies telles que des techniques de test, la priorisation des scénarios de test et une approche de test basée sur les risques.
• Tests précoces :La détection des erreurs dès les premières étapes permet d'économiser du temps et de l'argent. Les bogues détectés tôt
rendent le logiciel moins susceptible d'échouer dans les étapes ultérieures.
• Domaines où les erreurs se concentrent :Les erreurs trouvées sont généralement concentrées dans certains composants du système. Il s’agit d’un critère
important pour les tests basés sur les risques.
• Résistance aux antibiotiques:Au fur et à mesure que les mêmes tests sont répétés, l’efficacité de la recherche de nouveaux bugs diminue. Les tests et les
données de test devront peut-être être modifiés pour éviter cette situation.
• Les tests varient en fonction du contexte :Les tests varient en fonction du contexte et des conditions du projet. Il n’existe pas d’approche de test unique
universellement applicable.
• Idées fausses :Tester méticuleusement toutes les exigences et résoudre toutes les erreurs trouvées ne signifie pas que vous obtiendrez un logiciel
performant. Les tests servent uniquement à vérifier un n Cela devrait également inclure la garantie d’un bon ordre.
1.4. Activités de test, logiciels de test et rôles de test
• Les groupes généraux d'activités de test qui composent le processus de test augmentent la probabilité
• Le processus de test est déterminé en fonction de divers facteurs, et des sources telles que la
• Des aspects généraux tels que les activités et tâches de test, l'influence du contexte, le logiciel de test, la traçabilité entre la base de test et le logiciel de
test et les rôles de test sont décrits.
1.4.1. Activités et tâches de test
Le processus de test comprend généralement les principaux groupes d'activités suivants, et ces activités peuvent être répétées ou mises en œuvre en
parallèle :
1. Planification des tests: Détermination des cibles de test et choix du meilleur mode de transport.
2. Surveillance et contrôle des tests: Surveiller toutes les activités de test et comparer ce qui était prévu avec ce qui s'est passé.
3. Analyse des tests: Définir les fonctionnalités testables, déterminer et prioriser les conditions de tests.
4. Conception des tests: Détaillant les conditions de test sous forme de scénarios de test et d'autres logiciels de test.
5. Tester l'adaptation: Créer ou obtenir le logiciel de test nécessaire pour l'exécution du test.
6. Test du harnais: Exécution de tests selon le calendrier d'exécution des tests, manuellement ou automatiquement.
7. Achèvement des tests: Gestion des erreurs non résolues, fermeture de l'environnement de test et création d'un rapport de fin
de test.
Ces activités permettent d'adapter le processus de test à une situation spécifique et des décisions peuvent être prises dans le cadre de la
planification des tests.
1.4.2. Processus de test dans le contexte du projet
Les tests font partie intégrante des processus de développement logiciel effectués au sein de l'organisation et sont
financés par les parties prenantes du projet.
La manière dont les tests sont effectués dépend de nombreux facteurs contextuels, notamment :
2. Membres de l'équipe: Compétences, connaissances, niveau d’expérience, disponibilité, besoins de formation, etc.
3. Domaine d'activité de l'institution: Niveau de criticité de l'objet de test, risques identifiés, besoins du
marché, réglementations légales, etc.
Ces facteurs influencent les questions liées aux tests telles que la stratégie de test, les techniques de test utilisées, le degré d'automatisation des tests, le niveau de couverture requis, le niveau
de détail de la documentation des tests, les rapports, etc.
1.4.3. Logiciel de test
• Un logiciel de test est créé dans le cadre des produits de travail résultant d’activités de test spécifiques.
• Différentes organisations peuvent utiliser différentes approches pour produire, façonner, nommer, organiser et
gérer les produits du travail.
• Une gestion appropriée de la configuration garantit la cohérence et l’intégrité des produits de travail.
• Les produits de travail peuvent inclure :
1. Planification des tests: Plan de test, calendrier des tests, registre des risques, critères d'entrée et de sortie.
2. Supervision et contrôle des tests: Rapports d'avancement des tests, documentation des directives de contrôle, informations sur les risques.
4. Conception des tests :Cas de test, chartes de test, éléments de portée, exigences en matière de données de test, exigences en matière
d'environnement de test.
5. Adaptation des tests :Procédures de test, scripts de test automatisés, groupes de test, données de test, calendrier d'exécution des tests, éléments de
l'environnement de test.
• La traçabilité est importante pour rendre la surveillance et le contrôle des tests efficaces.
• Les éléments de base de test fournissent la relation entre le logiciel de test, les résultats des tests et les erreurs détectées.
• Il prend en charge l'évaluation de la couverture et facilite le suivi des critères de couverture mesurables.
• Par exemple, la traçabilité des scénarios de test par rapport aux exigences peut aider à vérifier dans quelle mesure les tests
répondent aux exigences.
• Une bonne traçabilité facilite l’évaluation de la couverture ainsi que l’analyse d’impact, les audits de tests et le respect des exigences de
gouvernance informatique.
• Il facilite également la compréhension des rapports d'avancement et d'achèvement des tests et aide à communiquer clairement les
aspects techniques des tests aux parties prenantes.
• La traçabilité fournit des informations importantes pour évaluer la qualité des produits, la capacité des processus et l'avancement du projet par rapport aux
objectifs commerciaux.
1.4.5. Rôles dans le processus de test
il Rôle de test
il En particulier la planification, la supervision et le contrôle des tests, ainsi que l'achèvement des tests.
il La manière dont elle est réalisée dépend du contexte du projet, des compétences de l’équipe et de l’organisation.
varie en fonction
3. Rôle de test :
il Il se concentre principalement sur les activités d’analyse, de conception, d’adaptation et de mise en œuvre des tests.
4. Changement de responsabilités :
il La même personne peut assumer à la fois les rôles de test et de gestion des tests.
1.5. Compétences requises et bonnes pratiques dans le processus de test
1.5.1. Compétences générales requises dans le processus de test
1. Compétences importantes :
il Bonne communication, écoute active, travail d'équipe (communication efficace avec les parties
il Il ne faut pas oublier que les résultats des tests peuvent être perçus comme une critique du produit.
il Les compétences en communication facilitent l’acceptation des résultats des tests et évitent les biais de confirmation. Les erreurs et les
il dysfonctionnements doivent être communiqués de manière constructive et il convient de souligner qu'ils contribuent au projet et au produit.
1.5.2. Approche d’équipe entière
il L’une des compétences clés des testeurs est la capacité à travailler efficacement en équipe
et à contribuer positivement aux objectifs de l’équipe.
il L'approche globale de l'équipe, issue de la méthodologie Extreme Programming, met l'accent sur cette
compétence.
il Dans cette approche, tous les membres de l’équipe possèdent les connaissances et compétences nécessaires et chacun est
responsable de la qualité.
il Ils effectuent des tâches telles que la création de tests d'acceptation avec les unités commerciales et la détermination de la stratégie de test et des méthodologies d'automatisation avec les développeurs de logiciels. Les
il testeurs jouent un rôle important en transférant leurs connaissances aux autres membres de l’équipe et en contribuant au développement des produits.
• Adaptabilité au contexte :
il Une approche d’équipe globale n’est pas toujours appropriée ; En particulier dans certaines situations sensibles pour la sécurité, un degré élevé d'indépendance des tests peut être requis.
1.5.3. Indépendance des tests
• L'indépendance permet aux testeurs d'être efficaces dans la recherche de bogues, mais elle ne remplace pas la familiarité.
• Les produits de l’étude peuvent être testés par des personnes ayant différents niveaux d’indépendance.
• Les testeurs indépendants sont plus à même de trouver divers bugs en raison de leurs différentes expériences et perspectives.
• Cependant, il peut également y avoir des inconvénients tels que des comportements différents et des problèmes de communication.
2. Tests tout au long du cycle de vie du développement logiciel
2.1. Tests dans le contexte du cycle de vie du développement logiciel
• Le cycle de vie du développement logiciel (DDD) est considéré comme une représentation générale du processus de développement logiciel.
• Les modèles YGYD montrent les relations logiques et chronologiques entre les différentes étapes de développement et types d'activités.
• Des exemples de modèles YGYD sont : modèle en cascade, modèle en V, modèle en spirale, prototypage, processus unifié.
• Les activités du processus de développement logiciel peuvent être définies avec des méthodes de développement logiciel et des pratiques Agile
plus détaillées.
• Exemples : développement logiciel basé sur les tests d'acceptation (ATDD), développement logiciel basé sur le comportement (BDD), conception basée sur
le domaine (DDD), programmation extrême (XP), développement basé sur les fonctionnalités (FDD), Kanban, Lean IT, Scrum, et le développement piloté par
• Pour que les tests réussissent, ils doivent être adaptés à YGYD. YGYD
Participe à l’analyse et à la conception des tests. Les tests dynamiques sont généralement effectués à des étapes ultérieures.
• Dans certains modèles de développement itératif et incrémentiel, chaque cycle fournit un prototype fonctionnel ou une fonctionnalité de produit. Cela
signifie que des tests statiques et dynamiques peuvent être effectués à chaque cycle.
• Dans le développement de logiciels agiles, il est préférable d’alléger la documentation des produits de travail et d’utiliser une automatisation poussée des tests.
Les tests manuels sont effectués à l'aide de techniques de test basées sur l'expérience et ne nécessitent pas d'analyse ni de conception de tests préalables
approfondies.
2.1.2. Cycle de vie du développement logiciel et bonnes pratiques de test
• Chaque activité de développement logiciel est accompagnée d'une activité de test, de sorte que l'ensemble du processus de développement soit soumis à un contrôle
qualité.
• Différents niveaux de tests ont des objectifs de test spécifiques et différents, évitant ainsi les duplications inutiles lors de la réalisation de tests
complets.
• L'analyse et la conception des tests commencent au stade de développement correspondant du YGYD pour un niveau de test spécifique, de sorte que les tests soient
• Les testeurs sont impliqués dans l'examen des produits de travail dès que les ébauches de la documentation sont prêtes, soutenant ainsi
la stratégie « shift-left » de tests précoces et de détection des bogues.
2.1.3. Les tests comme facteur de développement logiciel
il Les scénarios de test déterminent le codage ; les tests sont écrits en premier, pas le code en
il premier. Les tests sont écrits, puis le code est écrit et enfin les tests et le code sont édités.
il À partir des critères d'acceptation, des tests sont dérivés et effectués dans le cadre de la conception du système. Les
il Le comportement souhaité de l’application est exprimé dans des cas de tests simples en langage naturel.
Dans toutes ces approches, les tests restent des tests automatisés pour garantir la qualité du code dans les futurs processus
d'adaptation et de refactorisation.
2.1.4. DevOps et tests
• DevOps vise à permettre aux équipes de développement logiciel et d'exploitation de travailler ensemble.
• Cela nécessite un changement organisationnel et prend en charge des éléments culturels tels que l’autonomie de l’équipe et un feedback rapide.
• Les pratiques techniques incluent l'intégration continue (CI) et la livraison continue (CD). Avantages
du point de vue des tests :
• Prise en charge des processus automatisés et visibilité accrue des exigences non fonctionnelles.
automatisés. défis:
Malgré un niveau élevé d'automatisation des tests, des tests manuels peuvent encore être nécessaires du point de vue de l'utilisateur.
2.1.5. Approche Shift-Gauche
• Le principe du « test précoce », met en évidence les tests effectués au début de YGYD et parfois
"shift-gauche"On l'appelle.
• Shift-left encourage les tests plus tôt, mais ne signifie pas négliger les tests
à des stades ultérieurs.
Il existe quelques bonnes pratiques pour garantir le décalage à gauche :
5. Effectuer des tests non fonctionnels à partir du niveau de test des composants.
• Le déplacement vers la gauche peut nécessiter une formation, des efforts et des coûts supplémentaires au début du processus, mais peut permettre d'économiser de l'argent dans les étapes ultérieures.
• Il est important que les parties prenantes soient convaincues de l’approche du virage à gauche et croient en ce concept.
2.1.6. Rétroactifs et amélioration des processus
• Éléments rétrospectifs :
il Il est traité à la fin du projet ou du cycle, au moment de la sortie ou selon les besoins.
• Contenu de la réunion :
il Les questions sur la manière dont la durabilité et l'amélioration peuvent être réalisées sont abordées.
• Avantages:
• Niveaux de test :
il Ce sont des exemples de processus de test effectués depuis des composants individuels jusqu'à des systèmes complets.
• Liens:
il Il est associé à d’autres activités au sein de YGYD.
il Dans les modèles YGYD séquentiels, des critères de sortie et d’entrée sont définis.
• Activités de développement:
• Types d'essais :
il Cela est généralement réalisé par les développeurs dans leurs propres environnements.
il Il comprend des tests fonctionnels et non fonctionnels des tâches de bout en bout.
• Tests d'intégration du système :
il Il teste les interfaces du système testé avec d'autres systèmes et services externes. Cela nécessite des
• Test d'admission:
il Il vise à montrer que le système est prêt à être présenté à l'utilisateur.
il Elle est réalisée par les utilisateurs.
• Liste utilisée pour séparer les niveaux de test :
il objet de test
il Cibles de test
il Base de test
il Erreurs et dysfonctionnements
il Approche et responsabilités
2.2.2. Types de tests
• Tests fonctionnels :
il Il évalue les fonctions que le composant ou le système doit remplir. L'objectif
il L'objectif principal est de contrôler les exigences non fonctionnelles telles que les performances, la compatibilité, la convivialité, la fiabilité, la sécurité, la
maintenabilité et la portabilité.
il Il est basé sur des exigences et obtient des tests en regardant de l'extérieur.
il L’objectif principal est de contrôler le comportement du système par rapport aux exigences.
il Il est basé sur la structure et dérive les tests de l'application ou de la structure interne.
il L’objectif principal est de garantir qu’il couvre la structure sous-jacente à un niveau acceptable.
• Bien que chaque type de test ait des objectifs différents, il peut être appliqué à tous les niveaux de test.
• Différentes techniques de test peuvent être appliquées pour chaque type de test.
2.2.3. Tests de validation et tests de régression
• Test de confirmation :
il Ceci est fait pour confirmer que l’erreur d’origine a été corrigée avec succès.
il La version corrigée du logiciel est testée de différentes manières : en exécutant des scénarios défectueux
précédents ou en ajoutant de nouveaux tests.
il Elle peut être limitée en raison de contraintes de temps ou de coût, ou se limiter à la vérification de la récurrence des
erreurs.
il Ceci est fait pour confirmer qu’un changement n’entraîne aucun effet négatif. Le changement
il peut affecter l'objet de test, d'autres composants et même d'autres systèmes connectés.
il C'est un bon candidat pour l'automatisation des tests et il est recommandé de le démarrer dès les premières étapes du
projet.
il Lorsque des bogues sont corrigés ou que des modifications sont apportées, elles doivent être effectuées à tous les niveaux
il de test. Des tests de validation et/ou de régression sont requis à tous les niveaux de test.
2.3. Essais d'entretien
• Catégories d'entretien :
• Analyse d'impact:
il Avant d’apporter des modifications, une analyse d’impact peut être effectuée pour évaluer les conséquences possibles.
il Il est nécessaire de tester les modifications apportées au système dans un environnement réel et de vérifier les régressions.
il Le degré de risque du changement, la taille du système existant et l'étendue du changement déterminent la portée des tests de maintenance.
• Déclencheurs de maintenance :
il Les modifications, les mises à niveau/migrations de l’environnement opérationnel et les retraits peuvent déclencher une maintenance et
des tests de maintenance.
il Les mises à niveau, les migrations et les dépréciations de l’environnement opérationnel peuvent introduire des exigences de test
particulières.
3. Tests statiques
3.1. Fondamentaux des tests statiques
• Test statique :
il Les objectifs des tests incluent l’amélioration de la qualité, la détection des bogues et l’évaluation des fonctionnalités. Peut être utilisé
• Collaboration et révision :
il Les testeurs, les unités commerciales et les développeurs travaillent ensemble pour garantir que les user stories et les produits de travail associés
répondent aux critères.
il Des techniques de révision sont utilisées pour garantir que les user stories sont complètes, compréhensibles et contiennent des critères
d'acceptation testables.
• Analyse statique :
il Peut identifier les problèmes avant les tests dynamiques. Cela nécessite
il Des outils tels que le correcteur orthographique et les outils de lisibilité peuvent être utilisés.
3.1.1. Produits fonctionnels pouvant être examinés avec des tests statiques
il Documentation du projet
il Contrats
il Des modèles
il détecter des erreurs que les tests dynamiques ne peuvent pas détecter.
il Cela crée une compréhension commune entre les parties prenantes concernées. Cela
il renforce la communication.
il Cela entraîne généralement moins d’erreurs de code et un effort de développement global moindre.
3.1.3. Différences entre les tests statiques et les tests dynamiques
il dynamiques identifient les bogues, tandis que les tests statiques trouvent directement les bogues.
il Les tests statiques peuvent détecter plus facilement les erreurs dans les parties de code qui ne peuvent pas être exécutées.
il Les tests statiques peuvent être utilisés pour des mesures de qualité qui ne dépendent pas de l'exécution du code, tandis que les tests dynamiques dépendent
de l'exécution du code.
il écarts par rapport aux standards (non-respect des conventions de nommage) Des
• Des retours précoces et fréquents permettent une détection précoce des problèmes de qualité potentiels.
• Une faible implication des parties prenantes peut empêcher le produit de répondre à la vision originale et entraîner l'échec du projet.
• Les commentaires fréquents des parties prenantes évitent les malentendus sur les exigences et garantissent une mise en œuvre rapide des changements.
• Cela permet aux parties prenantes de se concentrer sur les fonctionnalités les plus précieuses et qui géreront au mieux les risques.
3.2.2. Activités du processus d'examen
• Début de l'examen: On s'assure que tout le monde est prêt, l'accès et les rôles
sont déterminés.
• Communication et analyse :Les anomalies sont analysées, des décisions sont prises et des actions
de suivi sont déterminées.
• Correction et reporting: Des rapports d'erreurs sont créés, des actions correctives sont
suivies et les résultats sont rapportés.
3.2.3. Rôles et responsabilités en revue
• Greffier: Enregistre les anomalies et entreprend la tâche de documenter les décisions prises lors des réunions de revue.
• Examen informel: Processus non défini, ne nécessite pas de sortie formelle, détecte les anomalies.
• ne dépasse pas: Cela se fait sous la direction de l'auteur, pour accroître la qualité et instaurer la confiance.
• Analyse technique: Géré par des personnes qualifiées, gère les problèmes techniques, évalue la qualité.
• Inspection: Le processus le plus formel et entièrement contrôlé vise à trouver le maximum d'anomalies.
3.2.5. Facteurs de réussite des avis
• Il est important de fixer des objectifs clairs et des critères de sortie mesurables.
• La sélection du type d'évaluation approprié doit être adaptée au type de produit du travail, aux participants et aux besoins du
projet.
• Il est important de diviser le processus d’évaluation en plusieurs parties pour éviter de distraire les participants.
• Les produits et les activités doivent être améliorés en fournissant des commentaires aux parties prenantes et aux auteurs.
• Il est important d’adopter et d’améliorer continuellement les avis dans le cadre de la culture d’entreprise.
• Tous les participants doivent être formés pour remplir leurs rôles.
• L’animation des réunions est essentielle à un processus d’examen efficace.
4. Analyse et conception des tests
4.1. Présentation des techniques de test
• Techniques de test en boîte blanche :Il analyse la structure interne et les opérations de
Les techniques de test en boîte noire couramment utilisées sont abordées dans les sections suivantes :
• Le partitionnement d'équivalence (DPA) divise les données en partages en fonction de l'attente que tous les éléments d'un objet de test seront traités
de la même manière.
• La DPA recommande un test pour chaque partage, et les partages peuvent être continus ou discrets, ordonnés ou non, finis ou
infinis.
• Les partages ne doivent pas se chevaucher et ne doivent pas se trouver dans un cluster vide.
• Les partages contenant des valeurs valides sont appelés « partages valides », tandis que ceux contenant des valeurs non valides sont appelés « partages invalides ».
• Dans DPA, les éléments du périmètre sont des parts d'équivalence et le but est d'atteindre 100% du périmètre en essayant chaque part au moins une
fois.
• Pour les objets de test contenant plusieurs groupes d'enjeux, la couverture Chaque choix est le critère de couverture le plus simple et nécessite
• Analyse des valeurs limites (SDA)est une technique basée sur le test des limites des numérateurs d'équivalence et ne peut être utilisée que pour des
données ordinales.
• SDA vise à identifier les erreurs que les développeurs peuvent commettre dans les valeurs limites en testant les valeurs minimales et
maximales des actions.
• 2 SDA valorisés: Pour chaque valeur limite, il existe deux éléments de couverture : la valeur limite et son voisin le plus proche de la marge adjacente.
• 3 SDA valorisés: Pour chaque valeur limite, il existe trois éléments de portée : la valeur limite et les deux valeurs limites adjacentes de cette valeur limite.
Par exemple;
• Le SDA à 3 valeurs effectue une analyse plus rigoureuse que le SDA à 2 valeurs et peut détecter plus d'erreurs.
• 2 SDA valorisés :Puisque seules les valeurs limites telles que x = 10 et x = 11 seront testées, l'erreur ne peut pas être détectée car la valeur limite
est correctement définie.
• 3 SDA valorisés :Dans ce cas, l’erreur peut être détectée car les deux côtés de la frontière, y compris x = 9, seront
testés.
4.2.3. Tests de table de décision
il Il est utilisé pour montrer les résultats de différentes combinaisons de conditions de test et pour démontrer efficacement une logique complexe. Il
il est défini si les conditions sont remplies ou non et les actions à entreprendre en conséquence.
il Les conditions forment les lignes du tableau, tandis que chaque colonne spécifie une combinaison unique de conditions et d'actions associées.
il Dans les tableaux de décision à entrées limitées, les conditions et les actions sont souvent représentées sous forme de valeurs booléennes (vraies ou fausses).
il Dans les tables de décision d’entrée étendues, les conditions et les actions peuvent prendre plusieurs valeurs.
il applicable). Pour l'action : "X" (devrait arriver), espace (ne devrait pas arriver).
• Scénarios de portée et de test :
il La couverture nécessite que les cas de test atteignent une couverture de 100 % en essayant toutes les colonnes applicables.
il La couverture est mesurée comme le nombre de colonnes tentées divisé par le nombre de toutes les colonnes applicables, exprimé en pourcentage.
• Avantages :
il Il propose une approche systématique en abordant toutes les combinaisons de
il conditions. Cela aide à trouver des lacunes ou des contradictions dans les exigences.
• Défis et solutions :
il À mesure que le nombre de conditions augmente, le nombre de règles à appliquer augmente également. Dans ce cas, une table de décision réduite ou une approche basée sur les risques peuvent être utilisées.
4.2.4. Tests de transition d'état
il l'équivalent du DGD et contiennent les états, les événements et les conditions de protection.
▪ Pour couvrir tous les cas, les cas de test doivent examiner tous les cas.
▪ La couverture est mesurée en divisant le nombre de cas examinés par le nombre total de cas.
▪ Pour tester toutes les transitions valides, les scénarios de test doivent essayer toutes les transitions valides.
▪ La couverture est mesurée en divisant le nombre de passes valides tentées par le nombre total de passes valides.
▪ Pour couvrir toutes les transitions, valides et non valides, les scénarios de test doivent tenter toutes les transitions.
▪ Cette couverture est mesurée en divisant les tentatives de passes par le nombre total de passes.
il Un scénario de test est représenté par une série de changements d'état et comprend des transitions entre les états.
il La couverture est mesurée en divisant le nombre de transitions valides et invalides tentées ou tentées d'être couvertes par les scénarios de test exécutés par le nombre
total de transitions valides et invalides.
4.3. Techniques de test en boîte blanche
4.3.1. Tests de commande et pourcentage de couverture de commande
• Test de commande :
il Objectif : atteindre un niveau de couverture acceptable en essayant au moins une fois toutes les commandes exécutables
du code.
il Mesure de couverture : elle s'effectue en divisant le nombre de commandes tentées par les cas de test par le nombre total de
commandes exécutables, exprimé en pourcentage.
▪ Garantit que toutes les commandes exécutables sont essayées au moins une fois.
▪ Il indique si chaque commande contient des erreurs, mais il se peut qu'il ne détecte pas toutes les erreurs.
▪ Cela ne garantit pas que toute la logique de décision soit testée, car toutes les branches du code ne peuvent pas être testées.
4.3.2. Tests de succursales et couverture des succursales
• Test de branche :
il Éléments de portée : les branches sont des transferts de contrôle entre deux nœuds dans le graphe de flux de contrôle.
il Objectif : atteindre un niveau de couverture acceptable en essayant toutes les branches du code au moins une fois.
il Mesure de couverture : elle s'effectue en divisant le nombre de branches essayées par les scénarios de test par le nombre total de branches,
exprimé en pourcentage.
▪ Il garantit que toutes les branches inconditionnelles et conditionnelles sont testées par des cas de test.
▪ Les branches conditionnelles correspondent généralement à des décisions « si…alors », à des instructions de commutation/cas ou à des décisions de boucle.
▪ Tester une branche avec un scénario de test ne signifie pas que tous les bugs de cette branche seront détectés.
il Relation : La couverture des succursales comprend le pourcentage de couverture des instructions ; c'est-à-dire que l'ensemble de scénarios de test qui atteint une couverture de
il La prise en compte de l’intégralité du code lors des tests permet de détecter plus facilement les erreurs sans ignorer les ambiguïtés ou omissions de
l’analyse.
• Faiblesses:
il Il n'est pas possible de détecter les exigences non codées.
• Mesure et confiance :
il Le simple fait d'effectuer des tests en boîte noire ne mesure pas la couverture réelle du code. Les techniques de test en boîte
il blanche fournissent une mesure objective de la couverture et augmentent la confiance dans le code.
4.4. Techniques de test basées sur l'expérience
• Les techniques de test basées sur l’expérience couramment utilisées sont abordées dans les sections suivantes :
• tests exploratoires
il Il s’agit d’une technique permettant de détecter les erreurs humaines, les erreurs logicielles et les dysfonctionnements en s’appuyant sur les
connaissances du testeur.
il Sources d'informations:
▪ Cela peut être lié à l'entrée, à la sortie, à la logique, au calcul, à l'interface ou aux données.
il Le testeur identifie les erreurs et dysfonctionnements possibles et conçoit des tests pour les révéler. Des listes peuvent être créées sur la base
il de l'expérience, des données d'erreurs et de dysfonctionnements ou de connaissances générales sur les logiciels.
4.4.2. Test de découverte
• Test de découverte :
il Les tests sont conçus, exécutés et évalués simultanément pendant que le testeur découvre l'objet de test.
il Objectifs :
▪ Pour en savoir plus sur l'objet de test.
▪ Explorer l'objet de test en profondeur avec des tests ciblés.
▪ Création de tests pour les zones non testées.
il Approche basée sur les sessions :
▪ Cela fonctionne bien lorsque les exigences sont peu nombreuses ou insuffisantes, ou lorsque le temps presse.
il Listes de contrôle :
▪ Articles pouvant être contrôlés automatiquement,
▪ Éléments éligibles comme critères d’entrée/sortie ou
▪ Il n'inclut pas les éléments trop généraux.
il Les éléments de la liste de contrôle se présentent généralement sous la forme de questions et doivent être vérifiables individuellement et directement.
il Les éléments peuvent concerner des exigences, des spécifications d'interface, des caractéristiques de qualité ou d'autres formes de conditions de test. Des
il listes de contrôle peuvent être créées pour prendre en charge différents types de tests (par exemple, 10 critères pour les tests d'utilisabilité).
il Les listes de contrôle peuvent devenir moins efficaces avec le temps et doivent être mises à jour pour refléter les erreurs nouvellement
il découvertes. La liste de contrôle peut être utilisée comme guide lorsque les scénarios de test ne sont pas détaillés.
il Il est probable qu'il y ait certaines variations dans les tests réels, ce qui pourrait conduire à une plus grande couverture mais à
une reproductibilité moindre.
4.5. Approches de tests collaboratifs
4.5.1. Rédaction collaborative de user story
• Témoignages d'utilisateurs (3 C) :
il Carte:Média qui décrit la user story, comme une fiche ou une entrée dans un presse-papiers électronique.
il Conversation:Il détermine la manière dont le logiciel sera utilisé, peut-être par le biais de la documentation ou
il verbalement. Confirmation:Définit les critères d'acceptation.
• Format de la user story :
il Le format le plus courant : « Je veux que [l’objectif soit atteint] dans [le rôle] parce que [la valeur commerciale émerge pour le rôle] ». Les
il La collaboration permet de créer une vision commune en prenant en compte les perspectives d’analyse, de développement logiciel et de test.
il négociable
il Précieux
il Prévisible
il Petit
il testable
• Marque de testabilité :
il Cela montre qu’une user story est testable.
il Si une partie prenante ne sait pas comment tester une user story, il se peut que la story ne soit pas assez claire, ne reflète pas quelque chose de valeur, ou que la partie
prenante ait simplement besoin d'aide pour les tests.
4.5.2. Accepter les conditions
il Cependant, l’équipe peut également utiliser un autre format personnalisé à condition que les critères d’acceptation soient bien définis et clairs.
4.5.3. Développement de logiciels piloté par les tests d'acceptation (ATDD)
il Des scénarios de test sont créés avant la mise en œuvre de la user story.
il Les cas de test peuvent être créés par des membres de l'équipe ayant des perspectives différentes : clients, développeurs et testeurs. Les cas de
il test peuvent être exécutés manuellement ou automatiquement.
• Processus de demande:
il La première étape est un atelier d’analyse où la user story et, si nécessaire, les critères d’acceptation sont analysés et affinés par l’équipe.
il Ensuite, des scénarios de tests sont créés. Cela peut être fait par l’équipe dans son ensemble ou par le testeur.
il Les cas de test sont basés sur des critères d'acceptation et peuvent être considérés comme des exemples du fonctionnement du logiciel. Les
il échantillons et les tests étant identiques, ces termes sont souvent utilisés de manière interchangeable.
• Scénarios de tests :
il Les premiers cas de tests sont généralement des tests positifs et confirment le comportement souhaité.
il Après des tests positifs, l’équipe réalise des tests négatifs et des tests d’exigences non fonctionnelles. Les scénarios de
il test doivent être exprimés d'une manière compréhensible pour les parties prenantes.
il Les cas de test contiennent des phrases dans un langage naturel qui contiennent les préconditions, entrées et postconditions requises. Les
il cas de test doivent aborder toutes les caractéristiques de la user story et ne doivent pas aller au-delà de la story.
TRégime EST :
• Spécifie les objectifs, les ressources et les processus d'un projet de test.
• Documente les outils et le programme qui permettent d'atteindre les objectifs de test.
• Il permet de répondre aux critères établis des activités de test effectuées.
• Il sert d’outil de communication avec les membres de l’équipe et les autres parties prenantes.
• Explique s'il sera conforme ou non à la politique et à la stratégie de test actuelles.
• C'est un moyen utile de calculer l'effort requis pour atteindre les objectifs du projet de test.
• Contenu typique :
• Approche de test (niveaux, types, techniques, livrables, critères, mesures, exigences en matière de données et d'environnement, politique et stratégie)
• Budget et calendrier
5.1.2. Contribution du testeur à la planification du cycle et des versions
• Critère d'entrée:
il Définit les prérequis pour une activité spécifique. Si les
▪ Disponibilité des ressources (personnes, outils, environnements, données de test, budget, temps),
▪ Tester la disponibilité des logiciels (base de tests, exigences testables, user stories, scénarios de tests),
▪ Niveau de qualité initial de l'objet à tester (tous les tests de fumée réussis).
• Critère de sortie:
il Il définit ce qui doit être réalisé pour comprendre qu'une activité est terminée. Critères
il de sortie typiques :
▪ Métriques d'intégrité (niveau de couverture atteint, nombre de bugs non résolus, densité de bugs, nombre de cas de test ayant échoué),
▪ Critères de réalisation (tests planifiés exécutés, tests statiques effectués, tous les bugs trouvés signalés, tous les tests de régression
automatisés).
il Le manque de temps ou d’argent peut également être considéré comme un critère de sortie valable.
il Dans le développement de logiciels agiles, les critères de publication sont souvent appelés « Définition du fait » et définissent les métriques cibles pour un élément
publiable.
il Les critères d'entrée qu'une user story doit remplir pour que les activités de développement et/ou de test puissent commencer sont appelés « Définition
prête ».
5.1.4. Techniques d'estimation
• Les estimations pour les petites tâches sont généralement plus précises que les estimations pour les tâches plus importantes. Par conséquent, lors de l’estimation d’une
tâche importante, la tâche est divisée en tâches plus petites et une estimation est effectuée pour elles.
Techniques d'estimation :
1. Estimation basée sur des ratios :
il Les chiffres obtenus lors de projets antérieurs au sein de l'organisation sont utilisés.
il Les tarifs des projets précédents peuvent être utilisés pour estimer l’effort de test pour les nouveaux projets.
2. Extrapolations :
il Les premières mesures sont effectuées dans le cadre du projet actuel.
il Après une observation suffisante, l'effort requis pour le travail restant est déterminé par extrapolation.
3. Delphi à large bande :
il Les experts font des prédictions basées sur l’expérience.
il Il est demandé à chaque expert d'estimer l'effort individuel, puis les résultats sont additionnés et corrigés si nécessaire.
4. Estimation en trois points :
il Trois prévisions sont faites par les experts : la prévision la plus optimiste, la plus probable et la plus pessimiste.
Autres techniques :
• La technique de planification du poker est une variante de Wideband Delphi et est fréquemment utilisée dans le développement de logiciels agiles.
5.1.5. Priorisation des scénarios de test
• La priorisation des cas de test affecte l'ordre déterminé dans le calendrier d'exécution des tests.
• Les stratégies de priorisation les plus couramment utilisées sont :
1. Priorisation basée sur les risques: Les scénarios de test présentant les risques les plus importants sont exécutés en premier. Par exemple, les
scénarios à risque le plus élevé pouvant survenir en cas de défaillance d'une fonctionnalité critique d'un logiciel sont prioritaires.
2. Priorisation basée sur la couverture: Pour augmenter la couverture des tests, les cas de test sont classés à l'aide de mesures telles
que le pourcentage de couverture des commandes. Les scénarios offrant une couverture élevée sont prioritaires.
3. Priorisation basée sur les exigences: Les scénarios de tests sont classés en fonction des priorités d'exigences déterminées par
les parties prenantes. La priorité est donnée en fonction des besoins critiques.
• Les cas de test sont triés et exécutés selon des stratégies de priorisation.
• Cependant, s’il existe des dépendances entre les cas de test ou les fonctionnalités, ces stratégies peuvent être difficiles à mettre en œuvre. Par
exemple, si un scénario de test à priorité élevée dépend d'un scénario à faible priorité, le scénario à faible priorité doit être exécuté en premier.
• Le séquençage de l'exécution des tests doit également prendre en compte l'accessibilité des ressources disponibles (par exemple, les outils de test, les
environnements, les personnes). Par exemple, si seul un certain outil de test est accessible pendant une certaine période, la planification doit être effectuée en
conséquence.
5.1.6. Pyramide de test
• La pyramide des tests est un modèle qui montre les différents niveaux de tests et comment l'automatisation des tests est prise en charge en fonction de ces
niveaux.
• Les couches pyramidales représentent des groupes de tests et des niveaux de détail des tests.
• Les couches inférieures de la pyramide sont constituées de petits tests isolés et rapides. Ces tests sont souvent appelés tests unitaires et
vérifient un petit élément de fonctionnalité.
• Le nombre de tests sur les couches inférieures peut être important car un grand nombre de tests peut être nécessaire pour fournir une couverture raisonnable.
• Les couches supérieures représentent des tests complexes, de haut niveau et de bout en bout. Ces tests sont généralement plus lents et vérifient une plus
grande partie des fonctionnalités.
• Le nombre de tests dans les couches supérieures est généralement moindre car seuls quelques tests suffisent généralement pour vérifier la couverture.
• Le nombre et le nom des couches peuvent varier. Par exemple, dans un modèle, les trois couches peuvent être appelées « tests unitaires », « tests de service » et « tests d'interface utilisateur
», tandis que dans un autre modèle, elles peuvent être appelées « tests de composants », « tests d'intégration de composants » et « tests de fin ». -des tests jusqu'à la fin."
• D’autres niveaux de tests peuvent également être inclus dans la pyramide des tests.
5.1.7. Trimestres de test
• Les quadrants de test regroupent les niveaux de test en types de tests, activités et produits de travail spécifiques.
• Le modèle est utilisé pour comprendre la relation entre les types de tests et les niveaux de tests afin de prendre en charge la gestion des tests.
• Les tests peuvent être axés sur l'entreprise ou sur la technologie et peuvent soutenir l'équipe ou critiquer le produit.
1. Q1 : Axé sur la technologie et pour soutenir l'équipe (par exemple, tests de composants et d'intégration de composants).
2. Q2 : Axé sur le business et pour soutenir l'équipe (ex : tests fonctionnels, tests de user story).
3. Q3 : Orienté métier, pour critiquer le produit (par exemple, tests exploratoires, tests d'utilisabilité).
4. Q4 : Orienté technologie, pour critiquer le produit (ex. tests de fumée, tests non fonctionnels).
5.2. Gestion des risques
• La gestion des risques a des effets positifs sur la réalisation des objectifs et
l'amélioration de la qualité des produits.
• Les étapes de base de la gestion des risques comprennent l’analyse et le contrôle des risques.
• Le risque est un événement, un danger ou une situation potentiel pouvant entraîner des conséquences négatives.
• Un risque a deux caractéristiques principales : la probabilité (la probabilité que le risque se réalise) et l'impact (les conséquences du risque).
• Le niveau de risque indique l'importance d'un risque ; Des niveaux de risque plus élevés nécessitent plus d’attention.
5.2.2. Risques du projet et risques du produit
• Il existe deux types de risques dans les tests de logiciels : les risques liés au projet et les risques liés au produit.
• Les risques du projet concernent la gestion et le contrôle du projet et incluent les problèmes d’organisation, de ressources humaines, techniques et de
fournisseurs.
• Les risques du projet peuvent avoir un impact sur le calendrier, le budget et la portée, ce qui à son tour affecte la capacité du projet à atteindre ses objectifs.
• Les risques liés aux produits sont liés aux exigences du produit et incluent des problèmes tels que des fonctionnalités manquantes, des calculs incorrects, des problèmes de
performances, etc.
• Les risques liés aux produits peuvent entraîner des conséquences négatives telles que l'insatisfaction des utilisateurs, la perte de revenus, la perte de confiance et des coûts
de maintenance élevés.
5.2.3. Analyse des risques produits
• Le but de l’analyse des risques liés aux produits est d’attirer l’attention sur les risques liés aux produits et d’orienter les efforts et les activités de test pour réduire les risques restants.
• Idéalement, l’analyse des risques produits commence dès les premiers stades de YGYD.
• L'identification des risques implique la création d'une liste complète des risques et des techniques telles que le brainstorming, les ateliers et les entretiens peuvent être utilisées.
• L'évaluation des risques implique de catégoriser les risques identifiés, de déterminer la probabilité, l'impact et le niveau des risques, de prioriser et de concevoir des
stratégies d'atténuation des risques.
• L'évaluation des risques peut utiliser une approche quantitative ou qualitative, ou une combinaison des deux.
• Identifier des activités supplémentaires non liées aux tests pour réduire les risques
5.2.4. Contrôle des risques produits
• Le contrôle des risques produits comprend les mesures prises contre les risques produits identifiés et évalués.
• L'atténuation des risques implique la mise en œuvre des actions recommandées pour réduire le niveau de risque.
• L’objectif de la surveillance des risques est de garantir l’efficacité des mesures prises et d’améliorer l’évaluation des risques.
• Il existe différentes options de réponse pour le contrôle des risques liés aux produits, notamment la réduction des risques par le biais de tests, l'acceptation des risques, le transfert
Les mesures qui peuvent être prises pour réduire les risques liés aux produits sont :