Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

BLOG

So erhöhen Sie den Java-Test-ROI mit Parasoft Jtest

So erhöhen Sie den Java-Test-ROI mit Parasoft Jtest Lesezeit: 7 Minuten
Um Teams dabei zu unterstützen, Qualität und Sicherheit schneller und zuverlässiger zu erreichen, können Unternehmen Parasoft Jtest für Java-Tests nutzen. Erfahren Sie, wie Sie Jtest nutzen können, um den ROI für Java-Tests zu steigern, die Softwarebereitstellung zu beschleunigen und gleichzeitig die Softwarequalität zu verbessern.

In der heutigen digitalen Wirtschaft müssen Unternehmen Software schneller auf den Markt bringen, um mit der Nachfrage der Verbraucher Schritt zu halten. Um dies zu erreichen, ohne Qualität und Sicherheit zu beeinträchtigen, müssen Unternehmen in der Lage sein, Änderungen des Softwarecodes gründlich und schnell effektiv zu testen. Das Erreichen dieser gründlichen Tests kann jedoch ein Engpass sein, der den Softwareteams Stress und Risiken bringt, die Lieferung verzögert und direkte Auswirkungen auf das Geschäft hat.

Einer der größten Faktoren, der zu Verzögerungen bei Softwareprojekten beiträgt, sind Fehler, die spät im Entwicklungsprozess entdeckt werden. Dies tritt auf, weil das Unternehmen Druck auf Entwicklungsteams ausübt, Zeitpläne einzuhalten, was sich direkt auf Tests und Produktqualität auswirkt. Um dieses Problem zu beheben, nutzen Entwicklungsteams Unit-Tests und statische Code-Analysen, um Fehler früher im Zyklus aufzudecken. Diese Praktiken haben jedoch eigene Nachteile in Bezug auf Zeit und Kosten, die zu einer Verzögerung bei der schnellen Erreichung der Qualität führen können.

Um diese Verzögerungen bei der Lieferung zu beheben und Teams dabei zu unterstützen, Qualität und Sicherheit schneller und zuverlässiger zu erreichen, können Unternehmen diese nutzen Parasoft Jtest um Java-Entwicklungstests effizienter zu gestalten. Unabhängig davon, ob Sie neuen Code entwickeln oder eine Legacy-Anwendung warten, kann Parasoft Jtest Unit-Tests generieren, erweitern, klonen und mutieren sowie die Ausführung dieser Tests optimieren, um die mit Unit-Tests verbundene Zeit und Kosten erheblich zu verbessern. Der "Neben" -Vorteil? Eine aussagekräftige Suite wartbarer Unit-Tests.

Darüber hinaus kann Parasoft Jtest Quelldateien scannen, um die Anwendungssicherheit und -qualität während des Entwicklungsprozesses zu verbessern. Insgesamt trägt dies dazu bei, die Bereitstellung zu beschleunigen und die Softwarequalität zu verbessern, indem Fehler früher im Softwareentwicklungsprozess erfasst werden.

Erhöhen Sie den ROI für Unit-Tests: Erstellung von Unit-Tests

Angenommen, ein großes Finanzinstitut implementiert eine Cloud-Migrationsstrategie, bei der neue Java-Anwendungen entwickelt werden, um zu veranschaulichen, wie der ROI in der Phase der Erstellung von Komponententests gesteigert werden kann. Das Entwicklungsteam besteht aus 20 Entwicklern, die durchschnittlich 100,000 US-Dollar pro Entwickler kosten. Die Gesamtentwicklungskosten betragen also 2 Millionen US-Dollar pro Jahr. Die neue Anwendung wird vierteljährlich veröffentlicht, sodass die Entwicklungskosten pro Version 500,000 US-Dollar betragen. Basierend auf unseren Untersuchungen verbringt das durchschnittliche Entwicklungsteam konservative 30% seiner Zeit damit, Komponententests manuell zu schreiben, was darauf hindeutet, dass das Schreiben von Komponententests für eine bestimmte Version das Unternehmen etwa 150,000 US-Dollar kostet.

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

(Vierteljährliche Veröffentlichung) (Jährliche Entwicklerkosten) (Prozentsatz der Zeit, die für das Schreiben von Unit-Tests aufgewendet wurde) = Kosten für das Schreiben von Unit-Tests

