DE102014102551A1 - Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen - Google Patents

Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen Download PDF

Info

Publication number
DE102014102551A1
DE102014102551A1 DE102014102551.2A DE102014102551A DE102014102551A1 DE 102014102551 A1 DE102014102551 A1 DE 102014102551A1 DE 102014102551 A DE102014102551 A DE 102014102551A DE 102014102551 A1 DE102014102551 A1 DE 102014102551A1
Authority
DE
Germany
Prior art keywords
program
error
sequences
machine
prone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102014102551.2A
Other languages
English (en)
Inventor
Cristian Tepus
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102014102551A1 publication Critical patent/DE102014102551A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Es wird eine Maschine zum Evaluieren fehlschlagender Softwareprogramme, ein nichtflüchtiges computerlesbares Speichermedium mit einem darauf gespeicherten Fehleranalyseprogramm und ein durch einen Mikroprozessor ausgeführtes Fehleranalyseprogramm offenbart. Bei einer Ausführungsform umfasst eine Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, zu bestimmen, ob ein Fehlschlag eines fehleranfälligen Programmschritts reproduzierbar auftritt, durch Bereitstellen des Softwareprogramms mit dem fehleranfälligen Programmschritt, Ausführen von dem fehleranfälligen Programmschritt vorausgehenden Programmschritten, mehrmaliges Ausführen des fehleranfälligen Programmschritts und Berechnen einer Fehlschlagwahrscheinlichkeit für den fehleranfälligen Programmschritt.

