FR2873832A1 - 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 Download PDF

Info

Publication number
FR2873832A1
FR2873832A1 FR0408429A FR0408429A FR2873832A1 FR 2873832 A1 FR2873832 A1 FR 2873832A1 FR 0408429 A FR0408429 A FR 0408429A FR 0408429 A FR0408429 A FR 0408429A FR 2873832 A1 FR2873832 A1 FR 2873832A1
Authority
FR
France
Prior art keywords
tests
mutated
mutations
test
program
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.)
Granted
Application number
FR0408429A
Other languages
English (en)
Other versions
FR2873832B1 (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.)
Certess SA
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
Priority to FR0408429A priority Critical patent/FR2873832B1/fr
Priority to EP05788600A priority patent/EP1776640A2/fr
Priority to US11/631,191 priority patent/US7574681B2/en
Priority to PCT/FR2005/001790 priority patent/WO2006024723A2/fr
Publication of FR2873832A1 publication Critical patent/FR2873832A1/fr
Application granted granted Critical
Publication of FR2873832B1 publication Critical patent/FR2873832B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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 l'identification (F12) des programmes (Pj) mutés fournissant, avec un test (Tk) prédéterminé, un résultat (RTkj) identique à un résultat (RTkD) prédéterminé. Une suite (Uj) de tests pertinents est sélectionné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 sélectionnées. Les programmes (Pj) mutés sont, ensuite, exécutés (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. 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 Il 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 o 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 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.
Selon un premier développement de l'invention, la détermination d'au moins un classement comporte la détermination d'un classement des mutations par application d'au moins un premier critère de simplicité aux suites de tests sélectionnées, les programmes mutés étant exécutés par ordre du classement des mutations.
Selon un second développement de l'invention, la détermination d'au moins un classement comporte la détermination d'un classement des tests d'une suite de tests par application d'un second critère de simplicité aux tests de ladite suite de tests, chaque programme muté étant exécuté par ordre du classement des tests de la suite de tests associée.
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 o 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.
o 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 (M1, M2, M3, etc...). Ci-dessous, les mutations sont référencées par l'indice j. Le programme P modélise, par o 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 (G1, 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 (Ti, 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é.
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 nonmuté 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 Lj, 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
Numéro de Ligne Couverture de code CC Code 5 if (a=b) then 46 3 a≤a+1; 47 5 end if; 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 o muté.
Tableau 2
Numéro de Ligne Code if (TRUE) then 46 a≤a+1; 47 end if; 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 Numéro de Ligne Couverture de code CC' Code 4 if(a=b) then 46 4 a≤a+1; 47 4 end if; 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 nonmuté, 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 Tk, 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 C'tj 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 C'm 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 C'm des mutations Mj et/ou respectivement par ordre des classements supplémentaires C'tj 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 C'm et/ou C'tj. II est également possible de créer de nouveaux classements supplémentaires (C'm 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 C'm 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 Tk, 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 Cmsont, 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 1s 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 (19)

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) nonmuté 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 (C'm) 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 (C'm) 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 yo 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 (C'tj) 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 (C'tj) 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 25 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.
FR0408429A 2004-07-30 2004-07-30 Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations Active FR2873832B1 (fr)

Priority Applications (4)

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
EP05788600A EP1776640A2 (fr) 2004-07-30 2005-07-12 Procede et systeme d'evaluation de tests d'un programme d'ordinateur par analyse de mutations
US11/631,191 US7574681B2 (en) 2004-07-30 2005-07-12 Method and system for evaluating computer program tests by means of mutation analysis
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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
FR2873832A1 true FR2873832A1 (fr) 2006-02-03
FR2873832B1 FR2873832B1 (fr) 2006-09-15

Family

ID=34951087

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0408429A Active FR2873832B1 (fr) 2004-07-30 2004-07-30 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008064658A2 (fr) * 2006-11-28 2008-06-05 Certess, Inc. Procédé de test d'un programme d'ordinateur

Families Citing this family (5)

* 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
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 江苏师范大学 一种基于原语句占优分析的变异测试方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001235523A (ja) * 1999-12-07 2001-08-31 Hewlett Packard Co <Hp> テスト生成におけるマルチモード最適化技術
US6298317B1 (en) * 1999-01-25 2001-10-02 Hewlett-Packard Company Enhanced functional testing through the filtration of non-subtle mutations

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (2)

