DE102004014290A1 - Verfahren zur Erstellung von Abläufen zum Testen einer Software - Google Patents

Verfahren zur Erstellung von Abläufen zum Testen einer Software Download PDF

Info

Publication number
DE102004014290A1
DE102004014290A1 DE102004014290A DE102004014290A DE102004014290A1 DE 102004014290 A1 DE102004014290 A1 DE 102004014290A1 DE 102004014290 A DE102004014290 A DE 102004014290A DE 102004014290 A DE102004014290 A DE 102004014290A DE 102004014290 A1 DE102004014290 A1 DE 102004014290A1
Authority
DE
Germany
Prior art keywords
algorithm
test
block
values
value
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
DE102004014290A
Other languages
English (en)
Inventor
Thomas Dr. Hermes
Axel Schultze
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.)
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Original Assignee
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
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 IAV GmbH Ingenieurgesellschaft Auto und Verkehr filed Critical IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Priority to DE102004014290A priority Critical patent/DE102004014290A1/de
Priority to US11/086,549 priority patent/US20050223295A1/en
Publication of DE102004014290A1 publication Critical patent/DE102004014290A1/de
Ceased legal-status Critical Current

Links

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

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)

Abstract

Die Erfindung betrifft ein Verfahren zur Erstellung von Abläufen zum Testen einer Software, die auf Datenflussmodellen basiert. DOLLAR A Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Erstellung von Abläufen zum Testen einer Software zu schaffen, mit dem der Aufwand zur manuellen Erstellung von durchzuführenden Testplänen und die Rechenzeit zur Überprüfung des Programms, bei einer verminderten Fehlerquote, reduziert werden. DOLLAR A Erfindungsgemäß werden zum Testen einer Software jedem Modellblock testrelevante Algorithmen in Form eines Testfallalgorithmus, eine Durchleitungsalgorithmus, eines Rückverfolgungsalgorithmus und eines Vorwärtsverfolgungsalgorithmus implementiert. Bei jedem Testfall wird durch den Testfallalgorithmus einem Modellblock ein Wertebereich für jedes Eingangssignal zugeordnet, wobei der eingegebene Wertebereich mittels des Vorwärtsverfolgungsalgorithmus und des Rückverfolgungsalgorithmus im zu testenden System durch die einzelnen Blöcke bis zu den Ein- und Ausgängen des zu testenden Systems verfolgt und die Ergebnisse überprüft und gespeichert werden.

