DE102019210562A1 - Method and device for testing software - Google Patents

Method and device for testing software Download PDF

Info

Publication number
DE102019210562A1
DE102019210562A1 DE102019210562.9A DE102019210562A DE102019210562A1 DE 102019210562 A1 DE102019210562 A1 DE 102019210562A1 DE 102019210562 A DE102019210562 A DE 102019210562A DE 102019210562 A1 DE102019210562 A1 DE 102019210562A1
Authority
DE
Germany
Prior art keywords
software
test cases
test
regression model
observations
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.)
Pending
Application number
DE102019210562.9A
Other languages
German (de)
Inventor
Johannes Goth
Eric Sebastian Schmidt
Christopher Huth
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019210562.9A priority Critical patent/DE102019210562A1/en
Publication of DE102019210562A1 publication Critical patent/DE102019210562A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

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

Abstract

Verfahren (10) zum Prüfen von Software, gekennzeichnet durch folgende Merkmale:- aus einer Testfallsammlung (21) werden zufällige Eingabedaten (22) für die Software gewonnen (11),- durch eine Clusteranalyse (12) der Eingabedaten (22) werden Testfälle ausgewählt (23),- in den ausgewählten Testfällen werden Beobachtungen (29) hinsichtlich eines Laufzeitverhaltens der Software angestellt (13),- aus den Testfällen und jeweiligen Beobachtungen (29) wird ein Regressionsmodell des Laufzeitverhaltens abgeleitet (14) und- anhand des Regressionsmodelles werden weitere Testfälle erstellt (15) und ausgeführt (24).A method (10) for testing software, characterized by the following features: - random input data (22) for the software are obtained (11) from a test case collection (21), - test cases are selected by a cluster analysis (12) of the input data (22) (23), - in the selected test cases, observations (29) are made with regard to a runtime behavior of the software (13), - a regression model of the runtime behavior is derived from the test cases and respective observations (29) (14) and - based on the regression model, further Test cases created (15) and executed (24).

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Prüfen von Software. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.The present invention relates to a method for testing software. The present invention also relates to a corresponding device, a corresponding computer program and a corresponding storage medium.

Stand der TechnikState of the art

Ein automatisiertes Verfahren für Softwaretests, bei der das zu testende Programm an einer oder mehreren Eingabeschnittstellen wiederholt mit Zufallsdaten beschickt wird, wird in der Softwaretechnik fachsprachlich als Fuzzing bezeichnet. Mit derartigen Zufallsdaten sollen in der Regel sogenannte Abstürze oder andere Ausnahmesituationen im Betrieb des Programms erzeugt werden, die mit anderen Testverfahren nicht eintreten.An automated process for software tests, in which the program to be tested is repeatedly loaded with random data at one or more input interfaces, is technically referred to as fuzzing in software technology. With such random data, so-called crashes or other exceptional situations that do not occur with other test methods are usually to be generated during operation of the program.

Fuzzing wird in Software-Entwicklungs-Projekten nach dem Stand der Technik in der Regel im Rahmen eines Black-Box-Tests angewendet, um neue Software auf Fehleranfälligkeit zu prüfen.Fuzzing is usually used in state-of-the-art software development projects as part of a black box test to check new software for susceptibility to errors.

EP3468131A1 beispielsweise offenbart ein Sicherheitstestsystem für eine Steuervorrichtung für ein Fahrzeugnetzwerk, welches eine Sicherheitsprüfeinheit mit einem Prüfsignalübertragungsteil umfasst, der zufällige Prüfsignale sendet, die ein ungültiges Signal zur Diagnose der Sicherheit einer Steuervorrichtung für ein Fahrzeugnetzwerk umfassen, und einem Diagnoseteil, der das ungültige Signal auf der Grundlage eines Prozessergebnisses in der Steuervorrichtung unter Verwendung der Prüfsignale spezifiziert, sowie eine Funktionsauswerteeinheit mit einem Prozessinformationsgewinnungsteil, der Informationen über das Prozessergebnis in der Steuervorrichtung gewinnt, einem Anomalie-Erfassungsteil, der Anomalien im Prozessergebnis in der Steuervorrichtung basierend auf dem Testsignal erkennt, und einem Anomalie-Informations-Ausgabeteil, der Informationen über die erkannte Anomalie schließlich ausgibt. EP3468131A1 For example, discloses a safety test system for a control device for a vehicle network, which comprises a safety test unit with a test signal transmission part that sends random test signals that include an invalid signal for diagnosing the safety of a control device for a vehicle network, and a diagnostic part that the invalid signal on the basis a process result specified in the control device using the test signals, and a function evaluation unit having a process information acquisition part that acquires information on the process result in the control device, an anomaly detection part that recognizes anomalies in the process result in the control device based on the test signal, and an anomaly Information output part that finally outputs information about the detected anomaly.

