test coverage software testing
Guide complet de couverture de test de test logiciel: Comment tester plus, gagner du temps et obtenir de meilleurs résultats de test:
Les tests logiciels sont une activité essentielle dans les cycles de développement et de maintenance des logiciels. C'est une pratique souvent utilisée pour décider et améliorer la qualité des logiciels.
Le développement est plus systématique de nos jours et les organisations recherchent des mesures de l'exhaustivité et de l'efficacité des tests pour montrer les critères d'achèvement des tests. De tous, la couverture est considérée comme particulièrement précieuse.
Ce que vous apprendrez:
- Qu'est-ce que la couverture de test?
- Couverture du test et couverture du code
- Mon expérience
- Signification de la couverture de test
- Comment adopter une méthode de couverture de test appropriée?
- Comment s'assurer que tout est testé?
- Domaines et méthodes critiques pour des tests efficaces
- Avantages de tester la connaissance de la couverture pour un testeur:
- Conclusion
- lecture recommandée
Qu'est-ce que la couverture de test?
En termes simples, la couverture est 'Que testons-nous et combien testons-nous?'
La couverture des tests permet de surveiller la qualité des tests et aide les testeurs à créer des tests qui couvrent les zones manquantes ou non validées.
La plupart des équipes basent leurs calculs de couverture sur les seuls besoins fonctionnels. C'est également juste parce qu'une application doit avant tout faire ce qu'elle est censée faire. Sinon, sa vitesse, sa sécurité ou sa facilité d'utilisation - rien de tout cela n'a d'importance.
Cependant, s'il est dédié et indépendant tests non fonctionnels les équipes travaillent sur les performances, la sécurité, les tests d'utilisabilité, etc., puis elles devront suivre leurs exigences jusqu'à l'exécution grâce à l'analyse de la couverture des tests.
Couverture du test et couverture du code
La couverture de test est souvent confondue avec la couverture de code. Même si les principes sous-jacents sont les mêmes, ce sont deux choses différentes.
Couverture de code parle vraiment des pratiques de test unitaire qui doivent cibler toutes les zones du code au moins une fois et qui sont effectuées par les développeurs.
La couverture de test, en revanche, est tester chaque exigence au moins une fois et est évidemment une activité de l'équipe d'assurance qualité.
Ce qui se qualifie vraiment pour être une exigence couverte dépend de l'interprétation de chaque équipe.
Par exemple , Certaines équipes appellent une exigence couverte s'il existe au moins un scénario de test contre elle. Parfois, il est couvert si au moins un membre de l'équipe lui est affecté. Ou, si tous les cas de test qui lui sont associés sont exécutés.
- S'il y a 10 exigences et 100 tests créés - lorsque ces 100 tests ciblent toutes les 10 exigences et n'en omettent aucune - nous appelons cela une couverture de test adéquate au niveau de la conception.
- Lorsque seulement 80 des tests créés sont exécutés et ne ciblent que 6 des exigences. Nous disons que 4 exigences ne sont pas couvertes même si 80% des tests sont effectués. Il s'agit de statistiques de couverture au niveau de l'exécution.
- Lorsque seulement 90 tests relatifs à 8 exigences ont assigné des testeurs et que les autres ne le sont pas, nous disons que la couverture des affectations de test est de 80% (8 exigences sur 10).
Il est également important de savoir quand calculer la couverture.
Si vous faites cela trop tôt dans le processus, vous verrez beaucoup de lacunes car les choses sont encore incomplètes. Il est donc généralement conseillé de attendre la dernière construction c'est-à-dire la construction de régression finale. Cela donnera une couverture correcte des tests effectués pour les exigences données.
Lire aussi => Processus de gestion des versions et du déploiement
Mon expérience
Scène il y a 8 ans: Lorsque j'avais 2 ans d'expérience dans l'industrie des tests logiciels, je pensais que ce serait bien si je ne connaissais pas certains principes fondamentaux des tests logiciels comme quelque chose que l'on peut apprendre avec l'expérience et moi aussi.
J'avais raison - et j'avais tort aussi.
C'est vrai parce qu'avec l'expérience, vous apprenez à avoir une vue d'ensemble, vous comprenez la vraie signification de «Situation critique» et vous comprenez mieux l'utilisateur final.
Faux car aucune des choses mentionnées ne nécessite d'expérience, mais un apprentissage précoce, que j'ai compris très tard. C'est le facteur encourageant pour écrire ce post.
comment afficher les fichiers xml dans Word
Voici mon expérience de l'une des interviews à ce moment-là:
Comment vous assurez-vous que la couverture des tests est complète ou maximale? Quelqu'un m'a demandé.
Ummmm… Je m'assure de tester toutes les fonctionnalités , J'ai dit.
S o vous dites qu'une fois que vous testez toutes les fonctionnalités, vous sentez que vous avez couvert un maximum d'application / produit, en termes de tests , l'intervieweur s'est retourné contre lui.
l'algorithme java de dijkstra utilisant la file d'attente prioritaire
Euh… eh bien… .ummm… .oui, car lorsque vous testez toutes les fonctionnalités, vous êtes sûr du comportement de l’application / du produit, J'ai soutenu ma réponse .
Je suis d'accord, mais ma question est la suivante: est-ce que cela vous donnera l'assurance que votre couverture de test est maximale ou complète? l'intervieweur n'était pas d'humeur à me laisser partir.
Maintenant, je devenais impatient, inconnu du fait que j'allais apprendre l'un des sujets les plus importants sur les tests logiciels - ' Couverture de test' .
Plutôt que de reproduire les extraits de l'interview, je résume ici ce que j'ai appris sur la couverture des tests, ce jour-là. Mais avant cela, soyons clairs sur un point: la couverture des tests ne signifie jamais savoir si vous testez suffisamment ou pas, cela ne signifie pas non plus que vous testez parfaitement ou non.
Signification de la couverture de test
La couverture des tests peut avoir une signification différente dans un contexte différent. Découvrons ces contextes un par un:
Couverture du produit - Quels aspects du produit avez-vous examinés?
Oui, lorsque la couverture des tests est mesurée en termes de produit, le principal domaine sur lequel se concentrer est - sur quels domaines du produit vous avez testé et lesquels n'ont pas encore été testés?
Exemple 1:
Si «couteau» est un produit, vous testez; ne vous concentrez tout simplement pas sur le fait de vérifier s'il coupe correctement les légumes / fruits. Il y a d'autres aspects à rechercher tels que - l'utilisateur doit être capable de le manipuler confortablement.
Exemple n ° 2:
Si «notepad» est une application, vous testez, vérifier les fonctionnalités pertinentes est une chose incontournable.
Mais d'autres aspects à prendre en compte sont: l'application répond correctement tout en utilisant d'autres applications simultanément, l'application ne plante pas lorsque l'utilisateur essaie de faire quelque chose d'inhabituel , l'utilisateur reçoit des messages d'avertissement / d'erreur appropriés, l'utilisateur est capable de comprendre et d'utiliser facilement l'application, un contenu d'aide est disponible en cas de besoin.
Si vous n'examinez pas les scénarios mentionnés, vous ne pouvez pas affirmer que la couverture des tests de l'application est complète.
Couverture des risques - Quels risques avez-vous testés?
La couverture des risques est un autre aspect pour avoir une couverture de test complète. Vous ne pouvez pas marquer le produit ou l'application comme 'testé' tant que vous n'avez pas testé les risques associés. La couverture des risques associés est un facteur important de la couverture globale des tests.
Exemple 1:
Lors du test d'un avion, si un testeur vous dit qu'il / elle a entièrement testé le système interne de l'avion et qu'il fonctionne correctement, mais que seule la capacité de vol de l'avion n'a pas été couverte lors des tests, quelle serait votre réaction?
Eh bien, c'est ce que signifie la couverture des risques. Identifier le risque selon l'application / le produit et le tester minutieusement est toujours une bonne pratique.
Exemple n ° 2:
Lors du test d'un site de commerce électronique, le testeur a pris en compte tous les facteurs efficaces, mais n'a pas pris en compte le risque d'un nombre d'utilisateurs accédant au site Web simultanément et le jour de la Super OFFRE, le risque non pris en compte s'est avéré être une énorme erreur.
Lecture recommandée =>
Couverture des exigences - Pour quelles exigences avez-vous testé?
Si un produit ou une application est très bien développé, mais s'il ne correspond pas aux exigences du client, il ne sert à rien. La couverture des exigences pendant les tests est aussi importante que la couverture du produit.
Exemple 1:
Excité pour la fonction familiale, vous avez demandé au tailleur de coudre votre robe et de mettre ces boutons bleu paon sur l'encolure.
En cousant la robe, le tailleur a pensé que mettre ces boutons sur l'encolure ne serait pas beau, alors il a cousu une bordure dorée à la place. Le jour de l'essai, définitivement, le client mécontent a crié au tailleur de ne pas s'en tenir aux exigences.
Exemple n ° 2:
Lors du test d'une application de chat, le testeur s'est occupé de tous les points importants tels que plusieurs utilisateurs discutant dans un groupe, deux utilisateurs discutant indépendamment, tous les types d'émoticônes disponibles, les mises à jour envoyées immédiatement à l'utilisateur, etc. a mentionné que lorsque deux utilisateurs discutent indépendamment, l'option d'appel vidéo doit être activée.
Le client a commercialisé l'application de chat en affirmant qu'elle autoriserait les appels, tandis que deux utilisateurs discutent indépendamment. Vous pouvez imaginer ce qui serait arrivé à l'application de chat.
Également lire => Comment créer une matrice de traçabilité des exigences
Comment adopter une méthode de couverture de test appropriée?
La conscience est tout:
Tout d'abord, l'équipe d'assurance qualité doit savoir combien de travail est impliqué et où en sont les tâches de conception. De cette façon, ils sauront si d'autres tests doivent être ajoutés. Pour ce faire, vous pouvez utiliser un RTM comme c'est la pratique habituelle.
=> Consultez cet article pour en savoir plus et comment l'utiliser: Comment créer une matrice de traçabilité des exigences - Processus exact avec exemple de modèle
Deuxièmement, vérifiez l'affectation des ressources et processus d'exécution de test pour voir si tout est testé de la manière la plus efficace.
Un tableau tel que ci-dessous peut être utile:
Type de test | Total des cas | Affaires exécutées | Statut | commentaires |
---|---|---|---|---|
Fonctionnel | 100 | 80 | 50 succès, 30 échecs | |
Compatibilité | 100 | cinquante | 45 succès, 5 échecs | |
Convivialité | 100 | 100 | 98 succès, 2 échecs | |
Régression finale | 100 | 100 | 99 succès, 1 échec |
Comment s'assurer que tout est testé?
- Chaque testeur doit être conscient des exigences et des méthodes de test
- Priorisez vos besoins et concentrez votre énergie là où elle est le plus nécessaire
- Soyez informé de la différence entre une version donnée et la précédente afin de pouvoir identifier les exigences critiques plus précisément et de vous concentrer sur une couverture positive maximale
- Adapter l'automatisation des tests
- Utiliser les outils de gestion des tests pour toujours rester au courant
- Affectation de travail intelligente - Orientez vos meilleures ressources vers les tâches critiques et laissez les nouveaux testeurs explorer davantage pour une nouvelle perspective
- Maintenir un liste de contrôle pour toutes les tâches et activités diverses
- Interagissez davantage avec vos équipes Dev / Scrum / BA pour obtenir des informations sur le comportement de l'application
- Gardez une trace de tous vos cycles de construction et correctifs
- Identifier les problèmes les plus impactants dans les versions initiales proprement dites (si possible) afin que les plus récents puissent travailler pour une meilleure stabilité et atteindre les zones bloquées par des problèmes antérieurs
Domaines et méthodes critiques pour des tests efficaces
#1)Mélange de ressources: Échangez des tâches entre les membres de votre équipe. Cela permet d'améliorer l'engagement et d'éviter la concentration des connaissances.
#deux)Couverture de compatibilité: Assurez-vous de connaître et d'inclure les différents navigateurs et plateformes pour tester votre application.
# 3)La possession: Rendre les testeurs responsables et leur donner libre cours (avec un suivi et un soutien bien sûr) pour le module / la tâche sur lequel ils travaillent. Cela aide à renforcer la responsabilité et leur permet d'essayer des moyens créatifs au lieu de suivre les sentiers battus.
# 4)Délais: Connaître les délais de publication avant le début de la phase de test aide à une planification efficace
# 5)la communication : Restez en contact avec les développeurs et les autres équipes entre les cycles de publication pour savoir ce qui se passe.
# 6)Maintenir un RTM: Agit comme un bon dérivé du Parties prenantes ou clients , sur la base de laquelle le calendrier de publication peut être confirmé
Avantages de tester la connaissance de la couverture pour un testeur:
- Cela aide principalement à prioriser les tâches de test
- Il permet d'atteindre une couverture des exigences à 100% ou en d'autres termes, il empêche les fuites d'exigences
- Analyse des impacts devient plus facile
- Utile pour déterminer le Critère de sortie
- Permet à un cordon de test de préparer un rapport de clôture de test
Conclusion
La couverture des tests ne s'arrête pas aux contextes mentionnés. Il existe de nombreux autres points à prendre en compte lors du test de la couverture.
Il n'est pas toujours vrai que lorsque vous testez plus, les résultats sont meilleurs. En fait, lorsque vous testez davantage sans stratégie apparente, vous finirez probablement par investir beaucoup de temps.
Avec une approche plus structurée, un objectif de couverture à 100% des exigences et des méthodes de test efficaces, vous ne compromettez pas la qualité.
Nous espérons que les techniques décrites dans cet article vous donneront quelques conseils.
exemple d'application Web de document de plan de test
Versez vos commentaires et opinions sur le message. Comme d'habitude, nous adorons vous entendre.
lecture recommandée
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Emploi d'assistant QA en test logiciel
- Cours de test logiciel: à quel institut de test logiciel dois-je adhérer?
- Choisir les tests de logiciels comme carrière
- Travail d'indépendant de rédacteur de contenu technique de test de logiciels
- Le test logiciel est-il une tâche émotionnelle?
- Quelques questions d'entretien intéressantes sur les tests de logiciels
- Commentaires et évaluations du cours de test de logiciels