EP1776640A2 - Method and system for evaluating computer program tests by means of mutation analysis - Google Patents

Method and system for evaluating computer program tests by means of mutation analysis

Info

Publication number
EP1776640A2
EP1776640A2 EP05788600A EP05788600A EP1776640A2 EP 1776640 A2 EP1776640 A2 EP 1776640A2 EP 05788600 A EP05788600 A EP 05788600A EP 05788600 A EP05788600 A EP 05788600A EP 1776640 A2 EP1776640 A2 EP 1776640A2
Authority
EP
European Patent Office
Prior art keywords
tests
mutated
mutations
program
test
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.)
Withdrawn
Application number
EP05788600A
Other languages
German (de)
French (fr)
Inventor
Mark Hampton
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.)
Springsoft SAS
SpringSoft USA Inc
Original Assignee
Certess SA
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 Certess SA filed Critical Certess SA
Publication of EP1776640A2 publication Critical patent/EP1776640A2/en
Withdrawn 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/3688Test management for test execution, e.g. scheduling of test suites

Definitions

  • the invention relates to a method for evaluating tests of a computer program by analyzing mutations comprising executing mutated programs by inserting mutations and identifying mutated programs providing, with a predetermined test, an identical result. to a predetermined result.
  • Mutational analysis is a technique for evaluating tests that requires significant computing resources.
  • errors or mutations are inserted into an initially unmutated program. Then we check if the tests detect the inserted mutations.
  • a mutated program provided, with a predetermined test a result identical to a result provided by said non-mutated program, executed with said test, the mutation is identified as undetected.
  • the result provided by the mutated program, with a predetermined test is different from the result provided by said non-mutated program, executed with said test, the mutation is identified as detected.
  • the corresponding test is stopped and the next mutation is analyzed. Tests that detect mutations are retained for an improved test suite.
  • the interest of the mutation analysis is to evaluate the quality of the test suite and possibly to optimize the test suite.
  • the duration of the mutation analysis can be very important.
  • the number of mutations is reduced, for example, by choosing a certain kind of mutation or by randomly choosing a number of mutations. In both cases, the quality of the test evaluation is deteriorated.
  • Document DE19959157 describes a technique for improving a test suite comprising a first step for quickly distinguishing between subtle and non-subtle mutations and a second step for evaluating the tests for non-subtle mutations.
  • the object of the invention is to remedy these drawbacks and, in particular, to minimize the duration of a method of evaluating tests of a computer program by analysis of mutations, in particular by activation of a programmable circuit comprising logical sets.
  • the method comprises selecting, from among a plurality of tests, a test suite relevant to each mutation, determining at least one ranking by applying at least one simplicity criterion to the selected tests, - executing the programs mutated by order of ranking, each mutated program being executed with the tests of the associated test suite.
  • the method comprises the programming of a programmable circuit by said program comprising the mutations and the activation of the programmable circuit, the programmable circuit comprising logical sets associated respectively with the mutations, the inputs of tests on which a control system applies signals representative of test data and test outputs transmitting, to the control system, signals representative of test results, at least one activation input on which the control system selectively applies activation or deactivation signals of the logic units, the programmable circuit being programmed in such a way that its operation corresponds to said non-mutated program when said logic units are deactivated and to one of the mutated programs when the corresponding logic unit is activated , the method comprising the test of non-mutated circuit and mutated circuits, a mutated program being identified when the corresponding mutated circuit provides, with a predetermined test, a result identical to the result provided by the non-mutated circuit, executed with said test.
  • the invention also aims at a system for performing a method of evaluating tests of a computer program by mutation analysis, the method comprising the execution of mutant programs by insertion of mutations and identification of the mutated programs providing, with a predetermined test, a result identical to a predetermined result, the system comprising means for selecting, from among a plurality of tests, a series of tests relevant for each mutation the determination at least one classification by applying at least one simplicity criterion to the selected tests, the execution of the mutated programs in order of ranking, each mutated program being executed with the tests of the associated test suite.
  • the invention also aims at a computer-readable medium comprising instructions for controlling a computer for executing a method of evaluating tests of a computer program by analysis of mutations involving the execution of mutant programs by insertion. of mutations and the identification of the mutated programs providing, with a predetermined test, a result identical to a predetermined result, the medium comprising control instructions for performing the selection, among a plurality of tests, of a series of tests relevant to each mutation, the determination of at least one ranking by application of at least one criterion of simplicity to the selected tests, the execution of the mutated programs in order of ranking, each program, mutated being executed with the tests of the test suite associated.
  • Figures 1 to 4 show different steps of a method of evaluating tests of a program by analysis of mutations by activation of a programmable circuit.
  • FIG. 5 illustrates a particular embodiment of an evaluation method according to the invention.
  • FIG. 6 illustrates a particular embodiment of a step of determining a ranking of tests of a method according to the invention.
  • Figure 7 illustrates a particular embodiment of two steps of determining additional rankings.
  • FIG. 8 illustrates a particular embodiment of a step for selecting a reduced classification of mutations of a method according to the invention.
  • FIG. 9 illustrates a particular embodiment of a step of eliminating mutations of a method according to the invention.
  • the analysis of mutations may include, as shown in Figure 1, the programming of a programmable circuit 1 by a program P with the mutations Mj (M1, M2, M3, etc.). Below, the mutations are referenced by the index j.
  • the program P models, by example, an integrated circuit.
  • the programmable circuit 1 is programmed via a control system 2.
  • the mutation analysis which is then carried out comprises the activation of the programmable circuit 1.
  • the programmable circuit 1 comprises logical sets Gj (G.1, G2, G3, etc.) associated respectively with the mutations Mj.
  • the programmable circuit 1 comprises at least one activation input on which the control system 2 selectively applies activation signals Aj or deactivation D logical sets Gj.
  • the control system 2 applies, on test inputs, Etk signals (Et1, Et2, Et3, etc.) representative of test data Tk (T1, T2, T3, etc.). Below, the tests are referenced by the index k.
  • Signals STkD (FIG. 2) and STkj (FIG. 3) representative of test results Tk are transmitted by test outputs to the control system 2.
  • the programmable circuit 1 is programmed so that its operation corresponds to the program P that is not mutated when the logic units Gj are deactivated by a deactivation signal D.
  • the outputs of the programmable circuit 1 thus transmit STkD signals representative of the results of Tk tests applied to the non-mutated circuit.
  • the operation of the programmable circuit 1 corresponds to the program Pj mutated by the mutation Mj when the corresponding logical set Gj is activated by an activation signal Aj.
  • the outputs of the programmable circuit 1 thus transmit STkj signals representative of the results of tests Tk applied to the mutated circuit corresponding to the mutated program Pj. 5 001790
  • the control system 2 comprises a comparator for comparing the signals STkD and STkj.
  • the comparator provides a signal IDkj making it possible to identify the test Tk and the corresponding program Pj.
  • a mutated program Pj is then identified when the corresponding mutated circuit provides, with a predetermined test Tk, a result STkj identical to the result STkD provided by the non-mutated circuit, executed with said test Tk.
  • the mutated programs Pj are generated, in a step F1, from the mutations Mj and the non-mutated program P, by inserting the mutations Mj in the program P. All the mutations Mj are preferably inserted in the same program and can be selectively activated or deactivated, in a known manner, by activation parameters respectively corresponding to mutations Mj.
  • results RTkD and RTkj are stored and compared later.
  • the results RTkD and RTkj can be determined simultaneously and compared directly, without requiring storage. Moreover, as soon as a mutation is detected, with a predetermined test, the execution of the program Pj mutated with said test is stopped and the next mutation is analyzed.
  • a step F2 the non-mutated program P is executed with the tests Tk of the plurality of tests Tk and provides the results RTkD which are stored in the step F3.
  • a selection step F4 a test suite Uj relevant is selected from among a plurality of tests Tk for each mutation Mj.
  • the selection F4 of the tests relevant for a predetermined mutation Mj may, for example, be performed from the code coverage CC of a portion Lj of the non-mutated program P to be modified by the predetermined mutation Mj.
  • the method may comprise, in a step F5, the determination of the CC code coverage of the program P not mutated for each test Tk of the plurality of tests.
  • the code coverage CC which is for example determined by simulation, indicates the number of times that a portion Lj 1 typically a line of a program P is executed, with a given test Tk.
  • Table 1 illustrates the CC code coverage of three lines 45 to 47 of a program P, for example a program of the VHDL type, comprising a loop of the IF / THEN type, in which an instruction (line 46) is subject to one condition (line 45). When the condition is fulfilled, the instruction is executed. When the condition is not fulfilled, the instruction is not executed.
  • the CC code coverage indicates that the instruction in line 46 is executed three times, while lines 45 and 47 are executed five times. In the example, the condition is then as well filled, in particular three times, than non-filled, in particular twice.
  • Table 2 shows an example of a mutation Mj inserted in line 45 of the program P illustrated in Table 1, so as to generate the mutated program Pj.
  • the mutation Mj is then likely to modify the RTkj result of Tk test and Tk test is, thus, relevant for mutation Mj.
  • the test Tk is then selected for the sequence Uj of tests relevant for the given mutation Mj, in the step F4.
  • Table 3 illustrates another example of CC code coverage of the three lines 45 to 47 of the previous program performed with another test Tk '.
  • the code coverage CC indicates that the instruction of line 46 is executed four times with the test Tk 'and that the lines 45 and 47 are also executed four times with the test Tk'. In the example, the condition of line 45 is always filled.
  • the Mj mutation illustrated in Table 2 is then not likely to modify the RTk'j result of the Tk 'test and the Tk' test is thus not relevant for the Mj mutation.
  • the test Tk ' is then not included in the sequence Uj of tests relevant for the given mutation Mj. In the case where all the tests are irrelevant, the mutation is not used in the rest of the process.
  • the method comprises determining at least one classification by applying at least one criterion of simplicity to the selected tests.
  • the determination of at least one classification comprises the determination F6 of a classification Cm of the mutations Mj by applying a first criterion of simplicity to Uj suites of previously selected tests.
  • the classification Cm of mutations Mj is established, after determining the number Nj of tests Tk of each test suite Uj, in ascending order of the number Nj of tests Tk of each test suite Uj.
  • the classification Cm mutations Mj can also be established in ascending order of the calculation resources required by each sequence Uj tests or in increasing order of the estimated duration of the execution of each suite Uj tests.
  • the duration of the execution of the program P not mutated with all the tests Tk (step F2) of the associated test suite Uj is determined and the classification Cm of the mutations Mj is established in ascending order of the duration of the execution of the unmutated program P executed with all the tests Tk of the test suite Uj.
  • the classification Cm of the mutations can be established according to several first criteria, which are applied simultaneously, possibly according to a hierarchy of first criteria. For example, the mutations Mj are first classified according to the number Nj of tests Tk of each test suite Uj, and then, when several numbers Nj of tests Tk are equal, a first additional criterion is applied.
  • the rank Cm mutations Mj may comprise a sequence of subclassifications of mutations.
  • Mutations can, in known manner, be grouped by different types. Types of mutations are, for example, mutations by omitting a numerical value or mutations by inserting an incorrect logical factor.
  • the classification Cm mutations Mj can, thus, be modified or adjusted according to the types of mutation. Within a subclassification of mutations, for example, mutations can be classified according to mutation types.
  • the classification Cm of the mutations Mj can also be adjusted according to parts Lj of the program P that are not mutated and intended to be modified by the mutations Mj, for example by grouping, at the beginning of the classification Cm, all the mutations Mj intended to be inserted into a same predetermined line (Lj) and grouping, following in the classification Cm, all the mutations Mj 'intended to be inserted in another predetermined line (Lj').
  • the classification Cm mutations Mj may comprise a sequence of mutations subclasses each corresponding to a predetermined portion of the program P unmutated.
  • the different subclassifications of the mutations are obtained by applying the first criterion of simplicity as described above.
  • the Cm ranking mutations Mj can also be modified or adjusted depending on the probability of mutations to be detected. Thus, when certain types of mutations prove to be detected more difficultly, that is to say less often, they can be placed more at the beginning of the classification Cm mutations.
  • a simplicity criterion corresponds, a priori, to a probability criterion of detecting mutations and thus automatically creates a classification of the mutations in order of increasing probability of the mutations to be detected.
  • the classification of mutations can also be determined taking into account the subtlety of mutations.
  • One way of measuring the subtlety of a mutation inserted in a single line is the number of times that said line is activated by the tests. The longer this line is activated, the less the corresponding mutation is considered subtle.
  • the subtle mutations are preferably placed at the beginning of the classification of the mutations.
  • the mutated programs Pj from step F1 are then executed, respectively in steps F7, in order of the rank Cm mutations Mj.
  • Each program Pj mutated is executed with the tests Tk of the test suite Uj associated selected in step F4.
  • the mutations Mj associated with the Uj suites of tests having the greatest simplicity are tested first.
  • a maximum of different mutations Mj is tested before a final interruption of the process.
  • the method makes it possible to obtain a greater percentage of undetected mutations than a method selectively selecting mutations, for example.
  • the method makes it possible more effectively to determine the ineffective Tk tests to eliminate them, eventually.
  • the time t is equal to or greater than a predetermined stopping time ts, as represented at the YES output of the step F8, the execution of the mutated programs F7 is interrupted. in a step F9.
  • the time t is incremented, in a step F10, and compared again with the time ts stop in the step F8.
  • a step F12 are compared the results RTkD and RTkj respectively associated with the execution of the program P not mutated, with the predetermined test Tk, and the program Pj mutated, with the predetermined test Tk.
  • the mutation index j and the test index k are stored in a step F13.
  • the mutated program Pj providing, with a predetermined test Tk, a result RTkj identical to a result RTkD provided by said non-mutated program P, executed with said test Tk.
  • Such identification is equivalent to the non-detection of the corresponding Mj mutation.
  • a mutation Mj is considered detected when the corresponding mutated program Pj provides, with a predetermined test Tk, a result RTkj different from the result RTkD provided by said program P not mutated, executed with said test Tk.
  • the mutated program Pj is executed with the following test Tk, in the step F7, until the program Pj mutated is executed with all the tests of the associated test suite Uj. Then, the next mutated program Pj, according to the rank Cm, is executed, with the tests of the associated test suite Uj.
  • the method comprises the programming of the programmable circuit 1 by the program P and by the mutations Mj, so as to create logical sets Gj associated with the mutations Mj.
  • the programmable circuit 1 is then activated according to the method according to the invention, which makes it possible to obtain a test evaluation result in a time less than the time required for a method of activating a programmable circuit 1 according to the invention. prior art, while maximizing the number of logical sets Gj activated and tested.
  • the determination of at least one classification comprises, after selection F4 of a sequence Uj of tests relevant for each mutation Mj, the determination F14 of a classification Ctj of the tests of a test suite Uj by applying a second criterion of simplicity to the Tk tests of said Uj series of tests.
  • Each mutated program Pj is then executed in order of the ranking Ctj of the tests of the associated sequence Uj.
  • the duration of the execution of the program P not mutated with each test Tk (step F2) of the test suite Uj is determined and the ranking of the tests Tk of a test sequence Uj is established in ascending order of the duration of the execution of the program P not mutated with each test Tk of the test suite Uj.
  • the Ctj ranking of tests of a test suite Uj can also be established in ascending order of the computation resources required by each test Tk of the test suite Uj.
  • the Ctj ranking of tests represents the advantage of maximizing the number of detected mutations, when the total test duration of the Mj mutation is limited.
  • the method may comprise the determination of a classification Cm of the mutations and / or the determination of a classification Ctj tests of a sequence Uj tests.
  • Each classification can be established by taking into account a single corresponding criterion or several corresponding criteria simultaneously.
  • the classification Ctj of the tests Tk of a test sequence Uj is reduced to a first test of the classification Ctj of the tests Tk 1 for example by eliminating all the tests which follow the first test of the classification of tests. This makes it possible to identify, in a short-term test step, mutations which are, for example, detected by a simplified test, in particular by a test comprising only the first test of the associated test sequence Uj.
  • undetected mutations can be analyzed by performing, for undetected mutations, all the tests of the associated test suites Uj.
  • the method comprises, after execution F15 of part of the mutated programs Pj, the determination F17 of additional rankings Ctj of the tests Tk of the test suites Uj by application of additional simplicity criteria to the Tk tests Uj suites of tests.
  • the method may also comprise the determination F16 of an additional classification Cm of the mutations Mj by application of an additional simplicity criterion to the sequences Uj of selected tests.
  • the execution F7 of the mutated non-executed programs Pj can be continued in order of the additional classification Cm of the mutations Mj and / or respectively by order of the additional rankings Ctj of the tests Tk.
  • the execution of the mutated programs Pj may, for example, be interrupted several times, if necessary, to create new additional rankings Cm and / or Ctj. It is also possible to create new rankings additional (Cm and / or C'tj) simultaneously with the analysis of mutations in progress, that is to say simultaneously with the execution of a portion of mutated programs Pj. Then, a next part of mutated programs Pj is executed in order of the new additional classifications Cm and / or C'tj.
  • the tests Tk can be grouped according to several second criteria, inside a classification C'tj of tests Tk. For example, when, in the course of the analysis, two tests Tk and Tk * have detected a mutation Mj inserted in a predetermined portion Lj of the program P, these two tests Tk and Tk * can be privileged for the test of mutations Mj which have not yet been tested and which are intended to be inserted in said part Lj of the program P not mutated. These two tests Tk and Tk * are then preferably placed at the beginning of an additional classification C'tj Tk tests for a mutation Mj following intended to be inserted in said part Lj.
  • a corresponding simplicity criterion can thus take into account the number of mutations Mj detected by the tests Tk 1 in a predetermined part Lj of the program P. Then, the test Tk having detected the highest number of mutations, in this part Lj predetermined, is placed at the beginning of the additional classification C'tj tests Tk for the Mj mutation test to be inserted in said part Lj.
  • the analysis of mutations is improved according to the results obtained previously, during the analysis of mutations.
  • the method comprises, after determination of the classification Cm of the mutations Mj (step F6), in a step F18, the selection of a reduced classification Cmr of mutations Mj.
  • the reduced rank of mutations Cmr includes mutations intended to be inserted respectively into different parts Lj of the program P not mutated.
  • the mutation ranked first among these mutations according to the Cm classification is retained for the reduced classification Cmr and followed, in the reduced classification Cmr, by a mutation intended to be inserted in a different line.
  • the execution F19 of the mutated programs Pj, corresponding to the step F7, is performed in order of the reduced classification Cmr. Thus is favored the test of different parts Lj to the multiple test of the same part Lj.
  • a predetermined mutated program Pj provides, with a predetermined test Tk, a result RTkj identical to the result RTkD provided by said non-mutated program P executed with said test Tk (step F12)
  • the method comprises the elimination, in a step F20, in the classification Cm of the mutations, of all the mutations Mj intended to be inserted in the same part Lj of the non-mutated program P as the mutation Mj corresponding to said mutated program Pj predetermined, so as to obtain a streamlined classification Cmp.
  • the mutated programs Pj are then executed according to the refined classification Cmp, in a step F21, corresponding to the step F7.
  • the part Lj of the non-mutated program P may, for example, consist of a line, a block or a module of the program P not mutated or by a set of lines, by a set of blocks or by a set of modules.
  • the computer program P may be a model of an integrated circuit, expressed in any description language such as, for example, Verilog or VHDL
  • a system for evaluating tests of a computer program P by analysis of mutations Mj according to the invention comprises a control system 2 for controlling the various steps of the evaluation method according to the invention, for example for the activation of a programmable circuit 1.
  • Computer readable media e.g. a CD-ROM, a hard disk, a floppy disk, etc., includes control instructions from a computer for performing a method of evaluating tests of a computer program P by mutation analysis Mj according to the invention, the method comprising the execution of mutated programs Pj mutated by insertion of Mj mutations and the identification of mutated programs Pj providing, with a predetermined test Tk, a result RTkj identical to a result RTkD provided by said non-mutated program P, executed with said test Tk.

Abstract

The invention relates to a method and system for evaluating computer program tests by means of mutation analysis. The inventive method comprises the execution (F7) of mutated programs (Pj) with the insertion (F1) of mutations (Mj) and the identification (F12) of mutated programs (Pj) which, with a pre-determined test (Tk), provide a result (RTkj) identical to a pre-determined result (RTkD). A series (Uj) of relevant tests is selected (F4) for each mutation (Mj) from a plurality of tests (Tk). A mutation (Mj) ranking system (Cm) can be determined (F6) with the application (F6) of at least a first simplicity criterion to the selected series (Uj) of tests. The mutated programs (Pj) are subsequently executed (F7) according to the mutation (Mj) ranking (Cm) order. Each mutated program (Pj) is executed with the tests (Tk) from the associated series (Uj) of tests. In addition, the method can comprise the programming and activation of a programmable circuit. A ranking system for the tests (Tk) from a series (Uj) of tests can be determined with the application of a second simplicity criterion to the tests (Tk) from said series (Uj) of tests.

Description

Procédé et système d'évaluation de tests d'un programme d'ordinateur par analyse de mutations Method and system for evaluating tests of a computer program by mutation analysis
Domaine technique de l'inventionTechnical field of the invention
L'invention concerne un procédé d'évaluation de tests d'un programme d'ordinateur par analyse de mutations comportant l'exécution de programmes mutés par insertion de mutations et l'identification des programmes mutés fournissant, avec un test prédéterminé, un résultat identique à un résultat prédéterminé.The invention relates to a method for evaluating tests of a computer program by analyzing mutations comprising executing mutated programs by inserting mutations and identifying mutated programs providing, with a predetermined test, an identical result. to a predetermined result.
État de la techniqueState of the art
II est bien connu dans le domaine du développement de circuits intégrés, qu'un circuit intégré complexe peut comporter des erreurs. Différentes techniques sont ainsi utilisées pour vérifier le fonctionnement d'un circuit intégré ou d'un programme d'ordinateur modélisant le circuit intégré. Typiquement, une suite de tests est effectuée, chaque test indiquant si une erreur a été détectée ou non.It is well known in the field of integrated circuit development that a complex integrated circuit may have errors. Various techniques are thus used to verify the operation of an integrated circuit or a computer program modeling the integrated circuit. Typically, a test suite is performed, each test indicating whether an error has been detected or not.
L'analyse de mutations est une technique pour évaluer les tests, qui nécessite des ressources de calcul importantes. Lors de l'analyse de mutations, des erreurs ou des mutations sont insérées dans un programme initialement non muté. Ensuite, on vérifie si les tests détectent les mutations insérées. Lorsqu'un programme muté fourni, avec un test prédéterminé, un résultat identique à un résultat fourni par ledit programme non-muté, exécuté avec ledit test, la mutation est identifiée comme non-détectée. En revanche, lorsque le résultat fourni par le programme muté, avec un test prédéterminé, est différent du résultat fourni par ledit programme non-muté, exécuté avec ledit test, la mutation est identifiée comme détectée. Le test correspondant est arrêté et la mutation suivante est analysée. Les tests qui permettent de détecter des mutations sont retenus pour une suite de tests améliorée. L'intérêt de l'analyse de mutations est d'évaluer la qualité de la suite de tests et, éventuellement, d'optimiser la suite de tests.Mutational analysis is a technique for evaluating tests that requires significant computing resources. When analyzing mutations, errors or mutations are inserted into an initially unmutated program. Then we check if the tests detect the inserted mutations. When a mutated program provided, with a predetermined test, a result identical to a result provided by said non-mutated program, executed with said test, the mutation is identified as undetected. On the other hand, when the result provided by the mutated program, with a predetermined test, is different from the result provided by said non-mutated program, executed with said test, the mutation is identified as detected. The corresponding test is stopped and the next mutation is analyzed. Tests that detect mutations are retained for an improved test suite. The interest of the mutation analysis is to evaluate the quality of the test suite and possibly to optimize the test suite.
Si les tests sont effectués pour un grand nombre de mutations, la durée de l'analyse de mutations peut être très importante. Dans ce cas, le nombre de mutations est réduit, par exemple, en choisissant un certain genre de mutations ou en choisissant de manière aléatoire un certain nombre de mutations. Dans les deux cas, la qualité de l'évaluation des tests est détériorée.If the tests are performed for a large number of mutations, the duration of the mutation analysis can be very important. In this case, the number of mutations is reduced, for example, by choosing a certain kind of mutation or by randomly choosing a number of mutations. In both cases, the quality of the test evaluation is deteriorated.
Le document DE19959157 décrit une technique d'amélioration d'une suite de tests comportant une première étape pour distinguer rapidement des mutations subtiles et non-subtiles et une seconde étape permettant d'évaluer les tests pour les mutations non-subtiles.Document DE19959157 describes a technique for improving a test suite comprising a first step for quickly distinguishing between subtle and non-subtle mutations and a second step for evaluating the tests for non-subtle mutations.
Objet de l'inventionObject of the invention
L'invention a pour but de remédier à ces inconvénients et, en particulier, de minimiser la durée d'un procédé d'évaluation de tests d'un programme d'ordinateur par analyse de mutations, notamment par activation d'un circuit programmable comportant des ensembles logiques.The object of the invention is to remedy these drawbacks and, in particular, to minimize the duration of a method of evaluating tests of a computer program by analysis of mutations, in particular by activation of a programmable circuit comprising logical sets.
Selon l'invention, ce but est atteint par les revendications annexées et, plus particulièrement, par le fait que le procédé comporte la sélection, parmi une pluralité de tests, d'une suite de tests pertinents pour chaque mutation, la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés, - l'exécution des programmes mutés par ordre du classement, chaque programme muté étant exécuté avec les tests de la suite de tests associée.According to the invention, this object is achieved by the appended claims and, more particularly, by the fact that the method comprises selecting, from among a plurality of tests, a test suite relevant to each mutation, determining at least one ranking by applying at least one simplicity criterion to the selected tests, - executing the programs mutated by order of ranking, each mutated program being executed with the tests of the associated test suite.
Selon un mode de réalisation particulier de l'invention, le procédé comporte la programmation d'un circuit programmable par ledit programme comportant les mutations et l'activation du circuit programmable, le circuit programmable comportant des ensembles logiques associés respectivement aux mutations, des entrées de test sur lesquelles un système de contrôle applique des signaux représentatifs de données de test et des sorties de test transmettant, au système de contrôle, des signaux représentatifs de résultats de tests, au moins une entrée d'activation sur laquelle le système de contrôle applique sélectivement des signaux d'activation ou de désactivation des ensembles logiques, le circuit programmable étant programmé de manière à ce que son fonctionnement corresponde audit programme non-muté lorsque lesdits ensembles logiques sont désactivés et à un des programmes mutés lorsque l'ensemble logique correspondant est activé, le procédé comportant le test du circuit non-muté et des circuits mutés, un programme muté étant identifié lorsque le circuit muté correspondant fournit, avec un test prédéterminé, un résultat identique au résultat fourni par le circuit non-muté, exécuté avec ledit test.According to a particular embodiment of the invention, the method comprises the programming of a programmable circuit by said program comprising the mutations and the activation of the programmable circuit, the programmable circuit comprising logical sets associated respectively with the mutations, the inputs of tests on which a control system applies signals representative of test data and test outputs transmitting, to the control system, signals representative of test results, at least one activation input on which the control system selectively applies activation or deactivation signals of the logic units, the programmable circuit being programmed in such a way that its operation corresponds to said non-mutated program when said logic units are deactivated and to one of the mutated programs when the corresponding logic unit is activated , the method comprising the test of non-mutated circuit and mutated circuits, a mutated program being identified when the corresponding mutated circuit provides, with a predetermined test, a result identical to the result provided by the non-mutated circuit, executed with said test.
L'invention a également pour but un système pour effectuer un procédé d'évaluation de tests d'un programme d'ordinateur par analyse de mutations, le procédé comportant l'exécution de programmes mutés par insertion de mutations et l'identification des programmes mutés fournissant, avec un test prédéterminé, un résultat identique à un résultat prédéterminé, le système comportant des moyens pour la sélection, parmi une pluralité de tests, d'une suite de tests pertinents pour chaque mutation la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés, l'exécution des programmes mutés par ordre du classement, chaque programme muté étant exécuté avec les tests de la suite de tests associée.The invention also aims at a system for performing a method of evaluating tests of a computer program by mutation analysis, the method comprising the execution of mutant programs by insertion of mutations and identification of the mutated programs providing, with a predetermined test, a result identical to a predetermined result, the system comprising means for selecting, from among a plurality of tests, a series of tests relevant for each mutation the determination at least one classification by applying at least one simplicity criterion to the selected tests, the execution of the mutated programs in order of ranking, each mutated program being executed with the tests of the associated test suite.
L'invention a également pour but un média lisible par ordinateur comportant des instructions de commande d'un ordinateur pour exécuter un procédé d'évaluation de tests d'un programme d'ordinateur par analyse de mutations comportant l'exécution de programmes mutés par insertion de mutations et l'identification des programmes mutés fournissant, avec un test prédéterminé, un résultat identique à un résultat prédéterminé, le médium comportant des instructions de commande pour exécuter la sélection, parmi une pluralité de tests, d'une suite de tests pertinents pour chaque mutation, la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés, l'exécution des programmes mutés par ordre du classement, chaque programme, muté étant exécuté avec les tests de la suite de tests associée. Description sommaire des dessinsThe invention also aims at a computer-readable medium comprising instructions for controlling a computer for executing a method of evaluating tests of a computer program by analysis of mutations involving the execution of mutant programs by insertion. of mutations and the identification of the mutated programs providing, with a predetermined test, a result identical to a predetermined result, the medium comprising control instructions for performing the selection, among a plurality of tests, of a series of tests relevant to each mutation, the determination of at least one ranking by application of at least one criterion of simplicity to the selected tests, the execution of the mutated programs in order of ranking, each program, mutated being executed with the tests of the test suite associated. Brief description of the drawings
D'autres avantages et caractéristiques ressortiront plus clairement de la description qui va suivre de modes particuliers de réalisation de l'invention donnés à titre d'exemples non limitatifs et représentés aux dessins annexés, dans lesquels :Other advantages and features will emerge more clearly from the following description of particular embodiments of the invention given by way of non-limiting example and represented in the accompanying drawings, in which:
Les figures 1 à 4 représentent différentes étapes d'un procédé d'évaluation de tests d'un programme par analyse de mutations par activation d'un circuit programmable.Figures 1 to 4 show different steps of a method of evaluating tests of a program by analysis of mutations by activation of a programmable circuit.
La figure 5 illustre un mode de réalisation particulier d'un procédé d'évaluation selon l'invention.FIG. 5 illustrates a particular embodiment of an evaluation method according to the invention.
La figure 6 illustre un mode de réalisation particulier d'une étape de détermination d'un classement de tests d'un procédé selon l'invention. La figure 7 illustre un mode de réalisation particulier de deux étapes de détermination de classements supplémentaires.FIG. 6 illustrates a particular embodiment of a step of determining a ranking of tests of a method according to the invention. Figure 7 illustrates a particular embodiment of two steps of determining additional rankings.
La figure 8 illustre un mode de réalisation particulier d'une étape de sélection d'un classement réduit de mutations d'un procédé selon l'invention.FIG. 8 illustrates a particular embodiment of a step for selecting a reduced classification of mutations of a method according to the invention.
La figure 9 illustre un mode de réalisation particulier d'une étape d'élimination de mutations d'un procédé selon l'invention.FIG. 9 illustrates a particular embodiment of a step of eliminating mutations of a method according to the invention.
Description de modes particuliers de réalisationDescription of particular embodiments
On pourrait effectuer une analyse de mutations par l'intermédiaire d'un circuit programmable. Dans ce cas, l'analyse de mutations peut comporter, comme représenté à la figure 1 , la programmation d'un circuit programmable 1 par un programme P comportant les mutations Mj (M 1 , M2, M3, etc.). Ci-dessous, les mutations sont référencées par l'indice j. Le programme P modélise, par exemple, un circuit intégré. Sur la figure 1 , le circuit programmable 1 est programmé par l'intermédiaire d'un système de contrôle 2. L'analyse de mutations qui est ensuite effectuée comporte l'activation du circuit programmable 1.One could perform a mutation analysis through a programmable circuit. In this case, the analysis of mutations may include, as shown in Figure 1, the programming of a programmable circuit 1 by a program P with the mutations Mj (M1, M2, M3, etc.). Below, the mutations are referenced by the index j. The program P models, by example, an integrated circuit. In FIG. 1, the programmable circuit 1 is programmed via a control system 2. The mutation analysis which is then carried out comprises the activation of the programmable circuit 1.
Comme représenté à la figure 2, le circuit programmable 1 comporte des ensembles logiques Gj (G.1 , G2, G3, etc.), associés respectivement aux mutations Mj. Le circuit programmable 1 comporte au moins une entrée d'activation sur laquelle le système de contrôle 2 applique sélectivement des signaux d'activation Aj ou de désactivation D des ensembles logiques Gj. Le système de contrôle 2 applique, sur des entrées de test, des signaux Etk (Et1 , Et2, Et3, etc..) représentatifs de données de tests Tk (T1 , T2, T3, etc.). Ci- dessous, les tests sont référencés par l'indice k. Des signaux STkD (figure 2) et STkj (figure 3) représentatifs de résultats de tests Tk sont transmis par des sorties de test au système de contrôle 2.As represented in FIG. 2, the programmable circuit 1 comprises logical sets Gj (G.1, G2, G3, etc.) associated respectively with the mutations Mj. The programmable circuit 1 comprises at least one activation input on which the control system 2 selectively applies activation signals Aj or deactivation D logical sets Gj. The control system 2 applies, on test inputs, Etk signals (Et1, Et2, Et3, etc.) representative of test data Tk (T1, T2, T3, etc.). Below, the tests are referenced by the index k. Signals STkD (FIG. 2) and STkj (FIG. 3) representative of test results Tk are transmitted by test outputs to the control system 2.
Comme représenté à la figure 2, le circuit programmable 1 est programmé de manière à ce que son fonctionnement corresponde au programme P non-muté lorsque les ensembles logiques Gj sont désactivés par un signal de désactivation D. Les sorties du circuit programmable 1 transmettent ainsi des signaux STkD représentatifs des résultats des tests Tk appliqués au circuit non- muté.As represented in FIG. 2, the programmable circuit 1 is programmed so that its operation corresponds to the program P that is not mutated when the logic units Gj are deactivated by a deactivation signal D. The outputs of the programmable circuit 1 thus transmit STkD signals representative of the results of Tk tests applied to the non-mutated circuit.
Comme représenté à la figure 3. le fonctionnement du circuit programmable 1 correspond au programme Pj muté par la mutation Mj lorsque l'ensemble logique Gj correspondant est activé par un signal d'activation Aj. Les sorties du circuit programmable 1 transmettent ainsi des signaux STkj représentatifs des résultats des tests Tk appliqués au circuit muté correspondant au programme Pj muté. 5 001790As shown in FIG. 3, the operation of the programmable circuit 1 corresponds to the program Pj mutated by the mutation Mj when the corresponding logical set Gj is activated by an activation signal Aj. The outputs of the programmable circuit 1 thus transmit STkj signals representative of the results of tests Tk applied to the mutated circuit corresponding to the mutated program Pj. 5 001790
Comme réprésenté à la figure 4, le système de contrôle 2 comporte un comparateur pour comparer les signaux STkD et STkj. Lorsque les signaux STkD et STkj sont identiques, le comparateur fournit un signal IDkj permettant d'identifier le test Tk et le programme Pj correspondant. Un programme Pj muté est alors identifié lorsque le circuit muté correspondant fournit, avec un test Tk prédéterminé, un résultat STkj identique au résultat STkD fourni par le circuit non-muté, exécuté avec ledit test Tk.As shown in FIG. 4, the control system 2 comprises a comparator for comparing the signals STkD and STkj. When the signals STkD and STkj are identical, the comparator provides a signal IDkj making it possible to identify the test Tk and the corresponding program Pj. A mutated program Pj is then identified when the corresponding mutated circuit provides, with a predetermined test Tk, a result STkj identical to the result STkD provided by the non-mutated circuit, executed with said test Tk.
Le procédé représenté à la figure 5 est déclenché au temps t=0. Les programmes Pj mutés sont générés, dans une étape F1 , à partir des mutations Mj et du programme P non-muté, par insertion des mutations Mj dans le programme P. Toutes les mutations Mj sont, de préférence, insérées dans le même programme et peuvent être sélectivement activées ou désactivées, de manière connue, par des paramètres d'activation correspondants respectivement aux mutations Mj.The process shown in FIG. 5 is triggered at time t = 0. The mutated programs Pj are generated, in a step F1, from the mutations Mj and the non-mutated program P, by inserting the mutations Mj in the program P. All the mutations Mj are preferably inserted in the same program and can be selectively activated or deactivated, in a known manner, by activation parameters respectively corresponding to mutations Mj.
Dans le mode de réalisation particulier représenté à la figure 5, les résultats RTkD et RTkj sont mis en mémoire et comparé ultérieurement. Dans un autre mode de réalisation particulier, les résultats RTkD et RTkj peuvent être déterminés simultanément et comparés directement, sans nécessiter de mise en mémoire. Par ailleurs, dès qu'une mutation est détectée, avec un test prédéterminé, l'exécution du programme Pj muté avec ledit test est arrêtée et la mutation suivante est analysée.In the particular embodiment shown in FIG. 5, the results RTkD and RTkj are stored and compared later. In another particular embodiment, the results RTkD and RTkj can be determined simultaneously and compared directly, without requiring storage. Moreover, as soon as a mutation is detected, with a predetermined test, the execution of the program Pj mutated with said test is stopped and the next mutation is analyzed.
Dans une étape F2, le programme P non-muté est exécuté avec les tests Tk de la pluralité de tests Tk et fournit les résultats RTkD qui sont mis en mémoire dans l'étape F3. Dans une étape de sélection F4, une suite Uj de tests pertinents est sélectionnée, parmi une pluralité de tests Tk, pour chaque mutation Mj.In a step F2, the non-mutated program P is executed with the tests Tk of the plurality of tests Tk and provides the results RTkD which are stored in the step F3. In a selection step F4, a test suite Uj relevant is selected from among a plurality of tests Tk for each mutation Mj.
La sélection F4 des tests pertinents pour une mutation Mj prédéterminée peut, par exemple, être effectuée à partir de la couverture de code CC d'une partie Lj du programme P non-muté destinée à être modifiée par la mutation Mj prédéterminée. Ainsi, le procédé peut comporter, dans une étape F5, la détermination de la couverture de code CC du programme P non-muté pour chaque test Tk de la pluralité de tests.The selection F4 of the tests relevant for a predetermined mutation Mj may, for example, be performed from the code coverage CC of a portion Lj of the non-mutated program P to be modified by the predetermined mutation Mj. Thus, the method may comprise, in a step F5, the determination of the CC code coverage of the program P not mutated for each test Tk of the plurality of tests.
La couverture de code CC, qui est par exemple déterminée par simulation, indique le nombre de fois qu'une partie Lj1 typiquement une ligne, d'un programme P est exécutée, avec un test Tk donné. A titre d'exemple, le tableau 1 illustre la couverture de code CC de trois lignes 45 à 47 d'un programme P, par exemple un programme de type VHDL, comportant une boucle du type IF/THEN, dans laquelle une instruction (ligne 46) est soumise à une condition (ligne 45). Lorsque la condition est remplie, l'instruction est exécutée. Lorsque la condition n'est pas remplie, l'instruction n'est pas exécutée.The code coverage CC, which is for example determined by simulation, indicates the number of times that a portion Lj 1 typically a line of a program P is executed, with a given test Tk. By way of example, Table 1 illustrates the CC code coverage of three lines 45 to 47 of a program P, for example a program of the VHDL type, comprising a loop of the IF / THEN type, in which an instruction (line 46) is subject to one condition (line 45). When the condition is fulfilled, the instruction is executed. When the condition is not fulfilled, the instruction is not executed.
Tableau 1Table 1
La couverture de code CC indique que l'instruction de la ligne 46 est exécutée trois fois, tandis que les lignes 45 et 47 sont exécuté cinq fois. Dans l'exemple, la condition est alors aussi bien remplie, notamment trois fois, que non-remplie, notamment deux fois. The CC code coverage indicates that the instruction in line 46 is executed three times, while lines 45 and 47 are executed five times. In the example, the condition is then as well filled, in particular three times, than non-filled, in particular twice.
Le tableau 2 indique un exemple d'une mutation Mj insérée dans la ligne 45 du programme P illustré dans le tableau 1 , de manière à générer le programme Pj muté.Table 2 shows an example of a mutation Mj inserted in line 45 of the program P illustrated in Table 1, so as to generate the mutated program Pj.
Tableau 2Table 2
La mutation consiste à remplacer la condition (a=b) par la valeur «TRUE» et provoque ainsi systématiquement l'exécution de l'instruction de la ligne 46 après chaque exécution de la ligne 45. La mutation Mj est alors susceptible de modifier le résultat RTkj du test Tk et le test Tk est, ainsi, pertinent pour la mutation Mj. Le test Tk est ensuite sélectionné pour la suite Uj de tests pertinents pour la mutation Mj donnée, dans l'étape F4.The mutation consists in replacing the condition (a = b) by the value "TRUE" and thus systematically causes the execution of the instruction of line 46 after each execution of line 45. The mutation Mj is then likely to modify the RTkj result of Tk test and Tk test is, thus, relevant for mutation Mj. The test Tk is then selected for the sequence Uj of tests relevant for the given mutation Mj, in the step F4.
Le tableau 3 illustre un autre exemple de couverture de code CC des trois lignes 45 à 47 du programme précédent effectué avec un autre test Tk'.Table 3 illustrates another example of CC code coverage of the three lines 45 to 47 of the previous program performed with another test Tk '.
Tableau 3Table 3
La couverture de code CC indique que l'instruction de la ligne 46 est exécutée quatre fois avec le test Tk' et que les lignes 45 et 47 sont également exécutées quatre fois avec le test Tk'. Dans l'exemple, la condition de la ligne 45 est alors toujours remplie. The code coverage CC indicates that the instruction of line 46 is executed four times with the test Tk 'and that the lines 45 and 47 are also executed four times with the test Tk'. In the example, the condition of line 45 is always filled.
La mutation Mj illustrée dans le tableau 2 n'est alors pas susceptible de modifier le résultat RTk'j du test Tk' et le test Tk' n'est, ainsi, pas pertinent pour la mutation Mj. Le test Tk' n'est alors pas inclus dans la suite Uj de tests pertinents pour la mutation Mj donnée. Dans le cas où tous les tests sont non-pertinents, la mutation n'est pas utilisée dans la suite du procédé.The Mj mutation illustrated in Table 2 is then not likely to modify the RTk'j result of the Tk 'test and the Tk' test is thus not relevant for the Mj mutation. The test Tk 'is then not included in the sequence Uj of tests relevant for the given mutation Mj. In the case where all the tests are irrelevant, the mutation is not used in the rest of the process.
Selon l'invention, le procédé comporte la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés. Dans le mode de réalisation particulier représenté à la figure 5, après la sélection F4 des tests pertinents, la détermination d'au moins un classement comporte la détermination F6 d'un classement Cm des mutations Mj par application d'un premier critère de simplicité aux suites Uj de tests sélectionnées précédemment. Par exemple, le classement Cm des mutations Mj est établi, après détermination du nombre Nj de tests Tk de chaque suite de tests Uj, par ordre croissant du nombre Nj de tests Tk de chaque suite Uj de tests. Le classement Cm des mutations Mj peut également être établi par ordre croissant des ressources de calcul requises par chaque suite Uj de tests ou par ordre croissant de la durée estimée de l'exécution de chaque suite Uj de tests. Par exemple, la durée de l'exécution du programme P non-muté avec tous les tests Tk (étape F2) de la suite Uj de tests associée est déterminée et le classement Cm des mutations Mj est établi par ordre croissant de la durée de l'exécution du programme P non-muté exécuté avec tous les tests Tk de la suite Uj de tests. Le classement Cm des mutations peut être établi en fonction de plusieurs premiers critères, qui sont appliqués simultanément, éventuellement selon une hiérarchie de premiers critères. Par exemple, les mutations Mj sont d'abord classées en fonction du nombre Nj de tests Tk de chaque suite Uj de tests et, ensuite, lorsque plusieurs nombres Nj de tests Tk sont égaux, un premier critère additionnel est appliqué. Ainsi, le classement Cm des mutations Mj peut comporter une suite de sous-classements de mutations.According to the invention, the method comprises determining at least one classification by applying at least one criterion of simplicity to the selected tests. In the particular embodiment shown in FIG. 5, after the selection F4 of the relevant tests, the determination of at least one classification comprises the determination F6 of a classification Cm of the mutations Mj by applying a first criterion of simplicity to Uj suites of previously selected tests. For example, the classification Cm of mutations Mj is established, after determining the number Nj of tests Tk of each test suite Uj, in ascending order of the number Nj of tests Tk of each test suite Uj. The classification Cm mutations Mj can also be established in ascending order of the calculation resources required by each sequence Uj tests or in increasing order of the estimated duration of the execution of each suite Uj tests. For example, the duration of the execution of the program P not mutated with all the tests Tk (step F2) of the associated test suite Uj is determined and the classification Cm of the mutations Mj is established in ascending order of the duration of the execution of the unmutated program P executed with all the tests Tk of the test suite Uj. The classification Cm of the mutations can be established according to several first criteria, which are applied simultaneously, possibly according to a hierarchy of first criteria. For example, the mutations Mj are first classified according to the number Nj of tests Tk of each test suite Uj, and then, when several numbers Nj of tests Tk are equal, a first additional criterion is applied. Thus, the rank Cm mutations Mj may comprise a sequence of subclassifications of mutations.
Les mutations peuvent, de manière connue, être regroupées par différents types. Des types de mutation sont, par exemple, des mutations par omission d'une valeur numérique ou des mutations par insertion d'un facteur logique incorrect. Le classement Cm des mutations Mj peut, ainsi, être modifié ou ajusté en fonction des types de mutation. A l'intérieur d'un sous-classement des mutations, par exemple, les mutations peuvent être classifiées en fonction des types de mutation.Mutations can, in known manner, be grouped by different types. Types of mutations are, for example, mutations by omitting a numerical value or mutations by inserting an incorrect logical factor. The classification Cm mutations Mj can, thus, be modified or adjusted according to the types of mutation. Within a subclassification of mutations, for example, mutations can be classified according to mutation types.
Le classement Cm des mutations Mj peut également être ajusté en fonction de parties Lj du programme P non-muté destinées à être modifiées par les mutations Mj, par exemple en regroupant, au début du classement Cm, toutes les mutations Mj destinées à être insérées dans une même ligne prédéterminée (Lj) et en regroupant, à la suite dans le classement Cm, toutes les mutations Mj' destinées à être insérées dans une autre ligne prédéterminée (Lj'). Ainsi, le classement Cm des mutations Mj peut comporter une suite de sous- classements de mutations correspondant chacun à une partie prédéterminée du programme P non-muté.The classification Cm of the mutations Mj can also be adjusted according to parts Lj of the program P that are not mutated and intended to be modified by the mutations Mj, for example by grouping, at the beginning of the classification Cm, all the mutations Mj intended to be inserted into a same predetermined line (Lj) and grouping, following in the classification Cm, all the mutations Mj 'intended to be inserted in another predetermined line (Lj'). Thus, the classification Cm mutations Mj may comprise a sequence of mutations subclasses each corresponding to a predetermined portion of the program P unmutated.
Les différents sous-classements des mutations sont obtenus par application du premier critère de simplicité comme décrit précédemment. Le classement Cm des mutations Mj peut également être modifié ou ajusté en fonction de la probabilité des mutations d'être détectées. Ainsi, lors que certains types de mutations s'avèrent être détectés plus difficilement, c'est-à-dire moins souvent, ils peuvent être placés plus au début du classement Cm des mutations.The different subclassifications of the mutations are obtained by applying the first criterion of simplicity as described above. The Cm ranking mutations Mj can also be modified or adjusted depending on the probability of mutations to be detected. Thus, when certain types of mutations prove to be detected more difficultly, that is to say less often, they can be placed more at the beginning of the classification Cm mutations.
De manière générale, un critère de simplicité correspond, a priori, à un critère de probabilité de détecter des mutations et créé, ainsi, automatiquement un classement des mutations par ordre de probabilité croissante des mutations d'être détectées.In general, a simplicity criterion corresponds, a priori, to a probability criterion of detecting mutations and thus automatically creates a classification of the mutations in order of increasing probability of the mutations to be detected.
Le classement des mutations peut également être déterminé en tenant compte de la subtilité des mutations. Un moyen de mesure de la subtilité d'une mutation insérée dans une seule ligne est le nombre de fois que ladite ligne est activée par les tests. Plus ladite ligne est activée souvent, moins la mutation correspondante est considérée comme subtile. Les mutations subtiles sont placées, de préférence, au début du classement des mutations.The classification of mutations can also be determined taking into account the subtlety of mutations. One way of measuring the subtlety of a mutation inserted in a single line is the number of times that said line is activated by the tests. The longer this line is activated, the less the corresponding mutation is considered subtle. The subtle mutations are preferably placed at the beginning of the classification of the mutations.
Les programmes Pj mutés provenant de l'étape F1 sont ensuite exécutés, respectivement dans des étapes F7, par ordre du classement Cm des mutations Mj. Chaque programme Pj muté est exécuté avec les tests Tk de la suite Uj de tests associée sélectionnée dans l'étape F4.The mutated programs Pj from step F1 are then executed, respectively in steps F7, in order of the rank Cm mutations Mj. Each program Pj mutated is executed with the tests Tk of the test suite Uj associated selected in step F4.
Les mutations Mj associées aux suites Uj de tests présentant la plus grande simplicité sont testées en premier. Ainsi, lorsque la durée totale du procédé d'évaluation est limitée, un maximum de mutations Mj différentes est testé avant une interruption finale du procédé. Le procédé permet d'obtenir un plus grand pourcentage de mutations non-détectées qu'un procédé sélectionnant les mutations de manière aléatoire, par exemple. Ainsi, le procédé permet de manière plus efficace, de déterminer les tests Tk inefficaces pour les éliminer, éventuellement. Dans le mode de réalisation particulier représenté à la figure 5, lorsque le temps t est égal ou supérieur à un temps ts d'arrêt prédéterminé, comme représenté à la sortie OUI de l'étape F8, l'exécution des programmes mutés F7 est interrompue dans une étape F9. Lorsque le temps t est inférieur au temps ts d'arrêt, comme représenté à la sortie NON de l'étape F8, le temps t est incrémenté, dans une étape F10, et comparé de nouveau au temps ts d'arrêt dans l'étape F8.The mutations Mj associated with the Uj suites of tests having the greatest simplicity are tested first. Thus, when the total duration of the evaluation method is limited, a maximum of different mutations Mj is tested before a final interruption of the process. The method makes it possible to obtain a greater percentage of undetected mutations than a method selectively selecting mutations, for example. Thus, the method makes it possible more effectively to determine the ineffective Tk tests to eliminate them, eventually. In the particular embodiment shown in FIG. 5, when the time t is equal to or greater than a predetermined stopping time ts, as represented at the YES output of the step F8, the execution of the mutated programs F7 is interrupted. in a step F9. When the time t is less than the stop time ts, as represented at the output NO of the step F8, the time t is incremented, in a step F10, and compared again with the time ts stop in the step F8.
Le résultat RTkj fourni après chaque étape F7 d'exécution d'un programme Pj muté avec un test Tk prédéterminé, est mis en mémoire dans une étape F11. Dans une étape F12 sont comparés les résultats RTkD et RTkj associés respectivement à l'exécution du programme P non-muté, avec le test Tk prédéterminé, et au programme Pj muté, avec le test Tk prédéterminé. Lorsque les résultats RTkD et RTkj sont identiques (sortie OUI de F12), l'indice j de mutation et l'indice k de test sont mémorisés dans une étape F13. Ainsi est identifié le programme Pj mutés fournissant, avec un test Tk prédéterminé, un résultat RTkj identique à un résultat RTkD fourni par ledit programme P non- muté, exécuté avec ledit test Tk. Une telle identification est équivalant à la non- détection de la mutation Mj correspondante. Une mutation Mj est considérée détecté lorsque le programme Pj muté correspondant fournit, avec un test Tk prédéterminé, un résultat RTkj différent du résultat RTkD fourni par ledit programme P non-muté, exécuté avec ledit test Tk.The result RTkj provided after each step F7 of executing a program Pj mutated with a predetermined test Tk, is stored in a step F11. In a step F12 are compared the results RTkD and RTkj respectively associated with the execution of the program P not mutated, with the predetermined test Tk, and the program Pj mutated, with the predetermined test Tk. When the RTkD and RTkj results are identical (YES output of F12), the mutation index j and the test index k are stored in a step F13. Thus is identified the mutated program Pj providing, with a predetermined test Tk, a result RTkj identical to a result RTkD provided by said non-mutated program P, executed with said test Tk. Such identification is equivalent to the non-detection of the corresponding Mj mutation. A mutation Mj is considered detected when the corresponding mutated program Pj provides, with a predetermined test Tk, a result RTkj different from the result RTkD provided by said program P not mutated, executed with said test Tk.
Après l'étape F12, le programme Pj muté est exécuté avec le test Tk suivant, dans l'étape F7, jusqu'à ce que le programme Pj muté soit exécuté avec tous les tests de la suite Uj de tests associée. Ensuite, le programme Pj muté suivant, selon le classement Cm, est exécuté, avec les tests de la suite Uj de tests associée. Dans un mode de réalisation particulier, le procédé comporte la programmation du circuit programmable 1 par le programme P et par les mutations Mj, de manière à créer des ensembles logiques Gj associés aux mutations Mj. Le circuit programmable 1 est ensuite activé selon le procédé selon l'invention, ce qui permet d'obtenir un résultat d'évaluation de tests dans un temps inférieur au temps nécessaire pour un procédé d'activation d'un circuit programmable 1 selon l'art antérieur, tout en maximisant le nombre d'ensembles logiques Gj activés et testés.After the step F12, the mutated program Pj is executed with the following test Tk, in the step F7, until the program Pj mutated is executed with all the tests of the associated test suite Uj. Then, the next mutated program Pj, according to the rank Cm, is executed, with the tests of the associated test suite Uj. In a particular embodiment, the method comprises the programming of the programmable circuit 1 by the program P and by the mutations Mj, so as to create logical sets Gj associated with the mutations Mj. The programmable circuit 1 is then activated according to the method according to the invention, which makes it possible to obtain a test evaluation result in a time less than the time required for a method of activating a programmable circuit 1 according to the invention. prior art, while maximizing the number of logical sets Gj activated and tested.
Dans le mode de réalisation particulier représenté à la figure 6, la détermination d'au moins un classement comporte, après sélection F4 d'une suite Uj de tests pertinents pour chaque mutation Mj, la détermination F14 d'un classement Ctj des tests d'une suite Uj de tests par application d'un second critère de simplicité aux tests Tk de ladite suite Uj de tests. Chaque programme muté Pj est alors exécuté par ordre du classement Ctj des tests de la suite Uj associée. Par exemple, la durée de l'exécution du programme P non-muté avec chaque test Tk (étape F2) de la suite Uj de tests est déterminée et le classement des tests Tk d'une suite Uj de tests est établi par ordre croissant de la durée de l'exécution du programme P non-muté avec chaque test Tk de la suite Uj de tests. Le classement Ctj des tests d'une suite Uj de tests peut également être établi par ordre croissant des ressources de calcul requises par chaque test Tk de la suite Uj de tests. Le classement Ctj de tests représente l'avantage de maximiser le nombre de mutations détectées, lorsque la durée totale de test de la mutation Mj est limitée.In the particular embodiment represented in FIG. 6, the determination of at least one classification comprises, after selection F4 of a sequence Uj of tests relevant for each mutation Mj, the determination F14 of a classification Ctj of the tests of a test suite Uj by applying a second criterion of simplicity to the Tk tests of said Uj series of tests. Each mutated program Pj is then executed in order of the ranking Ctj of the tests of the associated sequence Uj. For example, the duration of the execution of the program P not mutated with each test Tk (step F2) of the test suite Uj is determined and the ranking of the tests Tk of a test sequence Uj is established in ascending order of the duration of the execution of the program P not mutated with each test Tk of the test suite Uj. The Ctj ranking of tests of a test suite Uj can also be established in ascending order of the computation resources required by each test Tk of the test suite Uj. The Ctj ranking of tests represents the advantage of maximizing the number of detected mutations, when the total test duration of the Mj mutation is limited.
Ainsi, le procédé peut comporter la détermination d'un classement Cm des mutations et/ou la détermination, d'un classement Ctj des tests d'une suite Uj de tests. Chaque classement peut être établi en tenant compte d'un seul critère correspondant ou de plusieurs critères correspondants simultanément. Dans un mode particulier de l'invention, le classement Ctj des tests Tk d'une suite Uj de tests est réduit à un premier test du classement Ctj des tests Tk1 par exemple en éliminant tous les tests qui suivent le premier test du classement de tests. Ceci permet d'identifier, dans une étape de test à courte durée, des mutations qui sont, par exemple, détectées par un test simplifié, notamment par un test ne comportant que le premier test de la suite Uj de tests associée.Thus, the method may comprise the determination of a classification Cm of the mutations and / or the determination of a classification Ctj tests of a sequence Uj tests. Each classification can be established by taking into account a single corresponding criterion or several corresponding criteria simultaneously. In a particular embodiment of the invention, the classification Ctj of the tests Tk of a test sequence Uj is reduced to a first test of the classification Ctj of the tests Tk 1 for example by eliminating all the tests which follow the first test of the classification of tests. This makes it possible to identify, in a short-term test step, mutations which are, for example, detected by a simplified test, in particular by a test comprising only the first test of the associated test sequence Uj.
Ensuite, les mutations non-détectées (dites subtiles) peuvent être analysées en exécutant, pour les mutations non-détectées, la totalité des tests des suites Uj de tests associées.Then, undetected mutations (so-called subtle) can be analyzed by performing, for undetected mutations, all the tests of the associated test suites Uj.
Après exécution d'une partie des programmes Pj mutés, c'est-à-dire au cours de l'analyse, il peut être avantageux de modifier les classements Ctj des tests et/ou le classement Cm des mutations Mj en choisissant d'autres critères de simplicité qu'auparavant. Ceci peut notamment être fait en fonction des résultats des programmes Pj mutés déjà exécutés. Ainsi, comme représenté à la figure 7, le procédé comporte, après exécution F15 d'une partie des programmes Pj mutés, la détermination F17 de classements supplémentaires Ctj des tests Tk des suites Uj de tests par application de critères de simplicité supplémentaires aux tests Tk des suites Uj de tests. Comme représenté à la figure 7, le procédé peut également comporter la détermination F16 d'un classement supplémentaire Cm des mutations Mj par application d'un critère de simplicité supplémentaire aux suites Uj de tests sélectionnées. Après les étapes F16 et/ou F17, l'exécution F7 des programmes Pj mutés non-exécutés peut être poursuivi par ordre du classement supplémentaire Cm des mutations Mj et/ou respectivement par ordre des classements supplémentaires Ctj des tests Tk. L'exécution des programmes Pj mutés peut, par exemple, être interrompue plusieurs fois, si nécessaire, pour créer de nouveaux classements supplémentaires Cm et/ou Ctj. Il est également possible de créer de nouveaux classements supplémentaires (Cm et/ou C'tj) simultanément avec l'analyse de mutations en cours, c'est-à-dire simultanément avec l'exécution d'une partie de programmes Pj mutés. Ensuite, une partie suivante de programmes Pj mutés est exécutée par ordre des nouveaux classements supplémentaires Cm et/ou C'tj.After executing part of the mutated programs Pj, that is to say during the analysis, it may be advantageous to modify the rankings Ctj of the tests and / or the classification Cm of the mutations Mj by choosing other simplicity criteria than before. This can be done in particular according to the results of the mutated programs Pj already executed. Thus, as represented in FIG. 7, the method comprises, after execution F15 of part of the mutated programs Pj, the determination F17 of additional rankings Ctj of the tests Tk of the test suites Uj by application of additional simplicity criteria to the Tk tests Uj suites of tests. As represented in FIG. 7, the method may also comprise the determination F16 of an additional classification Cm of the mutations Mj by application of an additional simplicity criterion to the sequences Uj of selected tests. After the steps F16 and / or F17, the execution F7 of the mutated non-executed programs Pj can be continued in order of the additional classification Cm of the mutations Mj and / or respectively by order of the additional rankings Ctj of the tests Tk. The execution of the mutated programs Pj may, for example, be interrupted several times, if necessary, to create new additional rankings Cm and / or Ctj. It is also possible to create new rankings additional (Cm and / or C'tj) simultaneously with the analysis of mutations in progress, that is to say simultaneously with the execution of a portion of mutated programs Pj. Then, a next part of mutated programs Pj is executed in order of the new additional classifications Cm and / or C'tj.
Les tests Tk peuvent être regroupés selon plusieurs seconds critères, à l'intérieur d'un classement C'tj de tests Tk. Par exemple, lorsque, au cour de l'analyse, deux tests Tk et Tk* ont détecté une mutation Mj insérée dans une partie Lj prédéterminée du programme P, ces deux tests Tk et Tk* peuvent être privilégiés pour le test des mutations Mj qui n'ont pas encore été testées et qui sont destinées à être insérées dans ladite partie Lj du programme P non-muté. Ces deux tests Tk et Tk* sont alors, de préférence, placés au début d'un classement supplémentaire C'tj des tests Tk pour une mutation Mj suivante destinée à être insérée dans ladite partie Lj.The tests Tk can be grouped according to several second criteria, inside a classification C'tj of tests Tk. For example, when, in the course of the analysis, two tests Tk and Tk * have detected a mutation Mj inserted in a predetermined portion Lj of the program P, these two tests Tk and Tk * can be privileged for the test of mutations Mj which have not yet been tested and which are intended to be inserted in said part Lj of the program P not mutated. These two tests Tk and Tk * are then preferably placed at the beginning of an additional classification C'tj Tk tests for a mutation Mj following intended to be inserted in said part Lj.
Un critère de simplicité correspondant peut, ainsi, tenir compte du nombre de mutations Mj détectées par les tests Tk1 dans une partie Lj prédéterminée du programme P. Ensuite, le test Tk ayant détecté le nombre le plus élevé de mutations, dans cette partie Lj prédéterminée, est placé au début du classement supplémentaire C'tj de tests Tk, pour le test de la mutation Mj destinée à être insérée dans ladite partie Lj. Ainsi, l'analyse de mutations est améliorée en fonction des résultats obtenus auparavant, au cours de l'analyse de mutations.A corresponding simplicity criterion can thus take into account the number of mutations Mj detected by the tests Tk 1 in a predetermined part Lj of the program P. Then, the test Tk having detected the highest number of mutations, in this part Lj predetermined, is placed at the beginning of the additional classification C'tj tests Tk for the Mj mutation test to be inserted in said part Lj. Thus, the analysis of mutations is improved according to the results obtained previously, during the analysis of mutations.
Dans un autre mode de réalisation particulier, représenté à la figure 8, le procédé comporte, après détermination du classement Cm des mutations Mj (étape F6), dans une étape F18, la sélection d'un classement réduit Cmr de mutations Mj. Le classement réduit Cmr de mutations comporte des mutations destinées à être insérées respectivement dans des parties différentes Lj du programme P non-muté. Lorsque plusieurs mutations du classement Cm sont, par exemple, destinées à être insérées dans une même ligne du programme P non-muté, la mutation classée en premier parmi ces mutations selon le classement Cm est retenue pour le classement réduit Cmr et suivie, dans le classement réduit Cmr, par une mutation destinée à être insérée dans une ligne différente. L'exécution F19 des programmes Pj mutés, correspondant à l'étape F7, est effectuée par ordre du classement réduit Cmr. Ainsi est favorisée le test de différentes parties Lj au test multiple d'une même partie Lj.In another particular embodiment, represented in FIG. 8, the method comprises, after determination of the classification Cm of the mutations Mj (step F6), in a step F18, the selection of a reduced classification Cmr of mutations Mj. The reduced rank of mutations Cmr includes mutations intended to be inserted respectively into different parts Lj of the program P not mutated. When several mutations of the Cm rank are, for example, intended to be inserted in the same line of the program P not mutated, the mutation ranked first among these mutations according to the Cm classification is retained for the reduced classification Cmr and followed, in the reduced classification Cmr, by a mutation intended to be inserted in a different line. The execution F19 of the mutated programs Pj, corresponding to the step F7, is performed in order of the reduced classification Cmr. Thus is favored the test of different parts Lj to the multiple test of the same part Lj.
Dans un mode de réalisation particulier, représenté à la figure 9, lorsqu'un programme Pj muté prédéterminé fournit, avec un test Tk prédéterminé, un résultat RTkj identique au résultat RTkD fourni par ledit programme P non-muté exécuté avec ledit test Tk (étape F12) le procédé comporte l'élimination, dans une étape F20, dans le classement Cm des mutations, de toutes les mutations Mj destinées à être insérées dans la même partie Lj du programme P non-muté que la mutation Mj correspondant audit programme Pj muté prédéterminé, de manière à obtenir un classement épuré Cmp. Les programmes Pj mutés sont ensuite exécutés selon le classement épuré Cmp, dans une étape F21 , correspondant à l'étape F7. Lorsqu'une mutation insérée dans une ligne prédéterminée, par exemple, a été détectée par un test Tk, toutes les mutations concernant la même ligne sont alors éliminée du classement Cm. La partie Lj du programme P non-muté peut, par exemple, être constituée par une ligne, par un bloc ou par un module du programme P non-muté ou par un ensemble de lignes, par un ensemble de blocs ou par un ensemble de modules.In a particular embodiment, represented in FIG. 9, when a predetermined mutated program Pj provides, with a predetermined test Tk, a result RTkj identical to the result RTkD provided by said non-mutated program P executed with said test Tk (step F12) the method comprises the elimination, in a step F20, in the classification Cm of the mutations, of all the mutations Mj intended to be inserted in the same part Lj of the non-mutated program P as the mutation Mj corresponding to said mutated program Pj predetermined, so as to obtain a streamlined classification Cmp. The mutated programs Pj are then executed according to the refined classification Cmp, in a step F21, corresponding to the step F7. When a mutation inserted in a predetermined line, for example, has been detected by a Tk test, all mutations on the same line are then eliminated from the Cm rank. The part Lj of the non-mutated program P may, for example, consist of a line, a block or a module of the program P not mutated or by a set of lines, by a set of blocks or by a set of modules.
Le programme P d'ordinateur peut être un modèle d'un circuit intégré, exprimé dans un langage de description quelconque comme, par exemple, Verilog ou VHDL Un système d'évaluation de tests d'un programme P d'ordinateur par analyse de mutations Mj selon l'invention comporte un système de contrôle 2 pour contrôler les différentes étapes du procédé d'évaluation selon l'invention, par exemple pour l'activation d'un circuit programmable 1.The computer program P may be a model of an integrated circuit, expressed in any description language such as, for example, Verilog or VHDL A system for evaluating tests of a computer program P by analysis of mutations Mj according to the invention comprises a control system 2 for controlling the various steps of the evaluation method according to the invention, for example for the activation of a programmable circuit 1.
Un média lisible par ordinateur, par exemple un CD-ROM, un disque dur, une disquette, etc.. comporte des instructions de commande d'un ordinateur pour exécuter un procédé d'évaluation de tests d'un programme P d'ordinateur par analyse de mutations Mj selon l'invention, le procédé comportant l'exécution de programmes Pj mutés par insertion de mutations Mj et l'identification des programmes Pj mutés fournissant, avec un test Tk prédéterminé, un résultat RTkj identique à un résultat RTkD fourni par ledit programme P non-muté, exécuté avec ledit test Tk. Computer readable media, e.g. a CD-ROM, a hard disk, a floppy disk, etc., includes control instructions from a computer for performing a method of evaluating tests of a computer program P by mutation analysis Mj according to the invention, the method comprising the execution of mutated programs Pj mutated by insertion of Mj mutations and the identification of mutated programs Pj providing, with a predetermined test Tk, a result RTkj identical to a result RTkD provided by said non-mutated program P, executed with said test Tk.

Claims

Revendications claims
1. Procédé d'évaluation de tests d'un programme (P) d'ordinateur par analyse de mutations (Mj) comportant l'exécution de programmes mutés par insertion (F1) de mutations (Mj) et l'identification (F12) des programmes (Pj) mutés fournissant, avec un test (Tk) prédéterminé, un résultat (RTkj) identique à un résultat prédéterminé, procédé caractérisé en ce qu'il comporte la sélection (F4), parmi une pluralité de tests (Tk), d'une suite (Uj) de tests pertinents pour chaque mutation (Mj), - la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés, l'exécution (F7) des programmes (Pj) mutés par ordre du classement, chaque programme (Pj) muté étant exécuté avec les tests (Tk) de la suite (Uj) de tests associée.1. A method for evaluating tests of a computer program (P) by mutation analysis (Mj) comprising the execution of mutant programs by insertion (F1) of mutations (Mj) and the identification (F12) of mutated programs (Pj) providing, with a predetermined test (Tk), a result (RTkj) identical to a predetermined result, characterized in that it comprises the selection (F4), out of a plurality of tests (Tk), a sequence (Uj) of tests relevant for each mutation (Mj), - determining at least one classification by applying at least one criterion of simplicity to the selected tests, the execution (F7) of the programs (Pj) mutated in order of ranking, each program (Pj) mutated being executed with the tests (Tk) of the associated test suite (Uj).
2. Procédé selon la revendication 1 , caractérisé en ce que le procédé comporte la programmation d'un circuit programmable (1) par ledit programme (P) comportant les mutations (Mj) et l'activation du circuit programmable (1), le circuit programmable (1) comportant des ensembles logiques (Gj) associés respectivement aux mutations (Mj), des entrées de test sur lesquelles un système de contrôle (2) applique des signaux (ETk) représentatifs de données de test (Tk) et des sorties de test transmettant, au système de contrôle (2), des signaux (STkD, STkj) représentatifs de résultats de tests (Tk), au moins une entrée d'activation sur laquelle le système de contrôle (2) applique sélectivement des signaux d'activation (Aj) ou de désactivation (D) des ensembles logiques (Gj), le circuit programmable (1) étant programmé de manière à ce que son fonctionnement corresponde audit programme (P) non- muté lorsque lesdits ensembles logiques (Gj) sont désactivés et à un des programmes (Pj) mutés lorsque l'ensemble logique (Gj) correspondant est activé, le procédé comportant le test du circuit non-muté et des circuits mutés, un programme (Pj) muté étant identifié lorsque le circuit muté correspondant fournit, avec un test (Tk) prédéterminé, un résultat (STkj) identique au résultat (STkD) fourni par le circuit non-muté, exécuté avec ledit test (Tk).2. Method according to claim 1, characterized in that the method comprises the programming of a programmable circuit (1) by said program (P) comprising the mutations (Mj) and the activation of the programmable circuit (1), the circuit programmable (1) having logical sets (Gj) associated respectively with the mutations (Mj), test inputs on which a control system (2) applies signals (ETk) representative of test data (Tk) and outputs of test transmitting, to the control system (2), signals (STkD, STkj) representative of test results (Tk), at least one activation input on which the control system (2) selectively applies activation signals (Aj) or deactivation (D) of the logic units (Gj), the programmable circuit (1) being programmed so that its operation corresponds to said non-mutated program (P) when said logical units (Gj) are deactivated and to one of the p rograms (Pj) mutated when the corresponding logical set (Gj) is activated, the method comprising testing the non-mutated circuit and mutated circuits, a mutated program (Pj) being identified when the corresponding mutated circuit provides, with a predetermined test (Tk), a result (STkj) identical to the result (STkD) ) provided by the non-mutated circuit, executed with said test (Tk).
3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que la détermination d'au moins un classement comporte la détermination d'un classement (Cm) des mutations (Mj) par application (F6) d'au moins un premier critère de simplicité aux suites (Uj) de tests sélectionnées, les programmes (Pj) mutés étant exécutés par ordre du classement (Cm) des mutations (Mj).3. Method according to one of claims 1 and 2, characterized in that the determination of at least one classification comprises determining a classification (Cm) mutations (Mj) by application (F6) of at least one first criterion of simplicity to the suites (Uj) of selected tests, the programs (Pj) mutated being executed in order of ranking (Cm) mutations (Mj).
4. Procédé selon la revendication 3, caractérisé en ce que le classement (Cm) des mutations (Mj) est établi par ordre croissant du nombre (Nj) de tests (Tk) de chaque suite (Uj) de tests.4. Method according to claim 3, characterized in that the classification (Cm) of the mutations (Mj) is established in ascending order of the number (Nj) of tests (Tk) of each sequence (Uj) of tests.
5. Procédé selon la revendication 3, caractérisé en ce que le classement (Cm) des mutations (Mj) est établi par ordre croissant de la durée de l'exécution du programme (P) non-muté exécuté avec tous les tests (Tk) de la suite (Uj) de tests.5. Method according to claim 3, characterized in that the classification (Cm) of the mutations (Mj) is established in ascending order of the duration of the execution of the program (P) not mutated executed with all the tests (Tk). of the continuation (Uj) of tests.
6. Procédé selon l'une quelconque des revendications 3 à 5, caractérisé en ce que le classement (Cm) des mutations (Mj) est ajusté en fonction de types de mutation.6. Method according to any one of claims 3 to 5, characterized in that the classification (Cm) mutations (Mj) is adjusted according to types of mutation.
7. Procédé selon l'une quelconque des revendications 3 à 5, caractérisé en ce que le classement (Cm) des mutations (Mj) est ajusté en fonction de parties (Lj) du programme (P) non-muté destinées à être modifiées par les mutations Mj. 7. Method according to any one of claims 3 to 5, characterized in that the classification (Cm) of the mutations (Mj) is adjusted according to parts (Lj) of the program (P) not mutated intended to be modified by mutations Mj.
8. Procédé selon l'une quelconque des revendications 3 à 7, caractérisé en ce que le classement (Cm) des mutations (Mj) est modifié en fonction de probabilité des mutations d'être détectées.8. Method according to any one of claims 3 to 7, characterized in that the classification (Cm) mutations (Mj) is modified according to the probability of mutations to be detected.
9. Procédé selon l'une quelconque des revendications 3 à 8, caractérisé en ce qu'il comporte/ après exécution (F15) d'une partie des programmes (Pj) mutés, la détermination (F16) d'un classement supplémentaire (Cm) des mutations (Mj) par application (F16) d'un critère de simplicité supplémentaire aux suites (Uj) de tests sélectionnées et l'exécution des programmes (Pj) mutés non-exécutés par ordre du classement supplémentaire (Cm) des mutations (Mj).9. Method according to any one of claims 3 to 8, characterized in that it comprises / after execution (F15) of a part of the programs (Pj) mutated, the determination (F16) of an additional classification (Cm ) mutations (Mj) by applying (F16) an additional simplicity criterion to the suites (Uj) of selected tests and executing the non-executed mutated programs (Pj) in order of the additional classification (Cm) of the mutations ( mj).
10. Procédé selon l'une quelconque des revendications 3 à 9, caractérisé en ce qu'il comporte, après détermination (F6) du classement (Cm) des mutations (Mj), la sélection (F18) d'un classement réduit (Cmr) de mutations (Mj) destinées à être insérées respectivement dans des parties (Lj) différentes du programme (P) non-muté, l'exécution (F19) des programmes (Pj) mutés étant effectué par ordre du classement réduit (Cmr).10. Method according to any one of claims 3 to 9, characterized in that it comprises, after determination (F6) of the classification (Cm) mutations (Mj), the selection (F18) of a reduced ranking (Cmr ) mutations (Mj) intended to be inserted respectively into different parts (Lj) of the program (P) unmutated, the execution (F19) of the programs (Pj) mutated being performed in order of reduced ranking (Cmr).
11. Procédé selon l'une quelconque des revendications 3 à 10, caractérisé en ce que, lorsqu'un programme (Pj) muté prédéterminé fournit, avec un test (Tk) prédéterminé, un résultat (RTkj) identique au résultat (RTkD) prédéterminé, le procédé comporte l'élimination (F20), dans le classement (Cm) des mutations (Mj), de toutes les mutations (Mj) destinées à être insérées dans la même partie (Lj) du programme (P) non-muté que la mutation (Mj) correspondant audit programme (Pj) muté prédéterminé11. Method according to any one of claims 3 to 10, characterized in that, when a predetermined program (Pj) mutated, with a predetermined test (Tk), a result (RTkj) identical to the predetermined result (RTkD) the method comprises eliminating (F20), in the classification (Cm) mutations (Mj), all mutations (Mj) intended to be inserted in the same part (Lj) of the non-mutated program (P) as the mutation (Mj) corresponding to said predetermined mutated program (Pj)
12. Procédé selon l'une quelconque des revendications 1 à 11 , caractérisé en ce que la détermination d'au moins un classement comporte la détermination (F14) d'un classement (Ctj) des tests (Tk) d'une suite (Uj) de tests par application (F14) d'un second critère de simplicité aux tests (Tk) de ladite suite (Uj) de tests, chaque programme muté (Pj) étant exécuté par ordre du classement (Ctj) des tests de la suite (Uj) de tests associée.12. Method according to any one of claims 1 to 11, characterized in that the determination of at least one classification comprises the determination (F14) of a ranking (Ctj) tests (Tk) of a sequence (Uj ) tests by application (F14) of a second criterion of simplicity to the tests (Tk) of said sequence (Uj) of tests, each mutated program (Pj) being executed in order of ranking (Ctj) tests of the suite (Uj) of tests associated.
13. Procédé selon la revendication 12, caractérisé en ce que le classement (Ctj) des tests (Tk) d'une suite (Uj) de tests est réduit à un premier test du classement (Ctj) des tests (Tk).13. The method of claim 12, characterized in that the classification (Ctj) tests (Tk) of a sequence (Uj) of tests is reduced to a first test ranking (Ctj) tests (Tk).
14. Procédé selon l'une des revendications 12 et 13, caractérisé en ce que le classement (Ctj) des tests (Tk) d'une suite (Uj) de tests est établi par ordre croissant de la durée de l'exécution du programme (P) non-muté exécuté avec chaque test (Tk) de la suite (Uj) de tests.14. Method according to one of claims 12 and 13, characterized in that the classification (Ctj) tests (Tk) of a sequence (Uj) of tests is established in ascending order of the duration of the execution of the program (P) non-mutated executed with each test (Tk) of the suite (Uj) of tests.
15. Procédé selon l'une des revendications 12 et 13, caractérisé en ce que le classement (Ctj) des tests (Tk) d'une suite (Uj) de tests est établi par ordre croissant des ressources de calcul requises par chaque test (Tk).15. Method according to one of claims 12 and 13, characterized in that the classification (Ctj) tests (Tk) of a sequence (Uj) of tests is established in ascending order of the computing resources required by each test ( Tk).
16. Procédé selon l'une quelconque des revendications 12 à 15, caractérisé en ce qu'il comporte, après exécution (F15) d'une partie des programmes (Pj) mutés, la détermination (F17) de classements supplémentaires (Ctj) des tests (Tk) des suites (Uj) de tests par application (F17) de critères de simplicité supplémentaires aux tests (Tk) des suites (Uj) de tests et l'exécution des programmes (Pj) mutés non-exécutés par ordre respectivement des classements supplémentaires (Ctj) des tests correspondants.16. Method according to any one of claims 12 to 15, characterized in that it comprises, after execution (F15) of a part of the programs (Pj) mutated, the determination (F17) of additional rankings (Ctj) of tests (Tk) of the suites (Uj) of tests by application (F17) of additional simplicity criteria to the tests (Tk) of the suites (Uj) of tests and the execution of the mutated programs (Pj) not executed by order of the additional rankings (Ctj) of the corresponding tests.
17. Procédé selon l'une quelconque des revendications 1 à 16, caractérisé en ce que l'exécution des programmes (Pj) mutés est interrompue (F9) après un temps (ts) prédéterminé. 17. Method according to any one of claims 1 to 16, characterized in that the execution of the programs (Pj) mutated is interrupted (F9) after a predetermined time (ts).
18. Système pour effectuer un procédé d'évaluation de tests d'un programme (P) d'ordinateur par analyse de mutations (Mj) selon l'une quelconque des revendications 1 à 17, comportant l'exécution (F7) de programmes (Pj) mutés par insertion (F1) de mutations (Mj) et l'identification (F12) des programmes (Pj) mutés fournissant, avec un test (Tk) prédéterminé, un résultat (RTkj) identique à un résultat prédéterminé, système caractérisé en ce qu'il comporte des moyens (2) pour la sélection (F4), parmi une pluralité de tests (Tk), d'une suite (Uj) de tests pertinents pour chaque mutation (Mj), la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés, l'exécution (F7) des programmes (Pj) mutés par ordre du classement, chaque programme (Pj) muté étant exécuté avec les tests (Tk) de la suite (Uj) de tests associée.The system for performing a method of evaluating tests of a computer program (P) by mutation analysis (Mj) according to any one of claims 1 to 17, comprising executing (F7) programs ( Pj) mutated by insertion (F1) of mutations (Mj) and the identification (F12) of the mutated programs (Pj) providing, with a predetermined test (Tk), a result (RTkj) identical to a predetermined result, a system characterized in it comprises means (2) for selecting (F4), among a plurality of tests (Tk), a sequence (Uj) of tests relevant for each mutation (Mj), determining at least one classification by application of at least one criterion of simplicity to the selected tests, the execution (F7) of the programs (Pj) mutated in rank order, each program (Pj) mutated being executed with the tests (Tk) of the sequence ( Uj) associated tests.
19. Média lisible par ordinateur comportant des instructions de commande d'un ordinateur pour exécuter un procédé d'évaluation de tests d'un programme (P) d'ordinateur par analyse de mutations (Mj) selon l'une quelconque des revendications 1 à 17, comportant l'exécution (F7) de programmes (P) mutés par insertion (F1) de mutations (Mj) et l'identification (F12) des programmes (Pj) mutés fournissant, avec un test (Tk) prédéterminé, un résultat (RTkj) identique à un résultat prédéterminé, médium caractérisé en ce qu'il comporte des instructions de commande pour exécuter la sélection (F4), parmi une pluralité de tests (Tk), d'une suite (Uj) de tests pertinents pour chaque mutation (Mj), la détermination d'au moins un classement par application d'au moins un critère de simplicité aux tests sélectionnés, l'exécution (F7) des programmes (Pj) mutés par ordre du classement, chaque programme (Pj) muté étant exécuté avec les tests (Tk) de la suite (Uj) de tests associée. Computer readable media comprising computer control instructions for performing a method of evaluating tests of a computer program (P) by mutation analysis (Mj) according to any one of claims 1 to 17, comprising executing (F7) programs (P) mutated by inserting (F1) mutations (Mj) and identifying (F12) mutated programs (Pj) providing, with a predetermined test (Tk), a result (RTkj) identical to a predetermined result, medium characterized in that it comprises control instructions for performing the selection (F4), among a plurality of tests (Tk), a sequence (Uj) of relevant tests for each mutation (Mj), determining at least one ranking by applying at least one criterion of simplicity to the selected tests, executing (F7) programs (Pj) mutated in rank order, each program (Pj) being mutated being executed with the tests (Tk) of the associated test suite (Uj).
EP05788600A 2004-07-30 2005-07-12 Method and system for evaluating computer program tests by means of mutation analysis Withdrawn EP1776640A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0408429A FR2873832B1 (en) 2004-07-30 2004-07-30 METHOD AND SYSTEM FOR EVALUATING TESTS OF A COMPUTER PROGRAM BY ANALYSIS OF MUTATIONS
PCT/FR2005/001790 WO2006024723A2 (en) 2004-07-30 2005-07-12 Method and system for evaluating computer program tests by means of mutation analysis

Publications (1)

Publication Number Publication Date
EP1776640A2 true EP1776640A2 (en) 2007-04-25

Family

ID=34951087

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05788600A Withdrawn EP1776640A2 (en) 2004-07-30 2005-07-12 Method and system for evaluating computer program tests by means of mutation analysis

Country Status (4)

Country Link
US (1) US7574681B2 (en)
EP (1) EP1776640A2 (en)
FR (1) FR2873832B1 (en)
WO (1) WO2006024723A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060225051A1 (en) * 2005-04-05 2006-10-05 Cisco Technology, Inc. Method and system for code coverage
DE102006056432A1 (en) 2006-11-28 2008-05-29 Certess, Inc., Campbell Method for testing a computer program
US9619373B2 (en) * 2009-12-14 2017-04-11 International Business Machines Corporation Method and apparatus to semantically connect independent build and test processes
JP6748357B2 (en) * 2016-09-23 2020-09-02 富士通株式会社 Analysis device, analysis program, and analysis method
US10705949B2 (en) * 2017-11-03 2020-07-07 Oracle International Corporation Evaluation of library test suites using mutation testing
CN109739746B (en) * 2018-12-12 2022-03-01 江苏师范大学 Variation testing method based on original sentence dominance analysis

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298317B1 (en) 1999-01-25 2001-10-02 Hewlett-Packard Company Enhanced functional testing through the filtration of non-subtle mutations
US6810372B1 (en) * 1999-12-07 2004-10-26 Hewlett-Packard Development Company, L.P. Multimodal optimization technique in test generation
JP2001238523A (en) 2000-03-01 2001-09-04 Kubota Corp Combine harvester
US7039545B2 (en) * 2004-04-19 2006-05-02 Agilent Technologies, Inc. Apparatus, system and/or method for converting a serial test to a parallel test

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

Publication number Publication date
US7574681B2 (en) 2009-08-11
FR2873832B1 (en) 2006-09-15
WO2006024723A2 (en) 2006-03-09
US20070266351A1 (en) 2007-11-15
WO2006024723A3 (en) 2007-03-22
FR2873832A1 (en) 2006-02-03

Similar Documents

Publication Publication Date Title
EP2286339B1 (en) Method of automatically formulating test cases for verifying at least one part of a piece of software
EP1776640A2 (en) Method and system for evaluating computer program tests by means of mutation analysis
FR3044126A1 (en) SYSTEM AND METHOD FOR AUTOMATICALLY CREATING TEST CASES BASED ON REQUIREMENTS RELATING TO CRITICAL SOFTWARE
EP3814789B1 (en) Method for characterising a fault in a transmission line network with unknown topology
FR3011936A1 (en) METHOD, SYSTEM AND COMPUTER PROGRAM FOR ACOUSTIC ANALYSIS OF A MACHINE
CA2505943C (en) Monitoring the robustness of the modelling of a physical system
EP1387305A1 (en) Method and system for automatically providing a global model of an architectural simulation
FR2838844A1 (en) Performance model generation method in which a functional model of a system is used as a starting point for model generation, the invention relating particularly to communications networks with a multiplicity of hard- and software
WO2001020355A1 (en) Method for locating faulty elements in an integrated circuit
EP0823089B1 (en) Automatic parallel electronic component testing method and equipment
FR3105862A1 (en) METHOD AND SYSTEM FOR SELECTING A LEARNING MODEL WITHIN A PLURALITY OF LEARNING MODELS
EP0408425B1 (en) Component net test appliance especially for an electronic circuit
CN108377208B (en) Server pressure testing method and device based on protocol playback
FR2935058A1 (en) COMPUTER VERIFICATION TOOL
FR2892846A1 (en) Audio segment representations similarity measurement calculating method for speaker tracking, involves attributing weighting factor, representing intraclass similarity measurement between representations, to basic similarity measurement
FR3047824B1 (en) METHOD FOR ASSISTING THE VALIDATION OF A SYSTEM AND ASSOCIATED ASSISTING DEVICE
FR2870955A1 (en) DEBUGGING AN ELECTRONIC CIRCUIT MANUFACTURED FROM A PROGRAM IN LANGUAGE OF DESCRIPTION OF EQUIPMENT
FR2842001A1 (en) METHOD AND DEVICE FOR IDENTIFYING CONFLICT SITUATIONS IN A CIRCUIT DESIGN
EP3267319A1 (en) Method for testing a graphical interface and corresponding test system
EP2965238A1 (en) Method for managing data relative to motor vehicles with a view to the subsequent graphic generation of electrical diagrams of electrical systems
CN117555812B (en) Cloud platform automatic testing method and system
US20240134764A1 (en) Methods and systems for testing a system
FR3045860A1 (en) METHOD FOR DETECTING TESTABILITY PROBLEMS OF A COMPUTER MODULE
FR3097665B1 (en) AUTOMATIC COST VALIDATION PROCESS AND DEVICE FOR IMPLEMENTING THE PROCESS
FR3116930A1 (en) Process for characterizing a work cycle

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20070102

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA HR MK YU

R17D Deferred search report published (corrected)

Effective date: 20070322

RIN1 Information on inventor provided before grant (corrected)

Inventor name: HAMPTON, MARK

DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: HAMPTON, MARK

17Q First examination report despatched

Effective date: 20080702

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SPRINGSOFT USA INC.

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20170724

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SPRINGSOFT SAS

Owner name: SPRINGSOFT USA INC.

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20190201