Bekannt sind ferner sogenannte Grey-Box-Fuzzer wie „American Fuzzy Lop“ (AFL), welche Hilfsprogramme z. B. zur Minimierung der Testfallsammlung, des sogenannten Korpus, umfassen. Durch Instrumentierung des Quellcodes des zu testenden Programms beim Übersetzen kann ein solcher Fuzzer später auswerten, welche Blöcke der Software bei einem bestimmten Test-Stimulus durchlaufen werden, um nach relativ kurzer Zeit eine vergleichsweise hohe Abdeckung des Codes (code coverage) zu erreichen.Also known are so-called gray box fuzzers such as “American Fuzzy Lop” (AFL), which support programs such. B. to minimize the test case collection, the so-called corpus, include. By instrumenting the source code of the program to be tested during translation, such a fuzzer can later evaluate which blocks of the software are run through with a certain test stimulus in order to achieve a comparatively high code coverage after a relatively short time.

Offenbarung der ErfindungDisclosure of the invention

Die Erfindung stellt ein Verfahren zum Prüfen von Software, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium gemäß den unabhängigen Ansprüchen bereit.The invention provides a method for checking software, a corresponding device, a corresponding computer program and a corresponding storage medium according to the independent claims.

Diese Lösung fußt auf der Erkenntnis, dass AFL aus seinem aktuellen Korpus neue Fuzzingeingaben generiert, indem es nach gewissen Strategien vorgeht. Veränderte Testfälle, die innerhalb des Programms neue Zustandsübergänge hervorgerufen haben, werden der Eingabewarteschlange hinzugefügt und als Ausgangspunkt für zukünftige Fuzzing-Runden verwendet. Herkömmliche Fuzzer wie AFL sind hierbei darauf angewiesen, viele Testfälle (mitunter Hunderte oder Tausende pro Sekunde) auszuführen, was für langsame Software - insbesondere solcherlei Softwaresysteme, die irgendeine Form der Datenübertragung benötigen - nicht durchführbar ist. Zurzeit obliegt es dem Entwickler des Fuzz-Wrappers, eine hinreichend schnelle Lösung für dieses Problem zu finden.This solution is based on the knowledge that AFL generates new fuzzy inputs from its current corpus by proceeding according to certain strategies. Modified test cases that have caused new state transitions within the program are added to the input queue and used as a starting point for future fuzzing rounds. Conventional fuzzers such as AFL are dependent on the execution of many test cases (sometimes hundreds or thousands per second), which is not feasible for slow software - especially software systems that require some form of data transmission. It is currently up to the developer of the fuzz wrapper to find a fast enough solution to this problem.

Eine Hauptidee des vorgeschlagenen Ansatzes besteht vor diesem Hintergrund darin, die Eingabewarteschlange oder den Korpus vor der eigentlichen Testausführung einer Ballungsanalyse (clustering) zu unterziehen, um aus jedem Cluster eine optimale Eingabe auszuwählen und das Fuzz-Testing auf diese Weise zu beschleunigen bzw. eine Testmetrik (z. B. Abdeckung) zu maximieren. Das Clustering-Verfahren wird durch maschinelle Lernansätze erlernt.Against this background, a main idea of the proposed approach is to subject the input queue or the corpus to a clustering analysis before the actual test execution in order to select an optimal input from each cluster and in this way to accelerate the fuzz testing or a test metric (e.g. coverage) to maximize. The clustering process is learned through machine learning approaches.