Description

  • Die vorliegende Erfindung betrifft im Allgemeinen eine Maschine und Verfahren, die für die Softwareprogramm-Fehleranalyse verwendbar sind, und insbesondere die Testevaluierungs-Programmfehleranalyse.
  • Softwareprogramme, die mehrere Programmschritte umfassen, die entweder automatisch in aufeinanderfolgender Reihenfolge laufen oder durch Benutzeranweisungen eingeleitet werden, sind zu einem weitverbreiteten Arbeitswerkzeug geworden. Solche Softwareprogramme können zum Beispiel Verwaltungsaufgaben erleichtern oder effektive Qualitätskontrolle hergestellter Waren wie etwa elektronischer Vorrichtungen erlauben. Softwareprogramme können jedoch während anfänglicher Anwendungsversuche aus oft unbekannten Gründen fehlschlagen. Modifizierte oder neu entwickelte Softwareprogramme sind besonders anfällig für solche Fehlschläge. Die Suche nach der Ursache eines oder mehrerer Fehler in einem mehrschrittigen Softwareprogramm kann eine komplexe und zeitaufwendige Aufgabe sein.
  • Gemäß einer Ausführungsform der Erfindung umfasst eine Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, zu bestimmen, ob ein Fehlschlag eines fehleranfälligen Programmschritts reproduzierbar auftritt, durch Bereitstellen des Softwareprogramms mit dem fehleranfälligen Programmschritt, Ausführen von dem fehleranfälligen Programmschritt vorausgehenden Programmschritten, mehrmaliges Ausführen des fehleranfälligen Programmschritts und Berechnen einer Fehlschlagwahrscheinlichkeit für den fehleranfälligen Programmschritt.
  • Gemäß einer Ausführungsform der Erfindung umfasst eine Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, zu bestimmen, ob ein Fehlschlag eines fehleranfälligen Programmschritts reproduzierbar auftritt, durch Bereitstellen einer mehrschrittigen Sequenz, die in dem fehleranfälligen Programmschritt endet, mehrmaliges Ausführen der mehrschrittigen Sequenz und Berechnen einer Fehlschlagwahrscheinlichkeit für die mehrschrittige Sequenz.
  • Gemäß einer Ausführungsform der Erfindung umfasst eine Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle für einen fehleranfälligen Programmschritt zu bestimmen durch Bereitstellen einer ersten Menge von mehrschrittigen Sequenzen, die in dem fehleranfälligen Programmschritt enden, Ausführen jeder mehrschrittigen Sequenz der ersten Menge von mehrschrittigen Sequenzen und Aufzeichnen jeder fehlgeschlagenen Schrittsequenz in dem Speicher.
  • Gemäß einer Ausführungsform der Erfindung umfasst eine Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle für einen fehleranfälligen Programmschritt zu bestimmen durch Bereitstellen einer Menge von mehrschrittigen Sequenzen, die in dem fehleranfälligen Programmschritt enden, wobei die Menge von mehrschrittigen Sequenzen verschiedene mehrschrittige Sequenzen umfasst und jede der mehrschrittigen Sequenzen durch Auslassung eines Schritts von einer anderen mehrschrittigen Sequenz verschieden ist, Ausführen jeder mehrschrittigen Sequenz der mehrschrittigen Sequenzen und Aufzeichnen des fehlenden Schritts, wenn eine mehrschrittige Sequenz fehlschlägt.
  • Gemäß einer Ausführungsform der Erfindung umfasst eine Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle für einen fehleranfälligen Programmschritt zu bestimmen durch Bereitstellen einer Menge von fehlschlagenden Sequenzen, die alle in demselben fehleranfälligen Programmschritt enden, Analysieren der fehlschlagenden Sequenzen bezüglich mehrerer den fehlschlagenden Sequenzen gemeinsamer Programmschritte; und Einstufen der mehreren Programmschritte gemäß einer Fehlschlagwahrscheinlichkeit.
  • Für ein vollständigeres Verständnis der vorliegenden Erfindung und ihrer Vorteile wird nun auf die folgenden Beschreibungen in Verbindung mit den beigefügten Zeichnungen Bezug genommen. Es zeigen:
  • 1 ein Blockdiagramm einer Maschine zum Evaluieren fehlschlagender Softwareprogramme;
  • 2 ein generisches fehlschlagendes Softwareprogramm, das mehrere Schritte umfasst;
  • 3 ein Flussdiagramm eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung, wobei das Fehleranalyseprogramm ein Verfahren zum Bestimmen umfasst, ob ein fehlschlagender Programmschritt reproduzierbar auftritt oder nicht;
  • 4 ein Flussdiagramm eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung, wobei das Fehleranalyseprogramm ein Verfahren zum Bestimmen umfasst, ob eine Sequenz von Programmschritten bis zu einem fehleranfälligen Programmschritt reproduzierbar auftritt;
  • 5 ein Flussdiagramm eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung, wobei das Fehleranalyseprogramm ein Verfahren zum Analysieren der Leistungsfähigkeit eines fehleranfälligen Programmschritts, wenn vorherige Programmschritte variieren, umfasst;
  • 6 ein Flussdiagramm eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung, wobei das Fehleranalyseprogramm ein Verfahren zum Bestimmen, welche Programmschritte für den Fehlschlag untersuchter Programmschrittsequenzen nicht relevant sind, umfasst;
  • 7 ein Flussdiagramm eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung, wobei das Fehleranalyseprogramm ein Verfahren zum Identifizieren von Programmschritten oder Gruppen von Programmschritten, die einer Menge fehlschlagender Programmschrittsequenzen gemeinsam sind, umfasst; und
  • 8 ein Flussdiagramm eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung, wobei das Fehleranalyseprogramm ein Verfahren zum Beurteilen der Auswirkung des Austauschens des letzten fehlschlagenden Schritts einer Programmschrittsequenz mit einem anderen Programmschritt oder anderen Programmschritten umfasst.
  • Die Herstellung und Verwendung der zur Zeit bevorzugten Ausführungsformen werden nachfolgend ausführlich besprochen. Es versteht sich jedoch, dass die vorliegende Erfindung viele anwendbare erfindungsgemäße Konzepte bereitstellt, die in vielfältigen spezifischen Kontexten realisiert werden können. Die besprochenen spezifischen Ausführungsformen veranschaulichen lediglich verschiedene Weisen der Herstellung und Verwendung der Erfindung und begrenzen nicht das Konzept der Erfindung.
  • Softwareprogramme (die hier auch als mehrschrittige Programme bezeichnet werden) können eine Sequenz von Schritten umfassen, und jeder dieser Schritte umfasst einen Anweisungsschritt und einen Verifikationsschritt zum Prüfen, ob der gegebene Anweisungsschritt tatsächlich auf rechtzeitige und korrekte Weise ausgeführt wurde. Softwareprogramme können während des Betriebs aufgrund von Softwareprogrammierungsfehlern oder Hardwareausfällen fehlschlagen. Neu entwickelte oder modifizierte Softwareprogramme sind besonders anfällig für Fehler, die im Allgemeinen während einer anfänglichen Anwendungsperiode ersichtlich werden. Falls das mehrschrittige Programm fehlschlägt, kann es für den Programmentwickler eine schwierige und umständliche Aufgabe sein, das Softwareprogramm zu "debuggen", z.B. die genaue Fehlerquelle bzw. die genauen Fehlerquellen zurückzuverfolgen. Relativ oft gibt es keinerlei Hinweise, welcher einzelne Programmschritt oder welche Gruppe von Programmschritten den Fehlschlag verursacht hat. Außerdem kann es unklar sein, ob der beobachtete Fehler durch Cache-Kohärenzprobleme oder durch asynchrones Timing von Programmschritten erzeugt wurde. Schließlich kann es unklar sein, ob und unter welchen Bedingungen der Fehler auf reproduzierbare Weise auftrat. Nach Fehlerquellen des Softwareprogramms suchende Untersuchungen werden typischerweise manuell ausgeführt, z.B. ohne die Hilfe eines Hilfssoftwareprogramms (z.B. eines Fehleranalyseprogramms).
  • Ausführungsformen der vorliegenden Erfindung stellen ein Fehleranalyseprogramm zur schnellen Identifikation von Ursachen von Fehlern von einem Softwareprogramm bereit. Verschiedene Ausführungsformen der vorliegenden Erfindung stellen Randbedingungen bereit, unter denen ein identifizierter Softwareprogrammfehlschlag reproduzierbar auftritt. Verschiedene Ausführungsformen der vorliegenden Erfindung stellen eine Bestimmung bereit, was den Fehler verursachen kann. Ausführungsformen der Erfindung können auf ein beliebiges Softwareprogramm mit unterschiedlichen und einzelnen Programmschritten angewandt werden.
  • Ausführungsformen können ferner eine Maschine zum Evaluieren von fehlschlagenden Softwareprogrammen, ein nichtflüchtiges computerlesbares Speichermedium mit einem darauf gespeicherten Fehleranalyseprogramm und ein durch einen Mikroprozessor ausgeführtes Fehleranalyseprogramm umfassen.
  • 1 zeigt ein Blockdiagramm einer Maschine 100, welche die Analyse fehlschlagender Softwareprogramme ermöglicht. Die Maschine 100 umfasst eine Benutzeroberfläche (oder Benutzerschnittstelle) 110, einen Mikroprozessor 120, eine Vorrichtung 130 zum Speichern von Softwareprogrammen (z.B. mehrschrittigen Programmen) oder einzelner Programmschritte, eine Dokumentspeicherungsvorrichtung 140, und eine Speichervorrichtung 150. Ferner umfasst die Maschine 100 verschiedene elektrische Verbindungen und/oder Busse 160, 170, 180, 190, die elektrische Verbindung zwischen den oben erwähnten Teilsystemen der Maschine 100 herstellen.
  • Die Benutzeroberfläche 110 ist ausgelegt zum Bereitstellen von Anweisungen mit Bezug auf ein Fehleranalyseprogramm (das hier auch als Fehleruntersuchungsprogramm bezeichnet wird) im Betrieb und ausgelegt zum Ausgeben von Ergebnissen oder Antworten, die von verschiedenen Evaluierungsalgorithmen des Fehleranalyseprogramms bereitgestellt werden. Der Mikroprozessor 120 ist ausgelegt zum Ausführen und Verarbeiten der Algorithmen. Die Speichervorrichtung 150 ist ausgelegt zur Bereitstellung von vorübergehender oder permanenter Speicherung des Fehleranalyseprogramms. Die Softwareprogramm-Speicherungsvorrichtung 130 ist ausgelegt zum Speichern von bereits ausgeführten oder neu entwickelten Softwareprogrammen und einzelner Schritte mehrschrittiger Softwareprogramme. Die Dokumentspeicherungsvorrichtung 140 ist ausgelegt zum Speichern von Ergebnissen, die aus Fehleruntersuchungsdurchläufen abgeleitet werden (z.B. Prüf-Fehlschlagstatistiken). Gegebenenfalls können entweder die Softwareprogramm-Speicherungsvorrichtung 130 oder die Dokumentspeicherungsvorrichtung 140 oder beide einen Monitor umfassen, der Datenbetrachtung ohne Abhängigkeit von dem Monitor der Benutzeroberfläche 110 erlaubt. Die Speichervorrichtung 150, die Softwareprogramm-Speicherungsvorrichtung 140 und die Dokumentspeicherungsvorrichtung 130 können eine einzige Vorrichtung sein, wie etwa ein Speicher.
  • Ausführungsformen der Erfindung betreffen Verfahren zum Untersuchen von Softwareprogrammfehlern und Fehlermustern. Die offenbarten Algorithmen können auf generische Softwareprogramme oder zum Prüfen von Programmen, z.B. generische Softwareprogramme prüfenden Programmen, angewandt werden. Zum Beispiel kann das Softwareprogramm oder das Prüfprogramm ein Programm zum Entwickeln von Chips in der Halbleiterindustrie sein.
  • 2 zeigt ein Softwareprogramm 200, das eine Sequenz von N einzelnen Programmschritten umfasst. Zum Beispiel einen ersten Programmschritt (Schritt 1 210), einen letzten Programmschritt (Schritt N 270) und einen spezifischen Programmschritt (Schritt X 250), von dem angenommen wird, dass er ein Programmschritt ist, an dem ein Fehler auftritt. Bei einer Ausführungsform umfasst das Softwareprogramm 200 nur zwei Schritte. Als Alternative kann das Softwareprogramm 10–50 Schritte, 10–100 Schritte oder mehr als 100 Schritte umfassen.
  • Der Programmschritt kann eine einzelne Anweisung oder eine Gruppe von Anweisungen sein. Bei verschiedenen Ausführungsformen ist der Programm-(oder Prüf-)Ausführungsschritt, was der Benutzer als eine Operation definiert. Als erstes Beispiel für eine grafische Benutzeroberfläche (GUI): 1) Anwendung öffnen => Prüfen, ob das Fenster offen ist; 2) Öffnen einer Textdatei => Prüfen des Editors, ob Fenster die Textdatei enthält; 3) Neue Chars editieren => den Editor prüfen, ob Fenster durch die neuen Chars aktualisiert wird. Als zweites Beispiel für einen Debugger: 1) Eintreten in den Debug-Modus für eine ausführbare Datei => Prüfen, ob sich der PC am Herauffahrpunkt befindet; 2) einen Überschritt durchführen => Prüfen, ob der PC inkrementiert wird; 3) einen Schritt über eine Funktion durchführen => Prüfen, ob der Stack-Crawl durch den neuen Frame aktualisiert wird. Als drittes Beispiel für einen Assembler: 1) Verschieben von Speicherstelleninhalt in ein Register => Prüfen, ob Register aktualisiert; 2) Pushen des Registers in den Stack => Prüfen, ob Stack-Zeigeraktualisierung; 3) zwei Register addieren und Ergebnis in Register 3 ablegen => Register 3 auf die Summe prüfen.
  • 3 zeigt ein Flussdiagramm 300 eines Fehleranalyseprogramms gemäß einer Ausführungsform der Erfindung. Das Fehleranalyseprogramm umfasst ein Verfahren zum Bestimmen, ob ein fehlschlagender Programmschritt (z.B. Schritt X 250) reproduzierbar auftritt. In einem ersten Schritt 310 wird ein Softwareprogramm (z.B. Softwareprogramm 200) mit einem fehleranfälligen Programmschritt (z.B. Schritt X 250) bereitgestellt. Im Schritt 320 werden die dem fehlschlagenden Programmschritt (z.B. Schritt X 250) vorausgehenden Programmschritte des Softwareprogramms ausgeführt. Zum Beispiel werden Schritt 1 210 bis Schritt (X – 1) 240 vor dem fehlschlagenden Programmschritt X 250 des Programms 200 ausgeführt. Danach wird im Schritt 330 der fehleranfällige Programmschritt (Schritt X 250) auf sich wiederholende Weise eine vorbestimmte Anzahl von Malen ausgeführt. Das Ergebnis jedes einzelnen Untersuchungsdurchlaufs wird (z.B. in der Dokumentspeicherungsvorrichtung 140) aufgezeichnet. Als letztes wird im Schritt 350 die Wahrscheinlichkeit des Fehlschlags für den fehleranfälligen Programmschritt (z.B. Schritt X 250) berechnet. Die Wahrscheinlichkeit des Fehlschlags des fehleranfälligen Programmschritts wird berechnet durch Dividieren der Anzahl fehlgeschlagener Durchläufe durch die Gesamtzahl der Durchläufe.
  • 4 zeigt ein Flussdiagramm 400 eines Fehleranalyseprogramms gemäß einer Ausführungsform. Das Fehleranalyseprogramm umfasst ein Verfahren zum Evaluieren, ob ein reproduzierbarer Fehler beobachtet wird, während eine mehrschrittige Sequenz unter demselben Prüfszenario ausgeführt wird. In einem Anfangsschritt 410 wird ein Softwareprogramm bereitgestellt, das eine mehrschrittige Sequenz umfasst, die in einem fehleranfälligen Programmschritt (z.B. Schritt X 250) endet. Im Schritt 420 wird die mehrschrittige Sequenz eine vorbestimmte Anzahl von Malen ausgeführt, und das Ergebnis jedes Evaluierungsdurchlaufs wird aufgezeichnet. Im Schritt 430 wird die Wahrscheinlichkeit des Fehlschlags der mehrschrittigen Sequenz berechnet durch Dividieren der Anzahl fehlgeschlagener Durchläufe durch die Gesamtzahl der Durchläufe. Die Wahrscheinlichkeit des Fehlschlags kann sehr gering sein, weil zum Beispiel ein Bug aufgrund anderer asynchroner Prozesse, die den Bug die meiste Zeit verbergen können, sehr schwer zu finden sein kann.
  • Zu wissen, welcher einem fehlschlagenden Schritt eines fehlerhaften Softwareprogramms vorausgehender Programmschritt den Fehler in dem fehleranfälligen Programmschritt (z.B. Schritt X 250) auslösen kann, kann hilfreich sein, wenn nach der Ursache des Problems gesucht wird. Es kann von Interesse sein, zu wissen, ob andere Programmschritte als die dem fehleranfälligen Programmschritt (z.B. Schritt X 250) vorausgehenden in dem fehlschlagendem Programm ähnliche Probleme verursachen können.
  • 5 zeigt ein Flussdiagramm 500 eines Fehleranalyseprogramms gemäß einer weiteren Ausführungsform. Diese Ausführungsform versucht zu bestimmen, was die Ursache des Fehlers ist. Im Schritt 510 wird ein Softwareprogramm bereitgestellt, das einen fehleranfälligen Programmschritt (z.B. Schritt X 250) umfasst. Im Schritt 520 wird eine Menge von mehrschrittigen Sequenzen, die alle in demselben fehleranfälligen Programmschritt (z.B. Schritt X 250) des fehlerhaften Softwareprogramms enden, bereitgestellt. Jede der mehrschrittigen Sequenzen kann einen oder mehrere dem fehleranfälligen Programmschritt vorausgehende Schritte umfassen. Die Menge mehrschrittiger Sequenzen kann ferner alternative Programmschritte umfassen, die nicht Teil des fehlerhaften Softwareprogramms sind. Zum Beispiel können alternative Programmschritte anderen oder Nächste-Generation-Softwareprogrammen entnommen werden. Im Schritt 530 wird eine Reihe von Evaluierungsdurchläufen ausgeführt, wobei jede der mehrschrittigen Sequenzen ausgeführt wird. Als letztes werden im Schritt 540 die fehlschlagenden Sequenzen in einem Speicher, z.B. der Dokumentspeicherungsvorrichtung 140, aufgezeichnet.
  • Die im Schritt 520 bereitgestellten mehrschrittigen Sequenzen können sich in allen oder nur in einigen der dem fehleranfälligen Programmschritt vorausgehenden einzelnen Schritte unterscheiden. Die Ergebnisse (aus Schritt 530) können Informationen bereitstellen, ob ein bestimmter Schritt oder bestimmte Schritte (oder eine Menge von Schritten) dem fehleranfälligen Programmschritt vorausgehen, um den Fehler zu produzieren. Die Ergebnisse können ferner Informationen bereitstellen, ob bestimmte Schritte bei allen Evaluierungsdurchläufen vorliegen. Außerdem können die Ergebnisse Informationen liefern, ob bestimmte Schritte relevanter als andere sind, z.B. ob bestimmte Schritte keinen Einfluss auf den Fehlschlag des fehleranfälligen Programmschritts haben. Als letztes können die Ergebnisse Informationen liefern, ob es eine minimale Menge von Schritten gibt, für die der fehleranfällige Programmschritt immer fehlschlägt.
  • Kumulativ oder als Alternative umfassen bei bestimmten Ausführungsformen die Mengen der mehrschrittigen Sequenzen dieselben Schritte, aber die Ausführungsreihenfolge der Schritte ist verschieden. Die Ergebnisse dieses Fehlerevaluierungsverfahrens können Informationen liefern, in welchen Fällen die Ausführungsreihenfolge das Auftreten der Softwareprogrammfehler (oder der fehleranfälligen Programmschritte) beeinflusst.
  • Bei verschiedenen Ausführungsformen ist es wichtig zu wissen, ob ein bestimmter einem fehleranfälligen Programmschritt eines Softwareprogramms vorausgehender Schritt eine potentielle Ursache des Programmfehlschlags sein kann. Bei verschiedenen anderen Ausführungsformen kann es genauso wichtig sein, zu wissen, ob ein bestimmter vorausgehender Schritt als potentielle Fehlerquelle eliminiert werden kann. Letzteres wird durch eine weitere Ausführungsform der Erfindung behandelt, die in dem in 6 gezeigten Flussdiagramm 600 dargestellt ist.
  • In dem anfänglichen Schritt 610 wird eine Menge von j mehrschrittigen Sequenzen FTS1, FTS2, FTS3, ..., FTSj, die alle in einem identischen fehleranfälligen Programmschritt enden, bereitgestellt. Im Schritt 620 wird für jede Gruppe (FTSi) eine Reihe von Evaluierungsdurchläufen durchgeführt oder ausgeführt. Wenn FTSi m Programmschritte umfasst, umfassen die entsprechenden Evaluierungsdurchläufe m Durchläufe, wobei in jedem Durchlauf die Programmschritte des ausgewählten FTSi mit Ausnahme eines bestimmten Schritts ausgeführt werden, so dass sich die Evaluierungsdurchläufe von Durchlauf zu Durchlauf unterscheiden. Falls ein Evaluierungsdurchlauf fehlschlägt, wird der in diesem spezifischen Durchlauf ausgelassene Programmschritt in einem Register aufgezeichnet. Nachdem alle Evaluierungsdurchläufe für alle FTS abgeschlossen sind, wird das Register eine Liste aller Programmschritte in den evaluierten FTS umfassen, die für den Fehlschlag des allen FTS gemeinsamen fehleranfälligen Programmschritts nicht relevant sind.
  • Die durch zuvor besprochene Ausführungsformen bereitgestellten Informationen können auf verschiedene Weisen weiter analysiert werden, um zusätzliche Einsichten hinsichtlich der Ursache(n) eines Fehlschlags eines fehleranfälligen Programmschritts (z.B. Schritt X 250) eines fehlerhaften Programms zu gewinnen. In einer weiteren Ausführungsform eines in einem Flussdiagramm 700 von 7 dargestellten weiteren Analyseverfahrens sind zusätzliche Analyseanweisungen enthalten.
  • Im Schritt 710 wird eine Menge fehlschlagender Sequenzen (FTS), die in einem selben fehleranfälligen Programmschritt (z.B. Schritt X 250) enden, bereitgestellt. Im Schritt 720 wird die verfügbare FTS-Menge mit Bezug auf einen allen untersuchten FTS gemeinsamen einzelnen Programmschritt analysiert. Als Alternative wird die verfügbare FTS-Menge mit Bezug auf mehr als einen allen untersuchten FTS gemeinsamen Programmschritt analysiert. Weiterhin kann die verfügbare FTS-Menge mit Bezug auf eine Teilgruppe der FTS-Menge analysiert werden. Danach werden im Schritt 730 die im Schritt 720 identifizierten Programmschritte in einem ersten Register (z.B. Speicher) in der Reihenfolge fallender (oder als Alternative steigender) Anzahl fehleranfälliger Sequenzen, die negativ beeinflusst werden, aufgezeichnet. Die Anzahl negativ beeinflusster mehrschrittiger Sequenzen bedeutet, wie oft die FTS für einen Evaluierungsdurchlauf hinsichtlich des identifizierten Programmschritts fehlgeschlagen sind. Sie werden im Schritt 740 in einem zweiten Register (z.B. Speicher) aufgezeichnet.
  • In Schritt 750 wird die FTS-Menge bezüglich Gruppen allen oder mindestens mehr als einem FTS gemeinsamen aufeinanderfolgenden Schritten analysiert. Im Schritt 760 werden die identifizierten gemeinsamen Gruppen von Schritten in einem dritten Register (z.B. Speicher) in der Reihenfolge fallender (oder als Alternative steigender) Anzahl von negativ beeinflussten Sequenzen aufgezeichnet. Im Schritt 770 werden wieder Gruppen von Sequenzen von Programmschritten, die allen FTS gemeinsam sind, in einem vierten Register (z.B. Speicher) aufgezeichnet.
  • In einem letzen Schritt 780 wird die FTS-Menge auf der Suche nach der kleinsten Gruppe von Programmschritten, die den reproduzierbaren Fehlschlag des fehlschlagenden Schritts (z.B. Schritt X 250) verursacht, analysiert und das Ergebnis wird in einem fünften Register (z.B. Speicher) aufgezeichnet.
  • Für ein besseres Verständnis der Fehlermechanismen allgemein ist es hilfreich, zu wissen, ob die Gruppe von Schritten (z.B. die Schritte 1 210 bis Schritt (X – 1) 240), die einem bestimmten fehleranfälligen Programmschritt (z.B. Schritt X 250) in einem Softwareprogramm vorausgeht, auch Fehler verursachen kann, wenn der fehleranfällige Programmschritt mit einem anderen Schritt oder anderen Schritten ersetzt wird. Eine solche Analyse wird durch eine Ausführungsform eines weiteren Evaluierungsverfahrens ermöglicht, das in einem Flussdiagramm 800 von 8 dargestellt ist.
  • In einem anfänglichen Schritt 810 wird eine erste Gruppe von Programmschritten (z.B. Schritte 1 210 bis Schritt (X – 1) 240), die einem fehleranfälligen Programmschritt (z.B. Schritt 250) in einem Softwareprogramm (z.B. dem Programm 200) vorausgehen, und in einem Schritt 820 eine zweite Gruppe von Programmschritten bereitgestellt. Die Programmschritte der zweiten Gruppe sind von dem fehleranfälligen Programmschritt (z.B. Schritt X 250) des Softwareprogramms verschieden. Für jeden der Programmschritte der zweiten Gruppe wird ein Evaluierungsdurchlauf ausgeführt, wobei der Durchlauf die Ausführung der ersten Gruppe von Schritten, gefolgt von der Ausführung des ausgewählten Programmschritts der zweiten Gruppe (Schritt 830), umfasst. Im Schritt 840 werden alle fehlschlagenden Schritte der zweiten Gruppe von Programmschritten in einem Speicher (z.B. Register 140) aufgezeichnet.
  • Die Fehleranalyseverfahren (z.B. 3 und 4) können die Reproduzierbarkeit des Fehlschlags eines fehleranfälligen Programmschritts berechnen. Das Fehleranalyseverfahren (5) kann einzelne vorausgehende Schritte oder Gruppen von vorausgehenden Schritten identifizieren, die potentiell für den Fehlschlag des fehleranfälligen Programmschritts kritisch sind. Das Fehleranalyseverfahren (z.B. 6) kann Programmschritte identifizieren, die für den Softwareprogrammfehlschlag nicht relevant sind. Das Fehleranalyseverfahren (z.B. 7) kann Programmschritte oder eine minimale Gruppe von aufeinanderfolgenden Schritten identifizieren, die beim Fehlschlagen des fehleranfälligen Programmschritts oder aller fehleranfälliger Programmschritte vorliegen. Als letztes kann das Fehleranalyseverfahren Einsichten darüber geben, wie eine Menge von einem fehleranfälligen Programmschritt eines bestimmten Softwareprogramms vorausgehenden Programmschritten bei Softwareprogrammen, die sich in Entwicklung befinden, zurechtkommt.
  • Bei verschiedenen Ausführungsformen werden die Fehleranalyseverfahren von 3 und/oder 4 mit dem Fehleranalyseverfahren von 5 und/oder 6 kombiniert. Bei verschiedenen anderen Ausführungsformen werden die Fehleranalyseverfahren von 3 und/oder 4 mit dem Fehleranalyseverfahren von 5 und/oder 6 und 7 und/oder 8 kombiniert. Bei bestimmten Ausführungsformen werden alle Fehleranalyseverfahren ausgeführt. Bei anderen Ausführungsformen werden nur ein oder zwei Fehleranalyseverfahren ausgeführt.
  • Zusammenfassend sollten die Ausführungsformen der Erfindung verglichen mit einem nicht durch Software unterstützen Ansatz des "Ratens" schnelleres Verfolgen und Identifizieren der Ursache(n) eines bestimmten Softwareprogrammfehlschlags erlauben.
  • Obwohl die vorliegende Erfindung und ihre Vorteile ausführlich beschrieben wurden, versteht sich, dass verschiedene Änderungen, Substitutionen und Modifikationen daran vorgenommen werden können, ohne von dem durch die angefügten Ansprüche definierten Gedanken und Konzept der Erfindung abzuweichen.
  • Darüber hinaus soll das Konzept der vorliegenden Anmeldung nicht auf die konkreten in der Beschreibung beschriebenen Ausführungsformen von Prozess, Maschine, Herstellung, Materialzusammensetzung, Mitteln, Verfahren und Schritten beschränkt werden. Wie für Durchschnittsfachleute aus der Offenbarung der vorliegenden Erfindung ohne weiteres ersichtlich wird, können gemäß der vorliegenden Erfindung Prozesse, Maschinen, Herstellung, Materialzusammensetzungen, Mittel, Verfahren oder Schritte, die zur Zeit existieren oder später zu entwickeln sind, die im Wesentlichen dieselbe Funktion wie entsprechende hier beschriebene Ausführungsformen ausführen oder im Wesentlichen dasselbe Ergebnis erzielen, verwendet werden. Dementsprechend sollen die angefügten Ansprüche in ihrem Konzept solche Prozesse, Maschinen, Herstellung, Materialzusammensetzungen, Mittel, Verfahren oder Schritte einschließen.

