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

Was bedeutet künstliche Intelligenz bei Softwaretests?

Was bedeutet künstliche Intelligenz bei Softwaretests?

Der Trend bei der Nutzung von Künstlicher Intelligenz (KI) in der Softwareentwicklung geht klar in Richtung autonomes Testen, um den Software Development Lifecycle zu vereinfachen. Mithilfe von Schlussfolgerung, Problemlösung und in einigen Fällen auch durch Maschinelles Lernen (ML) kann KI die Automatisierung mit vorantreiben und den Umfang der profanen und mühsamen Aufgaben beim Entwickeln und Testen verringern. lesen

Durchblick bei Legacy-Code: Erste Hilfe beim Refactoring

Durchblick bei Legacy-Code: Erste Hilfe beim Refactoring

Die Arbeit an Legacy-Code gehört zu den undankbarsten Aufgaben der Entwickler. Sich in gewachsenem, meist kaum dokumentierten Quellcode zurecht zu finden, ist zeitraubend und fehleranfällig. Allerdings gibt es Werkzeuge, die dabei helfen können. Etwa, indem die Software und die zugrunde liegende Architektur grafisch so aufbereitet werden, dass ein effizientes Refactoring möglich wird. lesen

Softwareoptimierung für Automatisierungsanwendungen

Softwareoptimierung für Automatisierungsanwendungen

Wo viele Menschen zusammen arbeiten, passieren Fehler. Dies gilt auch für das Erstellen von Software für Steuerungsaufgaben in industriellen Anlagen. Selbst wenn diese Fehler keine größeren Schäden anrichten, verursachen sie häufig beträchtlichen Mehraufwand. Anhand von drei Beispielen soll gezeigt werden, wie sich dies vermeiden und die Qualität von Software in automatisierungstechnischen Produktionssystemen grundsätzlich verbessern lässt. lesen

Zeiteigenschaften in der Embedded-System-Entwicklung

Zeiteigenschaften in der Embedded-System-Entwicklung

Zeiteigenschaften manifestieren sich in allen Schritten der eingebetteten System-Entwicklung. Angefangen bei High-Level Kunden- oder Safety-Anforderungen bis zur Performance-Optimierung der Implementierung. Dieser Beitrag zeigt entlang des allgemeinen V-Entwicklungsprozesses, wo Zeiteigenschaften eine Rolle spielen und wie man sie sinnvoll repräsentieren, visualisieren und verarbeiten kann. lesen

Automatisierte Softwaretests in einer Continuous-Delivery-Pipeline

Automatisierte Softwaretests in einer Continuous-Delivery-Pipeline

Wie kommt man zu einer sicheren, agilen Entwicklungs-Pipeline? Wir stellen fünf Schritte vor, die beim Entwerfen einer DevOps-Strategie für ein kritisches Softwareprojekt zu berücksichtigen sind. lesen

Die häufigsten Irrtümer über Code-Coverage

Die häufigsten Irrtümer über Code-Coverage

Über die Ermittlung und den Nutzen von Code-Coverage sind zahlreiche Halbwahrheiten und Irrtümer verbreitet. Der folgende Beitrag klärt über die häufigsten Fehlannahmen auf. lesen

Safety in sich schnell ändernden Systemen – Praktikable Anwendung formaler Methoden

Safety in sich schnell ändernden Systemen – Praktikable Anwendung formaler Methoden

Der klassische Entwicklungsprozess für Software im Bereich eingebetteter Echtzeitsysteme geht von einem statischen System mit festgelegten Komponenten aus. Die Marktnachfrage führt zu einem Bedarf an stärkerer Dynamik. Das erhöht die Komplexität und es wird wichtiger, den Erhalt von sicherheitskritischen Eigenschaften (safety) durch stringente Modellierung und Analyse abzusichern. lesen

Kombinatorische State Transition Tests für Embedded Systems

Kombinatorische State Transition Tests für Embedded Systems

State Transition Tests werden in vielen Standards für sicherheitskritische Systeme empfohlen. Sie sind aber für alle Embedded-Systeme eine hervorragende Methode, um schnell und strukturiert hohe Testabdeckungen zu erreichen. lesen

Static Application Security Testing (SAST) – Statische Analyse nicht erst am Ende beginnen

Static Application Security Testing (SAST) – Statische Analyse nicht erst am Ende beginnen

Statische Analyse steht in dem Ruf, schwierig in Handhabung und Umsetzung zu sein. Es gibt aber einige gute Strategien für Security-Tests, die sich bereits im praktischen Einsatz bewährt haben. Ein Schlüssel: Nicht erst am Ende mit den Tests beginnen. lesen

Qualitätssicherung: Darf Agilität vor Qualität gehen?

Qualitätssicherung: Darf Agilität vor Qualität gehen?

Agile Prozesse liegen im Trend. Überall bemühen sich Unternehmen darum, ihre Teams schneller, autonomer und agiler arbeiten zu lassen. Die Qualität der Software-Produkte sollte darunter aber nicht leiden. Doch wie lässt sich das sicherstellen? lesen

Wert oder Altlast? Dauerthema Legacy-Modernisierung

Wert oder Altlast? Dauerthema Legacy-Modernisierung

Der digitale Wandel erhöht den Druck in vielen Unternehmen, ihre Altanwendungen zu modernisieren. Denn gerade diese Legacy-Systeme gelten oft als das größte Hindernis für die Digitalisierung. Aber welche Strategie ist richtig? Wie soll mit Altsystemen umgegangen werden? lesen

Sichere Entwicklung, Testing und Analysen kombinieren

Sichere Entwicklung, Testing und Analysen kombinieren

Das Aufspüren von Sicherheitslücken ist oft kein Problem, das zeitnahe Patching hingegen schon. Sichere Softwareentwicklung von Anfang an ist deshalb ebenso wichtig, wie die Developer in die reaktiven Sicherheitsprozesse mit einzubinden. lesen

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

Karriere

Lauterbach GmbH

Ingenieur für das Technische Marketing

Wir sind ein mittelständisches Unternehmen mit mehr als 40 Jahren Erfahrung im Bereich von Testsystemen. ...

Firmen stellen vor:

Parasoft® Deutschland GmbH

Parasoft: Neue Versionen der Entwicklungstestlösungen Jtest und dotTEST

Parasoft ermöglicht Kunden zeitliche Vorverlegung ihrer Softwaresicherheits- und Compliance-Tests für DevSecOps - Neue Versionen der Entwicklungstestlösungen für Java und .NET erhöhen Software Qualität und senken Risiko

Axivion GmbH

Qualification-Kit

Zur Unterstützung der Klassifizierung und Qualifizierung Ihrer Toolchain bietet Axivion ein Qualification-Kit an. ...

Downloads:

MicroConsult Microelectronics Consulting & Training GmbH

Objektbasiert oder objektorientiert?

Moderne Low-level-Treiberprogrammierung mit C/C++ (Vortrag, ESE Kongress 2015)

Parasoft® Deutschland GmbH

The Forrester Wave™: Modern Application Functional Test Automation Tools, Q4 2016

The 11 Providers That Matter Most And How They Stack Up - This report shows how each provider measures up and helps application development and delivery (AD&D) ...