Description

  • Die Erfindung betrifft ein Verfahren zur Erstellung von Abläufen zum Testen einer Software mit den im Oberbegriff des Patentanspruches 1 genannten Merkmalen.
  • Vielfach – insbesondere in der Automobilbranche – wird Software heute aus Datenflussmodellen oder aus der Kombination von Datenflussmodellen und Zustandsdiagrammen entwickelt, d. h. aus einer graphischen Darstellung, die in Tools wie z. B. "Simulink" und/oder "Stateflow", „ASCET" oder „Matrix X" erzeugt wird. Sie ähneln Schaltplänen in der Elektrotechnik und bestehen aus einzelnen "Blöcken", deren Ein- und Ausgänge durch Leitungen ("Signale") verbunden sind. Anhand der in diesen Modellen definierten Funktionen kann dann der eigentliche Code, meist in der Programmiersprache C, erzeugt werden, entweder manuell durch den Programmierer oder auch automatisch durch einen sogenannten Codegenerator. Im weiteren Verlauf des Software-Entwicklungsprozesses muss diese Software dann auf dem Zielsystem (z. B. einem Steuergerät) getestet werden. Diese Tests laufen vielfach automatisiert auf HIL-Testplätzen (Hardware-In-the-Loop) ab.
  • Die Erstellung von Testplänen ist ein essentieller Bestandteil einer professionellen Softwareentwicklung. Nachteilig ist dabei, dass der genaue Ablauf der Tests meist noch von einem Tester manuell vorgegeben werden muss, üblicherweise indem die HIL-Testplätze über einfache Programme ("Skripte") gesteuert werden. Solche Skripte bestehen aus einzelnen Testfällen, d. h. Ein- und (Soll-)Ausgangswerten oder Abfolgen solcher Werte. Der eigentliche Test besteht dann darin, die vorgegebenen Eingangswerte (bzw. Folgen solcher Werte) zu realisieren, indem sie über geeignete Schnittstellen im Zielsystem vorgegeben werden. Die Ausgangswerte des Zielsystems (bzw. Folgen von Ausgangswerten) werden dann ebenfalls über entsprechende Schnittstellen ausgelesen und mit den vordefinierten Soll-Ausgangswerten verglichen. Stimmen die realen und Soll-Ausgangswerte innerhalb definierter Grenzen überein, ist der Testfall bestanden. Trifft dies für alle Testfälle zu und ist die Anzahl der Testfälle ausreichend, entspricht die Software den Vorgaben des Modells. Der Aufwand für die manuelle Erstellung der Testpläne und für deren Abarbeitung kann bis zu 50% der Kosten und des Zeitaufwandes betragen, die für die Entwicklung der Software notwendig sind. Außerdem besteht bei manueller Erstellung der Testpläne aus mehreren Gründen ein relativ hohes Fehlerrisiko. Zum einen werden oft keine klar definierten Standards für die Erstellung der Tests verwendet, so dass der Inhalt der Testpläne stark von den persönlichen Erfahrungen und dem Wissen des Erstellers abhängt; zum anderen können auch Flüchtigkeitsfehler nicht ausgeschlossen werden.
  • Darüberhinaus steigt die Softwarequalität erfahrungsgemäß mit der Anzahl der ausgeführten sinnvollen, nicht-redundanten Testfälle. In der Praxis findet die Anwendung dieses Grundsatzes ihre Grenzen jedoch recht schnell im dafür notwendigen Aufwand. Daher ist durch eine automatisierte Testfallerzeugung aufgrund des dadurch verminderten Aufwands für die Testplanerstellung auch eine Verbesserung der Softwarequalität zu erreichen.
  • Aus der DE 100 55 679 A1 ist ein Verfahren zur modellbasierten Generierung von Testszenerien vorbekannt, bei dem aus wenigstens einem Teil eines in Programmform vorliegenden Simulationsmodells automatisch ein Klassifikationsbaum erzeugt wird, wobei testrelevante Informationen aus dem Simulationsmodell mit einem Modell-Extrator automatisch extrahiert, als Baumkomponenten repräsentiert und zu einem Klassifikationsbaum zusammengesetzt werden. Beim modellbasierten Testen werden die Testszenerien automatisch aus einer ausführbaren Spezifikation, beispielsweise in Form eines Matlab/Simulink-Modells, abgeleitet. Mit Hilfe dieser Testszenarien kann dann sowohl das Modell im Modelltest selbst, als auch daraus entwickelte Software im Softwaretest getestet werden.
  • Durch dieses Verfahren wird der Aufwand zur Erstellung der Testfälle durch eine teilweise Automatisierung vereinfacht. Nachteilig ist jedoch die Speicherung von testrelevanten Daten in Baumstrukturen, was hohe Anforderungen an den zur Verfügung stehenden Speicherplatz des verwendeten Computersystems bedingt.
  • Aus der DE 102 18 212 A1 ist ein Verfahren zum automatisierten Testen von Software mittels eines Datenverarbeitungsgerätes und einer ausführbaren Testfallgenerator-Software vorbekannt. Dabei wird mit einem grafischen Editor das dynamische und das semantische Verhalten der Benutzeroberfläche der Software spezifiziert. Von der Testfallgenerator-Software werden anhand des spezifizierten Verhaltens der Benutzeroberfläche Testfälle generiert, welche unmittelbar anschließend oder in einem abgesetzten Schritt von einer Software zur automatischen Testführung ausgeführt werden.
  • Das in der DE 102 18 212 A1 dargelegte Verfahren beschränkt sich auf die Erzeugung von Testdaten für graphische Bedienelemente, deren Verhalten in Form von Zustandsdiagrammen beschrieben ist. Die Erzeugung von Testfällen für andere Arten von Systemen oder für Systeme, die durch Datenflussmodelle beschrieben sind, wird dagegen nicht beschrieben.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Erstellung von Abläufen zum Testen einer Software zu schaffen, mit dem der Aufwand zur Erstellung durchzuführender Testpläne und die Rechenzeit zur Überprüfung des Programms, bei einer verminderten Fehlerquote, reduziert werden.
  • Erfindungsgemäß wird die Aufgabe durch die Merkmale des Patentanspruches 1 gelöst.
  • Dadurch, dass zu jedem Modellblock testrelevante Algorithmen in Form eines Testfallalgorithmus, eines Durchleitungsalgorithmus, eines Rückverfolgungsalgorithmus und eines Vorwärtsverfolgungsalgorithmus implementiert werden, wird bei einem Testfall der Software die für einen Modellblock vorgegebene Teilmenge eines möglichen Wertebereiches der betreffenden Eingangssignale durch die weiteren Modellblöcke bis zu deren Ein- und Ausgängen verfolgt und überprüft, ob eine sinnvolle Verknüpfung der einzelnen Blöcke vorhanden ist.
  • Durch die Vor- und Rückverfolgung des eingegebenen Wertebereichs in den vor- und nachgeschalteten Modellblöcken werden gleichzeitig mögliche Werte bis zu Systemein- und -ausgängen des zu testenden Systems weiterverfolgt. Indem Wertebereiche und nicht einzelne Werte verfolgt werden, steigt die Wahrscheinlichkeit, dass die Rückverfolgung erfolgreich ist, d. h. für jeden durchlaufenen Block Eingangs-Wertebereiche gefunden werden, so dass beliebige Eingangswerte aus diesen Bereichen jeweils einen Ausgangswert aus dem vorgegebenen Ausgangswertebereich ergeben. Darüberhinaus kann bei der Rückverfolgung ein Backtracking (d. h. eine teilweise Wiederholung der Rückverfolgung) aufgrund unterschiedlicher Anforderungen an dasselbe Signal in vielen Fällen vermieden werden. Dadurch wird gegenüber dem im Stand der Technik beschriebenen Verfahren die Rechenzeit verkürzt. Außerdem wird durch die teilweise automatische Generierung der Testpläne die Fehlerquote beim Testen der Software verringert, indem durch die Verwendung vorgegebener Algorithmen zur Erzeugung der Testfälle die Einhaltung von Standards erzwungen wird, die durch diese Algorithmen festgelegt sind. Ein weiterer Vorteil der erfindungsgemäßen Lösung besteht darin, dass durch die Implementierung der testrelevanten Algorithmen für jeden Modellblock der manuelle Aufwand zur Erstellung von Testplänen reduziert wird.
  • Weitere vorteilhafte Ausgestaltungen sind in den Unteransprüchen beschrieben, sie werden in der Beschreibung zusammen mit ihren Wirkungen erläutert.
  • Anhand von Zeichnungen wird die Erfindung nachfolgend an Ausführungsbeispielen näher beschrieben. Die dazugehörigen Zeichnungen zeigen:
  • 1: eine schematische Darstellung eines Beispielmodells zum Testen einer Software und
  • 2: eine schematische Darstellung eines Beispielmodells zum Testen einer Software mit einem Hystereseprozess.
  • Das Testen einer aus Datenflussmodellen erstellten Software erfolgt mittels eines Datenverarbeitungsgeräts und einer ausführbaren Testfallgenerator-Software. Durch die Testfallgenerator-Software wird für die zu überprüfende Software ein Testplan erzeugt, der aus einzelnen Testfällen besteht. Die automatische modellbasierte Testfallgenerierung geht davon aus, dass das Verhalten eines jeden Modellblocks vollständig bekannt ist. Darauf aufbauend kann bei bekannten Eingangswerten der Ausgangswert eines Blocks berechnet werden. Bei zustandsabhängigen Blocktypen ist je nach Blocktyp zusätzlich noch eine teilweise oder vollständige Kenntnis des bisherigen Verlaufs der Eingangswerte notwendig, um die Ausgangswerte zu berechnen. Diese betrifft zum Beispiel Verzögerungsglieder, Integratoren oder dergleichen.
  • Erfindungsgemäß werden zum Testen einer Software jedem Modellblock testrelevante Algorithmen in Form eines Testfallalgorithmus, eines Durchleitungsalgorithmus, eines Rückverfolgungsalgorithmus und eines Vorwärtsverfolgungsalgorithmus implementiert. Bei jedem Testfall wird durch den Testfallalgorithmus einem Modellblock ein möglicher Wertebereich für jedes Eingangssignal zugeordnet, wobei der eingegebene Wertebereich mittels des Vorwärtsverfolgungsalgorithmus und des Rückverfolgungsalgorithmus im zu testenden System durch die einzelnen Blöcke bis zu den Ein- und Ausgängen des zu testenden Systems verfolgt und deren Ergebnisse überprüft und gespeichert werden. In der 1 ist schematisch ein Testmodell zum Testen eines Beispielmodells einer Software dargestellt.
  • Der Durchleitungsalgorithmus dient dazu, einen bestimmten Eingangswert ohne wesentliche Einschränkung von Wertebereich und Genauigkeit zu einem Ausgang des Blocks durchzuleiten. D. h. der Wert Bart zwar im betrachteten Block verändert werden, es muss aber eine eineindeutige Zuordnung zwischen dem betrachteten Ein- und Ausgangswert bestehen. Der Durchleitungsalgorithmus prüft, ob dies überhaupt möglich ist und legt ggf. die anderen Eingänge des betrachteten Blocks in geeigneter Weise fest.
  • Der Rückverfolgungsalgorithmus dient dazu, Wertebereichseinschränkungen für die Ausgänge eines Blocks in Einschränkungen für dessen Eingänge umzusetzen. Der Algorithmus ordnet jedem Eingang einen bestimmten Wertebereich zu. Wird jedem Eingang jeweils ein Wert aus diesen Bereichen zugeordnet, ist sichergestellt, dass der Ausgangswert innerhalb des vorgegebenen Ausgangswertebereichs liegt. Da bei festem Ausgangswertebereich im allgemeinen mehrere Möglichkeiten zur Realisierung dieser Eingangswertebereiche bestehen, kann dieser Algorithmus auch mehrere Ergebnisse liefern, für die nacheinander versucht wird, die Wertebereiche über die an den Eingängen angeschlossenen Ausgänge anderer Blöcke weiterzuverfolgen.
  • Der Vorwärtsverfolgungsalgorithmus berechnet für die gegebenen Eingangswertebereiche eines Blocks für jeden Ausgang des Blocks einen Wertebereich. Dies geschieht derart, dass der Ausgangswert auf jeden Fall innerhalb des Ausgangswertebereichs liegt, wenn die Eingangswerte innerhalb der gegebenen Eingangswertebereiche liegen. Beinhalten die Eingangswertebereiche jeweils nur einen konkreten Wert, berechnet dieser Algorithmus als Spezialfall den Ausgangswertebereich mit ebenfalls nur einem konkreten Wert.
  • Das in der 1 dargestellte Beispielsmodell erfüllt folgende Funktionen:
    Ist das Eingangssignal „In1" des zu testenden Blocks „RelOp1" gleich einem Wert von 4.7, wird dem Ausgangssignal „Out1" der Wert 1 zugeordnet und dem Signal „Out2" der Wert des Signals „In1". Ist „In1" dagegen ungleich dem Wert 4.7, wird dem Signal „Out1" der Wert 0 zugeordnet und dem Signal „Out2" die Summe aus den Werten von „In2" und dem „Offset10". Dabei sind alle hier verwendeten Schalter „Switch" auf einen Schwellenwert von 0.5 eingestellt, d. h. wenn der mittlere Eingang den Wert 1 hat und somit wahr ist, hat der Schalter die dargestellte obere Stellung, beim Wert 0, der falsch entspricht, hat der Schalter die jeweils andere Stellung. Das heißt, bei einem falschen Wert würde sich „Switch" in der unteren Stellung befinden.
  • Zweck des Testfallgenerators ist es nun, Testfälle zu finden, mit denen die Übereinstimmung der im Modell dargestellten Funktion mit einer gegebenen Software im Zielsystem (z. B. Steuergerät), die dieselbe Funktion erfüllen soll, überprüft werden kann. Dazu ist es notwendig, die durch jeden Block im Modell dargestellte Funktionalität im Zielsystem möglichst eindeutig wiederzufinden.
  • Für jeden Block des Modells werden daher folgende Schritte durchlaufen:
    • – Die Systemausgänge müssen von den Ausgängen des zu testenden Blocks mit genügender Genauigkeit abhängig sein. Für den Test des Summenblocks (3) würde dies z. B. bedeuten, dass „In1" einen Wert ungleich 4.7 haben muss, damit zumindest ein Systemausgang vom Ausgang des Summenblocks abhängig wird. Der Wert von „In2" ist dagegen in diesem Schritt noch gleichgültig. Diese Einschränkungen für die Systemeingänge werden berechnet, indem der betrachtete Ausgang bis zu den Systemausgängen weiterverfolgt wird. Bei jedem dabei passierten Block wird durch einen für diesen Block spezifischen Durchleitungsalgorithmus berechnet, ob und wie der Wert möglichst ohne Verluste der Auflösung und des Wertebereichs an den Ausgang des passierten Blocks weitergeleitet werden kann. Beim Schalter geschieht dies im dargestellten Beispiel durch Anlegen einer „0" an den Steuereingang. Findet sich keine geeignete Möglichkeit, wäre die Testfallgenerierung für den Summenblock nicht sinnvoll, da sich der Ausgang des Blocks nicht mit genügender Genauigkeit überprüfen ließe. Für jeden der durchlaufenen Blöcke werden bei diesem Verfahren Einschränkungen für die möglichen Wertebereiche der Blockeingänge erzeugt. Durch den Rückverfolgungsalgorithmus werden diese Einschränkungen bis zu den Systemeingängen zurückverfolgt.
    • – Für jeden Blocktyp wird durch einen Testfallalgorithmus eine Anzahl von Testfällen vorgegeben. Dies bedeutet, dass für jeden Testfall jedem Eingangssignal des betreffenden Blocks ein Wertebereich zugeordnet wird, aus dem konkrete Werte für den betreffenden Testfall gewählt werden können. Danach werden die gewählten Wertebereiche für die Eingangssignale des Blocks mit Hilfe des „Rückverfolgungsalgorithmus" zu den Systemeingängen des zu testenden Systems zurückverfolgt. Dabei werden eventuelle Beschränkungen der Wertebereiche von Signalen berücksichtigt; die im vorherigen Schritt aufgrund des Durchleitungsalgorithmus gesetzt wurden. Bei beiden Schritten kann sich ergeben, dass ein Testfall nicht realisierbar ist. Beim vorherigen Schritt (Durchleitungsalgorithmus) könnte sich herausstellen, dass sich Tests für einen Block generell nicht realisieren lassen, da die Blockausgänge nicht mit genügender Genauigkeit zu beobachten sind und so später beim Test die Übereinstimmung der Soll- mit den Ist-Werten nicht beurteilt werden kann; bei der Rückverfolgung kann sich für einzelne Testfälle herausstellen, dass diese nicht zu den Eingängen des Systems zurückverfolgt werden können. Dies kann sowohl an logischer Unmöglichkeit bestimmter Fälle aufgrund der Signalverknüpfungen im Modell als auch an der Unzulänglichkeit des Rückverfolgungsalgorithmus liegen. Der Rückverfolgungsalgorithmus kann im allgemeinen nicht alle möglichen Fälle zur Rückverfolgung von Wertebereichen ausprobieren, da die Rechenzeit in der Praxis begrenzt ist.
    • – Ergebnis der Rückverfolgung von Testfällen zu den Systemeingängen ist jeweils ein Wertebereich pro Eingangssignal für alle Eingangssignale, von denen der jeweils getestete Block abhängt. Um konkrete Tests durchführen zu können, wird aus diesen Wertebereichen jeweils ein konkreter Wert gewählt. Bei weiteren Eingangssignalen, von denen der zu testende Block nicht abhängt, können beliebige Werte gewählt werden. Über den Vorwärtsverfolgungsalgorithmus können aus den gewählten Systemeingangswerten dann die tatsächlichen Eingangswerte des zu testenden Blocks berechnet werden, daraus die Soll-Ausgangswerte des Blocks und schließlich auch die Soll-Ausgangswerte des Systems.
  • Passiert man im Verlauf der Rückverfolgung eine Verzweigung – im Beispiel zwischen „In1" und „RelOp1" bzw. „Switch" – müssen Wertebereiche von zwei Eingängen gleichzeitig berücksichtigt werden. Dies geschieht, indem die Schnittmenge beider Wertebereiche gebildet wird. Gelangt man bei der Rückverfolgung zu einem Systemeingang – im Beispiel „In1" oder „In2" – wird der dorthin zurückverfolgte Wertebereich gespeichert. Ist dies für alle Systemeingänge geschehen, die den ursprünglich betrachteten Block beeinflussen, ist die Rückverfolgung beendet.
  • Ergibt sich während der Rückverfolgung irgendwann als Wertebereich eine leere Menge, ist die Rückverfolgung erfolglos beendet; dann muss evtl. in einem der bisher durchlaufenen Blöcke eine andere Realisierungsmöglichkeit für die Eingangswertebereiche ausprobiert werden. Sind für alle durchlaufenen Blöcke alle Realisierungsmöglichkeiten ausgeschöpft und wurde trotzdem keine Lösung gefunden, lässt sich der betreffende Ursprungswert nicht zu den Systemeingängen zurückverfolgen.
  • Die bisherigen Betrachtungen wurden für zustandsunabhängige Blöcke durchgeführt. Zustandsabhängige Blöcke sind solche Blöcke, bei denen die Ausgangswerte auch von den Eingangswerten vorangegangener Berechnungszyklen abhängen. Beispiele für zustandsabhängige Blöcke sind Verzögerungsglieder („1/z"), Integratoren, Differenzierglieder, Übertragungsfunktionen, Hysterese-Blöcke, Regler, Filter und Blöcke, die Zustandsmaschinen enthalten (z. B. Stateflow-Diagramme).
  • Im Unterschied zu zustandsunabhängigen Blöcken kommt es bei zustandsabhängigen Blöcken nicht auf einzelne Werte der Eingangssignale an, sondern auf den Verlauf dieser Eingangssignale in der Vergangenheit. Für die Testfallgenerierung werden den einzelnen Signalen daher anstelle von einzelnen Wertebereichen Folgen solcher Wertebereiche („Sequenzen") zugeordnet.
  • Jedem Wertebereich wird innerhalb einer Sequenz auch noch ein Zeitbereich zugeordnet, der angibt, für wie viele Berechnungszyklen der jeweilige Wertebereich gültig ist. Über die Zykluszeit (z. B. 10 ms, 20 ms, 100 ms etc.) kann daraus die entspre chende Zeit in Sekunden berechnet werden. Zeitbereiche können nur positive ganze Zahlen enthalten.
  • In der 2 ist ein zustandsabhängiges System am Beispiel einer Hysterese-Funktion dargestellt. Ist dabei der Wert des Eingangs „X" größer als der Wert der Konstanten „X2", erhält der Ausgang „Y" den Wert der Konstanten „Y2". Ansonsten erhält „Y" den Wert von „Y1", falls „X" kleiner als „X1" ist. Liegt „X" zwischen „X1" und „X2", bleibt „Y" unverändert auf demselben Wert wie beim vorherigen Berechnungszyklus. Entscheidend ist hier die Verwendung des „1/z"-Blocks, dessen Ausgang jeweils den Wert von „Y" in der letzten Zeitscheibe ergibt und das ganze System zustandsabhängig macht.
  • Die eigentliche Testfallerzeugung für zustandsabhängige Blöcke läuft dann analog der Testfallerzeugung für zustandsunabhängige Blöcke ab, wobei jeweils Wertebereiche durch Sequenzen zu ersetzen sind. Bei den drei Teilalgorithmen ergeben sich dadurch einige zusätzliche Punkte, die zu beachten sind:
    • – Im Vergleich zu zustandsunabhängigen Blöcken kommt es bei zustandsabhängigen Blöcken zusätzlich darauf an, mittels des Durchleitungsalgorithmus den zeitlichen Verlauf des zu verfolgenden Signals auf dem Ausgang möglichst unverändert an den Ausgang des Blocks weiterzugeben. Eine konstante zeitliche Verschiebung des Eingangssignals wäre dabei kein Problem. Beim im dargestellten Beispiel verwendeten „1/z"-Block ist genau dies der Fall, er bewirkt lediglich eine konstante Verzögerung um eine Zeitscheibe. Dadurch würden alle Werte von „Y" hier unverändert – wenn auch verzögert – weitergeleitet.
    • – Beim Rückverfolgungsalgorithmus muss zusätzlich zu den Wertebereichen des Ausgangssignals, die auf Wertebereichseinschränkungen der Eingangssignale zurückzuführen sind, außerdem ein zeitlicher Verlauf dieser Eingangswertebereiche berücksichtigt werden. Auch hierbei kann es Variationsmöglichkeiten für die Eingangssequenzen geben, die zu denselben Ausgangssequenzen führen, so dass auch hier mehrere Möglichkeiten bzw. deren weitere Rückverfolgung ausprobiert werden müssen.
    • – Auch bei der Vorwärtsverfolgung von Sequenzen durch einen Block muss durch den Vorwärtsverfolgungsalgorithmus sichergestellt sein, dass sich für jede in den Eingangssequenzen enthaltene Folge von Werten an den Ausgängen eine Folge von Werten ergibt, die in der errechneten Ausgangssequenz enthalten ist.
  • Zur Reduzierung der Gesamtzahl der Testfälle können die ermittelten Testfälle mit Hilfe eines Optimierungsalgorithmus zusammengefasst werden, wodurch ebenfalls die Rechenzeit zur Überprüfung des Programms verringert wird.

Claims (10)

  1. Verfahren zur Erstellung von Abläufen zum Testen einer Software, die aus Datenflussmodellen erstellt wurde und die mittels eines Datenverarbeitungsgeräts und einer ausführbaren Testfallgenerator-Software automatischen Testbedingungen unterzogen wird, wobei durch die Testfallgenerator-Software für die zu überprüfende Software ein Testplan, bestehend aus einzelnen Testfällen erzeugt wird, dadurch gekennzeichnet, dass – für jeden Modellblock testrelevante Algorithmen in Form eines Testfallalgorithmus und eines Rückverfolgungsalgorithmus implementiert werden, – bei jedem Testfall einem Modellblock durch den Testfallalgorithmus ein Wertebereich für jedes seiner Eingangssignale zugeordnet wird, – jeder solcher Wertebereich mittels des Rückverfolgungsalgorithmus im zu testenden System durch die einzelnen Blöcke bis zu den Eingängen des zu testenden Systems verfolgt und die Ergebnisse überprüft und gespeichert werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass durch den Rückverfolgungsalgorithmus aus vorgegebenen Wertebereichen für die Ausgänge eines Blocks mögliche Wertebereiche für dessen Eingänge ermittelt werden, so dass sich für jede mögliche Kombination von Werten aus den errechneten Eingangswertebereichen Ausgangswerte ergeben, die innerhalb der vorgegebenen Wertebereiche liegen.
  3. Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet, dass bei einer Verzweigung eines Signals bei Anwendung des Rückverfolgungsalgorithmus gleichzeitig die jeweiligen Wertebereichseinschränkungen aller an die Verzweigung angeschlossenen Blockeingänge durch Bildung einer Schnittmenge berücksichtigt werden, die dann als Ausgangswertebereich des an der Verzweigung angeschlossenen Blockausgangs vorgegeben wird.
  4. Verfahren nach Anspruch 1 bis 3, dadurch gekennzeichnet, dass aus den berechneten Wertebereichen für die Systemeingänge jeweils ein konkreter Wert gewählt wird, so dass die Gesamtheit dieser konkreten Werte einen Eingangsvektor für den jeweiligen Testfall bildet.
  5. Verfahren nach Anspruch 1 bis 4, dadurch gekennzeichnet, dass – für jeden Modellblock darüberhinaus ein testrelevanter Algorithmus in Form eines Vorwärtsverfolgungsalgorithmus implementiert wird, – jeder durch den Testfallalgorithmus erzeugte Wertebereich mittels des Vorwärtsverfolgungsalgorithmus im zu testenden System durch die einzelnen Blöcke bis zu den Ausgängen des zu testenden Systems verfolgt und die Ergebnisse gespeichert werden.
  6. Verfahren nach Anspruch 1 bis 5, dadurch gekennzeichnet, dass – für jeden Modellblock darüberhinaus ein testrelevanter Algorithmus in Form eines Durchleitungsalgorithmus implementiert wird, – mittels des Durchleitungsalgorithmus Eingangswerte für die direkt oder indirekt an den Ausgang eines zu testenden Blocks angeschlossenen Blöcke ermittelt werden, so dass dessen Ausgangswert in eindeutiger Weise von einem bestimmten Eingangswert des Blocks abhängt und die Ergebnisse gespeichert werden.
  7. Verfahren nach einem oder mehreren der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei zustandsabhängigen Blöcken der Wertebereich der Signale durch eine zeitliche Abfolge solcher Wertebereiche ersetzt wird, wobei jedem Wertebereich ein entsprechender Zeitbereich zugeordnet wird.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass bei zustandsabhängigen Blöcken der zeitliche Verlauf der jeweiligen Wertebereiche durch den Testfallalgorithmus, den Durchleitungsalgorithmus, den Rückverfolgungsalgorithmus und durch den Vorwärtsverfolgungsalgorithmus berücksichtigt wird.
  9. Verfahren nach Anspruch 1 bis 8, dadurch gekennzeichnet, dass die Funktionen der Software in einem Zielsystem mit Hilfe der ermittelten Testfälle gegen die im Modell durch einzelne Blöcke, einzelne Teilsysteme oder das Gesamtsystem der Software dargestellte Funktionsweise getestet werden.
  10. Verfahren nach Anspruch 1 bis 9, dadurch gekennzeichnet, dass zur Reduzierung der Gesamtzahl der Testfälle die ermittelten Testfälle mittels eines Optimierungsalgorithmus zusammengefasst werden.
DE102004014290A 2004-03-24 2004-03-24 Verfahren zur Erstellung von Abläufen zum Testen einer Software Ceased DE102004014290A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102004014290A DE102004014290A1 (de) 2004-03-24 2004-03-24 Verfahren zur Erstellung von Abläufen zum Testen einer Software
US11/086,549 US20050223295A1 (en) 2004-03-24 2005-03-22 Method for the creation of sequences for testing software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004014290A DE102004014290A1 (de) 2004-03-24 2004-03-24 Verfahren zur Erstellung von Abläufen zum Testen einer Software

Publications (1)

Publication Number Publication Date
DE102004014290A1 true DE102004014290A1 (de) 2005-10-06

Family

ID=34980723

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004014290A Ceased DE102004014290A1 (de) 2004-03-24 2004-03-24 Verfahren zur Erstellung von Abläufen zum Testen einer Software

Country Status (2)

Country Link
US (1) US20050223295A1 (de)
DE (1) DE102004014290A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004052197A1 (de) * 2004-10-27 2006-05-04 Giesecke & Devrient Gmbh Verfahren zum Testen der Funktion einer datenverarbeitenden Schaltung
DE102010014720A1 (de) 2010-04-12 2011-12-15 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
DE102017200161A1 (de) * 2017-01-09 2018-07-12 Robert Bosch Gmbh Verfahren zum Erfassen von Signalen

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061777A1 (en) * 2005-09-09 2007-03-15 Source Technologies, Llc System, method, and computer program product for graphically generating a program for controlling the operation of a kiosk
US7895565B1 (en) * 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US7644334B2 (en) * 2006-11-27 2010-01-05 Honeywell International, Inc. Requirements-based test generation
US8423879B2 (en) * 2008-05-14 2013-04-16 Honeywell International Inc. Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
US20100192128A1 (en) * 2009-01-27 2010-07-29 Honeywell International Inc. System and methods of using test points and signal overrides in requirements-based test generation
US9098619B2 (en) 2010-04-19 2015-08-04 Honeywell International Inc. Method for automated error detection and verification of software
US8631384B2 (en) * 2010-05-26 2014-01-14 International Business Machines Corporation Creating a test progression plan
US8984488B2 (en) 2011-01-14 2015-03-17 Honeywell International Inc. Type and range propagation through data-flow models
US8984343B2 (en) 2011-02-14 2015-03-17 Honeywell International Inc. Error propagation in a system model
EP2530584A1 (de) * 2011-06-03 2012-12-05 dSPACE digital signal processing and control engineering GmbH Konfigurationseinrichtung zur graphischen Erstellung einer Testsequenz
US9665454B2 (en) * 2014-05-14 2017-05-30 International Business Machines Corporation Extracting test model from textual test suite
US9804947B2 (en) * 2015-11-20 2017-10-31 Sap Se Method and system for time-based data generation
US10102112B2 (en) * 2015-12-07 2018-10-16 Wipro Limited Method and system for generating test strategy for a software application
US10067861B2 (en) * 2016-02-19 2018-09-04 International Business Machines Corporation Efficient software testing
US9898392B2 (en) * 2016-02-29 2018-02-20 Red Hat, Inc. Automated test planning using test case relevancy

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542043A (en) * 1994-10-11 1996-07-30 Bell Communications Research, Inc. Method and system for automatically generating efficient test cases for systems having interacting elements
US5754760A (en) * 1996-05-30 1998-05-19 Integrity Qa Software, Inc. Automatic software testing tool
US5999739A (en) * 1997-05-29 1999-12-07 Hewlett-Packard Company Method and apparatus for elimination of redundant branch instructions from a program
US6804634B1 (en) * 2000-02-17 2004-10-12 Lucent Technologies Inc. Automatic generation and regeneration of a covering test case set from a model
AT411802B (de) * 2001-06-01 2004-05-25 Siemens Ag Oesterreich Verfahren zum testen von software
DE60308505T2 (de) * 2002-05-11 2007-01-18 Accenture Global Services Gmbh Verfahren und system zur automatischen prüfung von software
US7024589B2 (en) * 2002-06-14 2006-04-04 International Business Machines Corporation Reducing the complexity of finite state machine test generation using combinatorial designs
US7237231B2 (en) * 2003-03-10 2007-06-26 Microsoft Corporation Automatic identification of input values that expose output failures in a software object
US7278135B2 (en) * 2003-06-11 2007-10-02 Microsoft Corporation Method and system for generating an efficient test suite from a domain description with given constraints
US7293257B2 (en) * 2003-10-14 2007-11-06 Microsoft Corporation Method and system for efficient testing of sequences of computer-related operations
US20070214391A1 (en) * 2006-03-10 2007-09-13 International Business Machines Corporation Method and apparatus for testing software

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004052197A1 (de) * 2004-10-27 2006-05-04 Giesecke & Devrient Gmbh Verfahren zum Testen der Funktion einer datenverarbeitenden Schaltung
DE102010014720A1 (de) 2010-04-12 2011-12-15 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
DE102017200161A1 (de) * 2017-01-09 2018-07-12 Robert Bosch Gmbh Verfahren zum Erfassen von Signalen

Also Published As

Publication number Publication date
US20050223295A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
DE102004014290A1 (de) Verfahren zur Erstellung von Abläufen zum Testen einer Software
EP1330685B1 (de) Prüfverfahren und prüfvorrichtung zur inbetriebnahme von mittels einer programmlogik gesteuerten systemen
EP3082000B1 (de) Verfahren und system zum testen eines mechatronischen systems
EP2330469B1 (de) Verfahren und Entwicklungsumgebung zur Erzeugung eines ausführbaren Gesamtsteuerungsprogramms
DE102010042288A1 (de) Vorrichtung und Verfahren zum maschinellen Erstellen eines Prozessdiagramms
DE102005042129A1 (de) Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes
EP3306295B1 (de) Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen
DE10041072A1 (de) Verfahren zur automatischen Erzeugung von Programmcode
EP2343611A1 (de) Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms und diesbezügliche Konfigurationseinrichtung
DE10133375A1 (de) Verfahren und Vorrichtung zum automatischen Erstellen eines Bayes-Netzwerks
DE102020213890A1 (de) Computerimplementiertes Verfahren und Vorrichtung zur Auswahl einer Fuzzing-Methode zum Testen eines Programmcodes
EP2126644B1 (de) Verfahren zur umwandlung von kontaktplänen
EP3401849A1 (de) Produktreifebestimmung eines technischen systems
EP2899630A1 (de) Verfahren zum Generieren von Programmcode
AT514731A2 (de) Verfahren zur Verifizierung generierter Software sowie Verifizierungseinrichtung zum Durchführen eines solchen Verfahrens
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE102008060970B4 (de) Vorrichtung zum Erzeugen eines markierten Referenzdatenstroms
WO2004072744A2 (de) Verfahren zur ermittlung der verarbeitungsreihenfolge von funktionsbausteinen eines automatisierungssystems und automatisierungssystem
DE102020103349B4 (de) Lastangleichung zweier prozessoren beim ausführen diversitär-redundanter anweisungssequenzen
DE102022207612A1 (de) Computer-implementiertes Verfahren zur Verifikation einer Softwarekomponente einer automatisierten Fahrfunktion
EP1424641B1 (de) Verfahren und Einrichtung zum ermitteln der minimalen oder maximalen schaltaktivität einer digitalschaltung
EP1095321B1 (de) Verfahren und anordnung zum entwurf einer steuerung für einen gesamtprozess
DE102022132036A1 (de) Computerimplementiertes Verfahren zur Konstruktion eines Bauteils
DE102022203166A1 (de) Verfahren zum Testen einer auf mehrere Programme verteilten Datenverarbeitung
DE102019216676A1 (de) Prognose eines Messwerts einer Messgröße eines technischen Systems

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final