Mit der Parasoft-Unit-Tests, haben Benutzer berichtet, dass das Schreiben von Unit-Tests in der Hälfte der Zeit durchgeführt werden kann. Jtest eliminiert nicht nur viele der zeitaufwändigen manuellen Aufgaben im Zusammenhang mit Unit-Tests, sondern nutzt auch KI, um Unit-Tests automatisch zu generieren, sobald der Code geschrieben ist, um die Codeabdeckung zu erhöhen. Anstatt also 30 % der Entwicklungszeit für das Schreiben von Komponententests aufzuwenden, können sie nur 15 % in Anspruch nehmen und sich mehr Zeit auf den Teil der Geschäftslogik des Tests konzentrieren.

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

(Vierteljährliche Veröffentlichung) (Jährliche Entwicklerkosten) (Prozentsatz der Zeit, die für das Schreiben von Unit-Tests aufgewendet wurde) (Prozentsatz der Zeitreduzierung mit Jtest) = Kosten für das Schreiben von Unit-Tests mit Jtest

Dies senkt die Kosten für das Schreiben von Komponententests von 150,000 USD auf 75,000 USD, was zu Kosteneinsparungen von 75,000 USD pro Version und jährlichen Einsparungen von 300,000 USD führt.

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

Ursprüngliche Kosten für Unit-Tests - Kosten für Unit-Tests mit Jtest = Kosteneinsparungen mit Jtest

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

(Kosteneinsparungen) (Anzahl der Veröffentlichungen pro Jahr) = Gesamteinsparungen pro Jahr mit Jtest

Die Reduzierung der Entwicklungskosten trägt zur Rentabilität des Unternehmens bei. Neben Kosteneinsparungen wird auch wertvolle Zeit gespart. Wenn das Unternehmen zweiwöchige Sprints für die Entwicklung einsetzt, die aus 2 Arbeitstagen bestehen, werden 10% oder 30 Tage für Unit-Tests bereitgestellt. Für eine bestimmte Version (3 Monate) gibt es insgesamt 3 Sprints (z. B. 6 für die Entwicklung und 5 für die endgültigen Tests). Unter Verwendung dieser Zahlen werden 1 Tage nach der Veröffentlichung vom Team für Unit-Tests verwendet.

(5) (10) (30) = 15 Tage

(Anzahl der Entwicklungssprints) (Anzahl der Tage in einem Sprint) (Prozentsatz der Zeit, die für das Schreiben von Unit-Tests aufgewendet wurde) = Anzahl der Tage, die für die Veröffentlichung von Unit-Tests aufgewendet wurden

Jtest verkürzt diese Zeit um die Hälfte auf 1.5 Tage Unit-Test pro Sprint oder 7.5 Tage nach Veröffentlichung werden vom Team für Unit-Tests verwendet.

(5) (10) (30) (50) = 7.5 Tage

(Anzahl der Entwicklungssprints) (Anzahl der Tage in einem Sprint) (Prozentsatz der Zeit, die für das Schreiben von Unit-Tests aufgewendet wurde) (Prozentsatz der Reduzierung der Zeit mit Jtest) = Anzahl der Tage, an denen Unit-Tests für die Veröffentlichung mit Jtest verbracht wurden

Das Speichern des Geschäfts 7.5 Tage ist äußerst wertvoll, wenn Sie sich in einer Zeitkrise befinden, um Ihren Konkurrenten auf dem Markt zu schlagen.

15 - 7.5 = 7.5 Tage

Original Time Spent Unit Testing - Time Spent Unit Testing mit Jtest = Zeitersparnis mit Jtest

Es ist erwähnenswert, dass in diesem Beispiel konservative 30% für die Zeit verwendet werden, die für das manuelle Schreiben von Komponententests aufgewendet wird. Oft ist diese Zahl jedoch viel höher und beträgt je nach Unit-Test-Praxis des Unternehmens bis zu 50%. Diese Organisationen können mit Parasoft Jtest noch mehr Zeit und Kosten einsparen.

Erhöhen Sie den Unit Testing ROI: Unit Test Execution

