Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Test, Qualität und Safety von Embedded-Software

Softwarequalität ist der Weg und das Ziel erfolgreicher Softwareentwicklung

Softwarequalität beschränkt sich leider noch zu häufig auf die Formel: Hauptsache es läuft! Doch jeder der Erfahrung mit über Jahre gewachsener Software hat, weiß, welche unangenehmen Folgen diese sehr einseitige Sicht haben kann. Gerade weil sich Software lange Zeit schnell verändern und erweitern lässt, muss der Qualität eine besondere Aufmerksamkeit geschenkt werden.

Es geht dabei nicht nur um die sogenannte äußere Qualität, sondern auch die innere Qualität. Die äußere Qualität steht für vor allem für die Erfüllung der funktionalen Anforderungen. Die innere Qualität steht für eher unsichtbare Merkmale, wie handwerklich saubere und verständliche Codierung (Clean Code), Erweiterbarkeit, Wartbarkeit und Wiederverwendbarkeit.

Die Verantwortung für qualitativ hochwertigen Code tragen dabei alle, die durch ihre Rolle im Projekt Einfluss darauf haben: Entwickler, Tester, Softwarearchitekten, Produktmanager, Qualitätsbeauftragte, Projektleiter. Wir sollten aber auch die Kunden, Vorgesetzte, Vertrieb und weitere Stakeholder nicht vergessen, die die Rahmenbedingungen erheblich mitbestimmen.

Qualität ist das Ergebnis eines Prozesses, in den viele Rollen eingebunden werden müssen. Der Tester hat letztlich die Aufgabe festzustellen, inwieweit dieser Prozess funktioniert. Abhängig von der Rolle beherrschen Sie als qualitätsbewusster Projektbeteiligter folgende Fähigkeiten.

Sie kennen die maßgeblichen Standards

Für die Softwareentwicklung und Softwarebewertung werden z.B. in der Norm ISO/IEC 9126 für die Produktqualität im
Software Engineering verschiedene Qualitätskriterien und Qualitätsmerkmale für die Software definiert. Sie teilen die Kriterien und Merkmale sicher in funktionale und nichtfunktionale Qualitätsaspekte:

Kriterien für funktionale Eigenschaften der Software

Was soll die SW leisten, und wie soll sie es leisten?

Software-Funktionalität Dieses Merkmal umfasst die Angemessenheit, Interoperabilität, Ordnungsmäßigkeit, Richtigkeit und Sicherheit (security, safety).

Kriterien für nicht-funktionale Eigenschaften der Software

Wie soll sich die SW im Betrieb verhalten?

Software-Benutzbarkeit
(Software Usability)

Dieses Merkmal umfasst die Bedienbarkeit, Erlernbarkeit und Verständlichkeit.

Software-Effizienz

Dieses Merkmal umfasst das Verbrauchs- und Zeitverhalten.

Software-Änderbarkeit

Dieses Merkmal umfasst die Kriterien die Analysierbarkeit, Modifizierbarkeit, Prüfbarkeit und Wartbarkeit.

Software-Zuverlässigkeit

Dieses Merkmal umfasst die Fehlertoleranz, Stabilität, Reife der Software und Wiederherstellbarkeit.

Software-Übertragbarkeit

Dieses Merkmal umfasst die Anpassbarkeit, Austauschbarkeit und Installierbarkeit.

 

Da sich die Qualitätsmerkmale teilweise gegenseitig ausschließen bzw. beeinflussen, können nicht mehr als vier der sechs aufgelisteten Qualitätskriterien gleichzeitig erfüllt werden. Sie sind in der Lage, die Qualitätskriterien im Sinne der Projektziele abzuwägen und festzulegen.

Wenn Ihre Software-Entwicklung spezifischen Qualitäts-Anforderungen unterliegt, sorgen Sie dafür, dass Codier-Standards wie der MISRA-C Coding Standard, CMMI und SPICE bzw. Automotive SPICE eingehalten werden.

