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 augmenter le retour sur investissement des tests Java avec Parasoft Jtest

Par Kapil Bhandari

7 février 2019

7  min lire

Pour aider les équipes à atteindre plus rapidement la qualité et la sécurité, les entreprises peuvent tirer parti de Parasoft Jtest pour les tests Java. Découvrez comment tirer parti de Jtest pour augmenter le retour sur investissement des tests Java, en accélérant la livraison de logiciels tout en augmentant la qualité des logiciels.

Dans l'économie numérique actuelle, les entreprises doivent fournir des logiciels plus rapidement sur le marché pour suivre le rythme de la demande des consommateurs. Pour y parvenir sans sacrifier la qualité et la sécurité, les entreprises doivent être en mesure de tester efficacement les modifications du code logiciel de manière approfondie et rapide. Mais la réalisation de ces tests approfondis peut être un goulot d'étranglement, entraînant du stress et des risques pour les équipes logicielles, retardant la livraison et ayant un impact direct sur l'entreprise.

Les bogues découverts tard dans le processus de développement sont l'un des principaux facteurs contribuant aux retards des projets logiciels, car l'entreprise fait pression sur les équipes de développement pour qu'elles respectent les calendriers, ce qui a un effet secondaire direct sur les tests et la qualité des produits. Pour aider à résoudre ce problème, les équipes de développement tirent parti des tests unitaires et de l'analyse de code statique pour exposer les défauts plus tôt dans le cycle; cependant, ces pratiques présentent des inconvénients qui leur sont propres, liés au temps et au coût, qui peuvent retarder la réalisation rapide de la qualité.

Pour remédier à ces retards de livraison et aider les équipes à atteindre plus rapidement la qualité et la sécurité, les entreprises peuvent tirer parti Jtest Parasoft pour rendre les tests de développement Java plus efficaces. Qu'il s'agisse de développer un nouveau code ou de maintenir une application héritée, Parasoft Jtest peut générer, augmenter, cloner et muter des tests unitaires, tout en optimisant également l'exécution de ces tests, pour faciliter des améliorations substantielles du temps et du coût associés aux tests unitaires. L'avantage «secondaire»? Une suite significative de tests unitaires maintenables.

En outre, Parasoft Jtest peut analyser les fichiers source pour améliorer la sécurité et la qualité des applications pendant le processus de développement. Dans l'ensemble, cela permet d'accélérer la livraison et d'augmenter la qualité des logiciels en capturant les défauts plus tôt dans le processus de développement logiciel.

Augmenter le retour sur investissement des tests unitaires: création de tests unitaires

Pour illustrer comment augmenter le retour sur investissement dans la phase de création de tests unitaires, disons qu'une grande institution financière met en œuvre une stratégie de migration vers le cloud avec de nouvelles applications Java en cours de développement. L'équipe de développement se compose de 20 développeurs qui coûtent en moyenne 100,000 2 dollars par développeur, le coût total de développement est donc de 500,000 millions de dollars par an. La nouvelle application sortira tous les trimestres, de sorte que le coût de développement par version est de 30 150,000 USD. Sur la base de nos recherches, l'équipe de développement moyenne passe XNUMX% de son temps à écrire manuellement des tests unitaires, ce qui suggère que, pour une version donnée, l'écriture de tests unitaires coûte à l'entreprise environ XNUMX XNUMX $.

(1/4)($2M)(.30) = $150,000

(Publication trimestrielle) (Coût annuel du développeur) (Pourcentage du temps passé à écrire des tests unitaires) = Coût des tests unitaires

Avec Tests unitaires Parasoft, les utilisateurs ont signalé que l'écriture de tests unitaires peut être effectuée en deux fois moins de temps. En plus d'éliminer de nombreuses tâches manuelles chronophages associées aux tests unitaires, Jtest le fait en utilisant l'IA pour générer automatiquement des tests unitaires dès que le code est écrit afin d'augmenter la couverture du code. Ainsi, au lieu de consacrer 30 % du temps de développement à l'écriture de tests unitaires, cela peut prendre seulement 15 %, en se concentrant davantage sur la partie logique métier du test.

(1/4)($2M)(.30)(.50) = $75,000

(Version trimestrielle) (Coût annuel du développeur) (Pourcentage du temps passé à écrire des tests unitaires) (Pourcentage de réduction du temps avec Jtest) = Coût des tests unitaires d'écriture avec Jtest

Cela ramène le coût d'écriture des tests unitaires de 150,000 75,000 $ à 75,000 300,000 $, ce qui se traduit par une économie de XNUMX XNUMX $ par version et une économie annuelle de XNUMX XNUMX $.

$ 150,000 - $ 75,000 = $ 75,000

Coût initial des tests unitaires - Coût des tests unitaires avec Jtest = Économies de coûts avec Jtest

