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 >>

Le moyen simple d'augmenter le retour sur investissement des tests unitaires Java

Par Kapil Bhandari

31 mai 2018

5  min lire

Apprenez à réduire les efforts de test unitaire d'au moins 50%. Grâce à ces types d'économies, les équipes logicielles peuvent augmenter leur productivité sans sacrifier la qualité et réduire considérablement les délais de livraison.

L'ensemble du travail de Capers Jones est un atout majeur pour les développeurs de logiciels de tout secteur. Il a passé sa carrière à étudier les succès et les échecs de projets logiciels, dont une grande partie a abouti en 2011. L'économie de la qualité des logiciels. Bien que les développeurs Java d'entreprise puissent penser que ces informations collectées ne les intéressent pas, je pense qu'ils manquent de précieuses informations.

Voici quelques statistiques qui donnent à réfléchir qui s'appliquent autant aux développeurs utilisant Scrum et aux derniers outils logiciels qu'à tout autre type de développement logiciel. Dans l'ensemble, pour chaque dollar que l'industrie du logiciel dépense pour le développement, 50 cents de ce dollar sont consacrés à la maintenance, à la recherche et à la correction de bogues; cependant, la plupart des formes de test ne suppriment qu'environ 35% des bogues, laissant la majorité des bogues dans le logiciel malgré les meilleurs efforts de l'équipe.

Jones a été un des premiers partisans du «test de décalage à gauche», bien qu'il n'ait peut-être jamais utilisé le terme. Trouver et corriger les défauts (en particulier les défauts d'exigences, d'analyse et de conception) le plus tôt possible dans le cycle de vie du logiciel est essentiel pour une meilleure qualité du logiciel. Il est intéressant de noter que Jones s'est démarqué en plaçant une bonne argumentation contre la métrique du coût par défaut utilisée par de nombreux fournisseurs pour calculer le retour sur investissement des outils - le cas échéant, le coût par défaut sous-estime le retour sur investissement des outils d'automatisation et l'effort de test de décalage à gauche.

Taux de réussite des tests actuels

Nous savons déjà que les développeurs de logiciels consacrent la moitié de leur budget de développement à la recherche et à la correction de bogues, et que les méthodes de test actuelles laissent encore les deux tiers des bogues dans le logiciel. Voici quelques statistiques plus intéressantes:

  • Même en utilisant les dernières méthodes de développement logiciel, le taux d'élimination des défauts est d'environ 85% dans les meilleurs projets. Cela signifie que 15% des défauts doivent encore être trouvés et se retrouvent dans le produit final.
  • Environ 6% des cas de test ont des bogues dans les cas de test eux-mêmes.
  • Dans les grands projets, jusqu'à 20% des tests de régression sont des doublons, ce qui augmente les coûts de test mais ne fait rien pour améliorer la qualité du produit.
  • Environ 7% des corrections de bogues incluent de nouveaux bogues. Ainsi, alors même que les bogues sont en cours de résolution, de nouveaux sont introduits.

Comment l'automatisation des tests et l'assistant de test d'unité Parasoft Jtest peuvent vous aider

Comme nous l'avons dit à plusieurs reprises dans le passé, les tests unitaires sont nécessaire mais fastidieux du développement de logiciels. L'automatisation des tests aide en supprimant une grande partie des processus fastidieux du développeur, mais la création et la maintenance de tests restent l'un des principaux problèmes auxquels sont confrontés les développeurs Java lorsqu'ils s'attaquent aux tests unitaires de leur code. Dans un post précédent, J'ai expliqué comment utiliser Parasoft Jtest pour la création automatique de tests unitaires et comment augmenter l'efficacité et les résultats des tests unitaires tout en réduisant la complexité des simulations et la maintenance des cas de test. Poursuivant sur ce sujet, considérons les avantages économiques réalisés par la création automatique de tests unitaires et leur impact sur les efforts de test.

Dans une récente enquête menée par Parasoft, nous avons appris qu'une majorité de développeurs consacrent environ 40% de leur temps aux tests unitaires. Considérant un cycle de sprint de développement de deux semaines composé de dix jours, quatre jours sont consacrés aux tests. Il est facile de comprendre pourquoi les tests peuvent devenir un frein qui ralentit le développement de logiciels itératifs et agiles. En outre, le taux de réussite actuel des tests signifie que ce laps de temps n'est toujours pas suffisant ou, plus important encore, un moyen de réduire ce temps tout en améliorant les résultats est nécessaire.

