top of page

ASPICE in der Praxis - so geht es!

Autorenbild: Manfred PreyerManfred Preyer

Aktualisiert: 23. Okt. 2024

Bild 1 - Im Validierungs-Umfeld muss man Aufpassen wie ein Fuchs


Validierungsaktivitäten sind ein Hauptbestandteil in ASPICE. Entsprechend dem V-Model besteht auf jeder Ebene, also von der Gesamtsystemarchitektur bis zur Einzelkomponente, ein Validierungsschritt.


Bei Entwicklungsprojekten in der Automobilindustrie, die ASPICE (Automotive SPICE) anwenden, wird oft empfohlen, dass etwa 20 bis 30 Prozent des gesamten Aufwands auf Tests und Qualitätssicherung entfallen. Der genaue Anteil kann jedoch je nach Projektkomplexität, Anforderungen und spezifischen Prozessen variieren. Es ist wichtig, eine angemessene Teststrategie zu entwickeln, um die Qualität und Sicherheit der Software zu gewährleisten.


Jedoch werden wegen Zeitdruck und Einsparungen meist viel weniger Ressourcen für alle Umfangreichen, mit dem Testen verbundenen Tätigkeiten, zur Verfügung gestellt. Die traurige praktische Erfahrung zeigt, dass erst wenn es zu spät ist und zum Beispiel das Assessment Level 0 bescheinigt, ein vermehrter Testaufwand freigegeben wird .


In jeder Phase vom Projekt muss der Testmanager aufpassen wie ein Fuchs, um den Testprozess erfolgreich umzusetzen. Folgende Vorgehensweise empfehlen wir um von Anfang an die richtigen Schritte vorzunehmen:

  1. Analyse der Anforderungen: Die optimalen Anforderungen wird es nie geben, sind aber eine nicht wegzudenkende Basis unserer Testarbeit. Es ist sicherzustellen, dass die Anforderungen möglichst vollständig, konsistent und eindeutig sind. Weiters spart es Zeit, wenn die Anforderungen systematisch geschrieben sind. Weiters ist darauf zu achten, dass Anforderungen so formuliert sind, dass es möglich ist diese vollständig zu testen. Ist das nicht der Fall, dann muss der Testmanager eine Nachbesserung einfordern, um nicht bei der auf Anforderungen basierten Testfallerstellung zu scheitern.

  2. Anforderungspakete schrittweise umsetzen: Manche Anforderungen sind bereits besser beschrieben, haben eine höhere Reife oder sind leichter umzusetzen. Diese sollten in Arbeitspakete zusammengefasst und zuallererst umgesetzt werden. Ähnliche Tests können dadurch leichter abgeleitet werden, da die Abarbeitung von ähnlichen technischen Themen eine mehrfache Einarbeitung erspart.

  3. Auswahl der Testumgebung und Hilfsmittel:

    Die passende Auswahl an Hilfsmittel, wie zum Beispiel der Testumgebung, den Test-Frameworks, der Skript- und Programmiersprachen ist spezifisch und abhängig von der Teststufe und hat einen erheblichen Einfluss auf Testbarkeit und erstellungs- bzw. Durchführungsdauer. Deshalb ist es unerlässlich sich bei der Entscheidungsfindung genau zu überlegen, welche Vor- und Nachteile ein Tool hat. Noch besser ist es die Tool-Entscheidungen im Projekt zu treffen.

  4. Inbetriebnahme und Wartung von Testumgebungen:

    Es ist sicherstellen, dass die Testumgebungen und DUTs (Device Under Test) aktuell sind, einwandfrei funktionieren und mit den neuesten Builds und Daten aktualisiert sind.


  5. Den Testprozess mit einer Requirement-Traceability-Matrix beginnen: Die Requirement-Traceability-Matrix ist eine (Excel) Tabelle, die Anforderungen (representiert als Zeilen der Tabelle) mit entsprechenden Testfällen (Spalten in der Tabelle) verbindet. Das Erstellen dieser Tabelle um die Anforderungen mit Testfällen zu verbinden ist am Anfang mit signifikanten Aufwand verbunden, jedoch im Laufe des Testprozesses, durch Vermeidung von redundanten Tests innerhalb weniger Arbeitstage, bezahlt macht. Am Anfang des Testprozesses soll nur ein, möglichst einfaches Arbeitspaket oder Feature in die Matrix zum Testen aufgenommen werden. Im Laufe des Testprozesses ist es empfohlen die notwendigen Metriken initial über Vorlagen von kooperativen Tools wie Jira oder Polarion zu verwenden. Ein Standard-Reporting ist ebenfalls in der Testerweiterung von Jira verfügbar und es kann auf Knopfdruck ein Testreport generiert werden. Polarion bietet die Möglichkeit Metriken graphisch darzustellen.

  6. Durchführung der Tests: Die am wichtigsten zu klärende Frage ist der Grad der Testautomatisierung, also wieviel Prozent der Tests ohne manuelle Schritte durchgeführt werden können. Vorteil liegt klar in der Zeitersparnis bei Regressionen. Nachteil ist der höhere Implementierungsaufwand im Vergleich zu manuellen Tests. Weiters kann das Ausführen automatisierter Tests im Rahmen einer Continuous Testing Umgebung, zum Beispiel GitHub, eingebunden werden. Darüber hinaus könne die beiden Entwicklungsprozesse CI/CD, also Continuous Integration und/oder Continuous Deployment, mit dem Testsystem verbunden werden. Hier ist eine enge Zusammenarbeit mit der IT notwendig, damit entsprechende Zugriffberechtigungen erteilt und zum Beispiel die Konfiguration der Firewalls angepasst werden.


  7. Fehlermanagement:

    Dokumentation, Bugfixing und Testwiederholung erfordert eine enge Zusammenarbeit mit den Entwicklern. Dies bedeutet in den meisten Projekten mittlerweile ein firmenübergreifendes Denken und ist anfangs zeitintensiv umzusetzen, da Firmen unterschiedlich funktionieren, die Kommunikationskanäle erst aufgebaut werden müssen und zum Beispiel Firewalls den Austausch von Daten unterbinden.


  8. Allgemeine Punkte wie Einplanen von Buffern, Zusammenarbeit und Kommunikation, Verbesserung und Weiterbildung, sowie Berichterstellung, Refactoring und Optimierung werden hier lediglich aufgezählt und nicht extra behandelt.


 

Wie kann die Testbereitschaft hinterfragt werden?


Für Testmanager ist es wichtig folgende Blocker zu identifizieren, aufzuzeigen und erst nach Fehlerbeseitigung mit den Aktivitäten fortzufahren.


  1. Klare Prozessdefinitionen und Projektmanagement: Prozesse sollten gut dokumentiert und für alle Beteiligten verständlich sein. Dies beinhaltet zumindest eine Rollen- und Aufgabenbeschreibungen und wie die Übergabe zu erfolgen hat. Effektives Projektmanagement ist entscheidend, einschließlich der Planung, Überwachung und Kontrolle von Projekten.


  2. Anforderungsmanagement: Hier ist ein systematischer Ansatz zum Erheben, Analysieren, Validieren und Verwalten von Anforderungen entscheidend. Anforderungen sollten möglichst vollständig, konsistent und eindeutig dokumentiert sein.


  3. Änderungsmanagement: Ein strukturierter Prozess für das Management von Änderungen (inklusive umfangreiche Dokumentation) sorgt dafür, dass alle Änderungen nachvollziehbar bleiben und dokumentiert werden. Dadurch kann das Testmanagement auf Änderungen reagieren und die Auswirkung auf den eigenen Bereich erfassen.


  4. Risikomanagement und Qualitätssicherung: Risiken sollten frühzeitig erkannt, bewertet und wirksame Maßnahmen zur Risikominderung implementiert werden. Eine kontinuierliche Überwachung und Anpassung der Risiken ist ebenfalls wichtig. Fehlen Qualitätssicherungsmaßnahmen, dann kann womöglich auch der Testaufwand hinfällig sein.


 

Welche Aktivitäten konsumieren am meisten Zeit beim Testen?


Die genaue Aufteilung von Zeitanspruch kann je nach Projekt, Organisation und spezifischem Kontext variieren. Allerdings gibt es einige allgemeine Aktivitäten, die typischerweise einen großen Teil der Testzeit beanspruchen.


