Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Wie stapelt sich Ihr Unit-Testing-Prozess?

Von Parasoft

1. August 2013

4  min lesen

Neues Reifegradmodell für Unit-Tests

Unit-Tests sind ein Eckpfeiler für den Erfolg Entwicklungstests Strategien und sollten von jeder Organisation übernommen werden, die Risiken und Kosten über den gesamten Lebenszyklus der Anwendungsentwicklung hinweg reduzieren möchte.

Unit-Tests als primäres Qualitäts-Gate:

  • Verhindert die Einführung von Fehlern, die wertvolle Ressourcen verbrauchen würden, wenn sie später im Entwicklungsprozess entdeckt würden.
  • Reduziert die mit fehlerhafter Software verbundenen Risiken, die zu kostspieligen Rechtsstreitigkeiten, Markenerosion oder sogar zum Tod führen können.
  • Überprüft die Funktionalität der Anwendung und dient als Artefakt für die Rückverfolgbarkeit der Konformität.

Unit-Testing-Prozesse können von sehr einfachen Ad-hoc- oder reaktiven Maßnahmen bis zu hochoptimierten Maßnahmen reichen, bei denen Richtlinien im Rahmen einer Ursachenanalyse regelmäßig aktualisiert werden, um zu verhindern, dass Fehler in der Qualitätssicherung entdeckt werden.

Um mehr über die Vorteile von Unit-Tests zu erfahren, besuchen Sie bitte: https://www.parasoft.com/solutions/unit-testing/

Ad-hoc-Unit-Tests

Bei Ad-hoc-Unit-Tests bemühen sich Entwickler unabhängig voneinander, Unit-Tests zu erstellen und auszuführen, während Funktionen entwickelt werden. Tests werden jedoch nicht gespeichert oder verwaltet. Stattdessen werden sie auf unabhängigen Maschinen isoliert. Zu den Eigenschaften von Ad-hoc-Unit-Tests gehören:

  • Testberichte sind nicht vorhanden oder nicht überprüfbar.
  • Tests werden in einem SCM nicht verwaltet.
  • Keine geplante Automatisierung.
  • Die Wiedereinführung von Mängeln wird als "normal" oder "unvermeidbar" akzeptiert.

Alle Reifetaschen zu diesem Zeitpunkt basieren auf der Erfahrung und Initiative des Einzelnen. Es gibt keine Zentralisierung von Vermögenswerten. Es ist jeder für sich.

Tests und Testartefakte werden normalerweise als einmalige Lösungen erstellt und können auf einem lokalen Computer gespeichert werden oder nicht. Tests werden ohne Berücksichtigung des Geschäfts oder des Anwendungsfalls erstellt.

Anzeichen dafür, dass es Zeit ist, von diesem Level aufzusteigen, sind:

  • Die Anwendung wird aufgrund des angegebenen Zeitmangels nicht ausreichend getestet oder integriert.
  • Das Geschäft ist verloren oder schwer zu gewinnen, da die Benutzer die Instabilität der Anwendung wahrnehmen.
  • Rückgaben, Deinstallationen und / oder Beschwerden neigen dazu, Entwicklungsaktivitäten zu unterbrechen oder zu kontrollieren

Reaktive Einheitentests

Die nächste Stufe über Ad-hoc-Unit-Tests hinaus ist reaktiv, da das Team mehr Unit-Tests durchführen muss, die häufig durch externe Faktoren wie die Einhaltung von Standards oder ein großes Qualitätsproblem motiviert sind. Auf dieser Ebene haben sich das Team und das Management zu Unit-Tests verpflichtet, aber die Implementierung ist im gesamten Unternehmen inkonsistent. Dieses Niveau ist gekennzeichnet durch:

  • Unit-Tests werden in einem zentralen Repository mit dem Produktcode verwaltet.
  • Unit-Tests werden manuell während einer Phase „Rauchtest“ oder „Pre-Release-Test“ durchgeführt.
  • Entwickler verwenden Unit-Tests, um Fehler zu finden, anstatt die Qualität sicherzustellen.

Auf der reaktiven Ebene wird der Wert der Einheitentests erkannt, aber inkonsistente Definitionen der Messung verringern den Wert. Da die Übernahme unvollständig ist, werden die Daten nicht zwischen den Teams geteilt und es ist schwierig, die Fertigstellung oder das Qualitätsniveau zu beurteilen.

Proaktives Testen von Einheiten

Über reaktive Tests hinaus erkennen Unternehmen die Notwendigkeit, die Verwendung von Unit-Tests im gesamten Unternehmen zu standardisieren. Eine gemeinsame Richtlinie für Komponententests ist klar dokumentiert, und die Teams erkennen Komponententests als Teil des Entwicklungsprozesses an. Entwickler sind auf einer Testplattform standardisiert, um während Iterationen regelmäßig Komponententests zu erstellen und zu erweitern.