Insbesondere bei Softwareprojekten, die Safety-Anforderungen für die funktionale Sicherheit (IEC 61508, ISO 26262) unterliegen, weisen Sie für alle Entwicklungs-Testschritte Dokumente nach, die belegen, dass bei allen Entwicklungsphasen die Forderungen an die Sicherheit (safety, security) eingehalten wurden. Beispielsweise stellen Sie sicher, dass bei Fehlern während des Betriebs das System angemessen reagiert und gegebenenfalls in einen sicheren Zustand überführt wird.

Softwarequalität betrifft jede Rolle und Phase des Projekts

Das Vorgehensmodell (Prozessmodell) definiert die auszuführenden Entwicklungsschritte bzw. Projekt-Phasen und deren Reihenfolge in Software-Projekten. Es gibt eine Reihe von verschiedenen Vorgehensmodellen, z.B. agile Software-Entwicklung, eXtreme Programming, Rational Unified Process, Spiral-Modell, V-Modell XT, Wasserfall-Modell.

Sie verstehen es, die Maßnahmen zur gewünschten Softwarequalität in den gewählten Prozess zu integrieren und mit den Rollen im Projektteam zu kombinieren, beispielsweise bei der Anwendung des Prozessmodells V-Modell XT:

Projekt-Phasen des V-Modell XT

Das V-Modell XT ist ein Vorgehensmodell zum Entwickeln von Systemen. Es deckt im Wesentlichen die Disziplinen Projektmanagement, Qualitätssicherung, Ausschreibung und Vergabe sowie die Systementwicklung ab.

Test und Qualität von Embedded-Software - Testen im V-Modell XT

Bild 1: Test und Qualität von Embedded-Software - Projektphasen im V-Modell XT


Die Projekt-Phasen des V-Modell XT

System-Anforderungs-Analyse

Sie ermitteln die Systemanforderungen (Requirements), z.B. was soll das System tun, in welcher Reihenfolge führt das System die einzelnen Aktivitäten aus, was sind die Abhängigkeiten der Komponenten im System, was sind die zeitlichen Anforderungen, usw.? Diese Requirements sind die Grundlage für einen systematischen Systemtest und unverzichtbare Grundlage für die Qualitätssicherung, denn sie bestimmen die Qualitätsmerkmale. In allen nun folgenden Phasen stellen Sie durch den professionellen Einsatz von Methoden und Tools sicher, dass diese Merkmale auch im Rahmen der Möglichkeiten umgesetzt werden.

Analysephase

Sie ermitteln, inwieweit sich die Requirements mit den vorhandenen Ressourcen, der verfügbaren Zeit bis zur Auslieferung und dem gesteckten Kostenrahmen umgesetzt werden können. Gegebenenfalls wirken Sie im Rahmen Ihrer Möglichkeiten auf eine Anpassung der Anforderungen oder der Projektparameter.

System-Entwurf

Sie modularisieren das System.

Software-Architektur-Definition und Software-Design-Definition

Dieses Merkmal umfasst die Fehlertoleranz, Stabilität, Reife der Software und Wiederherstellbarkeit.

Software-Übertragbarkeit

Sie strukturieren das System.

Software-Entwurf

Sie programmieren die einzelnen Software-Module (software units).
Unit Test Sie testen die einzelnen Software-Module (software unit test).
System-Integrationstest

Sie testen, ob die System-Anforderungen in der realen Umgebung vollständig erfüllt werden.

Abnahme-Test

Sie prüfen, ob die Anforderungen des Auftraggebers vollständig erfüllt werden; dabei kann dieser Test von einem Benutzerhandbuch begleitet werden.

Umfassendes Qualitätsmanagement ist die Basis der Produktqualität

