DE102004039832A1 - Structural coverage criteria for continuous function charts - Google Patents

Structural coverage criteria for continuous function charts Download PDF

Info

Publication number
DE102004039832A1
DE102004039832A1 DE200410039832 DE102004039832A DE102004039832A1 DE 102004039832 A1 DE102004039832 A1 DE 102004039832A1 DE 200410039832 DE200410039832 DE 200410039832 DE 102004039832 A DE102004039832 A DE 102004039832A DE 102004039832 A1 DE102004039832 A1 DE 102004039832A1
Authority
DE
Germany
Prior art keywords
test
code
pseudo
coverage
criteria
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
DE200410039832
Other languages
German (de)
Inventor
Vadym Alyokhin
Benedikte Elbel
Oliver MÄCKEL
Alexander. Dr. Pretschner
Martin Rothfelder
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.)
Siemens AG
Original Assignee
Siemens 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 Siemens AG filed Critical Siemens AG
Priority to DE200410039832 priority Critical patent/DE102004039832A1/en
Priority to PCT/EP2005/053562 priority patent/WO2006018363A2/en
Publication of DE102004039832A1 publication Critical patent/DE102004039832A1/en
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/3676Test management for coverage analysis

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zur strukturorientierten Prüfung der Testvollständigkeit mittels eines graphischen Modells, insbesondere in Form von Continuous Function Charts (CFC), projektierter Software. DOLLAR A Die Erfindung zeichnet sich durch Ableiten eines Pseudo-Codes aus dem graphischen Modell der Software und aus dem Pseudo-Code erfolgendes Ermitteln von Testvollständigkeitskriterien während eines dynamischen Testens aus.The present invention relates to a method for the structure-oriented testing of the test completeness by means of a graphical model, in particular in the form of continuous function charts (CFC), projected software. DOLLAR A The invention is characterized by deriving a pseudo-code from the graphical model of the software and from the pseudo-code to determine test completeness criteria during a dynamic test.

Description

Die Projektierung von Continuous Function Charts (CFC) stellt eine graphische Programmiersprache dar, die bereits auf herkömmliche Weise genutzt wird. Aus CFCs wird ein C- oder Assembler-Code generiert, der in verschiedenen Steuergeräten eingesetzt wird. CFCs sind als eine Form einer modellbasierten Entwicklung anzusehen, bei der die Verschaltung funktionaler Blöcke durch Angabe des Datenflusses beschrieben wird.The Configuration of Continuous Function Charts (CFC) provides a graphical Programming language that is already used in a conventional way. From CFCs, a C or assembler code is generated, which in different ECUs is used. CFCs are as a form of model-based development in which the interconnection of functional blocks by Specification of the data flow is described.

Immer umfangreiche Software-Systeme werden in sicherheitskritischen Bereichen eingesetzt. Die Fehleranfälligkeit dieser Systeme wächst mit zunehmender Komplexität. Die hohe Komplexität verursacht umfangreiche und aufwändige Prüfaktivitäten, welche einen beträchtlichen Anteil der Gesamtentwicklungskosten ausmachen. Daher werden rechnerunterstützte Methoden benötigt, die eine aussagekräftige und effiziente Prüfung ermöglichen. Die Software muss im Entwicklungsprozess frühzeitig und intensiv getestet werden, um spätere Qualitätsprobleme und die damit verbundenen Kosten zu vermeiden. Hierzu ist insbesondere ein umfangreicher Modultest durchzuführen. Für diesen Modultest sind Vollständigkeitskriterien zu definieren, die zur Abnahme der Software erfüllt sein müssen.always Extensive software systems are used in safety-critical areas used. The error rate of these systems is growing with increasing complexity. The high complexity causes extensive and expensive Testing activities, which a considerable one Share of total development costs. Therefore, computer-aided methods needed the one meaningful and efficient testing enable. The software must be tested early and intensively in the development process be to later quality problems and avoid the associated costs. This is especially true to carry out a comprehensive module test. For this module test are completeness criteria to be defined, which must be fulfilled for the acceptance of the software.

Mit Ausnahme von intermodularen Datenflüssen finden Coveragemessungen üblicherweise auf Modulebene statt. Interessant ist aber insbesondere auch die Zusammenschaltung von Modulen, da hier applikationsspezifisches Wissen einer Analyse explizit zur Verfügung gestellt wird.With Exception of intermodular data flows is usually found in coverage measurements at the module level. Interesting but especially the Interconnection of modules, as application-specific Knowledge of an analysis is explicitly provided.

Derzeit wird der Modultest typischerweise mit Hilfe funktionaler Testfälle durchgeführt, die aus der Anforderungsspezifikation abgeleitet sind. Da diese meist in ungebundener Form, d.h. in natürlicher Sprache bzw. Prosa gehalten bzw. geschrieben ist und nicht auf Vollständigkeit überprüft werden kann, ist eine strukturorientierte Prüfung der Testvoll ständigkeit wünschenswert. Diese wird durch einschlägige Normen gefordert (z. B. EN 50128 ). Das Abfassen in natürlicher Sprache hat den Vorteil der einfachen Verständlichkeit. Gleichzeitig gibt es jedoch Nachteile, die die natürliche Sprache mit sich bringt. Kriterien wie Vollständigkeit, Widerspruchsfreiheit und Eindeutigkeit werden in der Regel nicht erreicht. Darüber hinaus ist die systematische Ableitung funktionsorientierter Testfälle aus Prosaspezifikationen schwierig. Zwar existieren Verfahren, die auf eine systematische Prüfung des spezifizierten Sachverhaltes abzielen, diese werden jedoch selten systematisch angewandt und beziehen sich oft nur auf Teilaspekte der spezifizierten Funktionalität. Daher ist bei einem reinen funktionsorientiertem Test davon auszugehen, dass in der Software noch ungetestete Funktionalität existiert.Currently, the module test is typically performed using functional test cases derived from the requirement specification. Since this is usually held in unbound form, ie in natural language or prose or is written and can not be checked for completeness, a structure-oriented test of the full test is desirable. This is required by relevant standards (eg EN 50128 ). Writing in natural language has the advantage of easy comprehension. At the same time, however, there are disadvantages associated with natural language. Criteria such as completeness, consistency and unambiguity are generally not achieved. In addition, the systematic derivation of function-oriented test cases from prose specifications is difficult. While there are procedures aimed at systematically examining the specified subject matter, they are rarely used systematically and often refer only to partial aspects of the specified functionality. Therefore, in a pure function-oriented test, it can be assumed that untested functionality still exists in the software.

Um dennoch eine gewisse Vollständigkeit im dynamischen Test zu garantieren, wird in der Praxis häufig die Überdeckung der Software durch die funktionalen Testfälle nach Kriterien beurteilt, die sich an der Struktur der Software orientieren.Around nevertheless a certain completeness In the dynamic test to guarantee, in practice, the overlap the software is evaluated by the functional test cases according to criteria, which are based on the structure of the software.

Werden die dynamischen Testfälle allein im Hinblick auf strukturorientierte Kriterien abgeleitet, so ist nicht garantiert, dass die in der Spezifikation geforderte Funktionalität vollständig geprüft wurde. So ist der Strukturtest alleine nicht in der Lage, fehlende Funktionalitäten zu erkennen. Der Vergleich der Implementierung mit der Spezifikation durch den Funktionstest erkennt derartige Fehler. Es ist daher erwünscht, Funktions- und Strukturtestverfahren miteinander zu kombinieren, indem die Vollständigkeit der nach funktionsorientierten Kriterien abgeleiteten Testfälle durch strukturorientierte Kriterien bewertet wird.Become the dynamic test cases derived solely with regard to structure-oriented criteria, so is not guaranteed that required in the specification functionality Completely checked has been. So the structure test alone is not able to miss missing functionalities to recognize. The comparison of the implementation with the specification through the function test recognizes such errors. It is therefore desirable functional and Structure test procedures combine with each other by completeness of test cases derived according to function-oriented criteria structure-oriented criteria is assessed.

Ziel ist die Ermittlung strukturabhängiger Kriterien, die für die Messung der Testvollständigkeit im Modultest und insbesondere als Kriterium für die Modulabnahme in der graphischen Projektierung mit CFC dienen sollen. Die Kriterien sind so zu beschreiben, dass diese später in einem Werkzeug umgesetzt werden können.aim the determination is more structurally dependent Criteria for the measurement of the test completeness in the module test and in particular as a criterion for the module acceptance in the graphic design to serve with CFC. The criteria are to be described in such a way that this later can be implemented in a tool.

Eine Prüfung der Testvollständigkeit auf Code-Ebene ist bei nicht modellbasiert entwickelter Software bekannt, bei graphisch projektierter Software bisher jedoch noch nicht möglich.A exam the test integrity at the code level is known in non-model based software development, but so far not possible with graphically configured software.

Die Vollständigkeit des Modultests wird herkömmlicher Weise auf Basis der Anforderungsspezifikation und auf Basis der Erfahrung des Entwicklers bewertet. Bei kritischen Anwendungsgebieten werden Gutachter hinzugezogen.The completeness The module test becomes more conventional On the basis of the requirement specification and on the basis of the Experience of the developer evaluated. For critical applications Appraisers will be consulted.

Es ist damit Aufgabe der vorliegenden Erfindung eine – insbesondere strukturorientierte – Prüfung der Testvollständigkeit bei graphisch projektierter Software bzw. bei graphisch projektierten Softwaremodulen bereitzustellen.It is therefore an object of the present invention - a - in particular structure-oriented - testing the Provide test completeness in graphically configured software or in graphically configured software modules.

Die Aufgabe wird durch ein Verfahren gemäß Anspruch 1, durch eine Vorrichtung und ein Speichermedium gemäß den Nebenansprüchen gelöst. Vorteilhafte Ausgestaltungen finden sich in den Unteransprüchen.The The object is achieved by a method according to claim 1, by a device and a storage medium according to the independent claims. advantageous Embodiments can be found in the subclaims.

Ausgangsbasis der Prüfung ist ein Projektieren der Software in einer graphischen Programmiersprache zur Bereitstellung eines graphischen Modells der Software. Eine derartige Programmiersprache wird beispielsweise mittels Continuous Funktion Charts (CFC) bereitgestellt.base The examination is a projecting of the software in a graphical programming language to provide a graphical model of the software. A Such programming language is for example by means of Continuous Function Charts (CFC) provided.

Die Bewertung der Testvollständigkeit kann strukturorientiert auf Basis des Modells erhoben werden. Dazu wird ein Pseudo-Code aus dem Modell abgeleitet, der instrumentiert wird und der der Messung der Testdatenadäquatheit zu Grunde gelegt wird. Auf diesen Pseudo-Code werden bekannte und durch Normen empfohlene Testvollständigkeitskriterien während des dynamischen Tests ermittelt.The Evaluation of the test completeness can be structured based on the model. To becomes a pseudo code derived from the model being instrumented and that of the measurement the test data adequacy is based on. On this pseudo code are known and Standards of Completeness Recommended by Standards During the determined by dynamic tests.

Pseudocode bzw. Pseudokode ist ein Ausdruck aus der Informatik. Er bezeichnet eine Darstellung eines Computerprogramms in einer Sprache, die an eine Programmiersprache erinnert, aber noch leichter lesbar ist als ausformulierter Programmcode.pseudocode or pseudo-code is an expression from computer science. He describes a representation of a computer program in a language that a programming language, but even easier to read as formulated program code.

Pseudocode ist eine halbformale, nicht standardisierte Sprache, mit der man die Ablaufstrukturen eines Algorithmus grob durch Texte und fest vorgegebene Schlüsselwörter beschreibt. Die Schlüsselwörter des Pseudocodes lehnen sich in der Regel an die Ausdrücke einer höheren Programmiersprache an.pseudocode is a semi-formal, non-standard language with which you can the process structures of an algorithm roughly by texts and fixed describes predefined keywords. The keywords of the pseudocode usually follow the expressions of a higher-level programming language.

Beispiel von Pseudocode:

Figure 00040001
Example of pseudocode:
Figure 00040001