Nachfolgend sind die drei zeitintensivsten Tätigkeitsfamilien aufgelistet:


  1. Testimplementierung und manuelle Testausführung - Gesamtzeitbedarf ~20 % - ~30 %: Die tatsächliche Implementierung der Testfälle, aber auch manuelle Durchführung der Tests nehmen oft den größten Zeitanteil ein.

  2. Teststrategie und Testdesign - Gesamtzeitbedarf ~30 % - ~50 %: Zu Projektbeginn nimmt das Erstellen einer Teststrategie, das Planen der Testressourcen und das Entwerfen von Testfällen einen erheblichen Teil der Gesamttestzeit in Anspruch. Diese Aktivitäten wegzulassen oder durch standardisierte Vorlagen zu ersetzt gefährdet den Projekterfolg und zieht Mehraufwände nach sich.

  3. Fehlermanagement  - Gesamtzeitbedarf ~20 % - ~30 %:

    Während der Umsetzungs- und Endphase im Projekt beansprucht das Identifizieren, Dokumentieren und Verfolgen von Fehlern signifikant Zeit, da Entwickler und Tester sehr oft eng zusammenarbeiten müssen, um effizient debuggen zu können.


Dahingegen ist die Wartung und Aktualisierung von Testfällen, das Testumgebungsmanagement, Berichterstattung und Analyse und das Automatisierung von Testfällen nur am Anfang zeitintensiv, im Projektverlauf aber langfristig gering. Ob und in welchen Ausmaß Tests zu automatisieren sind hat erheblichen Einfluss auf die Zeit- und Aufgabenaufteilung und variieren projektspezifisch sehr stark.


 

Die Ursachen für die größte Misserfolge bei ASPICE Implementierung?


Die Implementierung von ASPICE in einem Unternehmen kann viele Herausforderungen mit sich bringen, und es gibt mehrere häufige Ursachen für Misserfolge. Hier sind einige der Hauptgründe, warum ASPICE-Implementierungen nicht den gewünschten Erfolg erzielen:


  1. Unzureichende Ressourcen: Die Umsetzung von ASPICE erfordert viel Zeit, Geld und personelle Ressourcen. Wie unsere Erfahrung zeigt, liegt die Versuchung sehr nahe, an Ressourcen in der Validierung zu sparen. Ein Ressourcenmangel im Testbereich wirkt sich jedoch erst spät im Projektverlauf aus. Als Konsequenz erhöhen sich die Kosten und die Projektverzögerungen. Deswegen ist es unerlässlich die Ressourcenplanung nachhalten zu führen.

  2. Unzureichende Führungskompetenz:

    Fehlentscheidungen, fehlender Rückhalt oder Engagement des Managements kann dazu führen, dass die notwendigen Ressourcen und die Priorität nicht ausreichend zugeteilt werden. Führungskräfte müssen die Bedeutung von ASPICE erkennen und die praktische Umsetzung aktiv zu unterstützen.

  3. Mangelndes Verständnis und Schulung: Ein unzureichendes Verständnis der ASPICE-Standards und -Prozesse führt oft zu Fehlinterpretationen und falschen Implementierungen. Ausreichende Schulung und Sensibilisierung sind entscheidend für den Erfolg.

  4. Unzureichende Prozesse, Werkzeuge und Infrastruktur: Eine erfolgreiche ASPICE-Implementierung setzt geeignete Werkzeuge und Infrastrukturen voraus, um die Prozesse zu unterstützen. Fehlende oder ungeeignete Werkzeuge können die Effizienz und Effektivität der Prozesse mindern. Wenn Prozesse nicht klar definiert sind oder wenn es keine Anpassung an die spezifischen Bedürfnisse und Kontext des Unternehmens gibt, kann die Implementierung fehlschlagen.

  5. Allgemeine Faktoren für Misserfolg: Schlechte Kommunikation, unklare Ziele und Erwartungen, zu starke oder schwache Fokussierung auf Dokumentation und eine fehlende kontinuierliche Verbesserung


Auf das Erkennen und Überwinden dieser Herausforderungen kommt es an, um ASPICE erfolgreich zu implementieren und die Qualität und Effizienz von Entwicklungsprozessen erheblich zu steigern.

51 Ansichten

Aktuelle Beiträge

Alle ansehen
bottom of page