Die dauerhafte Entwicklung qualitativ hochwertiger Produkte ist die Basis für höchstmögliche Kundenzufriedenheit. Obendrein lässt sich damit eine Reduktion der fortlaufenden Entwicklungskosten erreichen, da eine klare Strukturierung der Software die Wiederverwendbarkeit der einzelnen Software-Module erhöht. Ihr Ziel ist ein dauerhaft hohes Qualitätslevel; dies erfordert ein angemessenes Qualitätsmanagement (beispielsweise Total Quality Management TQM). Nur wenn Sie alle am Projekt beteiligten Personen, Rollen und Tätigkeiten in diesen Qualitätsmechanismus einbinden, wird ein dauerhafter Erfolg möglich. Dazu erstellen Sie für Softwareentwicklung und Software-Test einen Qualitätssicherungsplan.

Der Software-Qualitätssicherungsplan definiert die Aufgaben für das Testmanagement

Zur Sicherung der Softwarequalität verwenden Sie in Ihrem Projekt eine Reihe von Software-Analyseverfahren für die Softwarequalitätssicherung.

Als Ausgangspunkt für die Qualitätssicherung wählen Sie eine Risikoanalyse, auf deren Basis Sie die Testschwerpunkte setzen.

Für den Softwaretest wenden Sie verschiedene Testverfahren an:

  • Statische und dynamische Code-Analysen, wie Code-Reviews (Analyse des programmierten Codes)
  • White-Box Tests (Test auf Basis des Kontrollflusses der Software – mit Prüfung der Anweisungsüberdeckung, Zweigüberdeckung, Bedingungsüberdeckung und Pfadüberdeckung)
  • Black-Box Tests (funktionsbasierendes Testen ohne Kenntnis der inneren Funktionen: Verhält sich das System gemäß der Spezifikation?).


Sie spezifizieren alle auszuführenden Tests in einem Software-Qualitätssicherungsplan und nutzen die Vorteile der Testautomatisierung. Im Zuge des Test-Managements nehmen Sie nach der Durchführung der verschiedenen Tests eine Testauswertung vor.

Sie sind sich bewusst, wie wichtig es ist, alle notwendigen Abläufe im Software-Qualitätsmanagement zu definieren, die nach einer Änderung der Software bzw. der Hardware zu erfolgen haben. Ihr Schlüssel zum Projekterfolg ist die Disziplin aller Projektteilnehmer, denn der Mensch ist der größte Risikofaktor im Projekt.

Firmenintern unterstützen Sie die Definition eines Software-Entwicklungsprozesses, der folgende Schritte enthält: Anforderungsmanagement und -analyse für das Gesamtsystem und die Software-/ Hardware-Komponenten/-Module (Requirements Analysis), Definition der Architektur und des Software-Designs, HW-/SW-Implementierung und einzelne Testschritte.

Gerade bei softwareintensiven Systemen mit einer hohen Anzahl von Code-Zeilen (lines of code, LOC) in den Systemen (z.B. softwaregesteuerte Systeme im Flugzeug oder Auto) sind Software-Qualitätsprozesse für Sie ein „Muss“. Sie wissen, dass Fehlfunktionen in ausgelieferten Systemen zu einer Gefährdung von Personen bis hin zum Tod führen könnten. Eine Fehlerbehebung (z.B. Rückrufaktion) kann sehr kostspielig sein und den mühsam aufgebauten Ruf Ihres Unternehmens zerstören.

Investitionen in Softwarequalität lohnen sich für alle Projektbeteiligten

Know-how aus der Praxis verschafft Ihnen in kurzer Zeit ein umfassendes Verständnis für alle Aspekte der Softwarequalität. Besuchen Sie deshalb die Trainings, Workshops, Seminare und Coachings rund um das Thema Softwaretest und Softwarequalität bei MicroConsult.


Test, Qualität und Safety von Embedded-Software - unsere Trainings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich zu Schulungen/ Seminaren/ Trainings und Workshops von MircoConsult zum Thema Test und Debug von Embedded-Software sowie Qualität und Sicherheit von Embedded-Software.

Embedded-Software-Test objektorientiert für C++: Best Practices für den Klassen- und Komponenten-Test

Im Mittelpunkt des Trainings stehen die Tests, die aufgrund ihrer Programmiernähe in der Regel vom Entwickler durchgeführt werden und deshalb auch als Entwicklertests bezeichnet werden.
Zum Training - Embedded-Software-Test objektorientiert für C++