Neben der graphischen Projektierung wird der Test graphischer Modelle durchgeführt. Häufig eingesetzte Teststrategien dieser Art der Projektierung sind funktionale Tests. Zusätzlich zu funktionalen Tests sind im graphisch orientierten Projektierungsprozess auch strukturorientierte Tests von Interesse. Der strukturorientierte Test des aus graphischen Modellen generierten Codes erfordert zahlreiche dynamische Testfälle, die nicht nur die Verschaltungen der graphischen Komponenten betrachten, sondern die auch das Innere der Komponenten prüfen. Die graphischen Modelle haben eine gröbere Granularität als der generierte Code, d.h. lediglich die für Coveragemessungen wesentlichen Strukturen werden berücksichtigt. So wird der strukturorientierte Test der graphischen Modelle sich gezielt auf die Aspekte der graphischen Projektierung beziehen. Daher sollten neben den bekannten strukturellen Überdeckungskriterien auf der Code-Ebene solche Kriterien an den graphi schen Modellen erhoben und zur Bewertung der Testdatenadäquatheit verwendet werden.Next graphic design becomes a test of graphic models carried out. Often used test strategies of this type of configuration are functional Testing. additionally to functional tests are in the graphically oriented engineering process also structure-oriented tests of interest. The structure-oriented Testing the code generated from graphical models requires numerous dynamic test cases, who not only look at the interconnections of the graphical components, but also check the inside of the components. The graphic models have a coarser one granularity as the generated code, i. only essential for coverage measurements Structures are taken into account. This is how the structure-oriented test of graphic models becomes specifically relate to the aspects of graphic design. Therefore should in addition to the known structural coverage criteria on the Code level, such criteria are collected on graphic models and used to evaluate the test data adequacy.

Der Pseudo-Code enthält die wesentlichen Strukturmerkmale des Modells, blendet Implementierungsdetails jedoch aus. Ein Produktionscode ist ungeeignet, da er die für Coveragemessungen relevanten Strukturen nicht explizit beinhaltet.Of the Contains pseudo-code the main structural features of the model, hides implementation details however, out. A production code is inappropriate as it is the one for coverage measurements relevant structures are not explicitly included.

Somit wird nicht die Überdeckung des generierten Codes gefordert (dieses wäre zu umfangreich, zudem sind die verwendeten Bausteine bereits getestet und zertifiziert, so dass im Sinne einer modularen Entwicklung eine Überdeckung des Produktionscodes nicht sinnvoll ist), sondern eine Überdeckung der relevanten Strukturen des Modells.Consequently will not be the overlap of the generated code (this would be too extensive, moreover the building blocks already tested and certified, so that in the sense of a modular development an overlapping of the production code not meaningful), but an overlap of the relevant structures of the model.

Bekannte und durch Normen empfohlene Testvollständigkeitskriterien sind z. B. Zweigüberdeckung, Bedingungs-/Entscheidungs-Überdeckung und/oder All-Uses Coverage.Known and test completeness criteria recommended by standards are e.g. B. Branch Coverage, Condition / Decision Overlap and / or all-uses coverage.

Weitere Kriterien für die Prüfung können konnektorbasierte Kriterien sein.Further Criteria for the exam can be connector-based criteria.

Das Verfahren kann insbesondere auf Softwaremodule angewendet werden.The Method can be applied in particular to software modules.

Als Vorrichtung zur Steuerung eines Verfahrens kann insbesondere ein Personal-Computer verwendet werden. Damit ist eine automatische Testüberdeckungsmaßermittlung möglich.When Device for controlling a method can in particular a Personal computers are used. This is an automatic Testüberdeckungsmaßermittlung possible.

Die Daten zur Ausführung eines vorteilhaften Verfahrens können vorteilhaft auf einer CD-ROM oder einer Diskette bereitgestellt werden.The Data for execution an advantageous method can advantageously provided on a CD-ROM or a floppy disk become.

Besonders vorteilhaft kann eine Quantifizierung und eine automatische Erhebung der Testvollständigkeit im Modultest von CFC-basierter Software bereitgestellt werden. Diese Vorgehensweise wird bei der Umsetzung einschlägiger Normen notwendig werden.Especially Advantageously, a quantification and an automatic survey the test integrity be provided in the module test of CFC-based software. These Approach will be necessary in the implementation of relevant standards.

DEFINITIONEN:DEFINITIONS:

Continuous Function Charts (CFCs) stellen eine Form der graphischen Programmierung, im Folgenden auch als Projektierung bezeichnet, zur Verfügung. Ein Beispiel für CFCs zeigt 1.Continuous Function Charts (CFCs) provide a form of graphical programming, also referred to below as configuration. An example of CFCs shows 1 ,

Vorgefertigte und selbst definierte Funktionsbausteine werden bei der Projektierung in einer graphischen Zeichenfläche platziert und miteinander nach technologischen Gesichtspunkten verschaltet. Die Funktionsbausteine enthalten die eigentliche Funktionalität, beispielsweise in Form von Berechnungen und logischen Verknüpfungen. Durch das Verbinden der Ein- und Ausgänge der platzierten Bausteine wird der Signalfluss festgelegt. Durch die Zuordnung der Bausteine zu bestimmten Ereignisklassen und durch Festlegung der Ablaufreihenfolge der Bausteine innerhalb einer Ereignisklasse legt der Projekteur die Ablaufstruktur fest.prefabricated and self-defined function blocks are used during configuration in a graphic artboard placed and interconnected according to technological aspects. The function blocks contain the actual functionality, for example in the form of calculations and logical links. By connecting the inputs and outputs the placed blocks, the signal flow is determined. By The assignment of the blocks to specific event classes and through Defining the sequence of execution of the blocks within an event class the project engineer defines the process structure.

In einer Standardbibliothek sind bereits wesentliche Funktionsbausteine enthalten. Üblicherweise werden beim Projektieren Funktionsbausteine aus der Standardbibliothek benutzt, die Verwendung selbstdefinierter Funktionsbausteine ist aber auch möglich.In a standard library are already essential function blocks contain. Usually During configuration, function blocks are taken from the standard library used is the use of self-defined function blocks but also possible.

Vielfältige Unterstützung für die Entwicklung hochqualitativer Systeme bieten CAE-Werkzeuge. Einige Beispiele für solche Werkzeuge sind SIBAS® G, SIMATIC S7 und Matlab/ Simulink/ Stateflow. SIBAS® G ist das Projektierungstool, das für die Erstellung von Fahrzeugsteuerungssoftware für Züge verwendet wird. Mit SIMATIC S7 können Lösungen für steuerungs- und regelungstechnische Aufgaben erstellt werden. Matlab/ Simulink/ Stateflow sind Tools zu Erstellung ausführbarer Modelle des Steuerungs- und Regelungssystems. In zahlreichen Systemen ist der Editor mit verschiedenen Funktionsbaustein- Bibliotheken etabliert. Er ist Teil von SIBAS G, SIMATIC S7, SIMOTION, Drive ES Graphic, DIGSI, DESIGO Gebäudeleitsystem u.a.. Es wird als Beispiel-System das SIBAS® G-Projektierungstool verwendet. SIBAS® G wird beispielsweise für die Erstellung der Fahrzeugsteuerungssoftware für Züge verwendet. Ein SIBAS®-Programm ist ein Continuous Function Chart, das mit dem CAE-Tool SIBAS®-G für die Projektierung der Software für SIBAS® 32 Steuergeräte verwendet wird.Varied support for the development of high-quality systems is provided by CAE tools. Some examples of such tools are SIBAS ® G, SIMATIC S7 and Matlab / Simulink / Stateflow. SIBAS ® G is the configuration tool used to create vehicle control software for trains. With SIMATIC S7, solutions for control and control tasks can be created. Matlab / Simulink / Stateflow are tools for creating executable models of the control system. In numerous systems, the editor is established with various function block libraries. It is part of SIBAS G, SIMATIC S7, SIMOTION, Drive ES Graphic, DIGSI, DESIGO building management system and others. The SIBAS ® G configuration tool is used as an example system. For example, SIBAS ® G is used to create vehicle control software for trains. A SIBAS ® program is a continuous function chart that is used with the CAE tool SIBAS ® -G for configuring the software for SIBAS ® 32 ECUs.

Um Projekteure bei der Programmierung zu unterstützen, wird die Projektierung in CAE-Werkzeugen in der Regel auf graphischer Ebene durchgeführt. Anschließend wird ein ausführbares Programm erstellt. Ein Beispiel für graphische Modelle sind Continuous Function Charts (CFC), die mit SIBAS® G, SIMATIC S7 oder anderen Werkzeugen erstellt werden können.In order to support project engineers in programming, the configuration in CAE tools is usually carried out on a graphic level. Then an executable program is created. An example of graphical models are Continuous Function Charts (CFCs), which can be created with SIBAS ® G, SIMATIC S7 or other tools.

Es werden Kriterien für ein Verfahren der Vollständigkeitsprüfung von Testdaten im Modultest für CFC vorgeschlagen. Als Basis hierfür dienen SIBAS® G-Funktionspläne, die eine spezielle Form von CFC darstellen.Criteria for a method of completeness testing of test data in the module test for CFC are proposed. This is based on SIBAS ® G function diagrams, which represent a special form of CFC.

Zunächst wird eine formale Beschreibung des Modultests vorgestellt, wie er bei SIBAS® G -Projekten Anwendung finden kann. Ein Modul stellt eine Funktion ϕ : SE → SA dar, die die an den Eingangskonnektoren anliegende Signale SE auf die Signale der Ausgangskonnektoren SA abbildet. Ein vollständiger Test aller Kombinationen von Werten für Eingangssignale für ein Modul ist im Allgemeinen nicht möglich: So müssten hierfür zum einen alle Kombinationen möglicher Werte der Eingangssignale S ∊ SE erzeugt werden. Zum anderen muss nach Durchführung der Testfälle bestimmt werden, ob die durch das Modul berechneten Ausgangssignale S ∊ SA richtig sind. Da es im Allgemeinen unendlich viele Kombinationen möglicher Werte der Eingangssignale gibt und somit die Bereitstellung und Auswertung der Testfälle nicht möglich ist, sind aus der Menge der möglichen Kombinationen von Eingangssignalen S ∊ SE geeignete Repräsentanten auszuwählen, die die Funktionalität möglichst vollständig prüfen.First, a formal description of the module test will be presented, as it can be applied to SIBAS ® G projects. A module represents a function φ: S E → S A , which maps the signals S E applied to the input connectors to the signals of the output connectors S A. A complete test of all combinations of values for input signals for a module is generally not possible: For this purpose, all combinations of possible values of the input signals S ε S E would have to be generated for this purpose. On the other hand, after the test cases have been carried out, it must be determined whether the output signals S ε S A calculated by the module are correct. Since there are generally infinitely many combinations of possible values of the input signals and thus the provision and evaluation of the test cases is not possible, from the set of possible combinations of input signals S ε S E suitable representatives must be selected, which check the functionality as completely as possible.

Beispielsweise im Bereich der Eisenbahntechnik wird die Norm EN 50128 für Softwarekomponenten angewendet. Als Prüfstrategien für Software der dort definierten Sicherheitsstufen von Eins bis Vier werden dynamische Tests und dynamische Analyse angeraten ("Highly Recommended" -HR). Es werden folgende Techniken bzw. dynamisches Testen, und zwar auch für ein Verfahren gemäß der vorliegenden Erfindung, vorgeschlagen:

  • 1. Test auf Basis von Grenzwertanalysen
  • 2. Test auf Basis von Fehlererwartung
  • 3. Test auf Basis von Fehlereinstreuung
  • 4. Leistungs-Modellierung
  • 5. Test auf Basis von Äquivalenzklassen und Eingangsdaten-Unterteilung
  • 6. Strukturabhängige Test
For example, in the field of railway technology is the norm EN 50128 applied to software components. As testing strategies for software of the security levels defined from one to four, dynamic tests and dynamic analysis are recommended ("Highly Recommended" -HR). The following techniques or dynamic testing, including for a method according to the present invention, are proposed:
  • 1. Test based on limit value analyzes
  • 2. Test based on error expectation
  • 3. Test based on error diffusion
  • 4. Performance modeling
  • 5. Test based on equivalence classes and input data subdivision
  • 6. Structure dependent test

