Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Comment votre processus de test unitaire se déroule-t-il?

Par Parasoft

1 août 2013

4  min lire

Nouveau modèle de maturité des tests unitaires

Les tests unitaires sont la pierre angulaire du succès Test de développement et devraient être adoptées par toute organisation cherchant à réduire les risques et les coûts tout au long du cycle de vie du développement des applications.

En tant que porte qualité principale, les tests unitaires:

  • Empêche l'introduction de défauts qui consommeraient des ressources précieuses s'ils étaient détectés plus tard dans le processus de développement.
  • Réduit les risques associés aux logiciels défectueux, qui peuvent entraîner des litiges coûteux, une érosion de la marque ou même la mort.
  • Vérifie la fonctionnalité de l'application et sert d'artefacts pour la traçabilité de la conformité.

Les processus de test unitaire peuvent aller d'efforts ad hoc ou réactifs très simples à des efforts hautement optimisés où les politiques sont régulièrement mises à jour dans le cadre d'un effort d'analyse des causes profondes pour empêcher la découverte de défauts lors de l'assurance qualité.

Pour en savoir plus sur les avantages des tests unitaires, veuillez visiter : https://www.parasoft.com/solutions/unit-testing/

Tests unitaires ad hoc

Grâce aux efforts de tests unitaires ad hoc, les développeurs choisissent indépendamment de créer et d'exécuter des tests unitaires tout en développant des fonctionnalités, mais les tests ne sont ni enregistrés ni conservés. Au lieu de cela, ils sont isolés sur des machines indépendantes. Les caractéristiques des tests unitaires ad hoc comprennent:

  • Les rapports de test sont inexistants ou invérifiables.
  • Les tests ne sont pas conservés dans un SCM.
  • Pas d'automatisation programmée.
  • La réintroduction de défauts est acceptée comme «normale» ou «inévitable».

Toutes les poches de maturité à ce stade sont basées sur l'expérience et l'initiative des individus. Il n'y a pas de centralisation des actifs; c'est chacun pour soi.

Les tests et les artefacts de test sont généralement créés en tant que solutions uniques et peuvent ou non être stockés sur une machine locale. Les tests sont créés sans tenir compte de l'activité ou du cas d'utilisation.

Les signes indiquant qu'il est temps de passer de ce niveau incluent:

  • L'application n'est pas correctement testée ou intégrée en raison d'un manque de temps déclaré.
  • Les affaires sont perdues ou difficiles à gagner en raison de la perception des utilisateurs de l'instabilité des applications.
  • Les retours, désinstallations et / ou réclamations ont tendance à interrompre ou contrôler les activités de développement

Tests unitaires réactifs

Le niveau suivant, au-delà des tests unitaires ad hoc, est réactif, où l'équipe doit adopter davantage de tests unitaires, souvent motivés par des facteurs externes tels que la conformité aux normes ou un problème de qualité majeur. À ce niveau, l'équipe et la direction se sont engagées à effectuer des tests unitaires, mais la mise en œuvre est incohérente dans toute l'organisation. Ce niveau est caractérisé par:

  • Les tests unitaires sont conservés dans un référentiel central avec le code produit.
  • Les tests unitaires sont exécutés manuellement lors d'une phase de «test de fumée» ou de «test de pré-libération».
  • Les développeurs utilisent les tests unitaires pour trouver les défauts, plutôt que pour garantir la qualité.

Au niveau réactif, la valeur des tests unitaires est reconnue, mais des définitions incohérentes de la mesure en diminuent la valeur. L'adoption étant incomplète, les données ne sont pas partagées entre les équipes et il est difficile d'évaluer l'achèvement ou le niveau de qualité.

Tests unitaires proactifs

Au-delà des tests réactifs, les organisations se rendent compte de la nécessité de standardiser l'utilisation des tests unitaires dans toute l'organisation. Une politique commune de tests unitaires est clairement documentée et les équipes reconnaissent les tests unitaires comme faisant partie du processus de développement. Les développeurs sont standardisés sur une plateforme de test pour créer et étendre régulièrement des tests unitaires lors des itérations.

Ce niveau de maturité est caractérisé par:

  • Les tests sur cible sont courants pour les systèmes embarqués.
  • L'automatisation programmée des tests et des rapports assure la traçabilité.
  • L'organisation utilise des tests unitaires pour réduire les régressions.
  • Une stratégie de test unitaire du code hérité est adoptée.

À ce niveau, les organisations commencent à voir les avantages réels d'une politique de tests unitaires à l'échelle de l'organisation, généralement en termes de diminution tangible des défauts graves. Une visibilité et une traçabilité accrues permettent à la direction de prendre de meilleures décisions commerciales. Les tests unitaires sont institutionnalisés dans le cadre du processus et constituent le comportement de développement attendu.

Tests unitaires gérés

Au niveau géré de la maturité des tests unitaires, les organisations commencent à utiliser une approche basée sur les données pour la prise de décision. Une politique axée sur les métriques augmente la visibilité car un processus défini de manière centralisée gère les activités de test unitaire. L'équipe de développement exploite désormais la plate-forme de test pour distribuer les tâches directement sur les postes de travail en fonction des exigences de couverture, du risque de défaillance et d'autres mesures définies par la stratégie.

Ce niveau de maturité est caractérisé par:

  • Moins de tests échouent à chaque modification en raison de l'exécution du bureau avant la validation.
  • Les développeurs répondent rapidement aux échecs des tests unitaires tels que définis par une politique dans un flux de travail d'intégration continue.
  • La virtualisation des fonctions et des objets est utilisée pour étendre la couverture et tester les conditions d'erreur.
  • Les régressions se produisent moins fréquemment.

Développement piloté par les tests (TDD) devient une option viable pour améliorer la qualité du code à mesure que la valeur des tests unitaires augmente. Tests basés sur le changement devient une réalité parce que le coût du changement est connu à l'avance.

En plus de l'amélioration de la qualité et de la sécurité de leurs logiciels, les organisations peuvent commencer à utiliser les données collectées pendant le développement pour prendre de meilleures décisions. L'organisation cherche à tirer parti des données fusionnées et corrélées pour effectuer des analyses avancées qui identifient les points chauds des applications.

Tests unitaires optimisés

Au niveau optimisé des tests unitaires, il y a une orientation organisationnelle. Les politiques sont régulièrement mises à jour dans le cadre d'un effort d'analyse des causes profondes pour empêcher la découverte de défauts lors du contrôle qualité.

Les tests unitaires sont un mécanisme de vérification pour vérifier que la stratégie et le processus sont synchronisés. Les résultats des tests peuvent être liés et traçables dans les deux sens à toutes les données associées au développement de logiciels et d'appareils. La traçabilité dépasse les frontières traditionnelles du SDLC.

La politique de test unitaire est intégrée de manière transparente dans un cadre de qualité, de sécurité, de performance et de fiabilité contrôlé, orchestré à partir d'une interface centralisée et incluant à la fois les systèmes de développement et les systèmes non-développement. La véritable Business Intelligence est atteinte.

Les développeurs, les testeurs ou les gestionnaires lancent une série de tests en fonction de toute combinaison d'exigences techniques et commerciales. Le système s'approprie automatiquement les environnements, les machines virtuelles et les tests nécessaires, puis fournit des résultats dans le cadre d'une couche de veille stratégique personnalisable.

Modèle de maturité des tests unitaires

Ceci est juste une brève introduction aux niveaux de maturité des tests unitaires. La plupart des organisations se situent aujourd'hui quelque part dans le spectre de ce modèle de maturité.

Parasoft, le leader de l'automatisation des tests logiciels, a développé un modèle de maturité des tests unitaires qui fournit un aperçu détaillé des 5 niveaux différents de tests unitaires: ad-hoc, réactif, proactif, géré et optimisé.

Si vous souhaitez évaluer la situation actuelle de votre organisation et voir ce que cela implique pour aller de l'avant, télécharger le modèle complet de maturité des tests unitaires.

Par Parasoft

Les outils de test de logiciels automatisés de pointe de Parasoft prennent en charge l'ensemble du processus de développement logiciel, depuis le moment où le développeur écrit la première ligne de code jusqu'aux tests unitaires et fonctionnels, jusqu'aux tests de performance et de sécurité, en exploitant des environnements de test simulés en cours de route.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.