(75,000 4 USD) (300,000) = XNUMX XNUMX USD

(Économies de coûts) (Nombre de sorties par an) = Économies totales annuellement avec Jtest

La réduction du coût de développement contribue à la rentabilité de l'entreprise. En plus des économies de coûts, un temps précieux est également économisé. Si l'entreprise utilise des sprints de 2 semaines pour le développement, qui se composent de 10 jours ouvrables, alors 30% ou 3 jours sont alloués aux tests unitaires. Pour une version donnée (3 mois), il y a 6 sprints au total (ex: 5 pour le développement et 1 pour les tests finaux). En utilisant ces chiffres, 15 jours de la sortie sont utilisés pour les tests unitaires par l'équipe.

(5) (10) (. 30) = 15 jours

(Nombre de sprints de développement) (Nombre de jours dans un sprint) (Pourcentage de temps passé à écrire des tests unitaires) = Nombre de jours passés en tests unitaires pour la version

Jtest réduit cette fois de moitié à 1.5 jours de tests unitaires par sprint ou 7.5 jours de la sortie sont utilisés pour les tests unitaires par l'équipe.

(5) (10) (. 30) (. 50) = 7.5 jours

(Nombre de sprints de développement) (Nombre de jours dans un sprint) (Pourcentage de temps passé à écrire des tests unitaires) (Pourcentage de réduction du temps avec Jtest) = Nombre de jours de tests unitaires passés pour la version avec Jtest

Économiser 7.5 jours pour l'entreprise est extrêmement précieux lorsque vous êtes dans un manque de temps pour battre votre concurrent sur le marché.

15 - 7.5 = 7.5 jours

Test d'unité de temps passé d'origine - Test d'unité de temps passé avec Jtest = Gain de temps avec Jtest

Il convient de noter que dans cet exemple, un 30% conservateur est utilisé pour le temps alloué à l'écriture manuelle des tests unitaires, mais souvent ce nombre est beaucoup plus élevé, allant jusqu'à 50% en fonction de la pratique des tests unitaires de l'organisation. Ces organisations verront des économies de temps et de coûts encore plus importantes avec Parasoft Jtest.

Augmenter le retour sur investissement des tests unitaires: exécution des tests unitaires

Supposons maintenant que la même organisation développe sa nouvelle application et, ce faisant, elle génère de plus en plus de tests unitaires, passant de tests unitaires solitaires (isolés) qui prennent quelques secondes à s'exécuter, à des tests unitaires sociables (au niveau de l'intégration). qui prennent beaucoup plus de temps à fonctionner. Le temps d'exécution de leur suite de tests unitaires complète passe à 2 heures, et leur temps global de développement en souffre, car 2 heures, c'est beaucoup de temps pour une équipe de développement logiciel d'attendre avant de pouvoir obtenir des commentaires sur les modifications de code. L'organisation suit une méthodologie agile, donc ils construisent plusieurs fois par jour pour fournir des commentaires fréquents à leurs équipes logicielles, mais en raison du temps d'exécution des tests unitaires de 2 heures, ils ne peuvent exécuter que 3 builds par jour, ce qui correspond à 6 heures d'unité globale. le temps d'exécution des tests quotidiennement, ce qui peut entraîner une inefficacité du processus de développement.

Pour resserrer le cycle de publication, l'équipe peut optimiser l'exécution des tests unitaires avec Parasoft Jtest. Jtest réduit le temps nécessaire à l'exécution des tests unitaires avec l'automatisation des tests activée par l'IA, en exécutant un optimisé ensemble de tests unitaires basés sur le code qui a changé, plutôt que d'exécuter la suite complète de tests. Cette optimisation se produit dans l'IDE du développeur avant l'enregistrement du code, ainsi que pendant les builds de CI, tandis que la suite de tests complète continue de s'exécuter tous les soirs. En optimisant les tests à exécuter, le temps de construction global est considérablement raccourci et permet un retour plus rapide aux équipes logicielles. Et l'organisation peut obtenir plus de builds par jour, ce qui optimise la productivité de l'équipe pendant la partie active de la journée, ce qui se traduit par un délai de livraison plus rapide. Des économies de temps et de coûts peuvent être constatées en exploitant la technique de test de Jtest.

Augmentez le retour sur investissement de l'analyse de code statique: analyse automatisée

Continuons à utiliser la même organisation pour ce scénario et pendant qu'ils testent, ils découvrent plusieurs défauts de cycle tardif. En utilisant la métrique du coût par défaut de «Composing Effective Software Security Assurance Workflows» par le Software Engineering Institute de l'Université Carnegie Mellon, les défauts détectés au début du cycle coûtent en moyenne 1 heure pour trouver et corriger, par opposition à ceux trouvés en fin de cycle, qui ont tendance à coûter 7 fois plus, 7 heures. Sur la base du salaire moyen de 100,000 $, il en coûtera ~ 48 $ pour trouver et réparer un défaut tôt, contre ~ 336 $ pour trouver et réparer un défaut de fin de cycle. La société identifie 20 défauts de fin de cycle, ce qui représente un total de 6,720 140 $ et 18 heures de développement (~ XNUMX jours ouvrables) à résoudre. Avec ces données, il est clair de voir l'impact que les défauts de fin de cycle ont sur le temps et le coût d'une version.

(48 $) (7) (20) = 6,720 XNUMX $

(Coût du développeur par heure) (Nb d'heures pour trouver et corriger un défaut de fin de cycle) (Nb de défauts de fin de cycle) = Coût total de correction des défauts

[(7) (20)] / 8 = ~ 18 jours ouvrables

[(Nbre d'heures pour rechercher et corriger un défaut de fin de cycle) (Nbre de défauts de fin de cycle)] / (Nbre d'heures dans une journée de travail typique) = Temps total de résolution de défaut

Pour réduire le nombre de défauts qui apparaissent en fin de cycle, Parasoft Jtest permet aux équipes d'analyser automatiquement le code statique et de tester la sécurité, en fournissant plus de 1000 règles qui identifient les vulnérabilités et problèmes potentiels dans le code au moment du développement (début de cycle). Si Jtest détecte de manière prudente 25% des défauts de fin de cycle plus tôt, ce qui entraîne 5 défauts de cycle précoce et en laissant 15 de fin de cycle, cela coûte 5,280 USD et 110 heures de développement (~ 14 jours ouvrables) pour trouver et corriger à la fois tôt et tard. défauts de cycle. Cela réduit le temps et le coût de la correction des défauts pour la libération d'environ 25%.

(48 $) (1) (5) = 240 XNUMX $

(Coût du développeur par heure) (Nombre d'heures pour trouver et corriger un défaut de cycle précoce) (Nombre de défauts de cycle précoce) = Coût de correction des défauts de cycle précoce

(48 $) (7) (15) = 5,040 XNUMX $

(Coût du développeur par heure) (Nb d'heures pour trouver et corriger un défaut de fin de cycle) (Nb de défauts de fin de cycle) = Coût de correction de défaut de fin de cycle

240 5,040 USD + 5,280 XNUMX USD = XNUMX XNUMX USD

Coût de la correction du premier cycle + Coût de la correction du dernier cycle = Coût total de la correction des défauts avec Jtest

(6,720 $ - 5,040 $) / 6,720 $ = ~ 25% d'économies de coûts avec Jtest

(Coût de la correction d'origine - Coût de la correction avec Jtest) / Coût de la correction d'origine = Économies de coûts en pourcentage avec Jtest

[(1) (5)] / 8 = ~ 1 jour

(Nombre d'heures pour trouver et corriger un défaut de cycle précoce) (Nombre de défauts de cycle précoce) / (Nombre d'heures dans une journée de travail typique) = Temps de correction de défaut de cycle précoce

[(7) (15)] / 8 = ~ 13 jours

(Nb d'heures pour trouver et corriger un défaut de fin de cycle) (Nb de défauts de fin de cycle) / (Nb d'heures dans une journée de travail typique) = Temps de correction de défaut de fin de cycle

1 + 13 = 14 jours

Temps de correction de début de cycle + Temps de correction de cycle tardif = Temps de correction de défaut total

(18-14) / 18 = ~ 22% de gain de temps avec Jtest

(Temps de correction d'origine - Temps de correction avec Jtest) / Temps de correction d'origine = Pourcentage d'économies de temps avec Jtest

Pour déplacer davantage vers la gauche l'identification des problèmes, Jtest permet à l'utilisateur d'exécuter «à la volée» ou une analyse continue pendant que le développement est en cours, au sein de son IDE. Cela permet au développeur de résoudre les problèmes alors qu'il travaille déjà activement avec le code lorsque le défaut est introduit. Cela réduit encore le temps et le coût associés à la correction des défauts et augmente considérablement la qualité à la vitesse.

Conclusion

Jtest Parasoft est un facteur clé pour offrir une qualité rapide. Les développeurs sont plus en mesure de réduire les défauts de fin de cycle, avec de meilleurs tests unitaires et une analyse de code statique automatisée, ce qui leur permet de se concentrer plus de temps sur le développement de nouvelles fonctionnalités pour l'entreprise, et ces développeurs peuvent également bénéficier d'un retour immédiat, en étant capables d'identifier rapidement si leurs modifications de code interrompent la fonctionnalité de l'application et la résolvent rapidement. Parasoft Jtest permet aux équipes de développement d'être agiles et de livrer plus rapidement sans sacrifier la qualité, ce qui permet à l'entreprise de réussir.

Nouvel appel à l'action

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.