Die herkömmlich angewandten Methoden für den Modultest von SIBAS® G-Plänen sind funktionale Tests. Die Testfälle werden aus dem Pflichtenheft bzw. der Modul-Spezifikation abgeleitet. Bei der Testdurchführung betrachtet man die Eingabe- und Ausgabegrößen der Testläufe für das ganze Modul oder für einen Teil davon und entscheidet entsprechend der Spezifikation, ob aufgrund zufrieden stellender Ergebnisse eine Abnahme erfolgen kann.The commonly used methods for module testing SIBAS ® G plans are functional tests. The test cases are derived from the specification or the module specification. In the test procedure, one considers the input and output quantities of the test runs for the entire module or for a part thereof and decides according to the specification whether a decrease can take place on the basis of satisfactory results.

Beispielsweise wird ein SIBAS®-32-System (Siemens Bahnautomatisierungssystem mit 32 Bit Mikroprozessor) für Steuerungs- und Regelungsaufgaben für zentrale Steuergeräte (ZSG), Antriebs-Steuer-Geräte (ASG) und kombinierte Steuergeräte im Bereich beispielsweise von Nahverkehrsfahrzeugen eingesetzt.For example, a SIBAS ® is -32-system (Siemens rail automation system with 32 bit microprocessor) for control and regulating tasks for central control device (ZSG), drive control devices (ASG) and combined control devices used in the field for example, of mass transit vehicles.

Beispielsweise in Schienenfahrzeugen befinden sich viele Komponenten, die elektrisch angesteuert werden, zum Beispiel Türen, Antrieb, Bremsen und Fahrerstanddisplay. Die meisten dieser Komponenten benötigen Informationen anderer Komponenten und erzeugen ihrerseits Informationen, die für andere Komponenten wichtig sind.For example In rail vehicles there are many components that are electric such as doors, drive, brakes and cab display. Most of these components require information from others Components and in turn generate information for others Components are important.

Das System regelt, steuert, schützt im Stromrichter nahen Bereich den Fahrzeugantrieb und übernimmt in einer vagen übergreifenden Leitebene als Steuergerät Steuer- und Informations-Aufgaben.The System controls, controls, protects In the power converter close range the vehicle drive and takes over in a vague cross-over Control level as a control unit Tax and information tasks.

Das ZSG übernimmt übergeordnete Steuerungs- und Überwachungsaufgaben im Fahrzeug. Die ASGs dienen der Steuerung und Regel des Fahrens und Bremsens über die Fahrmotoren. Über ein PC-Monitorprogramm kann mit dem SIBAS® 32 Monitor auf das Betriebssystem des Zentralrechners zurückgegriffen werden.The ZSG assumes higher-level control and monitoring tasks in the vehicle. The ASGs are used to control and regulate driving and braking via the traction motors. Using a PC monitor program, the operating system of the central computer can be used with the SIBAS ® 32 Monitor.

Das SIBAS®-Programm ist ein Continuous Function Chart, das mit dem CAE-Tool SIBAS®-G für die Projektierung der Software für die SIBAS® 32 Steuergeräte verwendet wird. Auf Basis von Funktionsbausteinen werden die Funktionen der Fahrzeugleit- und Antriebstechnik, der SIBAS® 32 Zentralrechner und Signalprozessoren projektiert und daraus auf die Steuergeräte ladbare Programme erzeugt.The SIBAS ® program is a continuous function chart that is used with the CAE tool SIBAS ® -G for configuring the software for the SIBAS ® 32 control units. The functions of the vehicle control and drive technology, the SIBAS ® 32 central computer and signal processors are configured on the basis of function blocks, and programs are generated from these that can be downloaded to the control units.

Im Folgenden werden Komponenten der CFCs in SIBAS® G vorgestellt, die als Basis für stukturorientierte Testkriterien verwendet werden können.In the following, components of the CFCs in SIBAS ® G are presented, which can be used as a basis for structure-oriented test criteria.

Funktionsbausteinefunction blocks

Funktionsbausteine sind ein grafisches Element von SIBAS® G-Plänen. Funktionsbausteine enthalten die Grundfunktionalität des Gesamtprogramms von einfachsten logischen Verknüpfungen bis hin zu komplexen Regelalgorithmen. Die Funktionalität der Funktionsbauweise ist – abhängig von der Zielplattform – in C- und/oder in Assembler programmiert.Function blocks are a graphic element of SIBAS ® G plans. Function blocks contain the basic functionality of the overall program, from the simplest logical links to complex control algorithms. The functionality of the functional design is - depending on the target platform - programmed in C and / or in assembler.

Konnektorenconnectors

Zur Projektierung eines Signalflussplans verfügen die Bausteine über Ein- und Ausgangskonnektoren als eingebettete Objekte. Mit deren Hilfe können die Bausteine zu einem funktionalen Netzwerk verbunden werden. Die Konnektoren ermöglichen den Datenaustausch zwischen den Funktionsbausteinen.to Configuring a signal flow diagram, the blocks have a and output connectors as embedded objects. With their help can the building blocks are connected to a functional network. The Enable connectors the data exchange between the function blocks.

Signalesignals

Die Ausgangskonnektoren von Funktionsbausteinen stellen über statische RAM-Zellen die Signale zur Verfügung. Diese Signale besitzen jeweils einen impliziten und optional einen expliziten Signalnamen.The Output connectors of function blocks set via static RAM cells provide the signals. These signals each have one implicit and one optional explicit signal names.

Ereignisklassenevent classes

Funktionsbausteine sind Ereignisklassen zugeordnet. Mit einer Ereignisklasse ist festgelegt, ob es sich zum Beispiel um Funktionsbausteine handelt, die zyklisch bearbeitet werden oder aufgrund eines bestimmten Ereignisses im Fahrzeug bearbeitet werden. Über die Ereignisklassen werden alle Funktionsbausteine zu Gruppen zusammengefasst. Innerhalb der Ereignisklasse werden die einzelnen Funktionsbausteine hintereinander aufgereiht und entsprechend der Zellennummer in dieser Reihenfolge abgearbeitet.function blocks are associated with event classes. With an event class is set For example, if it is a function block that is cyclic be edited or due to a specific event in the Vehicle to be processed. about The event classes combine all function modules into groups. Within the event class, the individual function blocks become lined up in a row and according to the cell number in this Order processed.

Hierarchische Struktur von SIBAS® G-ProgrammenHierarchical structure of SIBAS ® G programs

Die Software beispielsweise eines SIBAS® G-Programms wird aus kleinsten grafischen Modulen, den Funktionsbausteinen, aufgebaut. Über die Verknüpfung der Ein- und Ausgänge der einzelnen Funktionsbausteine wird ein logisches Netzwerk erstellt. Für dieses Programmieren steht das Projektierungswerkzeug SIBAS® G zur Verfügung. Das SIBAS® G-Programm ist hierarchisch strukturiert. Die hierarchische Programmstruktur von SIBAS® G besteht aus folgenden Elementen: Funktionsbausteine, Planblätter, Funktionsgruppen, Funktionspakete und Steuerprogramm.The software of, for example, a SIBAS ® G program is built from the smallest graphic modules, the function blocks. By linking the inputs and outputs of the individual function blocks, a logical network is created. The SIBAS ® G configuration tool is available for this programming. The SIBAS ® G program is hierarchically structured. The hierarchical program structure of SIBAS ® G consists of the following elements: Function modules, plan sheets, function groups, function packages and control program.

Arbeitsablauf der Entwicklung von SIBAS® G-ProgrammenWorkflow for the development of SIBAS ® G programs

Als Ausgangsbasis für die Erstellung eines Funktionspakets mit SIBAS® G dienen die Anforderungen an das Funktionspaket, die in einem Pflichtenheft mit Designspezifikation beschrieben sind. Nach der Projektierung der einzelnen Funktionspakete mit SIBAS® G werden diese zu einem Programm zusammengefügt. Anschließend erfolgt die automatische Codegenerierung mit Standardcompilern, die in SIBAS® G integriert sind, zu einem ablauffähigen Programm. Die Testfälle für einen Modultest werden ebenfalls aus dem Pflichtenheft abgeleitet. Anschließend werden die Modultests durchgeführt. Für den Modultest von Funktionspaketen, die mit SIBAS® G erstellt wurden, gibt es mehrere Möglichkeiten. Alle Möglichkeiten sind wichtig und ergänzen einander.As a starting point for the creation of a functional package with SIBAS ® G, the requirements for the functional package, which are described in a specification with design specification. After configuring the individual function packages with SIBAS ® G, these are combined into a program. Subsequently, the automatic code generation with standard compilers, which are integrated in SIBAS ® G, becomes an executable program. The test cases for a module test are also derived from the specifications. Subsequently, the module tests are carried out. For the module test of function packages created with SIBAS ® G, there are several possibilities. All possibilities are important and complementary.

Pseudo-Code-GenerierungPseudo-code generation

Um die Kontrollfluss- und Datenfluss-orientierten Kriterien auf einen SIBAS® G-Plan zu übertragen, wird im Folgenden die Generierung eines Codes aus dem Plan beschrieben. Im Hinblick auf die Anwendung der bekannten strukturorientierten Kriterien auf den zu generierenden Code muss diese die folgenden Eigenschaften erfüllen:

  • – Um Kontrollfluss-basierte Kriterien anwenden zu können, müssen Verzweigungen in einer Code-Ausführung sichtbar gemacht werden;
  • – Für Datenfluss basierte Kriterien müssen Definitionen und Benutzungen von Variablen im generierten Pseudo-Code spezifiziert werden;
  • – Um Bedingungsüberdeckungskriterien anwenden zu können, müssen Teilentscheidungen sowie Gesamtentscheidungen von prädikativen Ausdrücken im Pseudo-Code identifiziert werden können;
  • – Der den Funktionsbausteinen unterliegende Quellcode muss im Pseudo-Code verborgen bleiben. Dies ist notwendig, um die Bewertung der Testvollständigkeit auf die vom Projektor gegebene Beschreibung des Moduls zu fokussieren und die Testvollständigkeit im Hinblick auf die grafische Implementierung des Prüflings zu bewerten.
In order to transfer the control flow and data flow-oriented criteria to a SIBAS ® G plan, the generation of a code from the plan is described below. With regard to the application of the known structure-oriented criteria to the code to be generated, it must fulfill the following characteristics:
  • - In order to apply control flow-based criteria, branches must be made visible in a code execution;
  • - Data flow based criteria must specify definitions and uses of variables in the generated pseudo-code;
  • - In order to apply conditional coverage criteria, partial decisions as well as overall decisions of predicative expressions must be identifiable in pseudo-code;
  • - The source code subject to the function blocks must remain hidden in the pseudo-code. This is necessary in order to focus the evaluation of the test completeness on the description of the module given by the projector and to evaluate the test completeness with regard to the graphical implementation of the test object.

Jede Anwendung eines Kriteriums auf den Pseudo-Code lässt Rückschlüsse auf das grafische Modell zu. Dadurch wird die Bedeutung der Pseudo-Code-Überdeckung auf SIBAS® G-Plänen ermittelt.Each application of a criterion to the pseudo-code allows conclusions about the graphical model. This determines the importance of pseudo-code overlap on SIBAS ® G plans.

Formale Beschreibung der QuellspracheFormal description the source language

Es werden die Komponenten der grafischen Quellsprache SIBAS® G definiert. Aufgrund der Beschränkung auf die grafische Ebene, sind die einzigen zu betrachtenden Komponenten die Funktionsbausteine und die Signale.The components of the graphical source language SIBAS ® G are defined. Due to the restriction to the graphical level, the only components to consider are the function blocks and the signals.

Ablaufgraphflow graph