Ein Vorzug dieser Lösung liegt darin, dass anhand bestehender Testfälle, z. B. aus früheren Fuzzing-Läufen, Cluster dergestalt gefunden werden können, dass in der nächsten Fuzzing-Runde nur wenige Tests aus jedem Cluster ausgeführt werden müssen, um die nachfolgenden Erkenntnisse potenziell zu vertiefen. Wenn die Eingaben aus verschiedenen Clustern ausgewählt werden, dann sollten diese Eingaben einen größeren Abstand zueinander haben als zu Eingaben aus demselben Cluster. Auf diese Weise kann der Fuzzer die Testmetrik, beispielsweise die Abdeckung, maximieren, indem er nur wenige Testfälle aus einem großen Korpus ausführt.One advantage of this solution is that based on existing test cases, e.g. B. from previous fuzzing runs, clusters can be found in such a way that only a few tests from each cluster have to be carried out in the next fuzzing round in order to potentially deepen the following findings. If the inputs are selected from different clusters, then these inputs should have a greater distance from one another than to inputs from the same cluster. In this way, the fuzzer can maximize the test metric, such as coverage, by executing only a few test cases from a large corpus.

Diese Idee besticht insbesondere bei langsam laufender Software, da das Clustering nicht nur vor der ersten Testausführung, sondern in jeder Fuzzing-Runde erfolgen kann.This idea is particularly impressive with slow-running software, as clustering can take place not only before the first test run, but in every fuzzing round.

Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann das Ableiten eines Regressionsmodelles aus den ausgeführten Testfällen durch eine Gaußprozess-Regression vorgesehen sein, da Gaußprozesse (GPs) kontinuierliche Funktionen erlernen, Unsicherheiten modellieren und Vorkenntnisse wie Domänenwissen auf verschiedene Weise - z. B. in Form eines parametrischen Mittelwertes oder einer Kovarianz-Funktion - integrieren können. Darüber hinaus sind GPs unabhängiger von Modellannahmen als parametrische Methoden.The measures listed in the dependent claims enable advantageous developments and improvements of the basic idea specified in the independent claim. So can derive a regression model be provided from the executed test cases by a Gaussian process regression, since Gaussian processes (GPs) learn continuous functions, model uncertainties and prior knowledge such as domain knowledge in different ways - e.g. B. in the form of a parametric mean or a covariance function - can integrate. In addition, GPs are more independent of model assumptions than parametric methods.

FigurenlisteFigure list

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:

  • 1 das Flussdiagramm eines Verfahrens gemäß einer ersten Ausführungsform.
  • 2 das Verfahren eines Fuzzing-Ansatzes, bei dem der Korpus vor der eigentlichen Testfallausführung geclustert wird.
  • 3 das Verfahren eines Fuzzing-Ansatzes, bei dem nur der Ausgangskorpus in Cluster eingeteilt wird. Danach wird das Fuzzing auf herkömmliche Weise durchgeführt.
  • 4 schematisch eine Arbeitsstation gemäß einer zweiten Ausführungsform der Erfindung.
Exemplary embodiments of the invention are shown in the drawings and explained in more detail in the description below. It shows:
  • 1 the flow chart of a method according to a first embodiment.
  • 2 the method of a fuzzing approach, in which the corpus is clustered before the actual test case execution.
  • 3 the process of a fuzzing approach, in which only the initial body is divided into clusters. Then fuzzing is carried out in the conventional manner.
  • 4th schematically a work station according to a second embodiment of the invention.

Ausführungsformen der ErfindungEmbodiments of the invention

1 illustriert die grundlegenden Schritte des vorgeschlagenen Verfahrens (10) zum Prüfen einer zumindest als Binärprogramm (binary) vorliegenden Software (16). 1 illustrates the basic steps of the proposed method ( 10 ) for testing software available at least as a binary program ( 16 ).

