Webinaire en vedette : MISRA C++ 2023 : tout ce que vous devez savoir | Voir le séminaire

Temps de lecture : 3 minutes

Vue d'ensemble

Une institution de services financiers multinationale de premier plan produit des applications qui permettent à ses clients d'accéder à une variété de services bancaires personnels, d'hypothèques et de prêts via le site Web de l'entreprise.

Le projet

Comme de nombreuses autres institutions financières, DevOps était une initiative clé de cette organisation de services financiers de premier plan et les équipes de développement étaient sous pression pour accélérer la livraison de logiciels. Ils avaient des centaines de microservices Java, dont beaucoup contenaient du code hérité qui avait peu de couverture de code. Les preuves ont indiqué que les modifications apportées aux services avec une couverture de code inférieure étaient corrélées à des taux de défauts significativement plus élevés.

La productivité des développeurs était une autre initiative importante. Une mauvaise couverture créait une quantité alarmante de retouches en fin de cycle. De plus, les développeurs passaient trop de temps à essayer de créer manuellement des tests unitaires pour augmenter la couverture. Ces défis créaient une imprévisibilité tant au niveau de la qualité que des délais de livraison. Les leaders de la livraison de logiciels cherchaient un moyen d'aider les développeurs à travailler plus efficacement pour augmenter la productivité sans sacrifier la qualité.

L'approche

L'organisation a déterminé qu'elle devait trouver une solution qui :

  • Mesurez les niveaux de couverture de code existants pour les efforts de test automatisés et manuels.
  • Automatisez la génération de tests unitaires pour maximiser la couverture.
  • Prend en charge les outils et technologies suivants.
    • Cadres de test JUnit 4 et 5
    • IDE IntelliJ et Eclipse
    • Systèmes de construction Maven et Gradle
    • Systèmes CI Jenkins et GitHub
    • Printemps, botte de printemps et Lombok

La société a avancé avec une preuve de concept avec Jtest où Parasoft a fourni
eux avec :

  • Excellents conseils et assistance pour la mise en œuvre de la solution de test Java pour exécuter des tests unitaires
  • Visibilité et mesures exploitables à partir d'une collection automatisée de niveaux de couverture de code existants
  • Génération en un clic de tests unitaires qui multiplient par trois la couverture en quelques minutes seulement

La solution

En utilisant l'IA pour automatiser la génération de tests unitaires, Jtest offrait des fonctionnalités clairement différenciées qui facilitaient l'élaboration de l'analyse de rentabilisation.

  • Assistant de test unitaire. L'assistant de test unitaire activé par l'IA de Parasoft Jtest est un plug-in IDE qui aide à guider les utilisateurs tout au long de la pratique des tests unitaires avec des actions simples en un clic pour créer, mettre à l'échelle et maintenir des tests unitaires.
  • Tester l'analyse d'impact. Jtest exploite l'IA pour cibler de manière sélective uniquement le code modifié et identifier le bon sous-ensemble de tests pour valider ces modifications.
  • Prise en charge de Spring et Spring Boot. La prise en charge spécialisée de ces frameworks réduit considérablement les efforts des développeurs pour les tests MVC, les moqueries, etc.
  • Couverture agrégée. Les développeurs peuvent afficher des marqueurs de couverture de code dans le code pour une couverture de code combinée basée sur plusieurs pratiques de test, comme les tests unitaires, les tests manuels et les tests fonctionnels. La vue holistique concentre les efforts de test, ce qui augmente l'efficacité.
  • Test de sécurité des applications statiques (SAST). Un énorme avantage avec Jtest est qu'il peut également effectuer des tests d'analyse statique automatisés pour le code avec prise en charge de CWE, OWASP, etc. Bien que l'entreprise ne recherchait pas SAST, elle a réalisé que Parasoft offrait une solution qui répondait à son besoin de tester les vulnérabilités de sécurité.

Après avoir implémenté Jtest, l'équipe de développement de cette organisation financière a pu générer des suites de tests complètes en quelques heures. En quelques semaines, ils ont atteint leur objectif de couverture de code de 85 % sur le code modifié pour leurs microservices les plus critiques pour l'entreprise.

Les Résultats

En utilisant le Jtest compatible avec l'IA de Parasoft, l'équipe a pu créer de meilleurs tests unitaires et générer une couverture de code plus élevée.

"Depuis que nous avons implémenté Parasoft Jtest, nous avons réussi à réduire de plus de 50 % le temps nécessaire à la création et à la maintenance des tests unitaires."

—Directeur du développement à l'organisation des services financiers

La solution a produit des résultats commerciaux positifs pour leurs initiatives stratégiques.

  1. Augmentation de la productivité des développeurs. Le gain de productivité des développeurs Java a été estimé à 4-10 heures par semaine de temps par développeur qui pourrait être déplacé des tests unitaires vers l'innovation. Cela représente plus de 20,000 100 heures par an pour leur équipe de XNUMX développeurs.
  2. Amélioration de la qualité du code. Les taux de défauts ont chuté de plus de 20 %, ce qui a entraîné :
    • Livraison accélérée
    • Réduction des retouches
    • Amélioration de la confiance dans les livraisons de logiciels

La société financière a été en mesure de créer de meilleurs tests unitaires et d'augmenter la couverture de code grâce aux tests unitaires alimentés par l'IA. Ils ont obtenu des résultats significatifs qui leur ont permis de fournir rapidement des logiciels de haute qualité.

  • Création de tests unitaires 100 % plus rapide. La génération en un clic de tests unitaires pour le code et les services hérités a amélioré la productivité des développeurs. Ils ont construit une suite complète et significative de cas de test JUnit deux fois plus rapidement.
  • 85 % de couverture du code en quelques semaines. La société a augmenté la couverture du code de 20 % à 85 % en moyenne pour ses microservices les plus critiques pour l'entreprise.
  • Réduction de 90 % du temps d'exécution des tests de régression dans leur pipeline CI/CD. Jtest exploite l'IA pour détecter les modifications de code et n'exécute que les tests impactés par les modifications.

En plus d'augmenter la productivité de l'équipe de développement, cette organisation financière a réduit le coût global des tests. Le ROI de la mise en place de l'outil a été atteint en moins de trois mois. Ils ont livré un code de qualité plus rapidement avec moins de défauts à moindre coût.

Passez à l'étape suivante

Découvrez comment votre équipe peut bénéficier de l'IA et du ML dans les tests de logiciels. Trouvez des exemples concrets de la façon dont il est utilisé pour augmenter la couverture des tests unitaires et supprimer le travail redondant.

  • Industrie: Services
  • Taille de l'entreprise: 42,000
  • Site : États-Unis/Mondial
  • Solution: Jtest