Im ersten Schritt der Pseudo-Code-Generierung werden die Komponenten der Quellsprache (SIBAS® G-Plan) für den Aufbau einer Ablaufstruktur benutzt. Dabei wird versucht, den Ablaufgraph des Pseudo-Codes möglichst orientiert an der echten Ablaufstruktur zu erzeugen.In the first step of the pseudo-code generation, the components of the source language (SIBAS ® G-Plan) are used to build a flow structure. An attempt is made to generate the sequence graph of the pseudo-code as oriented as possible on the real sequence structure.

In einem nächsten Schritt der Code-Generierung werden die Funktionsbausteine des Ablaufgraphs als Funktionen dargestellt.In one next The code generation step becomes the function blocks of the run graph represented as functions.

Kontrollflusscontrol flow

Diese Funktionen dienen für die Berechnung der Werte an Ausgangskonnektoren. Sie bringen jedoch noch keinen Kontrollfluss in den Pseudo-Code ein.These Functions are for the calculation of the values at output connectors. They still bring no control flow into the pseudo-code.

Zuerst wird der Kontrollfluss von SIBAS® G-Plänen mit Hilfe von so genannten Logic- und Control-Funktionsbausteinen realisiert. Im Anschluss daran tragen zum Kontrollfluss einige arithmetische Funktionsbausteine bei.First, the control flow of SIBAS ® G plans is realized with the help of so-called logic and control function blocks. Following this, some arithmetic function blocks contribute to the control flow.

Um den Kontrollfluss im Pseudo-Code darzustellen, werden diejenigen Funktionen, die den Logic-, Control- und einigen Arithmetik-Funktionsbausteinen entsprechen, durch Anweisungen ersetzt.Around to represent the control flow in pseudo-code will be those Functions that include the logic, control and some arithmetic function blocks correspond, replaced by instructions.

Datenflussdata flow

Im letzten Schritt der Code-Generierung wird der Datenfluss sichtbar gemacht. Hierzu werden die Beziehungen zwischen Ausgangs- und Eingangskonnektoren benutzt. Die Beziehungen im Quellcode sind durch die Verbindungen zwischen den Funktionsbausteinen angegeben worden. Alle Konnektoren werden in der Ablaufstruktur durch ihre Signalnamen ersetzt. Alle Konstanten werden durch ihre Werte ersetzt.in the last step of the code generation, the data flow becomes visible made. For this purpose, the relationships between output and input connectors used. The relationships in the source code are through the connections specified between the function blocks. All connectors are replaced in the flow structure by their signal names. All Constants are replaced by their values.

Bei der Definition des Pseudo-Codes ist zu beachten, dass ein Signal benutzt werden kann, bevor es berechnet wird. In dem ausführbaren Code wird jedoch die Problematik umgangen, indem beim Programmstart alle Signale auf einen bestimmten Default-Wert gesetzt werden. Deswegen wird für den generierten Pseudo-Code zusätzlich die Annahme eingeführt, dass alle Signale beim Programmstart mit Default-Werten initialisiert werden.at The definition of pseudo-code should be noted that a signal can be used before it is calculated. In the executable Code, however, bypasses the problem by starting at program startup all signals are set to a specific default value. That is why for the generated Pseudo code in addition introduced the assumption that all signals are initialized with default values at program start become.

Die vorgeschlagene Struktur des Pseudo-Codes erfüllt die aufgestellten Anforderungen, um Kontrollfluss- und Datenflussorientierte Kriterien anwenden zu können.The proposed structure of the pseudo-code meets the established requirements, to apply control flow and data flow oriented criteria can.

Anwendung von bekannten Kriterienapplication of known criteria

Die grafischen Pläne der CFC ermöglichen nicht die direkte Anwendung der bekannten Kontrollfluss- und Datenflussbasierten Kriterien. Um jedoch die Bedeutung der Kriterien für einen grafischen Plan zu zeigen, müssen die Kriterien erst auf einen oben vorgestellten Pseudo-Code angewandt werden. Im Folgenden wird die Anwendung der bekannten Kontrollfluss- und Datenfluss-orientierten Kriterium am Pseudo-Code beschrieben. Aus dieser Anwendung werden die Konsequenzen für SIBAS® G-Pläne hergeleitet.The CFC's graphical plans do not allow the direct application of the known control flow and data flow based criteria. However, to show the importance of the criteria for a graphical plan, the criteria must first be applied to a pseudo-code presented above. The following describes the application of the known control flow and data flow oriented criteria to the pseudo-code. From this application, the consequences for SIBAS ® G plans are derived.

In diesem Abschnitt werden Kontrollfluss-basierte Testtechniken benutzt, um die Vollständigkeit des Tests anhand der Abdeckung des Pseudo-Codes zu beurteilen.In this section uses control flow-based testing techniques for the sake of completeness of the test based on the coverage of the pseudo-code.

AnweisungsüberdeckungstestStatement testing;

Das Ziel der Anweisungsüberdeckung ist die mindestens einmalige Ausführung aller Anweisungen des zu testenden Programms, also die Abdeckung aller Knoten des Kontrollflussgraphen.The Target of instruction coverage is the least one-time execution of all instructions of the program to be tested, ie the coverage of all nodes of the control flow graph.

ZweigüberdeckungstestBranch coverage test

Das Ziel des Zweigüberdeckungstest ist die Ausführung aller Zweige des zu testenden Programms. Er erfordert die Überdeckung aller Kanten und Kontrollflussgraphen.The Target of the branch coverage test is the execution all branches of the program to be tested. He requires the coverage all edges and control flow graphs.

Der Unterschied zwischen dem Anweisungsüberdeckungstest und dem Zweigüberdeckungstest des Pseudo-Codes besteht im Test von bestimmten Funktionsbausteinen. In den Funktionsbausteinen ist es möglich, die Eingangskonnektoren so zu belegen, dass die Ausgangskonnektoren nicht beeinflusst werden. Diese Zweigüberdeckung testet im Gegensatz zu der Anweisungsüberdeckung des Pseudo-Codes zusätzlich die Belegung der Eingangskonnektoren.Of the Difference between the instruction coverage test and the branch coverage test of the pseudo-code consists in the test of certain function blocks. In the function modules, it is possible to use the input connectors to prove that the output connectors are not affected. This branch overlap tests in contrast to the instruction coverage of the pseudo-code additionally the assignment of the input connectors.

Die Kriterien können im Modultest, abhängig von den Anforderungen an die Software, nach verschiedenen SIL (Safety Integrity Level) eingestuft werden. Die Entscheidung über die Anwendung der Anweisungsüberdeckung oder der Zweigüberdeckung des Pseudo-Codes kann entsprechend dem angewandten SIL getroffen werden.The criteria can be classified in the module test according to the requirements of the software according to different SIL (Safety Integrity Level). The decision on the application of the instruction Overlap or branch overlap of the pseudo-code can be made according to the applied SIL.

PfadüberdeckungstestPath coverage test

Ein Pfadüberdeckungstest ist eine umfassende Kontrollflussorientierte Technik. Dabei wird die Ausführung aller unterschiedlichen Pfade des zu testenden Moduls gefordert. Ein Pfad ist eine Sequenz von Knoten des Kontrollflussgraphen. Zwei Pfade sind nur dann identisch, wenn die Sequenzen ihrer Knoten identisch sind.One Path coverage test is a comprehensive control flow-oriented technique. It will execution all different paths of the module to be tested required. A path is a sequence of nodes of the control flow graph. Two Paths are identical only if the sequences of their nodes are identical.

Diese Testtechnik für SIBAS® G-Pläne kann nur dann eine Anwendung finden, wenn alle nicht erreichbaren Pfade bestimmt werden und die zu testenden Modul-Funktionen zum Beispiel auf eine Planblattseite begrenzt werden.This test technique for SIBAS ® G charts can only be used if all unreachable paths are determined and the module functions to be tested are limited to a worksheet page, for example.

BedingungsüberdeckungstestCondition coverage test

Der Bedingungsüberdeckungstest beachtet die logische Struktur von Entscheidungen der zu testenden Software. Es existieren unterschiedliche Ausprägungen, von denen die schwächste – der einfache Bedingungsüberdeckungstest – nicht den Anweisungs- und Zweigüberdeckungstest subsumiert. Der so genannte Mehrfachbedingungsüberdeckungstest subsumiert die Zweigüberdeckung, besitzt jedoch andere Schwächen. In diesem Abschnitt werden der minimale Mehrfach-Bedienungsüberdeckungstest und der so genannte modifizierte Bedienungs- /Entscheidungsüberdeckungstest betrachtet, der einen guten Kompromiss aus Testaufwand und Ergebnisqualität darstellt.Of the Condition coverage test pays attention to the logical structure of decisions of the test to be tested Software. There are different forms, of which the weakest - the simple one Condition coverage test - not the instruction and Branch coverage test subsumed. The so-called multiple condition coverage test subsumes the branch cover, but has other weaknesses. In This section will discuss the minimum multiple service coverage test and the so-called modified operator / decision coverage test is considered, which represents a good compromise between test effort and quality of results.

Das Ziel von einem Bedingungsüberdeckungstest ist die gründliche Überprüfung von zusammengesetzten Entscheidungen. Für einen vollständigen Zweigüberdeckungstest ist es hinreichend, dass die Auswertung aller Entscheidungen einmal den Wert true and false liefert, berücksichtigt aber nicht den komplizierten Aufbau der Entscheidungen.The Target of a condition coverage test is the thorough review of composite decisions. For a complete branch coverage test It is sufficient that the evaluation of all decisions once returns the value true and false, but does not take into account the complicated structure the decisions.

Für Verfahren des Bedingungsüberdeckungstests wird zwischen zusammengesetzter Entscheidung und atomare Entscheidung unterschieden.For procedures the condition coverage test becomes between composite decision and atomic decision distinguished.

Als Entscheidung wird im Folgenden ein Ausdruck bezeichnet, der während der Laufzeit zu true oder false evaluiert wird. Ist eine Entscheidung aus weiteren Teilentscheidungen mit zweistelligen Booleschen Operatoren zusammengesetzt, so wird sie als zusammengesetzte Entscheidung bezeichnet. Anderenfalls wird sie als atomare Entscheidung bezeichnet. Beispiele für atomare Entscheidungen in einem Pseudo-Code sind Signale, die mit Booleschen Werten belegt werden. Beispiele für zusammengesetzte Entscheidungen sind Ergebnisse von Funktionsbausteinen, wie AND und OR.When Decision is hereinafter referred to as an expression used during the Runtime is evaluated to true or false. Is a decision from further partial decisions with two-digit Boolean operators composed, it is called a composite decision. Otherwise, it is called an atomic decision. Examples for atomic Decisions in a pseudo-code are signals that are Boolean Values are assigned. Examples of composite decisions are results of function modules, such as AND and OR.

Das Paradigma des SIBAS® G-Programms enthält logische Funktionsbausteine, die n-Ehrenoperatoren AND und OR entsprechen. Komplexere logische Verknüpfungen sind in einzelnen Bausteinen nicht realisiert. Infolge dessen hat der Pseudo-Code entsprechend der vorne beschriebenen Generierung nur eine geringe Anzahl von zusammengesetzten Teilentscheidungen aus AND- und OR-Bausteinen. Die Prädikate der IF-Anweisungen besteht aus atomaren Teilentscheidungen, die durch die Eingangssignale bestimmt sind.The paradigm of the SIBAS ® G program contains logical function blocks that correspond to n-honor operators AND and OR. More complex logical links are not implemented in individual blocks. As a result, according to the above-described generation, the pseudo code has only a small number of composite part decisions from AND and OR blocks. The predicates of the IF instructions are atomic part decisions determined by the input signals.

Andererseits bieten die Funktionsbausteine, die die elementare logische Verknüpfungen darstellen, dem Projekteur die Mög lichkeit, beliebig komplizierte Verschaltungen zu entwerfen. Funktionspakete mit vorwiegend logischen Verschaltungen haben eine sehr große Bedeutung für SIBAS® G-Projekte.On the other hand, the function blocks, which represent the elementary logical links, offer the project engineer the possibility of designing any complicated interconnections. Functional packages with predominantly logical interconnections are very important for SIBAS ® G projects.