Ein erster Schritt (Prozess 11) des Verfahrens besteht darin, einen ersten Satz Draw = {xi | i = 1 ... n} von Testfällen mittels eines Fuzzing-Tools zu generieren. Dies entspricht zunächst der herkömmlichen Vorgehensweise im Rahmen einer typischen Fuzzing-Analyse. Um ein hilfreiches Modell innerhalb eines breiteren Spektrums von Verfahrensvarianten zu erlernen, empfiehlt es sich, eine hohe Anzahl von Testfällen zu generieren. Es ist zu beachten, dass diese Testfälle keine zusätzlichen Informationen des Fuzzing-Tools wie z. B. die Codeabdeckung enthalten, da die Testfälle noch nicht bestanden und in der Software ausgeführt wurden. Diese Testfälle werden als Grundlage für die Erstellung des Modells im nachfolgenden Schritt (Prozess 12) verwendet.A first step (process 11 ) of the procedure consists in taking a first sentence D raw = {x i | i = 1 ... n} of test cases using a fuzzing tool. This initially corresponds to the conventional procedure in the context of a typical fuzzing analysis. In order to learn a helpful model within a broader spectrum of procedural variants, it is advisable to generate a large number of test cases. It should be noted that these test cases do not contain any additional information from the fuzzing tool such as B. contain the code coverage because the test cases have not yet passed and have been executed in the software. These test cases are used as the basis for creating the model in the following step (process 12 ) is used.

Nach der beschriebenen Datengenerierung (11) ist es erforderlich, auf der Grundlage der Testfallmenge Draw unbeaufsichtigt Cluster zu bilden, um zu vermeiden, dass Testfälle ausgeführt werden, die einander ähneln und daher voraussichtlich zu ähnlichen Testergebnissen führen. Da die Eigenschaften der generierten Testfälle unbekannt sind, sollte der hierzu verwendete Clustering-Algorithmus in der Lage sein, Cluster beliebiger Form zu finden, ohne die Gesamtanzahl der Cluster zu kennen. Daher empfiehlt sich eine hierarchische dichtebasierte räumliche Clusteranalyse mit Rauschen (hierarchical densitybased spatial clustering of applications with noise, HDBSCAN), die es gestattet, nicht-konvexe Cluster unterschiedlicher Dichte ohne Vorkenntnisse bezüglich der Anzahl der Gesamtcluster zu erlernen. HDBSCAN führt den hinlänglich bekannten DBSCAN auf den in Prozess 11 erzeugten Daten über unterschiedliche ε-Werte durch und integriert das Ergebnis, um ein Clustering zu finden, das die bestmögliche Stabilität über ε bietet.After the described data generation ( 11 ) it is necessary to cluster unattended based on the test case set Draw in order to avoid running test cases that are similar and therefore likely to lead to similar test results. Since the properties of the generated test cases are unknown, the clustering algorithm used for this should be able to find clusters of any shape without knowing the total number of clusters. Therefore, a hierarchical density-based spatial clustering of applications with noise (HDBSCAN) is recommended, which allows non-convex clusters of different densities to be learned without prior knowledge of the number of total clusters. HDBSCAN carries out the well-known DBSCAN on the in process 11 generated data over different ε values and integrates the result in order to find a clustering that offers the best possible stability over ε.

Da HDBSCAN einen hierarchischen Baum zur Clustersuche verwendet, ist es möglich, die Stärken der Clusterzugehörigkeit zu ermitteln. Diese sowie die Struktur des Baumes selbst können genutzt werden, um n Testfälle pro Cluster zu untersuchen, auf dieser Grundlage diejenigen Datensätze auszuwählen, die sowohl eine hohe Clusterzugehörigkeit aufweisen als auch in verschiedene Zweige des Baumes fallen, und so letztlich eine hohe Varianz innerhalb des jeweiligen Clusters zu erzielen. Auf diese Weise lässt sich eine Teilmenge Dclust = (x̂i | i = 1 ... n} von Testfällen definieren.Since HDBSCAN uses a hierarchical tree for cluster search, it is possible to determine the strengths of the cluster membership. This, as well as the structure of the tree itself, can be used to examine n test cases per cluster, on this basis to select those data sets that both have a high cluster membership and fall into different branches of the tree, and thus ultimately a high variance within the respective one To achieve clusters. In this way, a subset D clust = (x̂ i | i = 1 ... n} of test cases can be defined.

