Ein Angebot von

Software-Test und Qualitätsmanagement

Software-Tests dienen dazu, hohe Software-Qualität zu sichern: Also Software, die stabil, frei von Bugs oder Sicherheitslücken und effizient funktioniert. Hierfür kommen verschiedene Testwerkzeuge und Testmethoden, wie beispielsweise die statische Analyse oder formelle Methodiken, zum Einsatz. Wie effizient diese Tools die zu prüfende Software erfassen oder testen können, wird auch als Code Coverage oder Testabdeckung bezeichnet. Damit diese so hoch und umfassend wie möglich ausfällt, muss Software-Code von corneherein möglichst auf Testbarkeit hin optimiert sein. Dabei kommt es vor allem auf strukturierten und sauberen Codeaufbau an. Um eine möglichst hohe Code-Qualität von vorneherein erreichen zu können, haben sich für diverse Programmiersprachen sogenannte Programmierstandards etabliert, die Richtlinien zur Qualitätssteigerung beinhalten. Für die Programmiersprache C existieren beispielsweise die Programmierstandards MISRA-C und CERT C.




Fachbeiträge

Statische und dynamische Codeanalyse in einem kontinuierlichen Testprozess

Statische und dynamische Codeanalyse in einem kontinuierlichen Testprozess

Zunehmende Variantenvielfalt und steigende Komplexität stellen Entwickler von Embedded Software vor neue Herausforderungen. Kontinuierliche Integration gewinnt daher an Bedeutung. Durch die Kombination statischer und dynamischer Codeanalyse in einem kontinuierlichen Testprozess lässt sich effizient eine nachhaltige Qualitätssteigerung erzielen – die richtigen Analysewerkzeuge vorausgesetzt. lesen

Behaviour Driven Testing und automatische Unit-Test-Generierung

Behaviour Driven Testing und automatische Unit-Test-Generierung

Softwaretests aus Fachabteilungen sind oft nur funktional, ohne dass Details näher definiert wären. Automatisierte Tests können hier helfen, doch werden sie oft aus Mangel an Fachwissen nicht implementiert. Die agile Methode des BDT (Behavior Driven Testing) zielt darauf ab, die hier entstehende Lücke zu schließen. lesen

Effizient zum Unit-Test unter C++ und C

Effizient zum Unit-Test unter C++ und C

Continuous Integration und automatisierte Tests sind erprobte Mittel, um die Qualität von in C oder C++ geschriebenem Code zu fördern. Gerade den automatisierten Unit-Tests kommt große Bedeutung zu, garantieren sie doch als Basis der Testpyramide auch die Basis der Qualität. Ein Beispiel aus der Entwicklerpraxis. lesen

Intelligente Testautomatisierung in der Praxis

Intelligente Testautomatisierung in der Praxis

Testautomatisierung ist heute ein fester Bestandteil vieler Softwareprojekte. Testfälle werden automatisch ausgeführt, ein Testreport wird generiert. In einigen Projekten werden durch modellbasierte Ansätze Testfälle aus einem Testmodell automatisch generiert. Reicht das aber? Wo ist die Grenze des Möglichen und wo die des Sinnvollen? lesen

Visualisierung von Antwortzeiten in FreeRTOS

Visualisierung von Antwortzeiten in FreeRTOS

Die effiziente Entwicklung von auf FreeRTOS basierender Firmware setzt voraus, dass das Timing und die Interaktionen zwischen Tasks, Interrupts und Kernel genau bekannt sind. Wie lassen sich diese aber in Software-Tests visuell darstellen und nachvollziehbar machen? lesen

Evaluierung von Software-Verifikationswerkzeugen

Evaluierung von Software-Verifikationswerkzeugen

Mit Softwareverifikationswerkzeugen sollen Fehler in Software gefunden werden. Doch gibt es nur spärliche Information über das, was die Werkzeuge wirklich leisten. Meistens liegt nur die Beschreibung des Herstellers vor, an der sich ein Anwender (grob) orientieren kann. Woran lässt sich bewerten, was ein Tool auch wirklich leistet? lesen

ISO 29119 und der agile Ansatz: Geht das zusammen?

ISO 29119 und der agile Ansatz: Geht das zusammen?

Bis 2015 wurden fünf Teile der Norm zum Softwaretest ISO/IEC/IEEE 29119 veröffentlicht. Seit Beginn ihrer Erarbeitung gab es besonders aus den Reihen der agilen Entwicklung Widerstand: Die Norm sei zu schwerfällig, behindere die agile Entwicklung und überhaupt brauche der Test keine Normierung. Aber stimmt das wirklich? lesen

Software-Wartbarkeit trotz Erosion

Software-Wartbarkeit trotz Erosion

Alle wünschen sich eine hohe Software-Wartbarkeit. Mit Software-Erosionsschutz lässt sich dieses Ziel trotz widriger Rahmenbedingungen in der Praxis erreichen. lesen

Software-Komplexitätsmetriken effektiv einsetzen

Software-Komplexitätsmetriken effektiv einsetzen

Die wohl bekannteste Software-Komplexitätsmetrik wurde bereits 1976 von Thomas J. McCabe eingeführt und führt seit Generationen von Software-Entwicklern zu Diskussionen über die Aussagekraft von Metriken. Im folgenden Beitrag wird der Umgang mit Software-Komplexitätsmetriken im „Automotive-Bereich“ der Robert Bosch GmbH geschildert. lesen

Was bedeutet künstliche Intelligenz beim Software-Testen?

Was bedeutet künstliche Intelligenz beim Software-Testen?