Um eine Überdeckung für komplexe logische Verschaltungen durch Verknüpfungen von mehreren logischen Funktionsbausteinen zu ermitteln, müssen die Verschaltungen im Pseudo-Code identifiziert werden.Around an overlap for complex logical interconnections by links of multiple logical Function blocks must be determined, the interconnections in Pseudo-code can be identified.

Dabei ist zu komplexen logischen Verschaltungen zu bemerken, dass ein Signal an mehreren Stellen definiert werden kann. Das kommt genau dann vor, wenn Funktionsbausteine von verschiedenen Ereignisklassen das gleiche Signal erzeugen können. Wird ein Signal innerhalb der Ereignisklasse zweimal definiert, so hat dies keine Bedeutung. Wegen der sequenziellen Ausführung der Funktionsbausteine innerhalb einer Ereignisklasse wird immer die zuletzt ausgeführte Definition verwendet.there is too complex logical interconnections to notice that one Signal can be defined in several places. That's exactly what then before, if function blocks of different event classes can produce the same signal. If a signal within the event class is defined twice, so this has no meaning. Because of the sequential execution of the Function blocks within an event class always become the last executed Definition used.

Mehrfache Definitionen eines Signals werden immer in die zusammengesetzte logische Verschaltung mit logischem ODER verknüpft. Damit tragen alle Definitionen eines Signals zu der gesamten logischen Verschaltung bei.Multiple definitions of a signal are always combined in the composite logical interconnection with logical OR. Thus, all definitions of a signal carry the entire logical Ver circuit.

Der minimale Mehrfach-Bedingungsüberdeckungstest verlangt, dass neben den atomaren Teilentscheidungen und der Gesamtentscheidung auch alle zusammengesetzten Teilentscheidungen gegen true und false geprüft werden.Of the minimal multiple condition coverage test demands that in addition to the partial atomic decisions and the overall decision also all composite partial decisions against true and false checked become.

Der modifizierte Bedingungs-/Entscheidungsüberdeckungstest verlangt Testfälle, die demonstrieren, dass jede atomare Teilentscheidung den Wahrheitswert der Gesamtentscheidung unabhängig von den anderen Teilentscheidungen beeinflussen kann.Of the modified condition / decision coverage test requires test cases that demonstrate that every atomic partial decision is the truth value the overall decision independently of the other partial decisions.

Datenfluss-basierte KriterienData flow-based criteria

Um die Vollständigkeit des Tests anhand der Abdeckung des Pseudo-Codes zu beurteilen, werden Datenfluss-basierte Test-techniken angewandt. Das ist besonders sinnvoll im Kontext des SIBAS® G-Plan, weil es sich im Wesentlichen um Datenflussdiagramme handelt.To assess the completeness of the test based on pseudo-code coverage, data-flow-based test techniques are used. This is particularly useful in the context of the SIBAS ® G-Plan because it is essentially data flow diagrams.

all defs Kriteriumall defs criterion

Das all defs-Kriterium verlangt eine Menge von Testpfaden, so dass für jeden Knoten und jede Variable mindestens ein definitionsfreier Pfad bezüglich der Variablen von dem Knoten zu einem Element enthalten ist. Das Kriterium verlangt, dass zu jeder Definition aller Variablen mindestens eine Berechnung oder Benutzung dieser Variable in einem Prädikat getestet wird.The all defs criterion requires a lot of test paths, so for everyone Node and each variable at least one definition-free path with respect to Variables from the node to an item is included. The criterion requires that for each definition of all variables at least one Calculation or use of this variable tested in a predicate becomes.

all p-uses-Kriteriumall p-uses criterion

Das all-p-uses-Kriterium ist erfüllt, falls für jeden Knoten und jede Variable ein definitionsfreier Pfad bezüglich der Variable des Knoten zu allen Elementen in den getesteten Pfaden enthalten ist. Es muss jede Kombination jeder Variablendefinition mit jeder p-use, die diese Definition benutzt, getestet werden.The all-p-uses criterion is met if for each node and each variable is a definition-free path with respect to Variable of the node to all elements in the tested paths is included. It has to be every combination of every variable definition be tested with every p-use that uses this definition.

all c-uses-Kriteriumall c-uses criterion

Das all-c-uses-Kriterium fordert die Ausführung mindestens eines definitionsfreien Pfades bezüglich der Variablen des Knotens zu jedem Element für jeden Knoten und jede Variable.The all-c-uses criterion requires execution of at least one definition-free one Path regarding the Variables of the node to each element for each node and variable.

Der größte Anteil von berechnenden Benutzungen im Pseudo-Code sind die Funktionen, die keinen Kontrollfluss einbringen und nicht weiter in Anweisungen aufgeteilt werden.Of the greatest proportion of calculating uses in pseudo-code are the functions, who do not bring in a control flow and not in instructions be split.

all usesall uses

Das Kriterium all uses fordert alle prädikativen und berechnenden variablen Zugriffe, die von einer Definition errechnet werden, zu testen. Formal formuliert muss ein definitionsfreier Pfad bezüglich einer Variable vom Knoten zu allen Elementen für jeden Knoten in jeder Variable enthalten sein.The Criterion all uses requires all predicative and calculating variable accesses that are calculated by a definition too testing. Formally formulated must be a definition-free path with respect to a Variable from node to all elements for each node in each variable be included.

Wie im Vorherigen beschrieben wurde, können die Datenflussorientierten Techniken in SIBAS® G-Plänen die Fehler entdecken, die sich im Datenaustausch zwischen verschiedenen Ereignisklassen verstecken.As described earlier, data flow oriented techniques in SIBAS ® G charts can detect the errors that hide in the data exchange between different event classes.

Konnektoren-basierte TestkriterienConnectors-based test criteria

Es werden einige zusätzliche Kriterien beschrieben die unabhängig von Funktionsbausteinen definiert werden. Als Basis für die Kriterien werden Konnektoren der SIBAS® G-Pläne benutzt. Die Konnektor-Typen sind für SIBAS® G-Sprache festgelegt. So können die Kriterien für alle Projekte ohne Änderung verwendet werden. Das hat den Vorteil, dass die Kriterien für alle Projekte vergleichbar sind.Some additional criteria are described which are defined independently of function modules. Connectors of the SIBAS ® G plans are used as the basis for the criteria. The connector types are defined for SIBAS ® G language. So the criteria can be used for all projects without change. This has the advantage that the criteria for all projects are comparable.

Die nächsten Kriterien teilen die Signale, die an den Konnektoren der Funktionsbausteine vorliegen, in solche Equivalenzklassen auf, dass sie spezielle Werte und Grenzwerte, die für alle Anwendungen akzeptabel sind, zu testen sind.The next Criteria share the signals connected to the connectors of the function blocks exist in such equivalence classes that they have special values and limits for All applications are acceptable to test.

Instrumentierung des Codesinstrumentation of the code

Um den dynamischen Test zu unterstützen und eine automatisierte Aufzeichnung von Testergebnissen zu ermöglichen, müssen die zu testenden Programme instrumentiert werden. Ein instrumentiertes Programm enthält an bestimmten Stellen zusätzlich eingefügte Anweisungen, die zur Aufzeichnung von Informationen während der Testdurchführung benötigt werden.To support the dynamic test and automated recording of test results enable the programs under test to be instrumented. An instrumented program contains additional inserted instructions at certain points which are required for recording information during the test procedure.

Im Allgemeinen ist die Instrumentierung des Codes für die Kontrollfluss- und Datenfluss-orientierte Testtechniken ein gelöstes Problem. Die Anwendung der Instrumentierung ist am Beispiel von verschiedenen Werkzeugen zum Beispiel LDRA gezeigt. Es wird lediglich auf ein konzeptionelles Vorgehen der Instrumentierung hingewiesen. Darüber hinaus wird als zu instrumentierender Code nicht der generierte C-Code, sondern der Pseudo-Code genommen.in the Generally, the instrumentation of the code is for the control flow and data flow oriented testing techniques a solved one Problem. The application of instrumentation is exemplified by various tools for example LDRA shown. It will only pointed to a conceptual approach to instrumentation. About that In addition, the code to be instrumented is not the one generated C code, but the pseudo code taken.

Für die Aufzeichnung von Informationen in einem Anweisungsüberdeckungstest muss jede Anweisung mit einem Zähler besetzt werden, der zu Null initialisiert wird. Ein Zähler wird auf 1 gesetzt, wenn die entsprechende Anweisung beim Test ausgeführt wird. Nach der Testdurchführung wird aus der Summe aller Zählerwerte und der Anzahl der Anweisungen das Überdeckungsmaß ausgerechnet.For the record of information in an instruction coverage test must be every statement with a counter which is initialized to zero. A counter will set to 1 if the corresponding statement is executed during the test. After the test becomes the sum of all counter values and the number of instructions calculates the coverage measure.

Bei Instrumentierung des Zweigüberdeckungstests müssen mit den Zählern Prädikate versetzt werden. Die Zähler müssen maximal bis auf den Wert 2 inkrementiert werden. Einmal wird der Zähler hochgezählt, wenn das Prädikat TRUE ausgewertet wird und noch einmal, wenn das Prädikat auf FALSE ausgewertet wird. Nach der Testdurchführung wird aus der Summe aller Zählerwerte und der Anzahl der Zweige das Überdeckungsmaß ausgerechnet.at Instrumentation of the branch coverage test have to with the counters predicates be offset. The counters have to can be incremented up to the value 2 at most. Once the counter counted up, though the predicate TRUE is evaluated and again if the predicate is up FALSE is evaluated. After the test procedure is the sum of all counter values and the number of branches calculates the coverage measure.

Das all uses Kriterium fordert die Ausführung von allen Benutzungen, die von einer Definition erreichbar sind. Dafür muss jede Definition zusätzlich eine Information über die Anzahl von erreichbaren Benutzungen besitzen. Wenn bei einer Testdurchführung festgelegt wird, dass Zähler einer Definition genauso viel mal hochgezählt werden wie die Anzahl der erreichbaren Benutzungen, dann sind alle Benutzungen der Definition ausgeführt worden.The all uses criterion requires the execution of all uses, which are reachable from a definition. For this, each definition must have an additional one information about have the number of achievable uses. If at one Test procedure is set that counter a definition as many times as the number of times achievable uses, then all uses of the definition accomplished Service.

Der Algorithmus zur Identifizierung der zusammengesetzten logischen Verschaltungen im Pseudo-Code gibt einen Ausgangs punkt für die Instrumentierung des modifizierten Bedingungs-/Entscheidungsüberdeckungstests. Mit dem Algorithmus ist es möglich, die zusammengesetzte logische Verschaltung im Pseudo-Code zu finden.Of the Algorithm for identifying the compound logical Interconnections in the pseudo-code gives a starting point for the instrumentation the modified condition / decision coverage test. With the algorithm it is possible to find the composite logical interconnection in pseudo-code.

Die identifizierten logischen Ausdrücke können im Pseudo-Code nach jeder Ausführung einer SWITCH-Funktion ausgewertet werden. So können die Ergebnisse der atomaren und der Gesamtentscheidung für jeden Testfall gespeichert werden. Nach der Durchführung der Testfälle werden die abgespeicherten Werte und die logischen Ausdrücke einer Analyse unterzogen. Dabei soll entschieden werden, ob jede atomare Bedingung unabhängig von anderen den Wert der Gesamtentscheidung ändert. Anhand der Ergebnisse der Analyse und der Anzahl der geforderten Kriterien wird das Überdeckungsmaß ermittelt.The identified logical expressions can in pseudo code after each execution a SWITCH function are evaluated. So can the results of the atomic and the overall decision for saved every test case. After performing the test cases become the stored values and the logical expressions of a Subjected to analysis. It should be decided whether each atomic Condition independent other changes the value of the overall decision. Based on the results In the analysis and the number of required criteria, the degree of overlap is determined.

Damit ist gezeigt, dass die Kriterien für die automatische Ermittlung der Testüberdeckung geeignet sind. Im Detail sind die Algorithmen der Instrumentierung vom generierten C-Code abhängig, dies wird jedoch weiter nicht betrachtet.In order to is shown that the criteria for automatic detection the test coverage are suitable. In detail, the algorithms of instrumentation dependent on the generated C code, however, this will not be considered further.