Die solchermaßen definierte Teilmenge Dclust der Testfälle wird als Eingabe an das Fuzzing-Tool übergeben, das dann die zu testende Software ausführt (Prozess 13). Pro Testlauf erzeugt das Fuzzing-Tool zusätzliche Informationen, welche im Folgenden „Beobachtungen“ genannt werden, wie zum Beispiel die Codeabdeckung, Informationen über Softwareabstürze und andere relevante Informationen. Diese Beobachtungen y können in Kombination mit den verwendeten Testfällen x̂ im nächsten Schritt (Prozess 14) für das überwachte Lernen des Modells genutzt werden. Die gewonnenen Daten werden in einem Datensatz Dobs = {(x̂i,yi) | i = 1 ... n} zusammengefasst, der aus den Testfällen x̂ sowie den durch deren jeweilige Auswertung gewonnenen Beobachtungen y besteht.The subset D cluster of test cases defined in this way is transferred as input to the fuzzing tool, which then executes the software to be tested (process 13th ). For each test run, the fuzzing tool generates additional information, which is referred to below as "observations", such as code coverage, information about software crashes and other relevant information. These observations y can be combined with the test cases x̂ used in the next step (process 14th ) can be used for supervised learning of the model. The data obtained are stored in a data set D obs = {(x̂ i , y i ) | i = 1 ... n}, which consists of the test cases x̂ and the observations y obtained through their respective evaluation.

Aus dem Datensatz Dobs wird ein Regressionsmodell erzeugt (Prozess 14), welches die Beobachtung yi für einen gegebenen Testfall x̂i vorhersagt. Auf der Grundlage dieses Modells ist es möglich, nur vielversprechende Beispielsätze von Dobs für weitere Tests der Software zu verwenden. Vielversprechend bedeutet in diesem Zusammenhang, dass diese Daten eine weitestgehende Codeabdeckung gewährleisten und mit hoher Wahrscheinlichkeit zu einem Softwareabsturz führen. Daher ist es von Bedeutung, wie sicher eine Vorhersage ist, um zu entscheiden, ob es sinnvoll ist, den betreffenden Testfall zu verwenden. Um ein Basismodell zu erlernen, empfiehlt es sich, die Parameter eines Gaußprozesses anhand der Daten Dobs aus Prozess 13 zu ermitteln, indem die logarithmische Plausibilitätsfunktion (log likelihood) maximiert wird: argmax θ log ( p ( y | X , θ ) )

Figure DE102019210562A1_0001
A regression model is generated from the data set D obs (process 14th ), which predicts the observation y i for a given test case x̂ i . Based on this model, it is possible to use only promising example sentences of D obs for further testing of the software. Promising in this context means that this data guarantees the greatest possible code coverage and has a high probability of leading to a software crash. It is therefore important how certain a prediction is in order to decide whether it makes sense to use the test case in question. In order to learn a basic model, it is advisable to determine the parameters of a Gaussian process using the data D obs from process 13th to investigate, by maximizing the logarithmic plausibility function (log likelihood): argmax θ log ( p ( y | X , θ ) )
Figure DE102019210562A1_0001

Optional kann bei der Anwendung des trainierten Modells aktives Lernen eingesetzt werden, um festzustellen, welche Testfälle stichprobenartig geprüft werden sollen, um das Modell online zu verbessern.When using the trained model, active learning can optionally be used to determine which test cases should be checked on a random basis in order to improve the model online.

Wie oben erwähnt wird das generierte Regressionsmodell verwendet, um die vielversprechendsten Testfälle aus den Clusterdaten Dobs auszuwählen. Diese Auswahl an Testfällen könnte dann für - im Hinblick auf Zeitaufwand und Rechenleistung - aufwändigere Überprüfungen auf Laufzeitfehler genutzt werden, die eine Instrumentierung des Quellkodes erfordern. Es werden daher nur Testfälle ausgeführt, die die Software maximal durchdringen.As mentioned above, the generated regression model is used to select the most promising test cases from the cluster data D obs . This selection of test cases could then be used - in terms of time and computing power - more complex checks for runtime errors that require instrumentation of the source code. Therefore, only test cases that penetrate the software to the maximum are executed.

2 veranschaulicht den Ansatz, die Testfälle vor der eigentlichen Testausführung (24) in der Eingabewarteschlange (22), dem Korpus, zu clustern (12). Gleichwohl kann vorgesehen sein, lediglich den Anfangskorpus (21) zu clustern (12), ohne den Rahmen der Erfindung zu verlassen. 3 beleuchtet beispielhaft eine solche alternative Ausführungsform. 2 illustrates the approach, the test cases before the actual test execution ( 24 ) in the input queue ( 22nd ), the body, to cluster ( 12 ). Nevertheless, it can be provided that only the initial body ( 21st ) to cluster ( 12 ) without departing from the scope of the invention. 3 exemplifies such an alternative embodiment.