KI ist ein aktuelles Schlagworter in der Softwareentwicklung. Wie aber unterscheidet sich KI im Kontext von automatisierten Softwaretests von ihrer breiter gefassten Definition? lesen

Automatisierung von anforderungsbasiertem Testen

Automatisierung von anforderungsbasiertem Testen

Auch wenn viele Anforderungstests bereits automatisiert durchgeführt werden können: die zugrunde liegenden Testmodelle müssen Entwickler meist noch von Hand angelegen. Dieser Beitrag stellt einen formalisierten Ansatz vor, um Testdaten automatisiert auf Anforderungen abbilden zu können. lesen

Alptraum Legacy Code – Wie Profis damit umgehen

Alptraum Legacy Code – Wie Profis damit umgehen

Legacy Code bringt oft gewaltige Probleme bei der Entwicklung neuer Features mit: Variablen tragen nichtssagende Namen, Methoden sind zu überkomplexen Konstrukten mutiert und automatisierte Tests sind meist wenig bis gar nicht vorhanden. Wie geht man damit um? lesen

Sind Ihre Testfälle gut genug? Was Testfallgüte für die Fehlerfindung bedeutet

Sind Ihre Testfälle gut genug? Was Testfallgüte für die Fehlerfindung bedeutet

Auch ein „gutaussehender“ Satz von Testfällen, der zudem 100% Code-Überdeckung erreicht, kann Defekte in der Software übersehen. Nur „gute” Testfälle decken Fehler auf. Aber wie findet man solche Testfälle? lesen

‚Shift Left‘: Wie man Performance-Tests in der Software-Entwicklung vorverlegt

‚Shift Left‘: Wie man Performance-Tests in der Software-Entwicklung vorverlegt

Tests werden immer früher in die unterschiedlichen Stadien der Software-Entwicklung eingebunden. Im Vergleich mit den Stufen klassischer Methoden findet eine „Linksverschiebung” statt. Wie aber verlegt man Tests sinnvoll vor, wenn man traditionelle Modelle gewohnt ist? lesen

Remote Debugging von Embedded-Linux-Systemen mit GDB

Remote Debugging von Embedded-Linux-Systemen mit GDB

Software, die auf Embedded Systemen zum Einsatz kommt, wird in der Regel nicht auf diesen entwickelt. Trotzdem muss sie zuverlässig geprüft und von Fehlern befreit werden. In Linux ist hierfür bereits ein nützliches Tool integriert: Der GNU Universal Debugger (GDB). lesen

Formale Testmethoden: Reif für den Mainstream

Formale Testmethoden: Reif für den Mainstream

Gerade in kritischen Systemen ist es essentiell, dass deren Software alle Funktionalitäten korrekt implementiert und keine Fehler enthält. Formelle Methoden lösen dabei traditionelle Tests mehr und mehr ab. lesen

Hypervisoren in Embedded-Systemen sicher und fehlerfrei einsetzen

Hypervisoren in Embedded-Systemen sicher und fehlerfrei einsetzen

Virtualisierung und Hypervisoren rücken auch im Embedded-Bereich mehr in den Vordergrund. Eine große Herausforderung vor allem für Entwickler, die sich in einem sehr hardwarenahen Umfeld bewegen. lesen

Qualitätssicherung in der Software Supply Chain

Qualitätssicherung in der Software Supply Chain

In den meisten Entwicklungsprojekten wird Software nicht komplett neu geschrieben, sondern baut auf bestehenden Komponenten auf. Diese Komponenten können aus vorherigen Projekten, aus Open Source Quellen oder von Zulieferern kommen. Wie kann man sicherstellen, dass diese Drittanbieterkomponenten den eigenen Qualitäts-, Lizenz- und Sicherheitsansprüchen gerecht werden? lesen

Keine Angst vor Software-Varianten – Wiederverwendung und Vererbung von Testfällen

Keine Angst vor Software-Varianten – Wiederverwendung und Vererbung von Testfällen

Die Herausforderung beim Testen von Software-Varianten besteht darin, dass jede Variante vollständig getestet werden muss. Über die Definition von Basistests, die an Variantentests vererbt werden, lässt sich redundante Arbeit leicht vermeiden. Bei jeder Änderung der Applikation muss der Entwickler die Tests nur an einer Stelle pflegen. lesen

Absicherung von Testsystemen nach ISO 26262

Absicherung von Testsystemen nach ISO 26262

Für funktional sichere Anwendungen im Automotive-Bereich gelten die Vorgaben nach dem ISO-Standard 26262. Auch Testsysteme, beispielsweise Hardware-in-the-Loop-Testsysteme (HIL), müssen diesen Anforderungen standhalten. Automatisierte Kalibrierung und automatisierte Selbsttests können hier die Entwicklung beschleunigen. lesen

Firmen stellen vor:

SYSGO AG

PikeOS® Hypervisor

The Internet of Things consists of billions of highly integrated, multi-functional smart devices in a digital network. ...

Parasoft® Deutschland GmbH

Virtualize

Mit Parasofts Service- und Anwendungsvirtualisierung können Entwickler- und Qualitätssicherungsteams beliebige Umgebungen erzeugen und nutzen, ...

Downloads:

Mixed Mode GmbH

Expert Sessions 2017

Unsere Expert Sessions finden als kostenlose Halbtagesseminare mehrmals pro Jahr in unseren Schulungsräumen in München statt.

MicroConsult Microelectronics Consulting & Training GmbH

Das Rad nicht immer neu erfinden: Architekturmuster im Embedded-Umfeld erfolgreich einsetzen

Embedded-Projekte starten meistens sehr klein. Und oft wird im Anfangsstadium kein Gedanke an die Software-Architektur verschwendet. ...