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

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

Wie Künstliche Intelligenz API-Tests revolutioniert

Wie Künstliche Intelligenz API-Tests revolutioniert

Eine solide API-Teststrategie befähigt Unternehmen, maximalen Nutzen aus agilen Entwicklungsmethoden zu ziehen. Künstliche Intelligenz kann die Automatisierung dieser Prozesse beschleunigen. lesen

Quality @ Speed – Fünf notwendige Schritte zur Sicherung der Softwarequalität

Quality @ Speed – Fünf notwendige Schritte zur Sicherung der Softwarequalität

Nicht weniger als 70% der IT-Projekte schlagen fehl oder erfüllen ihre Ziele nicht. Dieser Beitrag erläutert, wie man die für agile und iterative Methoden erforderliche Agilität erreichen kann und zugleich Vorgaben in Sachen Qualität und Sicherheit erfüllt – oder sogar übertrifft. lesen

Funktionale Sicherheit über den Entwicklungs-Lebenszyklus hinaus sicherstellen

Funktionale Sicherheit über den Entwicklungs-Lebenszyklus hinaus sicherstellen

Im Zeitalter konstant mit dem Internet verbundener Systeme kann Softwareentwicklung nie als endgültig abgeschlossen betrachtet werden – sobald eine neue Sicherheitslücke auftaucht, muss diese auch sofort geschlossen werden. Wie bekommt man diesen Kreislauf in den Griff? lesen

Verifikation von Embedded Software durch Integration von Test und Beweis

Verifikation von Embedded Software durch Integration von Test und Beweis

Mit formalen Methoden lässt sich mathematisch die Sicherheit eines Systems nachweisen. Klassisches Testing überprüft, ob geschriebener Code den Anforderungen genügt. Warum nicht beides anwenden? lesen

Karriere

Hitex GmbH

Applikationsentwickler (m/w/d) Functional Safety Embedded Systems

Selbstständig kundenspezifische Applikationen mit Schwerpunkt Functional Safety im Bereich Mikrocontroller-basierende Embedded-Systeme entwickeln

Events:

MicroConsult Microelectronics Consulting & Training GmbH

Clean Code für C-Programme

Lernen Sie die wichtigsten Prinzipien, Regeln und Praktiken für die Erstellung von praxisgerechter, ...

Firmen stellen vor:

MicroConsult Microelectronics Consulting & Training GmbH

Industrial Ethernet Schulung

Die Industrial Ethernet Schulung beleuchtet die Unterschiede der Industrial Ethernet Varianten. ...

Parasoft® Deutschland GmbH

jTest

Statische Java-Analyse, Code-Prüfung, Modultests, Laufzeit-Fehlererkennung Parasoft® Jtest®: ...

Hitex GmbH

Entwicklungswerkzeuge für Profis

Hitex vertreibt und unterstützt folgende Entwicklungsumgebungen: Keil MDK-ARM, ARM DS-5, PLS

Downloads:

MicroConsult Microelectronics Consulting & Training GmbH

Betriebssystem: mit oder ohne? Vergleich und Auswahl von Software-Laufzeitarchitekturen

Der Vortrag vermittelt eine Übersicht und Auswahlkriterien zu aktuellen Laufzeitarchitekturen mit, ...

Parasoft® Deutschland GmbH

Parasoft Service Virtualisierung

Service Virtualisierung bietet eine simulierte Testumgebung, die es ermöglicht, früher, ...