Claims (20)

  1. Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm, wobei die Maschine umfasst: einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, zu bestimmen, ob ein Fehlschlag eines fehleranfälligen Programmschritts reproduzierbar auftritt, durch Bereitstellen des Softwareprogramms mit dem fehleranfälligen Programmschritt; Ausführen von dem fehleranfälligen Programmschritt vorausgehenden Programmschritten; mehrmaliges Ausführen des fehleranfälligen Programmschritts; und Berechnen einer Fehlschlagwahrscheinlichkeit für den fehleranfälligen Programmschritt.
  2. Maschine nach Anspruch 1, ferner umfassend Aufzeichnen eines Ergebnisses für jede Ausführung des fehleranfälligen Programmschritts im Speicher.
  3. Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm, wobei die Maschine umfasst: einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, zu bestimmen, ob ein Fehlschlag eines fehleranfälligen Programmschritts reproduzierbar auftritt, durch Bereitstellen einer mehrschrittigen Sequenz, die in dem fehleranfälligen Programmschritt endet; mehrmaliges Ausführen der mehrschrittigen Sequenz; und Berechnen einer Fehlschlagwahrscheinlichkeit für die mehrschrittige Sequenz.
  4. Maschine nach Anspruch 3, ferner umfassend Aufzeichnen eines Ergebnisses für jede Ausführung der mehrschrittigen Sequenz im Speicher.
  5. Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm, wobei die Maschine umfasst: einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle eines fehleranfälligen Programmschritts zu bestimmen durch Bereitstellen einer ersten Menge von mehrschrittigen Sequenzen, die in dem fehleranfälligen Programmschritt enden; Ausführen jeder mehrschrittigen Sequenz der ersten Menge von mehrschrittigen Sequenzen; und Aufzeichnen jeder fehlgeschlagenen Schrittsequenz im Speicher.
  6. Maschine nach Anspruch 5, wobei die erste Menge von mehrschrittigen Sequenzen verschiedene mehrschrittige Sequenzen umfasst, und wobei jede mehrschrittige Sequenz um einen Schritt von einer anderen mehrschrittigen Sequenz verschieden ist.
  7. Maschine nach Anspruch 5, wobei die erste Menge von mehrschrittigen Sequenzen verschiedene mehrschrittige Sequenzen umfasst, und wobei sich jede mehrschrittige Sequenz um mehr als einen Schritt mit Ausnahme des fehleranfälligen Programmschritts von einer anderen mehrschrittigen Sequenz unterscheidet.
  8. Maschine nach Anspruch 5, wobei die erste Menge von mehrschrittigen Sequenzen dieselben mehrschrittigen Sequenzen umfasst, und wobei sich jede mehrschrittige Sequenz durch eine Reihenfolge von Schritten von einer anderen mehrschrittigen Sequenz unterscheidet.
  9. Maschine nach einem der Ansprüche 5 bis 8, ferner umfassend: Ausführen von Programmschritten, die dem fehleranfälligen Programmschritt vorausgehen; mehrmaliges Ausführen des fehleranfälligen Programmschritts; und Berechnen einer Fehlschlagwahrscheinlichkeit für den fehleranfälligen Programmschritt.
  10. Maschine nach einem der Ansprüche 5 bis 9, ferner umfassend: Bereitstellen einer zweiten Menge von mehrschrittigen Sequenzen, die in dem fehleranfälligen Programmschritt enden, wobei die zweite Menge von mehrschrittigen Sequenzen verschiedene mehrschrittige Sequenzen umfasst, und wobei sich jede der mehrschrittigen Sequenzen durch Weglassung eines Schritts von einer anderen mehrschrittigen Sequenz unterscheidet; Ausführen jeder mehrschrittigen Sequenz der zweiten Menge von mehrschrittigen Sequenzen; und Aufzeichnen des fehlenden Schritts, wenn die mehrschrittige Sequenz fehlschlägt.
  11. Maschine nach einem der Ansprüche 5 bis 10, ferner umfassend: Bereitstellen einer Menge von fehlschlagenden Sequenzen, die alle in demselben fehleranfälligen Programmschritt enden; Analysieren der fehlschlagenden Sequenzen bezüglich mehrerer den fehlschlagenden Sequenzen gemeinsamer Programmschritte; und Einstufen der mehreren Programmschritte gemäß einer Fehlschlagwahrscheinlichkeit.
  12. Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm, wobei die Maschine umfasst: einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle eines fehleranfälligen Programmschritts zu bestimmen durch Bereitstellen einer Menge von mehrschrittigen Sequenzen, die in dem fehleranfälligen Programmschritt enden, wobei die Menge von mehrschrittigen Sequenzen verschiedene mehrschrittige Sequenzen umfasst, und sich jede der mehrschrittigen Sequenzen durch Weglassen eines Schritts von einer anderen mehrschrittigen Sequenz unterscheidet; Ausführen jeder mehrschrittigen Sequenz der Menge von mehrschrittigen Sequenzen; und Aufzeichnen des fehlenden Schritts, wenn die mehrschrittige Sequenz fehlschlägt.
  13. Maschine nach Anspruch 12, wobei das Weglassen eines Schritts Weglassen eines einzelnen Schritts umfasst.
  14. Maschine nach Anspruch 12, wobei das Weglassen eines Schritts Weglassen mehrerer Schritte umfasst.
  15. Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm, wobei die Maschine umfasst: einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle eines fehleranfälligen Programmschritts zu bestimmen durch Bereitstellen einer Menge von fehlschlagenden Sequenzen, die alle in demselben fehleranfälligen Programmschritt enden; Analysieren der fehlschlagenden Sequenzen bezüglich mehrerer den fehlschlagenden Sequenzen gemeinsamer Programmschritte; und Einstufen der mehreren Programmschritte gemäß einer Fehlschlagwahrscheinlichkeit.
  16. Maschine nach Anspruch 15, wobei das Einstufen ein Speichern der mehreren Programmschritte in fallender Reihenfolge im Speicher umfasst.
  17. Maschine nach Anspruch 15 oder 16, wobei den fehlschlagenden Sequenzen gemeinsam allen fehlschlagenden Sequenzen der ersten Menge fehlschlagender Sequenzen gemeinsam umfasst.
  18. Maschine nach Anspruch 15 oder 16, wobei den fehlschlagenden Sequenzen gemeinsam einer Teilmenge der Menge fehlschlagender Sequenzen gemeinsam umfasst.
  19. Maschine nach einem der Ansprüche 15 bis 18, wobei die Programmschritte Gruppen von aufeinanderfolgenden Schritten umfassen.
  20. Maschine zum Untersuchen einer Fehlerquelle in einem Softwareprogramm, wobei die Maschine umfasst: einen mit einem Speicher gekoppelten Mikroprozessor, wobei der Mikroprozessor dafür programmiert ist, die Fehlerquelle eines fehleranfälligen Programmschritts zu bestimmen durch Bereitstellen einer ersten Gruppe von Programmschritten, die einem fehleranfälligen Programmschritt vorausgehen; Bereitstellen einer zweiten Gruppe von Programmschritten, die von dem fehleranfälligen Programmschritt verschieden sind; Ausführen der ersten Gruppe von Programmschritten und eines ausgewählten Programmschritts der zweiten Gruppe für jeden der Programmschritte der zweiten Gruppe von Programmschritten; und Aufzeichnen fehlschlagender Schritte der zweiten Gruppe im Speicher.
