Software-Testing-Papers Library
Auf dieser Seite veröffentlicht bzw. verlinkt Verifysoft Technology nützliche White-Papers zum Thema Softwarequalität und Softwaretest. Bitte beachten Sie, dass Verifysoft trotz intensiver Prüfung keine Haftung für Richtigkeit und Vollständigkeit der Informationen übernimmt. Alle Rechte an den Dokumenten verbleiben bei den jeweiligen Autoren. Diese Webseite versteht sich lediglich als Plattform.Sie haben eine Ausarbeitung (Studienarbeit etc.) aus dem Bereich Softwarequalität bzw. Softwaretest und möchten diese über unsere Internetseiten einem breiten Fachpublikum zugäglich machen? Schicken Sie uns Ihre Arbeit als pdf. Bei Veröffentlichung erhalten Sie von uns innerhalb von zwei Wochen ein Fachbuch zum Thema Softwaretest.
Wie Imagix 4D das Verständnis von Programmen auf Quelltextebene unterstützt
Baltzer, Jan-David
Mit wachsender Laufzeit von Softwareprojekten steigen typischerweise deren Umfang und Komplexität. Damit wird es auch zusehends aufwendiger den Überblick zu behalten, sei es zur Wartung, Erweiterung oder Verifikation gegen bestehende und veränderte Anforderungen. Verstärkt wird dies zudem durch Fluktuationen in der Belegschaft und der Einbindung von zusätzlichen Programmteilen, sei es zugekauft, frei zugänglich oder aus bestehenden Projekten.
Diese Arbeit zeigt, wie Imagix 4D dabei unterstützt unbekannten Quelltext zu erkunden und zu verstehen. Nach einer Einführung in den Kontext der Problemstellung folgen Erörterungen verschiedener Methoden von Imagix 4D und wie diese zur Lösung beitragen.
(4 pages, pdf, 213 KB) © 2019 Jan-David Baltzer (Verifysoft Technology GmbH) Download
Diese Arbeit zeigt, wie Imagix 4D dabei unterstützt unbekannten Quelltext zu erkunden und zu verstehen. Nach einer Einführung in den Kontext der Problemstellung folgen Erörterungen verschiedener Methoden von Imagix 4D und wie diese zur Lösung beitragen.
(4 pages, pdf, 213 KB) © 2019 Jan-David Baltzer (Verifysoft Technology GmbH) Download
Fuzzing
Basáez, Daniel
Fuzzing is a technique for Testing, and is very effective for finding security vulnerabilities in software. It was used in several applications like Unix systems, GUI applications under Windows and Apple MacOS. ... it is often used to improve the programming of everything, because it can reach parts of code, in some cases, that other testing tools never reach, this concept of testing is still used nowadays and his creator is still doing research over this. Fuzzing is a method that inserts unexpected data into input.
In this paper some approaches are discussed and also some applications and some tools are showed.
(8 pages, pdf, 136 KB) © 2009 Daniel Basáez (Hochschule Offenburg) Download
In this paper some approaches are discussed and also some applications and some tools are showed.
(8 pages, pdf, 136 KB) © 2009 Daniel Basáez (Hochschule Offenburg) Download
Komplexität und Qualität von Software
Cullmann, Xavier-N./Lambertz, Klaus
Wie bestimmt man die Komplexität von Quellcode und welchen Einfluss hat sie auf die Wartbarkeit? Die Softwarequalität und die Wartbarkeit von Applikationen hängt von der Codekomplexität ab. Eine angemessene Komplexität vereinfacht Softwaretests und Wartung.
In diesem Artikel erfahren Sie... wie die Komplexität einer Software gemessen wird, den Einfluss der Komplexität auf die Qualität, die traditionellen Softwaremetriken, ...
(8 pages, pdf, 738 KB) © 2007 Klaus Lambertz / MSCoder Download
In diesem Artikel erfahren Sie... wie die Komplexität einer Software gemessen wird, den Einfluss der Komplexität auf die Qualität, die traditionellen Softwaremetriken, ...
(8 pages, pdf, 738 KB) © 2007 Klaus Lambertz / MSCoder Download
Objektorientierte Codemetriken und deren Anwendung im Bereich von Embedded Systems
Drosdezki, Eugenia
Empirische Untersuchungen haben gezeigt, dass Metriken als Indikatoren der Softwarequalität verwendet werden können.
Durch die immer zunehmende Popularität objektorientierter Paradigmen wird gerade die Bewertung der Qualität objektorientierter Software immer wichtiger. Objektorientierte Metriken berücksichtigen die strukturelle Besonderheit und Charakteristika objektorientierter Software und helfen dabei potenzielle Schwachstellen in der Software zu identizieren und den Softwareentwurf zu optimieren. Der Einsatz objektorientierter Metriken senkt die Entwicklungs-, Test- und Wartungskosten.
In dieser Arbeit werden objektorientierte Metriken von Chidamber und Kemerer, Li und Henry sowie von Bruito und Abreu näher vorgestellt. Danach werden die Ergebnisse einer Studie erläutert, in der gezeigt wird, dass Metriken-Tools, die unter anderem Metriken von Chidamber und Kemerer messen, Definitionen von Metriken unterschiedlich interpretieren.
Zum Schluss wird noch aufgezeigt, wie objektorientierte Codemetriken im Bereich eingebetteter Systeme sinnvoll eingesetzt werden können.
Keywords: AHF - Attribute Hiding Factor, AIF - Attribute Inheritance Factor, CBO - Coupling between Object Classes, COF - Coupling Factor, DAC - Data Abstraction Coupling, DIT - Dept of Inheritance Tree, LCOM - Lack of Cohesion in Methods, MHF - Methode Hiding Factor, MIF - Methode Inheritance Factor, MOOD Metriken von Brito und Abreu, MPC - Message Passing Coupling, NOC - Number of Children, NOM - Number of local Methodes, POF - Polymorphism Factor, RFC - Response of a Class, SIZE1 - Number of Semicolons in a Class, SIZE2 - Number of Attriubutes + Number of Local Methods, WMC - Weighted Methods per Class
(7 pages, pdf, 223 KB) © 2009 Eugenia Drosdezki (Hochschule Offenburg) Download
Durch die immer zunehmende Popularität objektorientierter Paradigmen wird gerade die Bewertung der Qualität objektorientierter Software immer wichtiger. Objektorientierte Metriken berücksichtigen die strukturelle Besonderheit und Charakteristika objektorientierter Software und helfen dabei potenzielle Schwachstellen in der Software zu identizieren und den Softwareentwurf zu optimieren. Der Einsatz objektorientierter Metriken senkt die Entwicklungs-, Test- und Wartungskosten.
In dieser Arbeit werden objektorientierte Metriken von Chidamber und Kemerer, Li und Henry sowie von Bruito und Abreu näher vorgestellt. Danach werden die Ergebnisse einer Studie erläutert, in der gezeigt wird, dass Metriken-Tools, die unter anderem Metriken von Chidamber und Kemerer messen, Definitionen von Metriken unterschiedlich interpretieren.
Zum Schluss wird noch aufgezeigt, wie objektorientierte Codemetriken im Bereich eingebetteter Systeme sinnvoll eingesetzt werden können.
Keywords: AHF - Attribute Hiding Factor, AIF - Attribute Inheritance Factor, CBO - Coupling between Object Classes, COF - Coupling Factor, DAC - Data Abstraction Coupling, DIT - Dept of Inheritance Tree, LCOM - Lack of Cohesion in Methods, MHF - Methode Hiding Factor, MIF - Methode Inheritance Factor, MOOD Metriken von Brito und Abreu, MPC - Message Passing Coupling, NOC - Number of Children, NOM - Number of local Methodes, POF - Polymorphism Factor, RFC - Response of a Class, SIZE1 - Number of Semicolons in a Class, SIZE2 - Number of Attriubutes + Number of Local Methods, WMC - Weighted Methods per Class
(7 pages, pdf, 223 KB) © 2009 Eugenia Drosdezki (Hochschule Offenburg) Download
Testen von Echtzeitsystemen
Ehret, Mathias
Das Testen ist ein sehr teurer Schritt in der Entwicklung von Real-Time Systems. Während für reine Softwaresysteme mit moderaten Anforderungen an das Laufzeitverhalten schon länger moderne Testverfahren und Paradigmen angewandt werden, sind deren Varianten für das Testen von Echtzeitsystemen noch relativ unbekannt.
Echtzeitsysteme können günstig als Timed Automata beschrieben und als Black-Box Systeme nach digitaltechnischen und formalen Gesichtspunkten verifiziert werden. Weitere Möglichkeiten ergeben sich durch adaptive Testgenerierung und Robustheitsprüfungen. Für die Spezifikation der Testfälle existiert eine Echtzeiterweiterung der TTCN Notation.
(7 pages, pdf, 286 KB) © 2009 Mathias Ehret (Hochschule Offenburg) Download
Echtzeitsysteme können günstig als Timed Automata beschrieben und als Black-Box Systeme nach digitaltechnischen und formalen Gesichtspunkten verifiziert werden. Weitere Möglichkeiten ergeben sich durch adaptive Testgenerierung und Robustheitsprüfungen. Für die Spezifikation der Testfälle existiert eine Echtzeiterweiterung der TTCN Notation.
(7 pages, pdf, 286 KB) © 2009 Mathias Ehret (Hochschule Offenburg) Download
Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX
Erdrich, Frank
Echtzeitsysteme werden immer komplexer. Darum bedarf es Hilfsmittel wie Echtzeitbetriebssysteme, die die Komplexität vereinfachen.
Das vorliegende Paper zeigt anhand gängiger Verfahren zur Echtzeitprogrammierung auf, inwieweit das Echtzeitbetriebssystem RTX von Keil Echtzeitprogrammierung und Echtzeitverhalten unterstützt.
(8 pages, pdf, 421 KB) © 2009 Frank Erdrich (Hochschule Offenburg) Download
Das vorliegende Paper zeigt anhand gängiger Verfahren zur Echtzeitprogrammierung auf, inwieweit das Echtzeitbetriebssystem RTX von Keil Echtzeitprogrammierung und Echtzeitverhalten unterstützt.
(8 pages, pdf, 421 KB) © 2009 Frank Erdrich (Hochschule Offenburg) Download
Statische Codeanalyse
Feder, Fabian
Automatisierte Codeüberprüfung ist mittlerweile Stand der Technik. Sie wird in vielen Bereichen der Softwareentwicklung eingesetzt, von Embedded Anwendungen bis hin zu großer Unternehmenssoftware. Im sicherheitskritischen Bereich ist es jedoch notwendig zu beweisen, dass die Tests korrekte Ergebnisse liefern. Dies ist mit der "statischen Codeanalyse" möglich.
(5 pages, pdf, 177 KB) © 2012 Fabian Feder (Hochschule Offenburg) Download
(5 pages, pdf, 177 KB) © 2012 Fabian Feder (Hochschule Offenburg) Download
Bug-Hunting mit statischer Codeanalyse
Fischer, Daniel
Statische Testverfahren zählen zu den analytischen SW-Qualitätssicherungsverfahren. Neben Komplexitätsmetriken, Architektur- und WCET-Analysen stellt insbesondere die statische Codeanalyse eine effiziente Möglichkeit dar, um Software-Bugs zu finden, welche durch dynamische Testverfahren (Whige-Box- und Black-Box-Testing) nicht entdeckt wurden.
Dieser Artikel enthät einen Vergleich der Werkzeuge CppCheck, Lint und CodeSonar.
(9 pages, pdf) © 2013 Prof. Dr. Daniel Fischer (Hochschule Offenburg) Download
Dieser Artikel enthät einen Vergleich der Werkzeuge CppCheck, Lint und CodeSonar.
(9 pages, pdf) © 2013 Prof. Dr. Daniel Fischer (Hochschule Offenburg) Download
Code-Coverage auf Embedded-Systemen
Fischer, Daniel
Die Testabdeckung sowie der Testfortschritt lassen sich mittels Code-Coverage quantitativ bestimmen. Je nach Kritikalität des Embedded Systems sind dabei verschiedenartige Coveragestufen (Anweisungs- und Zweigüberdeckung, Modified Condition/Decision Coverage) anzuwenden. Zur Messung dieser Coveragestufen ist der Code zu instrumentieren und auf dem Host oder Target möglichst mittels automatisierten Tests auszuführen. Bei der Instrumentierung des Codes entstehen bei kleinen eingebetteten Systemen verschiedenartige Herausforderungen. Neben der Begrenzung durch RAM und ROM sollte beispielsweise das Zeitverhalten kaum oder nur gering beeinflusst werden. Im Rahmen des Papers wird auf die verschiedenen Coveragestufen und die Instrumentierung eingegangen. Die Probleme die dabei bei eingebetteten Systemen entstehen werden aufgezeigt und Lösungsmöglichkeiten dargestellt.
(11 pages, pdf, 899 KB) © 2012 Prof. Dr. Daniel Fischer (Hochschule Offenburg) Download
(11 pages, pdf, 899 KB) © 2012 Prof. Dr. Daniel Fischer (Hochschule Offenburg) Download
Testwell CTC++: Code Coverage for safety-critical Embedded Systems
Fischer, Daniel
Software for embedded systems is often used in safety-critical systems. In this area malfunctions could lead to accidents or damages of high magnitude and even to loss of lives. Therefore, security standards such as the DO178-C (aviation), the ISO 26262 (automotive) or the EN 50128 (railway) demands harsh proff of code coverage. In dependency to the ciritcality, a suitable level of code coverage has to be applied.
(2 pages, pdf, 3.2 MB) © 2013 Prof. Dr. Daniel Fischer (Univeristy of Applied Sciences Offenburg) Download
(2 pages, pdf, 3.2 MB) © 2013 Prof. Dr. Daniel Fischer (Univeristy of Applied Sciences Offenburg) Download
Softwaremetriken gezielt einsetzen
Fischer, Daniel
Software-Metriken stellen Kennwerte dar, um Software hinsichtlich Komplexität, Wartbarkeit und Fehleranfälligkeit zu bewerten. So empfliehlt die DIN EN 61508 die Erhebung von Software-Metriken für die Safety Integrity Level (SIL) 1-4. Weitere Empfehlungen der DIN EN 61508, wie beispielsweise die der strukturierten Programmierung, können aus einzelnen Software-Metriken abgeleitet werden.
(9 pages, pdf, 738 KB) © 2009 Prof. Dr. Daniel Fischer (Hochschule Offenburg) Download
(9 pages, pdf, 738 KB) © 2009 Prof. Dr. Daniel Fischer (Hochschule Offenburg) Download
Testreihung mit allen Tricks
Grünfelder, Stephan und Luckeneder, Christoph
Reihung von automatischen Tests für komplexe Embedded-Systeme
Viele Firmen haben über mehrere Jahre automatisierte (Firmware-)Systemtests akkumuliert. Die Tests laufen oft auf proprietären, teuren Anlagen. Auch automatische Testdurchführung benötigt Zeit, mitunter viel Zeit. Wenn der Zeibedarf für einen vollständigen Durchlauf hoch wird, dann wird man versuchen die Tests so zu reihen, dass die Tests mit der höchsten Fehlerfindungswahrscheinlichkeit zuerst drankommen. Das ist zwar naheliegend, aber oft gar nicht so einfach. Das übergeordnete Ziel ist, die Zeit vom Start der Testsuite bis zum ersten Bugreport zu minimieren. Dieser Artikel beschreibt, wie man hier vorgehen kann. Es wird ein einfacher Lösungsansatz vorgestellt, der selbst für verteilte Echtzeit-Systeme anwendbar ist.
(9 pages, pdf, 362 KB) © 2020 Dr. Stephan Grünfelder / Dipl.-Ing. Christoph Luckeneder Download
Viele Firmen haben über mehrere Jahre automatisierte (Firmware-)Systemtests akkumuliert. Die Tests laufen oft auf proprietären, teuren Anlagen. Auch automatische Testdurchführung benötigt Zeit, mitunter viel Zeit. Wenn der Zeibedarf für einen vollständigen Durchlauf hoch wird, dann wird man versuchen die Tests so zu reihen, dass die Tests mit der höchsten Fehlerfindungswahrscheinlichkeit zuerst drankommen. Das ist zwar naheliegend, aber oft gar nicht so einfach. Das übergeordnete Ziel ist, die Zeit vom Start der Testsuite bis zum ersten Bugreport zu minimieren. Dieser Artikel beschreibt, wie man hier vorgehen kann. Es wird ein einfacher Lösungsansatz vorgestellt, der selbst für verteilte Echtzeit-Systeme anwendbar ist.
(9 pages, pdf, 362 KB) © 2020 Dr. Stephan Grünfelder / Dipl.-Ing. Christoph Luckeneder Download
Automatisches Erkennen von Data Races
Grünfelder, Stephan
Race Conditions sind eine besonders unangenehme Art von Programmfehlern. Sie können überall dort auftreten, wo Software nicht nur rein sequenziell abgearbeitet wird, sondern zumindest zum Teil parallel. Das betrifft also fast alle Anwendungen mit Betriebssystemen und auch Software, die mit Interrupt Service Routinen arbeitet. Race Conditions treten nur sporadisch auf und sind besonders schwer zu erkennen. Dieser Artikel zeigt wie Race Conditions durch Software-Werkzeuge erkannt werden können und demonstriert den Einsatz eines solchen Werkzeugs beim Test eines Echtzeit-Betriebssystems.
(12 pages, pdf, 172 KB) © 2012 Dr. Stephan Grünfelder Download
(12 pages, pdf, 172 KB) © 2012 Dr. Stephan Grünfelder Download
Die Testabdeckung messen: 10 Kriterien zur Auswahl eines Code-Coverage-Tools
Lambertz, Klaus
Speziell in der sicherheitskritischen Softwareentwicklung schreiben Branchennormen genaue Anforderungen für die Code Coverage vor, so dass Produkte hier ohne den Nachweis einer ausreichenden Testabdeckung
nicht zertifiziert werden können. Aber auch bei anderen Entwicklungsprojekten legen Unternehmen zunehmend großen Wert auf Software-Qualität und messen die Code Coverage.
Zur Messung der Code Coverage sind am Markt unterschiedliche Code Coverage Analyser verfügbar. Die Lösungen unterscheiden sich im Handling und in der Qualität teils deutlich. Wir haben deshalb zehn grundsätzliche Kriterien für die Auswahl eines Code-Coverage-Tools zusammengestellt:
(5 pages, pdf, 304 KB) © 2021 Klaus Lambertz (Verifysoft Technology GmbH) Download
Zur Messung der Code Coverage sind am Markt unterschiedliche Code Coverage Analyser verfügbar. Die Lösungen unterscheiden sich im Handling und in der Qualität teils deutlich. Wir haben deshalb zehn grundsätzliche Kriterien für die Auswahl eines Code-Coverage-Tools zusammengestellt:
(5 pages, pdf, 304 KB) © 2021 Klaus Lambertz (Verifysoft Technology GmbH) Download
Softwarefehler verursacht das teuerste "Feuerwerk" aller Zeiten
Lambertz, Klaus
Softwaretests können in Europa über 100 Milliarden Euro jährlich einsparen.
(4 pages, pdf, 383 KB) © 2009 Klaus Lambertz (Verifysoft Technology GmbH) Download
(4 pages, pdf, 383 KB) © 2009 Klaus Lambertz (Verifysoft Technology GmbH) Download
Code Coverage auf Embedded Devices: Testabdeckung bei kleinen Targets
Lambertz, Klaus
Auch bei Embedded-Geräten muss die Software hinreichend getestet werden, bevor das Produkt marktreif ist. Die Überwachung des Testfortschritts, die von vielen Sicherheitsnormen gefordert wird, ist hier jedoch nicht ganz trivial. Denn oft sind die Ressourcen der Targets limitiert, Speicher und Prozessor können durch die Code Coverage an ihre Grenzen stoßen. Doch mit etwas Kreativität ist es möglich, auch im Embedded-Bereich die Testabdeckung zu erfassen und nachzuweisen.
(6 pages, pdf) © 2018 Verifysoft Technology GmbH Download
(6 pages, pdf) © 2018 Verifysoft Technology GmbH Download
Software-Qualität mit statischer Analyse und dynamischen Tests steigern
Lambertz, Klaus
Gute Software erfüllt die erwartete Funktionalität, ist sicher, zuverlässig und gut wartbar. Es ist wichtig, dass Software möglichst keine Fehler hat, damit sowohl die Funktionale Sicherheit (engl. Safety),
als auch die Angriffssicherheit (engl. Security) sichergestellt ist. Hierzu kommen während der Softwareentwicklung idealerweise zwei unterschiedliche Verfahren zum Einsatz, die komplementär sind:
die statische Code-Analyse und das Testen zur Laufzeit, auch dynamische Analyse genannt. Beide Methoden decken verfahrensbedingt nur einen Teil der vorhandenen Probleme auf. Erst wenn sie gemeinsam genutzt werden,
kann die Qualität der Software entscheidend gesteigert werden.
(4 pages, pdf) © 2021 Verifysoft Technology GmbH Download
(4 pages, pdf) © 2021 Verifysoft Technology GmbH Download
Embedded-Anbieter im Dilemma zwischen Marktdruck und Verantwortung: Wie können Software-Testwerkzeuge helfen?
Lambertz, Klaus / Lüdtke, Royd
Bei der Entwicklung von Embedded Devices und Embedded Software gilt wie in vielen anderen Projekten das Modell des magischen Dreiecks, in dem Sachziele bzw. Qualität mit Kosten und Zeit in Beziehung gesetzt werden. Vor dem Entwicklungsstart werden die drei Größen definiert und priorisiert. Es wird festgelegt, welche Sachziele man bis zu welchen Terminen mit welchem Budget umsetzen will. Wird später eine der drei Größen verändert, hat das direkte Auswirkungen auf die beiden anderen Größen. Bei der Entwicklung von Embedded Software können vor allem die Qualität und die Produktivität (Zeit) durch geeignete Software(test)-Werkzeuge positiv beeinflusst werden.
(6 pages, pdf) © 2020 Verifysoft Technology GmbH Download
(6 pages, pdf) © 2020 Verifysoft Technology GmbH Download
Gemeinsam zum Erfolg: Statische Codeanalyse und dynamische Tests
Lüdtke, Royd
Softwareentwicklern stehen zwei Techniken zum Testen von Software zur Verfügung: dynamische Tests und die statische Codeanalyse. Erst wenn beide Methoden kombiniert werden, lassen sich Fehler in der Software
weitgehend ausschließen.
Um die Qualität sicherzustellen, werden zwei Methoden unterschieden: statische Codeanalyseverfahren und das Testen lauffähiger Software während der dynamischen Analyse – unter anderem mit Unit-Tests. Beide Verfahren sind komplementär – jeder der beiden Ansätze deckt verfahrensbedingt jeweils nur einen Teil der vorhandenen Fehler auf. Größte Fehlerfreiheit kann erst im Zusammenspiel von statischer und dynamischer Analyse erreicht werden.
(9 pages, pdf, 264 KB) © 2021 Royd Lüdtke, Verifysoft Technology GmbH Download
Um die Qualität sicherzustellen, werden zwei Methoden unterschieden: statische Codeanalyseverfahren und das Testen lauffähiger Software während der dynamischen Analyse – unter anderem mit Unit-Tests. Beide Verfahren sind komplementär – jeder der beiden Ansätze deckt verfahrensbedingt jeweils nur einen Teil der vorhandenen Fehler auf. Größte Fehlerfreiheit kann erst im Zusammenspiel von statischer und dynamischer Analyse erreicht werden.
(9 pages, pdf, 264 KB) © 2021 Royd Lüdtke, Verifysoft Technology GmbH Download
Effizientes Auffinden von Nebenläufigkeitsfehlern durch statische Codeanalyse
Lüdtke, Royd
Die zunehmende Verbreitung moderner Multicore-Prozessoren ist mit der Forderung nach nebenläufiger Software verbunden, die derartige Hardwarearchitekturen optimal auszunutzen versteht. In nicht unerheblichem Maße gilt das auch im embedded Umfeld. Softwareentwickler und –Tester müssen sich neuen Herausforderungen stellen. Kann die Softwarequalität von single-threaded Applikationen durch Code-Review und dynamische Testverfahren noch hinreichend gesichert werden, reichen diese Testmethoden für multithreaded Applikationen meist allein nicht mehr aus.
(8 pages, pdf) © 2014 Royd Lüdtke, Verifysoft Technology GmbH Download
(8 pages, pdf) © 2014 Royd Lüdtke, Verifysoft Technology GmbH Download
Static Analysis: Detect bottlenecks - Identify problems with the cache usage
Lüdtke, Royd
The use of the cache has a considerable impact on the overall system performance, even with small targets. This efficiency plays an important role, in particular in regard to real-time applications. Possibilities for optimisation should already be found in a very early phase of the software development lifecycle. The sooner the bottleneck is recognised, the easier and cheaper it can then also be removed. A procedure is suited for this task, which actually should be established in every development team: Static code analysis. With its use, it is possible to root out problems involving the cache usage and to remove them.
(6 pages, pdf) © 2019 Verifysoft Technology GmbH Download
(6 pages, pdf) © 2019 Verifysoft Technology GmbH Download
Wegweiser zur Auswahl eines Werkzeuges zur statischen Codeanalyse
Lüdtke, Royd
Werkzeuge zur statischen Codeanalyse ermöglichen das Auffinden von Softwarefehlern bereits früh im Entwicklungsprozess und tragen damit dazu bei
Kosten und Risiken eines Projektes zu minimieren.
Die auf dem Markt erhältlichen Tools unterscheiden sich zum Teil erheblich hinsichtlich Preis und Leistung.
Es ist daher nicht einfach das geeignete Werkzeug für einen definierten Einsatzbereich auszuwählen.
Das vorliegende Dokument zeigt einige Beurteilungskriterien auf, die Sie dabei unterstützen können, sich für ein zu Ihrem Projekt passendes Werkzeug zu entscheiden.
(14 pages, pdf) © 2020 Verifysoft Technology GmbH Download
(14 pages, pdf) © 2020 Verifysoft Technology GmbH Download
Fehlerfreie Software mit statischer Code-Analyse und dynamischen Tests
Lüdtke, Royd / Person, Roland
Um eine gute Softwarequalität zu gewährleisten, ist eine Kombination von statischer Analyse und hinreichendem Testen zur Laufzeit (dynamische Tests)
in Verbindung mit einer Messung der Testabdeckung erforderlich.
Unser Praxisbeispiel zeigt, warum beide Verfahren zur Absicherung der Softwarequalität genutzt werden müssen und warum die Konzentration
auf nur eine Test- oder Analyseform gefährliche Konsequenzen haben kann.
(5 pages, pdf) © 2021 Verifysoft Technology GmbH Download
(5 pages, pdf) © 2021 Verifysoft Technology GmbH Download
Grundlagen der Code-Coverage-Messung
Poehler, Sabine
Dieser Beitrag bietet Neuanwendern einen Einstieg in das Thema „Code Coverage“. Neben einem systematischen Überblick über die verschiedenen theoretischen Ansätze werden konkrete Entscheidungshilfen für den Einsatz von Coverage Werkzeugen diskutiert.
Der Nachweis der Code Coverage wird für den Test sicherheitskritischer Software in einer Reihe von Sicherheitsnormen gefordert oder empfohlen. Dabei werden, abhängig von der Sicherheitsklasse der Software, verschiedene starke Coverage Maße festgelegt. ...
(3 pages, pdf) © 2019 Dr. Sabine Poehler, Verifysoft Technology GmbH Download Video
Der Nachweis der Code Coverage wird für den Test sicherheitskritischer Software in einer Reihe von Sicherheitsnormen gefordert oder empfohlen. Dabei werden, abhängig von der Sicherheitsklasse der Software, verschiedene starke Coverage Maße festgelegt. ...
(3 pages, pdf) © 2019 Dr. Sabine Poehler, Verifysoft Technology GmbH Download Video
Testabdeckung und Penetration Testing: Code Coverage zeigt Angriffsvektoren auf
Poehler, Sabine
Die Messung der Testabdeckung ist ein unverzichtbarer Standard, wenn es um die funktionale Sicherheit von Embedded-Systemen geht. Doch haben die dafür genutzten Code-Coverage-Analyzer noch einen weiteren Nutzen, der wenig bekannt ist: Code Coverage ist sehr hilfreich, um im Rahmen des Penetration Testings Schwachstellen im Code zu erkennen und in ihrer Brisanz zu bewerten. Vor allem innerhalb des Entwicklungszyklus können die Programmierer und Teamleiter so frühzeitig Sicherheitslücken aufdecken und zeitnah schließen.
(6 pages, pdf) © 2019 Dr. Sabine Poehler, Verifysoft Technology GmbH Download
(6 pages, pdf) © 2019 Dr. Sabine Poehler, Verifysoft Technology GmbH Download
Embedded Unit-Tests und Mocking mit CMock
Raffeiner, Simon
Softwareentwicklung für eingebettete Systeme hat sich in den vergangenen Jahren meist kaum verändert. Obwohl die Konzepte hinter Agiler Entwicklung, Test-Driven Development und Extreme Programming auch auf eingebettete Systeme übertragen wurden liegen die Potentiale in vielen Projekten brach. Unit Testing und Mocking werden weitestgehend ignoriert. Das Problem entsteht aus der Fehleinschätzung vieler Entwickler, dass Software für eingebettete Systeme ohne Betriebssystem schwer zu testen ist weil die notwendigen Angriffspunkte (Automatisierbarkeit, Frameworks) fehlen und die knapp bemessenen Ressourcen den Einsatz größerer Test-Frameworks unmöglich macht. Statt dessen beschränkt man sich meist auf Systemtests. Kernthema dieses Dokumentes ist die Einführung in das CMock Mocking Framework, das in Verbindung mit dem Unity Unit Test Framework genutzt werden kann um White-Box-Tests für C-Programme generieren.
(9 pages, pdf, 176 KB) © 2009 Simon Raffeiner (Hochschule Offenburg) Download
(9 pages, pdf, 176 KB) © 2009 Simon Raffeiner (Hochschule Offenburg) Download
Classic Algorithms for Pairwise Testing
Rothmann, Andreas
This paper gives an overview on the most important classic algorithms for pairwise testing. All algorithms use combinatorial strategies to find a test set, which covers pairwise combinations of system parameters (for example system settings or inputs from the user). The idea of pairwise testing is already 20 years old but for the last five years its popularity has been rising extremely. The reason is that testers have to face more complex software projects with the same time target.
(6 pages, pdf, 289 KB) © 2008 Andreas Rothmann (Hochschule Offenburg) Download
(6 pages, pdf, 289 KB) © 2008 Andreas Rothmann (Hochschule Offenburg) Download
TTCN-3
Schlegel, Andreas
Das Testen komplexer Systeme, besonders im Bereich verteilter Systeme, gestaltet sich oft sehr schwierig. Dies ist bedingt durch das Zusammenwirken verschiedener Komponenten mit unterschiedlicher Hardware und Plattformen. Für diese Komponenten werden die selben Testfälle entwickelt, jedoch aufgrund der Unterschiede meistens für jede Komponente einzeln implementiert. Dies verursacht einen erheblichen Mehraufwand, der besonders auch beim Ändern von Testfällen sehr hoch ist. Um diesen Aufwand zu minimieren ist eine gemeinsame Testsprache notwendig, in der alle Testfälle erstellt werden können.
Dieses Paper stellt die Testsprache TTCN-3 vor. TTCN-3 ist eine einheitliche technologie-unabhägige Testsprache für kommunikationsbasierte, verteilte Systeme und bietet dadurch eine Lösung für diese Probleme.
(10 pages, pdf, 1,5 MB) © 2010 Andreas Schlegel (Hochschule Offenburg) Download
Dieses Paper stellt die Testsprache TTCN-3 vor. TTCN-3 ist eine einheitliche technologie-unabhägige Testsprache für kommunikationsbasierte, verteilte Systeme und bietet dadurch eine Lösung für diese Probleme.
(10 pages, pdf, 1,5 MB) © 2010 Andreas Schlegel (Hochschule Offenburg) Download
ISO/SAE 21434 "Road vehicles – Cybersecurity engineering"
Simco, Christian
Mit zunehmender Vernetzung und Komplexität von Fahrzeugen steigt der Umfang der Software stetig.
100 Millionen Codezeilen sind für herkömmliche Automobile Standard.
Für autonome Fahrzeuge werden bis zu 300 Millionen Codezeilen benötigt.
Mit der Konnektivität und Komplexität wächst auch die Angriffsfläche für Cyberattacken.
Das Ziel von ISO/SAE 21434 ist es, diese Sicherheitsbedrohung zu bekämpfen und die Cybersicherheitstechnik von Automobilsoftware zu verbessern. Die 2021 herausgegebene Norm ist eine Ergänzung der ISO-Norm 26262 und soll Ziele, Anforderungen und Richtlinien für die Sicherung elektrischer und elektronischer Systeme in Kraftfahrzeugen definieren.
(7 pages, pdf, 0,6 MB) © 2022 Christian Simco / CodeSecure Bethesda (Maryland) Download
Das Ziel von ISO/SAE 21434 ist es, diese Sicherheitsbedrohung zu bekämpfen und die Cybersicherheitstechnik von Automobilsoftware zu verbessern. Die 2021 herausgegebene Norm ist eine Ergänzung der ISO-Norm 26262 und soll Ziele, Anforderungen und Richtlinien für die Sicherung elektrischer und elektronischer Systeme in Kraftfahrzeugen definieren.
(7 pages, pdf, 0,6 MB) © 2022 Christian Simco / CodeSecure Bethesda (Maryland) Download
Zentrale Fehlerbehandlung in verteilten eingebetteten Systemen
Spinner, Simon
Die Fehlerbehandlung ist ein wichtiger Teil bei der Implementierung von robusten und fehlertoleranten Systemen. In modernen Programmiersprachen gibt es meist bereits spezielle Konstrukte zur Fehlerbehandlung. Insbesondere in verteilten und nebenläfigen Szenarien sind die traditionellen, sequentiellen Fehlerbehandlungssysteme allerdings nicht ausreichend.
Es werden mit Erlang, dem Guardian Modell und den CA Actions drei aktuellere Lösungsvorschläge für dieses Problem vorgestellt. Es wird dabei auch auf deren Einsetzbarkeit in eingebetteten Systemen eingegangen. Abschließend wird ein Vergleich der vorgestellten Systeme vorgenommen.
(8 pages, pdf, 239 KB) © 2008 Simon Spinner (Hochschule Offenburg) Download
Es werden mit Erlang, dem Guardian Modell und den CA Actions drei aktuellere Lösungsvorschläge für dieses Problem vorgestellt. Es wird dabei auch auf deren Einsetzbarkeit in eingebetteten Systemen eingegangen. Abschließend wird ein Vergleich der vorgestellten Systeme vorgenommen.
(8 pages, pdf, 239 KB) © 2008 Simon Spinner (Hochschule Offenburg) Download