Nehmen wir nun an, dieselbe Organisation baut ihre neue Anwendung aus und generiert dabei immer mehr Komponententests, von einzelnen (isolierten) Komponententests, deren Ausführung Sekunden dauert, bis zu geselligen Komponententests (Integrationsebene) Das dauert deutlich länger. Die Ausführungszeit für die gesamte Unit-Test-Suite steigt auf 2 Stunden, und die gesamte Entwicklungszeit für die Entwicklung leidet, da ein Software-Entwicklungsteam mit 2 Stunden viel Zeit warten muss, bis es Feedback zu seinen Codeänderungen erhält. Die Organisation folgt einer agilen Methodik, sodass sie mehrmals am Tag erstellt, um ihren Softwareteams häufiges Feedback zu geben. Aufgrund der Ausführungszeit von 2 Stunden für Unit-Tests können sie jedoch nur 3 Builds pro Tag ausführen, was 6 Stunden der gesamten Einheit entspricht Tägliche Testausführungszeit, was zu Ineffizienz im Entwicklungsprozess führen kann.

Um den Release-Zyklus zu verkürzen, kann das Team die Ausführung von Unit-Tests mit Parasoft Jtest optimieren. Jtest reduziert die Zeit, die zum Ausführen von Komponententests mit AI-fähiger Testautomatisierung benötigt wird optimiert Satz von Komponententests basierend auf dem geänderten Code, anstatt die gesamte Testsuite auszuführen. Diese Optimierung erfolgt in der IDE des Entwicklers vor dem Einchecken des Codes sowie während der CI-Erstellung, während die vollständige Testsuite weiterhin jede Nacht ausgeführt wird. Durch die Optimierung, welche Tests ausgeführt werden, wird die Gesamtaufbauzeit drastisch verkürzt und ein schnelleres Feedback an Softwareteams ermöglicht. Und das Unternehmen kann mehr Builds pro Tag erhalten, wodurch die Produktivität des Teams während des aktiven Teils des Tages optimiert wird, was zu einer schnelleren Lieferzeit führt. Durch die Nutzung der Testtechnik von Jtest können sowohl Zeit- als auch Kosteneinsparungen erzielt werden.

Erhöhen Sie den ROI der statischen Code-Analyse: Automatisiertes Scannen

Verwenden wir für dieses Szenario weiterhin dieselbe Organisation. Beim Testen werden mehrere Fehler im späten Zyklus festgestellt. Unter Verwendung der Cost-per-Defect-Metrik aus den „Composing Effective Software Security Assurance Workflows“ des Software Engineering Institute der Carnegie Mellon University wurden Fehler in den Kosten des frühen Zyklus im Durchschnitt 1 Stunde lang gefunden und behoben, im Gegensatz zu den gefundenen im späten Zyklus, der in der Regel 7-mal mehr kostet, 7 Stunden. Basierend auf dem Durchschnittsgehalt von 100,000 USD kostet es ~ 48 USD, einen Fehler frühzeitig zu finden und zu beheben, gegenüber ~ 336 USD, um einen Fehler im späten Zyklus zu finden und zu beheben. Das Unternehmen identifiziert 20 Fehler im späten Zyklus, die sich auf insgesamt 6,720 USD und 140 Entwicklungsstunden (~ 18 Arbeitstage) belaufen. Anhand dieser Daten wird deutlich, welche Auswirkungen Fehler im späten Zyklus auf Zeit und Kosten einer Freigabe haben.

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

(Entwicklerkosten pro Stunde) (Anzahl der Stunden zum Auffinden und Beheben eines Fehlers im späten Zyklus) (Anzahl der Fehler im späten Zyklus) = Gesamtkosten für die Fehlerbehebung

[(7) (20)] / 8 = ~ 18 Arbeitstage

[(Anzahl der Stunden zum Auffinden und Beheben eines Fehlers im späten Zyklus) (Anzahl der Fehler im späten Zyklus)] / (Anzahl der Stunden an einem typischen Arbeitstag) = Gesamtzeit zur Fehlerbehebung

Um die Anzahl der Fehler zu verringern, die im späten Zyklus auftreten, ermöglicht Parasoft Jtest Teams automatisierte statische Code-Analysen und Sicherheitstests und bietet mehr als 1000 Regeln, die potenzielle Schwachstellen und Probleme im Code zur Entwicklungszeit (im frühen Zyklus) identifizieren. Wenn Jtest 25% der Defekte im späten Zyklus konservativ früher erkennt, was zu 5 Defekten im frühen Zyklus führt und 15 im späten Zyklus verbleibt, kostet dies 5,280 USD und 110 Entwicklungsstunden (~ 14 Arbeitstage), um sowohl früh als auch spät zu finden und zu beheben Zyklusfehler. Dies senkt den Zeit- und Kostenaufwand für die Fehlerbehebung für die Freigabe um ca. 25%.

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

(Entwicklerkosten pro Stunde) (Anzahl der Stunden zum Auffinden und Beheben eines Fehlers im frühen Zyklus) (Anzahl der Fehler im frühen Zyklus) = Kosten für die Fehlerbehebung im frühen Zyklus

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

(Entwicklerkosten pro Stunde) (Anzahl der Stunden zum Auffinden und Beheben eines Fehlers im späten Zyklus) (Anzahl der Fehler im späten Zyklus) = Kosten für die Fehlerbehebung im späten Zyklus

$ 240 + $ 5,040 = $ 5,280

Sanierungskosten im frühen Zyklus + Sanierungskosten im späten Zyklus = Gesamtkosten für die Fehlersanierung mit Jtest

($ 6,720 - $ 5,040) / $ 6,720 = ~ 25% Kostenersparnis mit Jtest

(Ursprüngliche Sanierungskosten - Sanierungskosten mit Jtest) / Ursprüngliche Sanierungskosten = prozentuale Kosteneinsparungen mit Jtest

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

(Anzahl der Stunden zum Auffinden und Beheben eines Fehlers im frühen Zyklus) (Anzahl der Fehler im frühen Zyklus) / (Anzahl der Stunden an einem typischen Arbeitstag) = Fehlerbehebungszeit im frühen Zyklus

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

(Anzahl der Stunden zum Auffinden und Beheben eines Fehlers im späten Zyklus) (Anzahl der Fehler im späten Zyklus) / (Anzahl der Stunden an einem typischen Arbeitstag) = Fehlerbehebungszeit im späten Zyklus

1 + 13 = 14 Tage

Sanierungszeit im frühen Zyklus + Sanierungszeit im späten Zyklus = Gesamtkorrekturzeit für Fehler

(18 - 14) / 18 = ~ 22% Zeitersparnis mit Jtest

(Ursprüngliche Sanierungszeit - Sanierungszeit mit Jtest) / Ursprüngliche Sanierungszeit = prozentuale Zeitersparnis mit Jtest

Um die Identifizierung von Problemen weiter nach links zu verschieben, ermöglicht Jtest dem Benutzer, während der Entwicklung innerhalb seiner IDE eine "on the fly" - oder kontinuierliche Analyse durchzuführen. Auf diese Weise kann der Entwickler Probleme beheben, während er bereits aktiv mit dem Code arbeitet, wenn der Fehler auftritt. Dies reduziert Zeit und Kosten, die mit der Fehlerbehebung verbunden sind, weiter und erhöht die Qualität bei hoher Geschwindigkeit erheblich.

Fazit

Parasoft Jtest ist ein Schlüsselelement für die schnelle Bereitstellung von Qualität. Entwickler sind in der Lage, Fehler im späten Zyklus durch bessere Komponententests und automatisierte statische Code-Analyse zu reduzieren, sodass sie sich mehr auf die Entwicklung neuer Funktionen für das Unternehmen konzentrieren können. Diese Entwickler können auch von sofortigem Feedback profitieren und diese schnell identifizieren ob ihre Codeänderungen die Funktionalität in der Anwendung beeinträchtigen und sie schnell beheben. Mit Parasoft Jtest können Entwicklungsteams agil sein und schneller liefern, ohne die Qualität zu beeinträchtigen, wodurch das Geschäft erfolgreich wird.

Neuer Handlungsaufruf

Geschrieben von

Kapil Bhandari

Kapil ist Produktmanager bei Parasoft und konzentriert sich auf Parasoft Jtest. Kapil hatte verschiedene technische Positionen inne, die vom Softwareentwickler bis zum Entwicklungsleiter reichten, bevor er zum Produktmanagement wechselte.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.