DE102014102551.2A 2013-03-01 2014-02-27 Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen Ceased DE102014102551A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/783,004 US9384117B2 (en) 2013-03-01 2013-03-01 Machine and methods for evaluating failing software programs
US13/783,004 2013-03-01

Publications (1)

Publication Number Publication Date
DE102014102551A1 true DE102014102551A1 (de) 2014-09-04

Family

ID=51353148

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014102551.2A Ceased DE102014102551A1 (de) 2013-03-01 2014-02-27 Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen

Country Status (3)

Country Link
US (1) US9384117B2 (de)
CN (1) CN104021072A (de)
DE (1) DE102014102551A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003234B2 (en) * 2013-03-08 2015-04-07 Infineon Technologies Ag Machine and methods for reassign positions of a software program based on a fail/pass performance
US10437880B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US10460296B2 (en) 2016-02-08 2019-10-29 Bank Of America Corporation System for processing data using parameters associated with the data for auto-processing
US10437778B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US9823958B2 (en) * 2016-02-08 2017-11-21 Bank Of America Corporation System for processing data using different processing channels based on source error probability
US10067869B2 (en) 2016-02-12 2018-09-04 Bank Of America Corporation System for distributed data processing with automatic caching at various system levels
US9952942B2 (en) 2016-02-12 2018-04-24 Bank Of America Corporation System for distributed data processing with auto-recovery
US10872007B2 (en) * 2018-05-04 2020-12-22 Vmware, Inc. Methods and systems to compound alerts in a distributed computing system
CN108804315B (zh) * 2018-05-23 2022-03-11 北京五八信息技术有限公司 应用于动态开发的测试方法、装置、电子设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761510A (en) * 1995-11-07 1998-06-02 Microsoft Corporation Method for error identification in a program interface
US6829719B2 (en) * 2001-03-30 2004-12-07 Transmeta Corporation Method and apparatus for handling nested faults
US7089542B2 (en) * 2002-12-13 2006-08-08 International Business Machines Corporation Method and apparatus for finding errors in software programs using satisfiability of constraints
US20040139304A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation High speed virtual instruction execution mechanism
JP2005080523A (ja) * 2003-09-05 2005-03-31 Sony Corp 生体遺伝子に導入するdna、遺伝子導入ベクター、細胞、生体遺伝子への情報導入方法、情報処理装置および方法、記録媒体、並びにプログラム
US7637879B2 (en) * 2003-12-29 2009-12-29 Medical Compression Systems, (Dbn) Ltd. Method and apparatus for assisting vascular flow through external compression synchronized with venous phasic flow
US7200773B2 (en) * 2004-01-15 2007-04-03 International Business Machines Corporation Reproducing errors via inhibit switches
EP1768007A1 (de) * 2005-09-22 2007-03-28 Abb Research Ltd. Überwachung eines Systems mit Komponenten deren Zustand im Lauf der Zeit verschlechtert wird.
US8335946B2 (en) * 2005-11-21 2012-12-18 GM Global Technology Operations LLC Method for centralization of process sequence checking
US8296739B2 (en) * 2008-03-31 2012-10-23 International Business Machines Corporation Testing soft error rate of an application program
US8448015B2 (en) * 2008-06-17 2013-05-21 My Computer Works, Inc. Remote computer diagnostic system and method
US8091050B2 (en) * 2008-10-01 2012-01-03 International Business Machines Corporation Modeling system-level effects of soft errors
EP2381366A1 (de) * 2010-04-20 2011-10-26 Siemens Aktiengesellschaft Verfahren zur Einschätzung von Prüfanstrengungen zur Softwareeinheitsprüfung
CN102184138B (zh) * 2011-05-19 2013-09-18 广东威创视讯科技股份有限公司 一种软件错误自动重现和定位的方法及***
US8949101B2 (en) * 2011-10-12 2015-02-03 International Business Machines Corporation Hardware execution driven application level derating calculation for soft error rate analysis
CN102541737B (zh) 2011-11-30 2014-07-23 北京航空航天大学 一种嵌入式软件可靠性测试缺陷注入与控制方法
CN102750220B (zh) 2011-12-31 2015-06-17 中国信息安全测评中心 一种软件源代码安全缺陷分析的方法和装置
CN103294577A (zh) * 2012-03-01 2013-09-11 英华达(上海)科技有限公司 调整诊断程序中测试项目顺序的检测***及其方法