Der Schutzbereich der vorliegenden Erfindung ist nicht auf die Verwendung von SIBAS® beschränkt, sondern schließt alle vergleichbaren Projektierungstools zur Erstellung graphischer Modelle ein.The scope of the present invention is not limited to the use of SIBAS ®, but includes any similar configuration tools to create graphical models.

Die Erfindung wird nachstehend anhand eines Ausführungsbeispiels näher beschrieben. Es zeigen:The Invention will be described below with reference to an embodiment. Show it:

1 einen Abschnitt aus einer Planblattseite "Stufe-Sollwertumsetzung für Klimaanlage" als Beispiel für ein CFC; 1 a section from a plan sheet page "Air conditioner setpoint conversion" as an example of a CFC;

2 eine Planblattseite aus dem SIBAS® G- Programm „Temperaturmittelwertbildung" mit Signalbelegungen durch die funktionalen Testfälle; 2 a sheet from the SIBAS ® G program "Temperature averaging" with signal assignments through the functional test cases;

3 eine Darstellung zur Zweigüberdeckung eines Pseudo-Codes bei einem Beispiel „Temperaturmittelwertbildung; 3 a representation for the branch coverage of a pseudo-code in an example "averaging temperature;

4 eine Darstellung zur Überdeckung nach dem all uses-Kriterium auf Pseude-Code in der Planblattseite „Temperaturmittelwertbildung; 4 a representation for coverage according to the all uses criterion on pseudo-code in the plan page "Temperature averaging;

5 die Schritte des erfindungsgemäßen Verfahrens. 5 the steps of the method according to the invention.

Es wird eine empirische Untersuchung anhand existierender SIBAS® G-Pläne und Testfälle aus einem realen Projekt beschrieben. Mit Testfällen aus Prüfspezifikationen wird die Überdeckungsmasse geliefert und die Sensitivität der nicht geprüften Funktionalität diskutiert. Es wird die Anwendung der definierten Kriterien in SIBAS® G- Plänen aus einem realen Projekt durchgeführt. Die Pläne sind mit vorwiegend arithmetischen Funktionsbausteinen projektiert. Grundsätzlich ist auch eine Projektierung mit vorwiegend logischen Verknüpfungen möglich.An empirical investigation is described based on existing SIBAS ® G plans and test cases from a real project. With test cases from test specifications, the overlay mass is delivered and the sensitivity of the unaudited functionality is discussed. The application of the defined criteria in SIBAS ® G plans is carried out from a real project. The plans are configured with predominantly arithmetic function blocks. Basically, a configuration with predominantly logical links is possible.

Es wurde die exemplarische Messung der Testvollständigkeit beispielhaft an Hand einiger SIBAS G-Pläne ausgeführt. Die Beispiel-Pläne als auch die auf Vollständigkeit geprüften Testfälle stammen aus einer realen Projektierung mit der SIBAS G- Entwicklungsumgebung. Es wurden die Kriterien an einem SIBAS G-Plan mit vorwiegend arithmetischen Funktionsbausteinen angewandt. Detaillierte Verfahrensbeschreibungen sind dem Folgenden zu entnehmen.It For example, the exemplary measurement of test integrity has been exemplified of some SIBAS G plans executed. The example plans as well as the completeness tested test cases come from a real project planning with the SIBAS G development environment. The criteria were based on a SIBAS G plan with predominantly arithmetic Function blocks applied. Detailed process descriptions are to be taken from the following.

Anhand von SIBAS® G-Plänen aus realen Projekten wird die Anwendbarkeit der definierten Kriterien gezeigt. Dabei wird der Grad der Testüberdeckung des Pseudo-Codes bei der Durchführung der funktionalen Testfälle ermittelt. Die funktionalen Testfälle werden aus einer bestehenden Prüfspezifikation entnommen.The applicability of the defined criteria is shown on the basis of SIBAS ® G plans from real projects. The degree of test coverage of the pseudo-code is determined during the execution of the functional test cases. The functional test cases are taken from an existing test specification.

Als Kriterien werden in der empirischen Untersuchung Zweigüberdeckungen, modifizierte Bedingungs-/Entscheidungsüberdeckungen, all uses-Kriterium und Konnektor-basierte Kriterien verwendet, die sich als Kriterien im Struktur-orientierten Test auf Code-Ebene bewährt haben. Die Zweigüberdeckung subsumiert die Anweisungsüberdeckung, ist jedoch im Gegensatz zur Pfadüberdeckung mit akzeptablem Aufwand ausführbar. Die modifizierte Bedingungs-/Entscheidungsüberdeckung fordert einen gründlichen Test der Logik des Pseudo-Codes und stellt dabei ein Optimum zwischen Aufwand und Testqualität dar. Das all uses-Kriterium hat eine Datenfluss-orientierte Sichtweise auf den Kontrollfluss und fordert den Test einiger Ereignisklassen übergreifender Teilpfade.When Criteria are in the empirical investigation branch overlaps, modified condition / decision coverage, uses all uses criterion and connector-based criteria themselves as criteria in the structure-oriented test at the code level proven to have. The branch overlap subsumes the instruction coverage, is however in contrast to the path coverage feasible with reasonable effort. The modified condition / decision coverage calls for a thorough Test the logic of the pseudo-code and set an optimum between Effort and test quality The all uses criterion has a dataflow-oriented view on the control flow and asks the test of some event classes more comprehensive Partial paths.

Zur empirischen Untersuchung der Überdeckungskriterien wird eine SIBAS® G-Planblattseite ausgewählt, die vorwiegend arithmetische Berechnungen enthält.For empirical investigation of the coverage criteria, a SIBAS ® G plan sheet page is selected, which contains mainly arithmetic calculations.

Ausführungsbeispiel mit numerischen Berechnungenembodiment with numerical calculations

Das Beispiel ist eine Planblattseite aus dem Funktionspaket "Klimaanlage". Die in dem Beispiel vorgestellte Funktion sorgt für Mittelwertbildung von vier Außentemperaturwerten. Wenn der Maximalwert von den vier Temperaturwerten größer ist als der mit dem Faktor 1,1 multiplizierte Mittelwert der anderen drei, wird er aus der Berechnung ausgeschlossen. Dasselbe passiert, wenn der Minimalwert kleiner ist als der mit dem Faktor 0,9 multiplizierte Mittelwert der anderen drei Temperaturwerte. Wenn der Minimalwert und der Maximalwert aus der Berechnung ausgeschlossen werden, wird der Temperaturmittelwert aus den restlichen zwei Temperaturwerten ausgerechnet (siehe 2).The example is a sheet of sheet from the function package "air conditioning". The function presented in the example provides averaging of four outside temperature values. If the maximum value of the four temperature values is greater than the average of the other three multiplied by the factor 1.1, it is excluded from the calculation. The same happens if the minimum value is less than the average of the other three temperature values multiplied by the factor 0.9. If the minimum value and the maximum value are excluded from the calculation, the average temperature value from the remaining two temperature values is calculated (see 2 ).

Folgende Eingangssignale liegen vor:

  • • $62E5W31 – "Fallen_KLM1_Aussen_Temp" – Vom ersten Sensor gelieferter Temperaturwert
  • • $62E5W32 – "Fallen_KLM2_Aussen_Temp" – Vom zweiten Sensor gelieferter Temperaturwert
  • • $62E5W33 – "Fallen_KLM3_Aussen_Temp" – Vom dritten Sensor gelieferter Temperaturwert
  • • $62E5W34 – "Fallen_KLM4_Aussen_Temp" – Vom vierten Sensor gelieferter Temperaturwert
  • • $61M5001 – "Außentemperatur Ungültig – Das Signal hat den Wert 1, wenn die Frostwarnung und der Frostschutz eingeschaltet werden soll
The following input signals are available:
  • • $ 62E5W31 - "Fall_KLM1_Out_Temp" - Temperature value supplied by the first sensor
  • • $ 62E5W32 - "Fall_KLM2_Out_Temp" - Temperature value supplied by the second sensor
  • • $ 62E5W33 - "Fall_KLM3_Aussen_Temp" - Temperature value supplied by the third sensor
  • • $ 62E5W34 - "Fall_KLM4_Aussen_Temp" - Temperature value supplied by the fourth sensor
  • • $ 61M5001 - "Outside temperature invalid - The signal is set to 1 if the frost warning and frost protection are to be switched on

Die Funktion hat die folgenden Ausgangssignale:

  • • $62M7W00 – Mittelwert der Außentemperatur
  • • $62M5000 – "Frostwarnung" – das Signal hat den Wert 1, wenn die Frostwarnung aktiviert werden soll
  • • $61M5003 – "Frostschutz" – das Signal hat den Wert 1, wenn der Frostschutz aktiviert werden soll
The function has the following output signals:
  • • $ 62M7W00 - Average outdoor temperature
  • • $ 62M5000 - "Frost warning" - the signal is set to 1 if the frost warning is to be activated
  • • $ 61M5003 - "Frost protection" - the signal is set to 1 if frost protection is to be activated

Entsprechend der Prüfspezifikation sind für das Planblatt sieben Testfälle entworfen. Die ersten drei Testfälle testen die Mittelwertbildung und die restlichen die Aktivierung der Frostwarnung und des Frostschutzes. Im Folgenden sind die Testfälle aufgelistet.

  • 1. Eingangssignale: $62E5W31 = 20° C – Außentemperaturwert vom ersten Sensor $62E5W32 = 21° C – Außentemperaturwert vom zweiten Sensor $62E5W33 = 22° C – Außentemperaturwert vom dritten Sensor $62E5W31 = 23° C – Außentemperaturwert vom vierten Sensor
  • Ausgangssignal: $62M7W00 = 21,5° C – Der aktuelle Mittelwert der Außentemperatur
  • 2. Eingangssignale: $62E5W31 = 20° C – Außentemperaturwert vom ersten Sensor $62E5W32 = 21° C – Außentemperaturwert vom zweiten Sensor $62E5W33 = 22° C – Außentemperaturwert vom dritten Sensor $62E5W31 = 25° C – Außentemperaturwert vom vierten Sensor
  • Ausgangssignal: $62M7W00 = 22° C – Der aktuelle Mittelwert der Außentemperatur
  • 3. Eingangssignale: $62E5W31 = 16° C – Außentemperaturwert vom ersten Sensor $62E5W32 = 21° C – Außentemperaturwert vom zweiten Sensor $62E5W33 = 22° C – Außentemperaturwert vom dritten Sensor $62E5W31 = 25° C – Außentemperaturwert vom vierten Sensor
  • Ausgangssignal: $62M7W00 = 21,5° C – Der aktuelle Mittelwert der Außentemperatur
  • 4. Eingangssignale: $61M5001 = 1 – Außentemperatur ist ungültig
  • Ausgangssignale: $61M5000 = 1 – Frostwarnung ist aktiv $61M5003 = 1 – Frostschutz ist aktiv
  • 5. Eingangssignale: $61M5001 = 0 – Außentemperatur ist gültig $62M7W00 = 5°C – Mittelwert der Außentemperatur
  • Ausgangssignale: $61M5000 = 0 – Frostwarnung deaktiviert $61M5003 = 1 – Frostschutz ist aktiv
  • 6. Eingangssignale: $61M5001 = 0 – Außentemperatur ist gültig $62M7W00 = 1° C – Mittelwert der Außentemperatur
  • Ausgangssignale: $61M5000 = 1 – Frostwarnung ist aktiv $61M5003 = 1 – Frostschutz ist aktiv
  • 7. Eingangssignale: $61M5001 = 0 – Außentemperatur ist gültig $62M7W00 = 7° C – Mittelwert der Außentemperatur
  • Ausgangssignale: $61M5000 = 0 – Frostwarnung ist deaktiviert §61M5003 = 0 – Frostschutz ist deaktiviert
