EP1776640A2 - Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations - Google Patents

Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations

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)
English (en)
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/fr
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.

Landscapes

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

Abstract

Le procédé comporte l’exécution (F7) de programmes (Pj) mutés par insertion (F1) de mutations (Mj) et d'identification (F12) des programmes (Pj) mutés fournissant avec un test (Tk) prédéterminé, un résultat (RTkj) identique a un résultat (RTkD) prédeterminé. Une suite (Uj) de tests pertinents est selectionnée (F4), parmi une pluralité de tests (Tk), pour chaque mutation (Mj). Un classement (Cm) des mutations (Mj) peut être déterminé (F6) par application (F6) d'au moins un premier critère de simplicité aux suites (Uj) de tests selectionnées. Les programmes (Pj) mutés sont, ensuite, executés (F7) par ordre du classement (Cm) des mutations (Mj). Chaque programme (Pj) muté est executé avec les tests (Tk) de la suite (Uj) de tests associée. Le procédé peut comporter la programmation et l'activation d'un circuit programmable. Un classement des tests (Tk) d'une suite (Uj) de tests peut être déterminé par application d'un second critère de simplicité aux tests (Tk) de ladite suite (Uj) de tests.

Description

Procédé et système d'évaluation de tests d'un programme d'ordinateur par analyse de mutations
Domaine technique de l'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é.
État de la technique
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.
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.
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.
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.
Objet de l'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.
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.
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.
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.
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 dessins
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 :
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.
La figure 5 illustre un mode de réalisation particulier d'un procédé d'évaluation selon l'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.
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.
La figure 9 illustre un mode de réalisation particulier d'une étape d'élimination de mutations d'un procédé selon l'invention.
Description de modes particuliers de réalisation
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.
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.
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é.
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 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.
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.
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.
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.
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.
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.
Tableau 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.
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é.
Tableau 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.
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'.
Tableau 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.
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é.
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.
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.
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é.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

Claims

Revendications
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.
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).
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).
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.
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.
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.
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.
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.
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).
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).
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é
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.
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).
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.
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).
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.
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é.
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.
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.
EP05788600A 2004-07-30 2005-07-12 Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations Withdrawn EP1776640A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0408429A FR2873832B1 (fr) 2004-07-30 2004-07-30 Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations
PCT/FR2005/001790 WO2006024723A2 (fr) 2004-07-30 2005-07-12 Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations

Publications (1)

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

Family

ID=34951087

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05788600A Withdrawn EP1776640A2 (fr) 2004-07-30 2005-07-12 Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations

Country Status (4)

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

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 (de) * 2006-11-28 2008-05-29 Certess, Inc., Campbell Verfahren zum Testen eines Computerprogramms
US9619373B2 (en) * 2009-12-14 2017-04-11 International Business Machines Corporation Method and apparatus to semantically connect independent build and test processes
JP6748357B2 (ja) * 2016-09-23 2020-09-02 富士通株式会社 解析装置、解析プログラムおよび解析方法
US10705949B2 (en) * 2017-11-03 2020-07-07 Oracle International Corporation Evaluation of library test suites using mutation testing
CN109739746B (zh) * 2018-12-12 2022-03-01 江苏师范大学 一种基于原语句占优分析的变异测试方法

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 (ja) 2000-03-01 2001-09-04 Kubota Corp コンバイン
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
FR2873832A1 (fr) 2006-02-03
WO2006024723A3 (fr) 2007-03-22
WO2006024723A2 (fr) 2006-03-09
US7574681B2 (en) 2009-08-11
US20070266351A1 (en) 2007-11-15
FR2873832B1 (fr) 2006-09-15

Similar Documents

Publication Publication Date Title
EP2286339B1 (fr) Procédé d'élaboration automatique de cas de test pour la vérification d'au moins une partie d'un logiciel
FR3044126A1 (fr) Systeme et procede pour creer automatiquement des cas de tests a base d'exigences liees a un logiciel critique
EP1776640A2 (fr) Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations
EP3814789B1 (fr) Procede de caracterisation d'un defaut dans un reseau de lignes de transmission de topologie inconnue
FR3011936A1 (fr) Procede, systeme et programme d'ordinateur d'analyse acoustique d'une machine
CA2505943C (fr) Controle de la robustesse d'une modelisation d'un systeme physique
EP1387305A1 (fr) Procédé et systeme d'établissement automatique d'un modèle global de simulation d'une architecture
FR3105862A1 (fr) PROCEDE ET système DE SELECTION D’UN MODELE D’apprentissage AU SEIN D’UNE PLURALITE DE MODELES D’apprentissage
WO2001020355A1 (fr) Procede de localisation d'elements defectueux dans un circuit integre
EP0823089B1 (fr) Procede et equipement de test automatique en parallele de composants electroniques
FR3047824B1 (fr) Procede d'aide a la validation d'un systeme et dispositif d'aide associe
EP0408425B1 (fr) Dispositif de test d'un réseau de composants notamment un circuit électronique
EP2965238A1 (fr) Procede de gestion de donnees relatives a des vehicules automobiles en vue de la generation graphique ulterieure de schemas electriques de systemes electriques
CN108377208B (zh) 一种基于协议回放的服务器压力测试方法及装置
FR2935058A1 (fr) Outil de verification informatique
FR2892846A1 (fr) Procede et dispositif de calcul de mesure de similarite entre une representation d'un segment audio de reference et une representation d'un segment audio a tester et procede et dispositif de suivi d'un locuteur de reference
FR2870955A1 (fr) Debogueur d'un circuit electronique fabrique a partir d'un programme en langage de description de materiel
FR3097665B1 (fr) Procédé de validation automatique de cots et dispositif pour la mise en oeuvre du procédé
FR2842001A1 (fr) Procede et dispositif d'identification de situations de conflit dans une conception de circuit
FR3096477A1 (fr) Calcul d'agrégation agnostique de modèle de jonction dans des opérations de requête de base de données
JP6946530B2 (ja) 本番作業に基づいた検証用クラウドソーシング作業を提供する方法及び装置
CN117555812B (zh) 一种云平台自动化测试方法及系统
US20240232030A9 (en) Methods and systems for testing a system
US20240134764A1 (en) Methods and systems for testing a system
FR3053809A1 (fr) Procede de test d'une interface graphique et systeme de test associe

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