Also Published As

Publication number Publication date
CN104021072A (zh) 2014-09-03
US9384117B2 (en) 2016-07-05
US20140250336A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
DE102014102551A1 (de) Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen
DE69831732T2 (de) Verfahren und gerät zum korrigieren von fehlern in einem rechnersystem
DE102018128158A1 (de) Vorrichtung zur inspektion des erscheinungsbilds
DE2515297A1 (de) Pruefsystem fuer logische netzwerke mit simulatororientiertem fehlerpruefgenerator
DE102006056432A1 (de) Verfahren zum Testen eines Computerprogramms
DE112016006297T5 (de) Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm
DE102011014830A1 (de) Verfahren und vorrichtung zum analysieren vonsoftware
DE102009058652A1 (de) Verfahren zur Beeinflussung eines Steuergerätes und Manipulationseinheit
DE102012224276B4 (de) Verzögerte Ausführung auf mehreren Prozessoren
DE60305073T2 (de) Bidirektionale sondierung von software
DE112006001222T5 (de) Halbleitertestprogramm-Diagnosevorrichtung
DE102011014831A1 (de) Verfahren und vorrichtung zum analysieren vonsoftware mit einem kalibrierten wert
DE112011100168B4 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE112018002316T5 (de) Codeabdeckungsverfolgung für ein mikrocontroller-programm
DE102013015936A1 (de) Architektur zur ablaufprotokollbasierten Messung
DE102013114558B4 (de) Ausschneiden-bei-der Diagnose (CID) - Ein Verfahren zur Verbesserung des Durchsatzes des Vorgangs für Anhebung der Ausbeute
DE102013000857A1 (de) Kompakte Funktionsablaufprotokollierung
DE112021003677T5 (de) Automatisierte unterstützte schaltkreisvalidierung
DE102019210562A1 (de) Verfahren und Vorrichtung zum Prüfen von Software
DE102016105844A1 (de) Verfahren zum Testen eines Steuerprogramms eines Steuergeräts in einer Simulationsumgebung auf einem Rechner
DE102006040794A1 (de) Softwareprogramm mit alternativen Funktionsbibliotheken
EP3104278A1 (de) Verfahren zur realistischen abschätzung von funktionslaufzeiten in pil simulation
EP3770766A1 (de) Verfahren zum testen eines systems
EP2924522B1 (de) Verfahren zur Beeinflussung eines Steuerprogramms
EP3340250B1 (de) Bauteilidentifikation bei der fehlerbehandlung von medizinischen geräten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final