According to the test specification, seven test cases are designed for the plan sheet. The first three test cases test the averaging and the remaining the activation of the frost warning and the frost protection. The following are the test cases listed.
  • 1. Input signals: $ 62E5W31 = 20 ° C - Outside temperature value from first sensor $ 62E5W32 = 21 ° C - Outside temperature value from second sensor $ 62E5W33 = 22 ° C - Outside temperature value from third sensor $ 62E5W31 = 23 ° C - Outside temperature value from fourth sensor
  • Output signal: $ 62M7W00 = 21.5 ° C - The current average of the outdoor temperature
  • 2. Input signals: $ 62E5W31 = 20 ° C - Outside temperature value from first sensor $ 62E5W32 = 21 ° C - Outside temperature value from second sensor $ 62E5W33 = 22 ° C - Outside temperature value from third sensor $ 62E5W31 = 25 ° C - Outside temperature value from fourth sensor
  • Output signal: $ 62M7W00 = 22 ° C - The current average of the outside temperature
  • 3. Input signals: $ 62E5W31 = 16 ° C - Outside temperature value from first sensor $ 62E5W32 = 21 ° C - Outside temperature value from second sensor $ 62E5W33 = 22 ° C - Outside temperature value from third sensor $ 62E5W31 = 25 ° C - Outside temperature value from fourth sensor
  • Output signal: $ 62M7W00 = 21.5 ° C - The current average of the outdoor temperature
  • 4. Input signals: $ 61M5001 = 1 - outdoor temperature is invalid
  • Output signals: $ 61M5000 = 1 - Frost warning is active $ 61M5003 = 1 - Frost protection is active
  • 5. Input signals: $ 61M5001 = 0 - Outdoor temperature is valid $ 62M7W00 = 5 ° C - Average outdoor temperature
  • Output signals: $ 61M5000 = 0 - Frost warning deactivated $ 61M5003 = 1 - Frost protection is active
  • 6. Input signals: $ 61M5001 = 0 - Outdoor temperature is valid $ 62M7W00 = 1 ° C - Average outdoor temperature
  • Output signals: $ 61M5000 = 1 - Frost warning is active $ 61M5003 = 1 - Frost protection is active
  • 7. Input signals: $ 61M5001 = 0 - Outdoor temperature is valid $ 62M7W00 = 7 ° C - Average outdoor temperature
  • Output signals: $ 61M5000 = 0 - Frost warning is deactivated §61M5003 = 0 - Frost protection is deactivated

Die Werte der Eingangssignale zu den obigen Testfällen sind in 2 dargestellt. Die Werte insbesondere zum ersten Testfall sind oben, die zum zweiten in der Mitte, die zum dritten unten, die zum vierten ganz oben dargestellt. In den gleichen Positionen werden die zugehörigen Werte der Ausgangssignale der Funktionsbausteine im Verschaltungsplan aufgezeichnet.The values of the input signals to the above test cases are in 2 shown. The values in particular for the first test case are at the top, the second at the middle, the third at the bottom, the fourth at the top. The associated values of the output signals of the function blocks are recorded in the same positions in the interconnection diagram.

Die zwei Funktionen "Bildung des Mittelswertes" und "Aktivierung des Frostschutzes und der Frostwarnung" wurden im Planblatt einzeln getestet. In der nachfolgenden Untersuchung der Testüberdeckung wird davon ausgegangen, dass zwischen den Tests "Bildung des Mittelwertes" und "Aktivierung des Frostschutzes und der Frostwarnung " keine Abhängigkeiten existieren. Die Überdeckung wird getrennt ermittelt, dabei werden nur die betroffenen Strukturelemente des Planblatts berücksichtigt.The two functions "Education the mean value "and" activation of frost protection and the frost warning " individually tested in the sheet. In the following investigation the test coverage it is assumed that between the tests "formation of the mean" and "activation of the antifreeze and the frost alarm "no dependencies exist. The cover is determined separately, only the affected structure elements are affected of the plan sheet.

Zweigüberdeckung des Pseudo-CodesBranch Coverage of the pseudo-code

Um eine Zweigüberdeckung des Pseudo-Codes zu erreichen, müssen die prädikativen Bedingungen für alle Funktionsbauelemente einmal zu true und einmal zu false evaluiert werden. In 3 sind die Bedingungen neben den zutreffenden Funktionsbausteinen dargestellt. Ein Plus eines Testfalls zeigt, dass diese Bedingung mit dem Testfall evaluiert wird.In order to achieve a branch coverage of the pseudo-code, the predicative conditions for all functional components have to be evaluated once to true and once to false. In 3 the conditions are shown next to the applicable function blocks. A plus of a test case shows that this Be be evaluated with the test case.

In der Funktion "Bildung des Mittelwertes" sind insgesamt 10 Bedingungen (siehe 3). Das Überdeckungsmaß nach einzelnen Testfällen ist in Tabelle 1 notiert.In the function "formation of the average value" a total of 10 conditions (see 3 ). The coverage according to individual test cases is listed in Table 1.

Tabelle 1 zeigt das Überdeckungsmaß, das dem Zweiüberdeckungsmaß des Pseudo-Codes entspricht. Es ist dem Planblatt "Mittelwert der Außentemperatur" und der Funktion "Bildung des Mittelwertes" zugeordnet.table Fig. 1 shows the overlap amount that the Two overlap measure of the pseudo-code equivalent. It is assigned to the sheet "Average outdoor temperature" and the "Average value" function.

Figure 00270001
Tabelle 1
Figure 00270001
Table 1

Die Funktion "Aktivierung des Frostschutzes und der Frostwarnung" weist insgesamt 8 Bedingungen auf. Das Überdeckungsmaß nach einzelnen Testfällen ist in Tabelle 2 notiert.The Function "Activation frost protection and frost warning "has a total of 8 conditions. The overlap measure after individual test cases is listed in Table 2.

2 zeigt eine Planblattseite aus SIBAS® G-Programm "Temperaturmittelwertbildung" mit Signalbelegungen durch die funktionalen Testfälle. 2 shows a plan sheet page from SIBAS ® G program "Temperature averaging" with signal assignments through the functional test cases.

3 bezieht sich auf die Zweigüberdeckung des Pseudo-Codes im Beispiel "Temperaturmittelwertbildung". 3 refers to the branch coverage of the pseudo-code in the example "temperature averaging".

Tabelle 2 stellt das Überdeckungsmaß, das dem Zweigüberdeckungsmaß des Pseudo-Codes entspricht dar. Dies betrifft Planblatt "Mittelwertbildung der Außentemperatur" und die Funktion "Aktivierung des Frostschutzes und der Frostwarnung".table 2 represents the overlap measure that the Branch coverage of pseudo-code This corresponds to the sheet "Averaging the outdoor temperature" and the function "Activation of frost protection and the frost warning ".

Figure 00280001
Tabelle 2
Figure 00280001
Table 2

Mit den Testfällen aus Prüfspezifikationen werden alle Bedingungen in dem Verschaltungsplan evaluiert. Damit wird vollständige Zweigüberdeckung des Pseudo-Codes erreicht.With the test cases from test specifications all conditions in the interconnection plan are evaluated. In order to will be complete Branch Coverage reached the pseudo-code.

all uses-Kriteriumall uses criterion

Die Überdeckung des all uses-Kriteriums im Pseudo-Codes ist in 4 grafisch dargestellt. Die Signalflüsse werden getestet. Die Bedingungen, die der Kontrollfluss in den Pseudo-Code einbringt und die für die Definition der Signale verantwortlich sind, sind ganz unten und ganz rechts dargestellt.The coverage of the all uses criterion in pseudo-codes is in 4 shown graphically. The signal flows are tested. The conditions that the control flow introduces into the pseudo-code and that are responsible for the definition of the signals are shown at the bottom and the far right.

In der Funktion "Bildung des Mittelwertes" sind insgesamt 49 Teilpfade zwischen den Definitionen und Benutzungen zu überdecken, um vollständig das all uses-Kriterium des Pseudo-Codes zu erfüllen. Das Überdeckungsmaß nach den einzelnen Testfällen ist in Tabelle 1 dargestellt.In the function "Education of the mean " a total of 49 subpaths between the definitions and uses to cover completely to fulfill the all uses criterion of the pseudo-code. The coverage according to the individual test cases is shown in Table 1.

Tabelle 3 zeigt all uses-Überdeckung des Pseudo-Codes im Planblatt "Mittelwertbildung der Außentemperatur" bei der Funktion "Bildung des Mittelwertes"

Figure 00290001
Tabelle 3 Table 3 shows all uses coverage of the pseudo-code in the sheet "Averaging the outside temperature" in the "Averaging" function
Figure 00290001
Table 3

Ein Pfad zwischen der Definition des Signals TEMP SW3.OUT und deren Nutzung im Funktionsbaustein TEMP SW2 ist nicht überdeckt. Der Pfad ist in 4 oben rechts dargestellt und mit dem Zeichen "-" gekennzeichnet. Im folgenden Abschnitt des Pseudo-Codes sind Definition und Benutzung unterstrichen dargestellt.A path between the definition of the signal TEMP SW3.OUT and its use in the function block TEMP SW2 is not covered. The path is in 4 shown on the top right and marked with the sign "-". In the following section of the pseudo-code definition and use are underlined.

Figure 00290002
Figure 00290002

Die Testfälle testen nicht den Fall, dass nur der minimale Temperaturwert als ungültig interpretiert wird und nicht in der Berechnung des Mittelwertes einfließt. Ein zusätzlicher Testfall wäre:

  • 8. Eingangssignale: $62E5W31 = 16°C – Außentemperaturwert vom ersten Sensor $62E5W32 = 21°C – Außentemperaturwert vom zweiten Sensor $62E5W33 = 22°C – Außentemperaturwert vom dritten Sensor $62E5W31 = 23°C – Außentemperaturwert vom vierten Sensor
  • Ausgangssignal: $62M7W00 = 22°C – Mittelwert des zweiten, dritten und vierten Sensors der Außentemperatur
The test cases do not test the case that only the minimum temperature value is interpreted as invalid and is not included in the calculation of the mean value. An additional test case would be:
  • 8. Input signals: $ 62E5W31 = 16 ° C - Outside temperature value from first sensor $ 62E5W32 = 21 ° C - Outside temperature value from second sensor $ 62E5W33 = 22 ° C - Outside temperature value from third sensor $ 62E5W31 = 23 ° C - Outside temperature value from fourth sensor
  • Output signal: $ 62M7W00 = 22 ° C - Average of the second, third and fourth outdoor temperature sensor

In 4 ist der zusätzliche Testfall jeweils durch den untersten Zahlenwert dargestellt.In 4 the additional test case is represented by the lowest numerical value.

Die Durchführung des Testfalls führt zu einem abweichenden Ergebnis für das Ausgangssignal:

  • 9. Eingangssignale: $62E5W31 = 16°C – Außentemperaturwert vom ersten Sensor $62E5W32 = 21°C – Außentemperaturwert vom zweiten Sensor $62E5W33 = 22°C – Außentemperaturwert vom dritten Sensor $62E5W31 = 23°C – Außentemperaturwert vom vierten Sensor
  • Ausgangssignal: $62M7W00 = 22,64°C – Berechneter Mittelwert der Außentemperatur
The execution of the test case leads to a different result for the output signal:
  • 9. Input signals: $ 62E5W31 = 16 ° C - Outside temperature value from first sensor $ 62E5W32 = 21 ° C - Outside temperature value from second sensor $ 62E5W33 = 22 ° C - Outside temperature value from third sensor $ 62E5W31 = 23 ° C - Outside temperature value from fourth sensor
  • Output signal: $ 62M7W00 = 22.64 ° C - Calculated average of the outside temperature

Der Testfall liefert somit einen Wert des Ausgangssignals, der größer als der spezifizierte Mittelwert.Of the Test case thus provides a value of the output signal greater than the specified mean.

Figure 00300001
Figure 00300001