* 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
JP2001235523A (ja) * 1999-12-07 2001-08-31 Hewlett Packard Co <Hp> テスト生成におけるマルチモード最適化技術

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAUDRY B ET AL: "Genes and bacteria for automatic test cases optimization in the .NET environment", SOFTWARE RELIABILITY ENGINEERING, 2002. PROCEEDINGS. 13TH INTERNATIONAL SYMPOSIUM ON 12-15 NOV. 2002, PISCATAWAY, NJ, USA,IEEE, 12 November 2002 (2002-11-12), pages 195 - 206, XP010625137, ISBN: 0-7695-1763-3 *
PATENT ABSTRACTS OF JAPAN vol. 2000, no. 25 12 April 2001 (2001-04-12) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008064658A2 (fr) * 2006-11-28 2008-06-05 Certess, Inc. Procédé de test d'un programme d'ordinateur
WO2008064658A3 (fr) * 2006-11-28 2008-11-20 Certess Inc Procédé de test d'un programme d'ordinateur
US8468503B2 (en) 2006-11-28 2013-06-18 Synopsys, Inc. Method for testing a computer program
US9342645B2 (en) 2006-11-28 2016-05-17 Synopsys, Inc. Method for testing a computer program

Also Published As

Publication number Publication date
US7574681B2 (en) 2009-08-11
FR2873832B1 (fr) 2006-09-15
EP1776640A2 (fr) 2007-04-25
WO2006024723A2 (fr) 2006-03-09
US20070266351A1 (en) 2007-11-15
WO2006024723A3 (fr) 2007-03-22

Similar Documents

Publication Publication Date Title
EP2286339B1 (fr) Procédé d&#39;élaboration automatique de cas de test pour la vérification d&#39;au moins une partie d&#39;un logiciel
FR3044126A1 (fr) Systeme et procede pour creer automatiquement des cas de tests a base d&#39;exigences liees a un logiciel critique
EP1776640A2 (fr) Procede et systeme d&#39;evaluation de tests d&#39;un programme d&#39;ordinateur par analyse de mutations
FR3011936A1 (fr) Procede, systeme et programme d&#39;ordinateur d&#39;analyse acoustique d&#39;une machine
FR2619926A1 (fr) Procede et appareil de diagnostic de defauts sur une carte de circuit
EP3814789B1 (fr) Procede de caracterisation d&#39;un defaut dans un reseau de lignes de transmission de topologie inconnue
CA2505943C (fr) Controle de la robustesse d&#39;une modelisation d&#39;un systeme physique
FR2838844A1 (fr) Procede de generation d&#39;un modele de performance a partir d&#39;un modele fonctionnel
WO2001020355A1 (fr) Procede de localisation d&#39;elements defectueux dans un circuit integre
EP3588387A1 (fr) Procédé de test d&#39;un système électronique de contrôle du trafic aérien, dispositif électronique et plate-forme associés
FR2733323A1 (fr) Procede et equipement de test automatique en parallele de composants electroniques
FR3105862A1 (fr) PROCEDE ET système DE SELECTION D’UN MODELE D’apprentissage AU SEIN D’UNE PLURALITE DE MODELES D’apprentissage
CN112069508B (zh) 机器学习框架漏洞api参数定位方法、系统、设备及介质
EP0408425B1 (fr) Dispositif de test d&#39;un réseau de composants notamment un circuit électronique
FR2892846A1 (fr) Procede et dispositif de calcul de mesure de similarite entre une representation d&#39;un segment audio de reference et une representation d&#39;un segment audio a tester et procede et dispositif de suivi d&#39;un locuteur de reference
FR2870955A1 (fr) Debogueur d&#39;un circuit electronique fabrique a partir d&#39;un programme en langage de description de materiel
FR3047824B1 (fr) Procede d&#39;aide a la validation d&#39;un systeme et dispositif d&#39;aide associe
EP3267319A1 (fr) Procédé de test d&#39;une interface graphique et système de test associé
US20240134764A1 (en) Methods and systems for testing a system
EP4362358A1 (fr) Procédés et systèmes pour tester un système
FR2842001A1 (fr) Procede et dispositif d&#39;identification de situations de conflit dans une conception de circuit
US20240137394A1 (en) Systems, methods, and computer program products for providing simulator augmented content selection
CN117555812B (zh) 一种云平台自动化测试方法及系统
FR3045860A1 (fr) Procede de detection de problemes de testabilite d&#39;un module informatique
FR3097665B1 (fr) Procédé de validation automatique de cots et dispositif pour la mise en oeuvre du procédé

Legal Events

Date Code Title Description
CA Change of address
CD Change of name or company name
CJ Change in legal form
TQ Partial transmission of property
PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 19

PLFP Fee payment

Year of fee payment: 20