Dieses Verfahren (10) kann beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in einer Arbeitsstation (40) implementiert sein, wie die schematische Darstellung der 4 verdeutlicht.This method ( 10 ) can be in software or hardware or in a mixed form of software and hardware, for example in a workstation 40 ) be implemented as shown in the schematic representation of the 4th clarified.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • EP 3468131 A1 [0004]EP 3468131 A1 [0004]

Claims (10)

Verfahren (10) zum Prüfen von Software, gekennzeichnet durch folgende Merkmale: - aus einer Testfallsammlung (21) werden Eingabedaten (22) für die Software gewonnen (11), - durch eine Clusteranalyse (12) der Eingabedaten (22) werden Testfälle ausgewählt (23), - in den ausgewählten Testfällen werden Beobachtungen (29) der Software angestellt (13), - aus den Testfällen und jeweiligen Beobachtungen (29) wird ein Regressionsmodell bezüglich der gewählten Beobachtungen abgeleitet (14) und - anhand des Regressionsmodelles werden weitere Testfälle erstellt (15) und ausgeführt (24).Method (10) for testing software, characterized by the following features: - input data (22) for the software are obtained (11) from a test case collection (21), - test cases are selected by a cluster analysis (12) of the input data (22) ( 23), - observations (29) are made by the software in the selected test cases (13), - a regression model with regard to the selected observations is derived from the test cases and respective observations (29) and - further test cases are created using the regression model (15) and executed (24). Verfahren (10) nach Anspruch 1, gekennzeichnet durch folgende Merkmale: - das Ableiten (14) des Regressionsmodelles erfolgt in einem überwachten Lernprozess und - der Lernprozess ist dazu eingerichtet, eine abhängige Variable des Regressionsmodelles zu maximieren (30).Method (10) according to Claim 1 , characterized by the following features: - the derivation (14) of the regression model takes place in a monitored learning process and - the learning process is set up to maximize a dependent variable of the regression model (30). Verfahren (10) nach Anspruch 2, gekennzeichnet durch folgendes Merkmal: - die Variable ist eine Auftrittswahrscheinlichkeit einer Ausnahmesituation.Method (10) according to Claim 2 , characterized by the following feature: - the variable is a probability of occurrence of an exceptional situation. Verfahren (10) nach Anspruch 3, gekennzeichnet durch folgende Merkmale: - die Ausnahmesituation ist ein Absturz (27) der Software und - bei einem Ausbleiben des Absturzes (27) in einem Testfall wird dieser verworfen (28).Method (10) according to Claim 3 , characterized by the following features: - the exceptional situation is a crash (27) of the software and - if the crash (27) does not occur in a test case, it is discarded (28). Verfahren (10) nach einem der Ansprüche 1 bis 4, gekennzeichnet durch folgendes Merkmal: - vor dem Ausführen (24) der Testfälle wird ein Binärprogramm (16) der Software instrumentiert (25).Method (10) according to one of the Claims 1 to 4th , characterized by the following feature: - before the test cases are executed (24), a binary program (16) of the software is instrumented (25). Verfahren (10) nach einem der Ansprüche 1 bis 5, gekennzeichnet durch folgendes Merkmal: - die Clusteranalyse (12) ist eine hierarchische dichtebasierte räumliche Clusteranalyse mit Rauschen.Method (10) according to one of the Claims 1 to 5 , characterized by the following feature: the cluster analysis (12) is a hierarchical density-based spatial cluster analysis with noise. Verfahren (10) nach einem der Ansprüche 1 bis 6, gekennzeichnet durch folgendes Merkmal: - das Ableiten (14) des Regressionsmodelles erfolgt durch eine Gaußprozess- Regression.Method (10) according to one of the Claims 1 to 6th , characterized by the following feature: the derivation (14) of the regression model takes place by means of a Gaussian process regression. Computerprogramm, welches eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7 auszuführen.Computer program which is set up, the method (10) according to one of the Claims 1 to 7th execute. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 8 gespeichert ist.Machine-readable storage medium on which the computer program is based Claim 8 is stored. Vorrichtung (40), die eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7 auszuführen.Device (40) which is set up, the method (10) according to one of the Claims 1 to 7th execute.
DE102019210562.9A 2019-07-17 2019-07-17 Method and device for testing software Pending DE102019210562A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019210562.9A DE102019210562A1 (en) 2019-07-17 2019-07-17 Method and device for testing software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019210562.9A DE102019210562A1 (en) 2019-07-17 2019-07-17 Method and device for testing software