Embedded-Software-Test für C: Best Practices für den Unit-/Modul-/Komponenten-Test

Im Mittelpunkt des Trainings stehen die Tests, die aufgrund ihrer Programmiernähe in der Regel vom Entwickler durchgeführt werden und deshalb auch als Entwicklertests bezeichnet werden.
Zum Training - Embedded-Software-Test für C

Qualität, Test und Softwareentwicklung im Medizinbereich

Dieses Test-Seminar gibt Ihnen einen Überblick über die Normen und ihre Anwendung bei der Entwicklung von Software im medizinischen Bereich.
Zum Training - Qualität, Test und Softwareentwicklung im Medizinbereich

ISTQB® Certified Tester Foundation Level - Testen von Embedded- und IT-Systemen

Im Mittelpunkt des Trainings steht der Software-Testprozess - von der Planung über die Spezifikation bis zur Implementierung, Durchführung und Protokollierung von Tests. Die Teilnehmer erhalten einen umfassenden Überblick über Aufgaben, Methoden und Techniken des Softwaretests.
Zum Training - ISTQB Certified Tester Foundation Level

Agiles Testen und Test Driven Development von Embedded-Systemen (Agile TDD)

Sie kennen wichtige Begriffe, Zusammenhänge und Methoden, um maßgeblich zur Gestaltung, Umsetzung und Durchführung von agilem Testen und Test Driven Development in der Entstehung Ihrer Embedded-Systeme (System-, Hardware- und Softwareentwicklung) beizutragen.
Zum Training - Agiles Testen und Test Driven Development TDD

Embedded-Linux für Tester, Support und Service

Ist ein Embedded-Linux-Projekt fertig entwickelt, dann geht es los mit dem Testen, Support und Service. Dieses Training vermittelt denenigen, die ein Linux-System nicht entwickelt haben, dieses aber betreuen sollen, einen systematischen Einstieg in das fertige System.
Zum Training - Embedded-Linux für Tester

Softwarequalität: Methoden zur erfolgreichen Projektumsetzung

Sie geben die angestrebte Qualität von Software systematisch vor. Sie kennen die Standards zur Qualität von Software und sind in der Lage, die erreichte Qualität zu bestätigen.
Zum Training - Softwarequalität

Requirements Engineering und Requirements Management für Embedded-Systeme

Mit dem erworbenen Wissen führen Sie einen Requirements Prozess in Ihrer Firma ein und bewerten, optimieren, verstehen und leben ihn.
Zum Training - Requirements Engineering und Requirements Management für Embedded-Systeme

Usability: Produkte benutzerfreundlich entwickeln

Das Training sensibilisiert Sie für Fragen der Software-Usability. Es wird gezeigt, wie Anwender sie sinnvoll in ihren Entwicklungsprozess integrieren und sich so erfolgreiche Produkte gestalten lassen.
Zum Training - Usability

Funktionale Sicherheit (Safety) von Elektronik und deren Software - Umsetzung nach IEC 61508 und ISO 26262

Das Training vermittelt die Grundlagen zur Sicherheit (Safety) von technischer Steuerungselektronik und deren Software sowie eine Übersicht über den Stand der Technik. Sie erhalten einen Einblick in die Voraussetzungen, die vom Management auf Unternehmensebene und vom Projektmanagement zum Erreichen der Sicherheit von Elektronik und deren Software gemäß dem Stand der Technik erwartet werden.
Zum Training - Funktionale Sicherheit (Safety)

Security: Sicherheit von Embedded-Systemen und ihr Kontext zur funktionalen Sicherheit

Das Training beleuchtet potientielle Sicherheitslücken in eingebetteten Systemen (Embedded Systems), wie z.B. IoT, und daraus entstehende Gefahren (Risikobewertung). Effiziente Lösungsansätze erlauben, diese Lücken mit Hilfe von ausgewählten IP-Blöcken und/oder Strategien zu schließen.
Zum Training - Security: Sicherheit von Embedded-Systemen

Security: Kryptographie und sichere Systeme