Nous avons également été occupés à récupérer les données des clients en utilisant Jtest Parasoft pour les tests Java et c'est très encourageant. Les équipes de développement Java constatent une diminution de leurs efforts de tests unitaires d'au moins 50%. En d'autres termes, ils peuvent effectuer leurs tests unitaires de quatre jours en deux jours à l'aide de Jtest et de l'assistant de test unitaire. Ce type d'économies par sprint est impressionnant, mais le devient encore plus lorsque cela est aggravé par de nombreux sprints dans un projet typique. Par exemple, si un projet typique sort tous les trois mois, avec six sprints de développement, Jtest économise l'équivalent de 1.2 sprints ou 12 jours d'effort de développement. Grâce à ces types d'économies, les équipes logicielles peuvent augmenter leur productivité sans sacrifier la qualité et réduire considérablement les délais de livraison. Meilleure qualité et livrés à temps (ou même tôt)? Ce sont de sérieux avantages économiques.

Le vrai retour sur investissement d'une qualité améliorée

Le retour sur investissement pour une qualité accrue ne se résume pas au coût de réparation d'un défaut. La résolution d'un bogue au début du cycle de vie est moins chère et vous permet d'économiser de l'argent. Bien que ce soit une mesure et même à elle seule, elle soit suffisante pour justifier l'investissement dans une meilleure qualité, elle sous-estime en fait le retour sur investissement.

L'une des principales causes des retards de projet est les défauts manqués et les vulnérabilités de sécurité qui se retrouvent dans les dernières étapes d'un cycle de développement de produit. Bien sûr, il est moins cher de les trouver et de les corriger plus tôt car l'équipe de développement a toujours le code à l'esprit et n'est pas passée à l'itération suivante (ou au projet d'ailleurs).

En utilisant uniquement la métrique du coût par défaut et l'approche pour calculer le retour sur investissement, considérons l'exemple ci-dessus, avec une équipe de 20 personnes travaillant sur un projet avec un taux de main-d'œuvre chargé de 100 USD par heure. Cette équipe, utilisant de nouveaux outils d'automatisation de test avec tous les avantages de ceux-ci (shift-gauche l'identification des défauts) et découvre 20 défauts de plus que lors des sprints précédents. Trouver et corriger ces bogues à un stade précoce peut nécessiter trois heures par défaut pour un total de 6,000 18,000 $. Trouver et corriger ces bogues plus tard dans l'intégration ou le test du système pourrait tripler l'effort, pour un coût de 12,000 2 $. Simplement, pour ce sprint, le retour sur investissement est de 32,000 XNUMX $. Ça sonne bien, non? Cependant, cela ne prend pas en compte les XNUMX jours de gain de temps de développement pour le sprint pour XNUMX XNUMX $ supplémentaires d'économies et une productivité accrue.

En regardant la situation dans son ensemble, nous pouvons voir que réduire le temps de développement pour l'ensemble de la version est le véritable économiseur d'argent ici, pas le coût par défaut. Le véritable avantage d'un virage à gauche est d'atteindre ou de dépasser les échéanciers et les objectifs des projets. Considérez à nouveau l'exemple ci-dessus, mais cette fois, regardez le retour sur investissement en termes de l'équipe de développement entière finissant la version tôt de 12 jours. Pour cette équipe, c'est 12 jours de 20 personnes, soit 192,000 XNUMX $! Bien que cet exemple simple semble évident, il souligne que le retour sur investissement des outils est réalisé au niveau de l'équipe, lorsque les produits sont livrés plus rapidement sur le marché sans sacrifier la qualité.

Conclusion

Traditionnel méthodes de tests unitaires consomment une grande quantité de temps de développement logiciel, et les résultats de ces approches doivent être améliorés. Jtest Parasoft peut aider à réduire l'effort de test unitaire de 50%, ce qui est très rentable en termes de qualité et de réduction des calendriers de sprint.

Le retour sur investissement de ces outils est significatif lorsque l'on considère l'impact des tests unitaires sur l'équipe et le projet dans son ensemble. Contrairement à une simple analyse du coût par défaut, terminer les projets à temps et répondre aux exigences en matière d'objectifs est le gros avantage, et économiser du temps et de l'argent tout en le faisant, c'est encore mieux.

Automatisez la création de tests JUnit et commencez à aimer les tests unitaires

Par Kapil Bhandari

Kapil est chef de produit chez Parasoft et se concentre sur Parasoft Jtest. Kapil a occupé plusieurs postes techniques allant d'ingénieur logiciel à chef de développement, avant de passer à la gestion de produit.

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