Publications (1)

Publication Number Publication Date
DE102019210562A1 true DE102019210562A1 (en) 2021-01-21

Family

ID=74093691

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019210562.9A Pending DE102019210562A1 (en) 2019-07-17 2019-07-17 Method and device for testing software

Country Status (1)

Country Link
DE (1) DE102019210562A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220198340A1 (en) * 2020-12-22 2022-06-23 Sas Institute Inc. Automated machine learning test system
US11886329B2 (en) 2020-12-22 2024-01-30 Sas Institute Inc. Automated machine learning test system
CN117827685A (en) * 2024-03-05 2024-04-05 国网浙江省电力有限公司丽水供电公司 Fuzzy test input generation method, device, terminal and medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220198340A1 (en) * 2020-12-22 2022-06-23 Sas Institute Inc. Automated machine learning test system
US11775878B2 (en) * 2020-12-22 2023-10-03 Sas Institute Inc. Automated machine learning test system
US11886329B2 (en) 2020-12-22 2024-01-30 Sas Institute Inc. Automated machine learning test system
CN117827685A (en) * 2024-03-05 2024-04-05 国网浙江省电力有限公司丽水供电公司 Fuzzy test input generation method, device, terminal and medium
CN117827685B (en) * 2024-03-05 2024-04-30 国网浙江省电力有限公司丽水供电公司 Fuzzy test input generation method, device, terminal and medium

Similar Documents

Publication Publication Date Title
DE102019210562A1 (en) Method and device for testing software
DE102016009032A1 (en) Machine learning unit, spindle replacement judgment apparatus, control, machine tool, production system and machine learning method capable of judging the necessity of a spindle replacement
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
DE102005046388A1 (en) Model-based diagnostics and repair using event logging
DE2515297A1 (en) TESTING SYSTEM FOR LOGICAL NETWORKS WITH SIMULATOR ORIENTED FAULT CHECK GENERATOR
DE102011108678A1 (en) Event-driven data mining method for improving error code settings and isolating errors
WO2021121695A1 (en) Method, apparatus and system for detecting abnormal operating states of a device
DE102010052998A1 (en) Software-centered methodology for checking and confirming error models
DE102014102551A1 (en) Machine and method for evaluating failed software programs
DE102018109195A1 (en) Diagnostic system and method for processing data of a motor vehicle
DE102019209540A1 (en) Process and device for the optimal distribution of test cases on different test platforms
DE102022119975A1 (en) COMBINED TDECQ MEASUREMENT AND TRANSMITTER TUNING USING MACHINE LEARNING
DE102005040142A1 (en) Method for identifying complex diagnostic situations in customer service
DE102011086352A1 (en) Method and diagnostic system to support guided troubleshooting in technical systems
DE112021003677T5 (en) AUTOMATED ASSISTED CIRCUIT VALIDATION
DE102020125218A1 (en) Diagnostic device
DE112018006331B4 (en) Test case generation device, test case generation method and test case generation program
EP3407273A1 (en) Method and system for determining an abnormal state of a system
DE102022132047A1 (en) SYSTEMS AND METHODS FOR DETECTING MANUFACTURING ANOMALIES
DE102021132827A1 (en) Procedure for the automatic investigation of states and transitions of a human-machine interface (HMI)
DE102020213891A1 (en) Computer-implemented method and device for selecting a fuzzing method for testing a program code
DE102020206321A1 (en) Method and device for testing a technical system
DE102020205540A1 (en) Method and device for testing a technical system
DE102020206327A1 (en) Method and device for testing a technical system
DE102008004219A1 (en) Error handling method for e.g. motor vehicle, involves testing components of system i.e. motor vehicle, for errors according to sequences determined by decision tree, where sum of costs for handling errors is kept to be minimum