Dieser Reifegrad ist gekennzeichnet durch:

  • On-Target-Tests sind bei eingebetteten Systemen üblich.
  • Die geplante Automatisierung von Testläufen und Berichten bietet Rückverfolgbarkeit.
  • Die Organisation verwendet Unit-Tests, um Regressionen zu reduzieren.
  • Eine Strategie zum Testen von Legacy-Code für Einheiten wird angenommen.

Auf dieser Ebene sehen Unternehmen echte Vorteile einer unternehmensweiten Richtlinie für Komponententests, in der Regel in Form einer spürbaren Verringerung schwerwiegender Mängel. Durch die verbesserte Sichtbarkeit und Rückverfolgbarkeit kann das Management bessere Geschäftsentscheidungen treffen. Unit-Tests werden als Teil des Prozesses institutionalisiert und es wird ein Entwicklungsverhalten erwartet.

Managed Unit-Tests

Auf der verwalteten Ebene des Reifegrads von Unit-Tests beginnen Unternehmen, einen datengesteuerten Ansatz für die Entscheidungsfindung zu verwenden. Eine metrikgesteuerte Richtlinie erhöht die Sichtbarkeit, da ein zentral definierter Prozess Unit-Test-Aktivitäten verwaltet. Das Entwicklungsteam nutzt jetzt die Testplattform, um Aufgaben basierend auf Abdeckungsanforderungen, Ausfallrisiko und anderen von Richtlinien definierten Metriken direkt auf Desktops zu verteilen.

Dieser Reifegrad ist gekennzeichnet durch:

  • Bei jeder Änderung schlagen weniger Tests aufgrund von Desktop-Läufen vor dem Festschreiben fehl.
  • Entwickler reagieren schnell auf Unit-Test-Fehler, wie sie in einer Richtlinie innerhalb eines kontinuierlichen Integrations-Workflows definiert sind.
  • Funktions- und Objektvirtualisierung werden verwendet, um die Abdeckung zu erweitern und Fehlerbedingungen zu testen.
  • Regressionen treten seltener auf.

Testgetriebene Entwicklung (TDD) wird zu einer praktikablen Option für die Fahrcodequalität, wenn der Wert von Unit-Tests steigt. Änderungsbasiertes Testen wird Realität, weil die Kosten für Änderungen im Voraus bekannt sind.

Zusätzlich zur Steigerung der Qualität und Sicherheit ihrer Software können Unternehmen beginnen, die während der Entwicklung gesammelten Daten zu verwenden, um bessere Entscheidungen zu treffen. Das Unternehmen versucht, die zusammengeführten und korrelierten Daten zu nutzen, um erweiterte Analysen durchzuführen, mit denen Anwendungs-Hotspots identifiziert werden.

Optimierte Unit-Tests

Auf der optimierten Ebene der Unit-Tests liegt ein organisatorischer Fokus. Die Richtlinien werden im Rahmen einer Ursachenanalyse regelmäßig aktualisiert, um zu verhindern, dass bei der Qualitätssicherung Fehler entdeckt werden.

Unit-Tests sind ein Überprüfungsmechanismus, mit dem überprüft wird, ob Richtlinie und Prozess synchron sind. Die Testergebnisse sind verknüpfbar und können bidirektional auf alle Daten im Zusammenhang mit der Software- und Geräteentwicklung zurückgeführt werden. Die Rückverfolgbarkeit erstreckt sich über die traditionellen Grenzen des SDLC hinaus.

Die Richtlinien für Komponententests sind nahtlos in ein kontrolliertes Framework für Qualität, Sicherheit, Leistung und Zuverlässigkeit integriert, das über eine zentralisierte Schnittstelle koordiniert wird und sowohl Entwicklungs- als auch Nichtentwicklungssysteme umfasst. Echte Business Intelligence wird erreicht.

Entwickler, Tester oder Manager starten einen Testlauf, der auf einer beliebigen Kombination von technischen und geschäftlichen Anforderungen basiert. Das System passt die erforderlichen Umgebungen, VMs und Tests automatisch an und liefert dann Ergebnisse als Teil einer anpassbaren Business Intelligence-Schicht.

Reifegradmodell für Unit-Tests

Dies ist nur eine kurze Einführung in den Reifegrad von Unit-Tests. Die meisten Organisationen fallen heute irgendwo in das Spektrum dieses Reifegradmodells.

Parasoft, der Marktführer in der Automatisierung von Softwaretests, hat ein Reifegradmodell für Komponententests entwickelt, das einen detaillierten Überblick über die 5 verschiedenen Ebenen von Komponententests bietet: Ad-hoc, Reaktiv, Proaktiv, Verwaltet und Optimiert.

Wenn Sie beurteilen möchten, wo Ihre Organisation derzeit steht, und sehen möchten, worum es bei der weiteren Entwicklung geht, Laden Sie das vollständige Reifegradmodell für Unit-Tests herunter.

Von Parasoft

Die branchenführenden automatisierten Softwaretest-Tools von Parasoft unterstützen den gesamten Softwareentwicklungsprozess, vom Schreiben der ersten Codezeile über Unit- und Funktionstests bis hin zu Leistungs- und Sicherheitstests, wobei simulierte Testumgebungen genutzt werden.

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