Der Unterschied ist dadurch begründet, dass der Minus-Funktionsbaustein TEMP SB3 früher aufgerufen wird, als der Summe-Funktionsbaustein TEMP AD2. Das heißt, dass im aktuellen Berechnungsschritt nicht die aktuelle Summe der Temperaturwerte, sondern die Summe von einem Schritt vorher genommen wird.Of the Difference is justified by that the minus function block TEMP SB3 earlier is called as the sum function block TEMP AD2. It means that in the current calculation step, not the current sum of the temperature values, but the sum is taken from one step before.

4 zeigt eine Überdeckung nach dem all-uses Kriterium auf Pseudo-Code auf der Planblattseite "Temperaturmittelwertbildung". 4 shows a coverage according to the all-uses criterion on pseudo code on the sheet page "temperature averaging".

So weist das all uses-Kriterium des Pseudo-Codes auf eine nicht vollständig getestete Funktionalität hin. Die Abweichung von der Spezifikation ist jedoch nicht gravierend: Die Ereignisklasse T7 wird in ms-Takt berechnet. So ist es im Betrieb der Software nicht entscheidend, ob für die Berechnung des Mittelwertes die aktuelle Summe der Temperaturwerte oder die gebildete vor ein Paar ms frühere Summe genommen wird.So assigns the all uses criterion of the pseudo-code to a not fully tested Functionality. The deviation from the specification, however, is not serious: The event class T7 is calculated in ms cycle. That's how it works the software is not crucial, whether for the calculation of the mean value the current sum of the temperature values or the formed one before Couple ms earlier Sum is taken.

In der Funktion "Aktivierung des Frostschutzes und der Frostwarnung" sind insgesamt 12 Teilpfade zu überdecken. Das Überdeckungsmaß nach den einzelnen Testfällen ist in Tabelle 2 dargestellt.In the function "Activation frost protection and frost warning ", a total of 12 sub-paths must be covered. The coverage according to the individual test cases is shown in Table 2.

Tabelle 4 zeigt eine Überdeckung des Pseudo-Codes nach dem all uses-Kriterium im Planblatt "Mittelwertbildung der Außentemperatur" bei der Funktion "Aktivierung des Frostschutzes und der Frostwarnung".table 4 shows an overlap of the pseudo-code according to the all uses criterion in the sheet "Averaging the outdoor temperature "at the function" Activation of frost protection and the frost warning ".

Figure 00310001
Tabelle 4
Figure 00310001
Table 4

Mit den Testfällen aus der Prüfspezifikation werden alle Bedingungen in der Funktion "Aktivierung des Frostschutzes und der Frostwarnung" evaluiert. Damit wird in der Teilfunktion die vollständige Überdeckung des all uses-Kriterium des Pseudo-Codes erreicht.With the test cases from the test specification All conditions in the function "Activation of antifreeze and the Frost warning "evaluated. Thus, the subfunction completely covers the all uses criterion reached the pseudo-code.

Konnektor-basierte KriterienConnector-based criteria

Die Konnektor-basierten Kriterien teilen die Signale, die an den Konnektoren der Funktionsbausteine vorliegen, in Äquivalenzklassen auf und verlangen den Test spezieller Werte und Grenzwerte. Die Konnektor-basierten Kriterien fordern Testfälle zu Überläufen, Rundungen von numerischen Konnektoren und möglichen Zuständen von binären Konnektoren.The Connector-based criteria divide the signals sent to the connectors of the function modules are in equivalence classes and require the test of special values and limits. The connector-based Criteria demand test cases to overflows, rounding of numerical connectors and possible states of binary Connectors.

In dem vorliegenden Planblatt (siehe 2) sind 54 normierten Konnektoren und elf binäre Konnektoren verwendet. An den normierten Konnektoren wird keiner von den elf geforderten Werten mit den Testfällen aus der Prüfspezifikation getestet. Alle binären Konnektoren werden mit den geforderten Werten 1 und 0 belegt. Damit erreicht die Überdeckung der Konnektor-basierten Kriterien nach Ausführung der Testfälle den Wert 3,6%.In this sheet (see 2 ) are 54 normalized connectors and 11 binary connectors used. None of the eleven required values are tested on the standardized connectors with the test cases from the test specification. All binary connectors are assigned the required values 1 and 0. Thus, the coverage of the connector-based criteria after execution of the test cases reaches the value 3.6%.

Der Test der Konnektor-basierten Kriterien kann sehr aufwändig werden. Er ist daher nur für Planblätter mit kritischer Funktionalität zu fordern, die bei Fehlverhalten einen bedeutenden Ausfall verursachen können.Of the Testing the connector-based criteria can be very costly. He is therefore only for plan leaves with critical functionality to demand that cause a major failure in misconduct can.

5 zeigt die Schritte des erfindungsgemäßen Verfahrens in einem Blockdiagramm. Aus dem Pseudo-Code erfolgt ein Ermitteln von Testvollständigkeitskriterien während eines dynamischen Testens. Das Verfahren umfasst Projektieren von Software mittels eines graphischen Modells bei einem Schritt S100, Ableiten eines Pseudo-Codes bei einem Schritt S110 und Ermitteln von Testvollständigkeitskriterien mit einem Schritt 5120. 5 shows the steps of the method according to the invention in a block diagram. The pseudo-code is used to determine test completeness criteria during dynamic testing. The method includes projecting software using a graphical model at step S100, deriving a pseudo-code at step S110, and determining test completion criteria in one step 5120 ,

Claims (9)

Verfahren zur strukturorientierten Prüfung der Testvollständigkeit mittels eines graphischen Modells, insbesondere in Form von Continuous Function Charts (CFC), projektierter Software (S100), gekennzeichnet durch Ableiten eines Pseudo-Codes (S110) aus dem graphischen Modell der Software, aus dem Pseudo-Code erfolgendes Ermitteln von Testvollständigkeitskriterien (S120) während eines Testens.Method for structure-oriented testing of test completeness by means of a graphic model, in particular in the form of continuous Function Charts (CFC), configured software (S100), marked by Deriving a pseudo-code (S110) from the graphical Model of software, determining from the pseudo-code of test completeness criteria (S120) during a testing. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Pseudo-Code die wesentlichen Strukturmerkmale des Modells enthält.Method according to claim 1, characterized in that that the pseudo-code is the essential structural features of the model contains. Verfahren nach Anspruch 1 oder 2. dadurch gekennzeichnet, dass eine Überdeckung der relevanten Strukturen des Modells gefordert wird.A method according to claim 1 or 2, characterized that an overlap the relevant structures of the model is required. Verfahren nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass Testvollständigkeitskriterien beispielsweise die Anweisungsüberdeckung, die Zweigüberdeckung, die Bedingungs-/Entscheidungsüberdeckung oder die All-Uses-Überdeckung sind.Method according to one or more of claims 1 to 3, characterized in that test completeness criteria, for example the instruction coverage, the branch cover, the condition / decision coverage or the all-uses coverage are. Verfahren nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass Testvollständigkeitskriterien beispielsweise konnektorbasierte Kriterien sind.Method according to one or more of claims 1 to 4, characterized in that test completeness criteria, for example are connector-based criteria. Verfahren nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass ein Softwaremodultest erfolgt.Method according to one or more of claims 1 to 5, characterized in that a software module test takes place. Verfahren nach einem oder mehreren der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass eine automatische Testüberdeckungsmaßermittlung erfolgt.Method according to one or more of claims 1 to 6, characterized in that an automatic Testüberdeckungsmaßermittlung he follows. Vorrichtung zum Ausführen eines Verfahrens nach einem oder mehreren der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Vorrichtung einen Personal-Computer aufweist.Apparatus for carrying out a method according to one or more of the claims 1 to 7, characterized in that the device is a personal computer having. Computerprogrammprodukt mit gespeicherten Daten zur Ausführung eines Verfahrens nach einem oder mehreren der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass das Computerprogrammprodukt auf einem Personal-Computer verwendbar ist.Computer program product with stored data for execution A method according to one or more of claims 1 to 7, characterized in that the computer program product on a personal computer is usable.
DE200410039832 2004-08-17 2004-08-17 Structural coverage criteria for continuous function charts Ceased DE102004039832A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200410039832 DE102004039832A1 (en) 2004-08-17 2004-08-17 Structural coverage criteria for continuous function charts
PCT/EP2005/053562 WO2006018363A2 (en) 2004-08-17 2005-07-22 Structural overlapping criteria for continuous function charts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410039832 DE102004039832A1 (en) 2004-08-17 2004-08-17 Structural coverage criteria for continuous function charts

Publications (1)

Publication Number Publication Date
DE102004039832A1 true DE102004039832A1 (en) 2006-03-09

Family

ID=35636756

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410039832 Ceased DE102004039832A1 (en) 2004-08-17 2004-08-17 Structural coverage criteria for continuous function charts

Country Status (2)

Country Link
DE (1) DE102004039832A1 (en)
WO (1) WO2006018363A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19504895A1 (en) * 1995-02-14 1996-08-22 Siemens Ag Structured programme module testing method
DE19803032A1 (en) * 1998-01-27 1999-07-29 Daimler Chrysler Ag Computerized optimization of test specifications for products and processes
DE10206287A1 (en) * 2001-04-03 2002-10-10 Giesecke & Devrient Gmbh Method for testing software and/or portable data carrier, especially chip cards, involves detecting execution of command with pre-set conditions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19504895A1 (en) * 1995-02-14 1996-08-22 Siemens Ag Structured programme module testing method
DE19803032A1 (en) * 1998-01-27 1999-07-29 Daimler Chrysler Ag Computerized optimization of test specifications for products and processes
DE10206287A1 (en) * 2001-04-03 2002-10-10 Giesecke & Devrient Gmbh Method for testing software and/or portable data carrier, especially chip cards, involves detecting execution of command with pre-set conditions

Also Published As

Publication number Publication date
WO2006018363A2 (en) 2006-02-23
WO2006018363A3 (en) 2007-04-19

Similar Documents

Publication Publication Date Title
EP0852759B1 (en) Drafting method for industrial and building systems and computer-controlled planning system for use in said method
EP0894304B1 (en) Process for automatic diagnosis of technical systems taking into consideration efficient knowledge acquisition and efficient processing in relation to operational time
EP1703350B1 (en) Diagnostics of an automation system
DE602005004997T2 (en) Diagnostic procedure and system
DE60113114T2 (en) INTEGRATED DIAGNOSTIC SYSTEM AND METHOD
DE19742446B4 (en) Fault diagnosis method
DE60017457T2 (en) PROCEDURE FOR ISOLATING AN ERROR IN ERROR MESSAGES
DE102017102651A1 (en) Apparatus for formulating rules in a process control network
DE102004024262A1 (en) Knowledge-based diagnostic system for a complex technical system with two separate knowledge bases for processing technical system data and processing customer complaints
DE102007010978A1 (en) Electrical system's diagnosis supporting device for use in motor vehicle, has evaluation unit to produce list of incorrect components that are sorted based on dependence value, and output/supply unit to display or provide list
WO2000073903A2 (en) Method and system for determining a fault tree of a technical system, computer program product and a computer readable storage medium
EP1657670A1 (en) System and method for the control of the state and progress of technical processes or a technical project
DE102018116911A1 (en) Method for generating source code
DE102010033861A1 (en) On a formal analysis based development of requirements specifications
EP2363809B1 (en) Method for optimizing a control program for actuators
DE102004039832A1 (en) Structural coverage criteria for continuous function charts
EP1960854B1 (en) Diagnostic method and diagnostic device for the function-oriented diagnosis of a system comprising interconnected components
DE10057575A1 (en) Method for automatic software regeneration applies an abstract model to the properties of an application made possible by software converting these into software mechanically.
DE102010047954A1 (en) Formal offline verification of executable models
DE102020206327A1 (en) Method and device for testing a technical system
DE102017104049B4 (en) METHOD AND DEVICE FOR CHECKING THE RELIABILITY OF A CHIP
EP3770709B1 (en) Method for operating an automated technical installation
EP3623880A1 (en) Method for integrating data of assets of a technical installation into a platform, digital platform and computer program product
AT511297B1 (en) Method for generating a model of a communication task
DE102017212612A1 (en) Method for automatically generating tests for the software of a vehicle

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection