Empfohlenes Webinar: MISRA C++ 2023: Alles, was Sie wissen müssen | Zum Video

Lesezeit: 3 Minuten

Überblick

Ein führendes multinationales Finanzdienstleistungsinstitut erstellt Anwendungen, die seinen Kunden über die Unternehmenswebsite den Zugriff auf eine Vielzahl von Privatbanking-, Hypotheken- und Kreditdienstleistungen ermöglichen.

Die Herausforderung

Wie bei vielen anderen Finanzinstituten war DevOps eine Schlüsselinitiative bei diesem führenden Finanzdienstleistungsunternehmen und die Entwicklungsteams standen unter dem Druck, die Softwarebereitstellung zu beschleunigen. Sie verfügten über Hunderte von Java-Microservices, von denen viele Legacy-Code enthielten, der nur eine geringe Codeabdeckung aufwies. Es gab Hinweise darauf, dass Änderungen an den Diensten mit geringerer Codeabdeckung mit deutlich höheren Fehlerraten einhergingen.

Die Produktivität der Entwickler war eine weitere wichtige Initiative. Die schlechte Abdeckung führte zu einer alarmierenden Menge an Nacharbeiten in der Spätphase. Darüber hinaus verbrachten Entwickler zu viel Zeit damit, Komponententests manuell zu erstellen, um die Abdeckung zu erhöhen. Diese Herausforderungen führten zu Unvorhersehbarkeiten sowohl bei der Qualität als auch bei den Lieferzeiten. Führungskräfte im Bereich Softwarebereitstellung suchten nach einer Möglichkeit, den Entwicklern dabei zu helfen, effizienter zu arbeiten, um die Produktivität zu steigern, ohne die Qualität zu beeinträchtigen.

Die Vorgehensweise

Die Organisation kam zu dem Schluss, dass sie eine Lösung finden musste, die:

  • Messen Sie den Grad der vorhandenen Codeabdeckung sowohl für automatisierte als auch für manuelle Testbemühungen.
  • Automatisieren Sie die Generierung von Unit-Tests, um die Abdeckung zu maximieren.
  • Unterstützen Sie die folgenden Tools und Technologien.
    • JUnit-Testframeworks 4 und 5
    • IntelliJ- und Eclipse-IDEs
    • Maven- und Gradle-Build-Systeme
    • Jenkins- und GitHub-CI-Systeme
    • Frühling, Frühlingsstiefel und Lombok

Das Unternehmen führte mit Jtest einen Proof of Concept durch, den Parasoft bereitstellte
sie mit:

  • Hervorragende Anleitung und Unterstützung bei der Implementierung der Java-Testlösung zum Ausführen von Unit-Tests
  • Sichtbarkeit und umsetzbare Metriken aus einer automatisierten Sammlung bestehender Code-Abdeckungsstufen
  • Generierung von Unit-Tests mit einem Klick, die die Abdeckung in nur wenigen Minuten um das Dreifache erhöhte

Die Lösung

Durch den Einsatz von KI zur Automatisierung der Unit-Test-Generierung bot Jtest einige klar differenzierte Funktionen, die die Erstellung des Geschäftsszenarios erleichterten.

  • Unit-Test-Assistent. Der KI-fähige Unit-Test-Assistent von Parasoft Jtest ist ein IDE-Plugin, das Benutzer mit einfachen Ein-Klick-Aktionen zum Erstellen, Skalieren und Verwalten von Unit-Tests durch die Unit-Test-Praxis führt.
  • Testauswirkungsanalyse. Jtest nutzt KI, um selektiv nur geänderten Code anzusprechen und die richtige Teilmenge von Tests zu identifizieren, um diese Änderungen zu validieren.
  • Spring- und Spring Boot-Unterstützung. Durch die spezielle Unterstützung dieser Frameworks wird der Aufwand für Entwickler für MVC-Tests, Mocking und mehr erheblich reduziert.
  • Aggregierte Abdeckung. Entwickler können Codeabdeckungsmarkierungen im Code anzeigen, um eine kombinierte Codeabdeckung basierend auf mehreren Testpraktiken wie Unit-Tests, manuellen Tests und Funktionstests zu erhalten. Die ganzheitliche Sichtweise konzentriert die Testbemühungen, was die Effizienz steigert.
  • Statische Anwendungssicherheitstests (SAST). Ein großer Vorteil von Jtest besteht darin, dass es auch automatisierte statische Analysetests für Code mit Unterstützung für CWE, OWASP und mehr durchführen kann. Obwohl das Unternehmen nicht nach SAST suchte, stellten sie fest, dass Parasoft eine Lösung bot, die ihren Anforderungen zum Testen auf Sicherheitslücken entsprach.

Nach der Implementierung von Jtest war das Entwicklungsteam dieser Finanzorganisation in der Lage, innerhalb weniger Stunden umfassende Testsuiten zu erstellen. Innerhalb weniger Wochen erreichten sie ihr Ziel einer Codeabdeckung von 85 % für geänderten Code für ihre geschäftskritischsten Microservices.

Die Ergebnisse

Mithilfe des KI-gestützten Jtest von Parasoft konnte das Team bessere Komponententests erstellen und eine höhere Codeabdeckung erzielen.

„Seit wir Parasoft Jtest implementiert haben, konnten wir den Zeitaufwand für die Erstellung und Wartung von Unit-Tests erfolgreich um mehr als 50 % reduzieren.“

– Entwicklungsdirektor des Finanzdienstleistungsunternehmens

Die Lösung lieferte positive Geschäftsergebnisse für ihre strategischen Initiativen.

  1. Erhöhte Entwicklerproduktivität. Die Produktivitätssteigerung der Java-Entwickler wurde auf 4 bis 10 Stunden pro Woche pro Entwickler geschätzt, die von Unit-Tests auf Innovation verlagert werden könnten. Das summiert sich auf mehr als 20,000 Stunden pro Jahr für das 100-köpfige Entwicklerteam.
  2. Verbesserte Codequalität. Die Fehlerquote sank um mehr als 20 %, was zu Folgendem führte:
    • Beschleunigte Lieferung
    • Reduzierte Nacharbeit
    • Verbessertes Vertrauen in die Softwarebereitstellung

Mit KI-gestützten Unit-Tests konnte das Finanzunternehmen bessere Unit-Tests erstellen und eine höhere Codeabdeckung erzielen. Sie erzielten bedeutende Ergebnisse, die es ihnen ermöglichten, schnell qualitativ hochwertige Software zu liefern.

  • 100 % schnellere Erstellung von Unit-Tests. Die Generierung von Unit-Tests für Legacy-Code und -Dienste mit einem Klick verbesserte die Entwicklerproduktivität. Sie erstellten doppelt so schnell eine umfassende und aussagekräftige Suite von JUnit-Testfällen.
  • 85 % Codeabdeckung in wenigen Wochen. Das Unternehmen steigerte die Codeabdeckung seiner geschäftskritischsten Microservices von durchschnittlich 20 % auf 85 %.
  • 90 % Reduzierung der Ausführungszeit für Regressionstests in ihrer CI/CD-Pipeline. Jtest nutzt KI, um Codeänderungen zu erkennen und führt nur die Tests aus, die von der Änderung betroffen sind.

Diese Finanzorganisation steigerte nicht nur die Produktivität des Entwicklungsteams, sondern reduzierte auch die Gesamtkosten für Tests. Der ROI der Implementierung des Tools wurde in weniger als drei Monaten erreicht. Sie lieferten Qualitätscode schneller mit weniger Fehlern und zu geringeren Kosten.

Finden Sie echte Beispiele dafür, wie KI und ML die Abdeckung von Unit-Tests erhöhen und überflüssige Arbeit eliminieren.

  • Industrie: Finanzen
  • Firmengröße: 42,000
  • Standort: Vereinigte Staaten/Global
  • Lösung: Test