Sie erhalten einen Einblick in die Methoden der Kryptographie und der Kryptanalyse, vor allem aber lernen Sie potenzielle oder erfolgreiche Angriffe abzuwehren. Mit Beispielprogrammen vertiefen und veranschaulichen Sie dieses Wissen.
Zum Training - Security / Kryptographie


Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Test, Qualität und Safety von Embedded-Software - Fachwissen

Wertvolles Fachwissen zum Thema Qualität und Sicherheit von Embedded-Software sowie Test und Debug von Embedded-Software  steht für Sie zum kostenfreien Download bereit, darunter die folgenden Veröffentlichungen und Vorträge:

  • Trend Guide "Embedded Safety & Security"
  • Testen im Software-Lebenszyklus -Wichtige Aktivitäten und ihre Beziehungen zum Entwicklungsprozess
  • Zukunftssicherheit -Die drei Gesichter der Sicherheit von Software-Systemen (Teil 3)
  • Zugangs- oder Angriffssicherheit -Die drei Gesichter der Sicherheit von Software-Systemen (Teil 2)
  • Betriebssicherheit - Die drei Gesichter der Sicherheit von Software-Systemen (Teil 1)
  • Embedded Test: Begrifflichkeiten
  • Software-Sicherheit: Risiken und Lösungen
  • Experten-Statements und Ratschläge zu Qualität & Sicherheit

Fachwissen: Qualität und Sicherheit

Fachwissen: Test und Debug

 
Fachwissen zu den weiteren Themen unseren Portfolios finden Sie hier.


Zertifizierung

MicroConsult ist vom German Testing Board akkreditierter Anbieter für ISTQB® Certified Tester Trainings
(Fcoundation Level).


Test und Qualität von Embedded-Software - unsere Experten

Thomas Batt

Dipl.-Ing. (FH) Thomas Batt ist gebürtiger Freiburger. Nach seiner Ausbildung als Radio- und Fernsehtechniker studierte er Nachrichtentechnik in Offenburg. Seit 1994 arbeitet er kontinuierlich in verschiedenen Branchen im Bereich Embedded-/Realtime-Systementwicklung. 1999 wechselte Thomas Batt zur MicroConsult GmbH. Dort verantwortet er heute als zertifizierter Trainer und Coach die Themenbereiche Systems/ Software Engineering für Embedded-/Realtime-Systeme sowie Entwicklungsprozess-Beratung.

Frank Listing

Dipl.-Ing. Frank Listing ist seit 2002 Trainer und Projektcoach bei der MicroConsult GmbH mit dem Schwerpunkt Microsoft-Plattformen, objektorientierte Programmierung und Testen von Embedded-Systemen und u.a. fachlich für das Thema .NET verantwortlich. Sein Wissen gibt er immer wieder auch in Publikationen und Fachvorträgen weiter.

Remo Markgraf

Dipl.-Ing. Remo Markgraf ist Senior Management Consultant bei der MicroConsult GmbH. Neben Begeisterung für Innovation und Leidenschaft für Embedded-Systeme verfügt er über langjährige Projekt- und internationale Führungserfahrung in Softwareentwicklung, Systems Engineering, Projekt-, Produkt-, Innovations- und Business Development Management sowie dem technischen Vertrieb.

Dieter Volland

Dipl.-Ing. Dieter Volland studierte Technische Informatik und war ab 1985 als Entwicklungsingenieur & Trainer an der "Siemens Schule für Mikroelektronik" tätig. Er ist Mitbegründer der MicroConsult GmbH und verfügt über jahrzehntelange Erfahrung mit Mikroprozessoren und Mikrocontrollern (Intel, ARM, Infineon, Freescale) sowie der Programmierung von Embedded-Systemen. Weitere Themen sind Analyse und Design von Embedded-Systemen mit UML sowie Software-Test. Heute trainiert und berät er weltweit Entwickler in den Themenbereichen Mikrocontroller, Software Engineering für Embedded-Systeme sowie Entwicklungs- und Testprozesse.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.