FR 3047824 A1 20170818 FR 1651166 A 20160212 1 PROCEDE D'AIDE A LA VALIDATION D'UN SYSTEME ET DISPOSITIF D'AIDE ASSOCIE L'invention a pour domaine celui des procédés et des dispositifs d'aide à la validation d'un système. Une phase importante du cycle de vie d'un système est constituée par la phase de validation. En tenant compte des fonctionnalités qu'un système doit offrir, ainsi que de son contexte d'utilisation, la phase de validation doit permettre de vérifier qu'un certain nombre d'exigences sont effectivement respectées par le système. De telles exigences sont par exemple constituées par les besoins des utilisateurs finaux du système, le comportement opérationnel nominal attendu du système, la compatibilité du système avec des niveaux de sûreté prédéterminés, le respect de contraintes de sécurité, les objectifs de performance attendues du système, etc. Compte tenu d'une pluralité d'exigences, un ensemble de tests est mis au point pour valider le système selon ces exigences. Les tests de cet ensemble de tests peuvent être écrits manuellement par un expert métier et/ou générés automatiquement en utilisant un outil informatique adapté, notamment fondé sur un modèle informatique du système à valider. De tels outils sont connus de l'homme du métier. Cependant, étant donné un ensemble de tests, il est difficile de déterminer a posteriori et rigoureusement qu'elles sont les exigences qui sont effectivement couvertes et vérifiées dans la mise en oeuvre de ces tests et/ou quels sont les tests qui sont redondants, c'est-à-dire que leur mise en oeuvre conduit à la validation du système selon la même exigence. De plus, à chaque modification apportée au système, il est nécessaire de le valider à nouveau. Une modification d'un système peut induire de nouvelles exigences, ne serait- ce que fonctionnelles. L'ensemble de tests initialement généré et utilisé pour la validation du système n'est alors plus forcément adapté au système modifié et aux exigences associées. Des tests existants doivent être modifiés et/ou de nouveaux tests doivent être ajoutés pour valider les modifications apportées au système. Les tests à modifier ou à ajouter sont rarement déterminés avec rigueur et ils viennent souvent en redondance avec des tests existants. Par exemple, il est difficile de déterminer de manière automatique le plus petit sous-ensemble de tests à modifier ou à ajouter. Il est donc recommandé de générer à nouveau un ensemble de tests pour chaque modification du système. 3047824 2 L'invention a donc pour but de résoudre ce problème, en proposant notamment un procédé d'aide à la décision pour la phase de validation d'un système permettant de générer automatiquement un rapport de couverture et de traçabilité des exigences d'un système par un ensemble de tests. 5 Pour cela, l'invention a pour objet un procédé d'aide à la décision pour une phase de validation d'un système permettant d'établir automatiquement, à partir d'une pluralité d'exigences systèmes que le système doit vérifier et d'un ensemble de tests destinés à être appliqués au système au cours d'une phase de validation, un rapport de couverture et de traçabilité associant à chaque test de l'ensemble de tests, une liste des exigences 10 que le test considéré permet effectivement de vérifier, le procédé consistant à : - formaliser les exigences systèmes en objectif ; - traduire chaque objectif en une pluralité de formules logiques ; - transformer chaque script associé à un test de l'ensemble de tests en un automate à états 15 - appliquer un algorithme de vérification de modèle pour vérifier si, oui ou non, chaque formule logique est vérifiée par chaque automate à états, l'issue de la vérification correspondant à un verdict de bas niveau ; - agréger les verdicts de bas niveau des formules logiques correspondant à un même objectif de manière à obtenir un verdict de haut niveau, chaque verdict de haut 20 niveau correspondant ainsi à un objectif ; et - générer le rapport de couverture et de traçabilité à partir, respectivement, des verdicts de haut niveau et des verdicts de bas niveau. Suivant des modes particuliers de réalisation, le procédé comporte une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les 25 combinaisons techniquement possibles : - les formules logiques sont exprimées dans un langage logique du type logique à modalité temporelle. - l'étape de traduction d'un objectif en une pluralité de formules logiques met en oeuvre au moins un patron de traduction. 30 le procédé comporte une étape de minimisation du nombre de tests dans l'ensemble de tests, en fonction du rapport de couverture et de traçabilité généré. - le procédé comporte une étape consistant à analyser automatiquement l'impact d'une modification de la pluralité des exigences système par rapport à un ensemble de tests prédéfini, à partir de la comparaison des rapports de couverture et de 35 traçabilité obtenus avant et après ladite modification de la pluralité des exigences système. 3047824 3 L'invention a également pour objet un dispositif d'aide à la validation d'un système permettant d'établir automatiquement, à partir d'une pluralité d'exigences systèmes que le système doit vérifier et d'un ensemble de tests destinés à être appliqués au système au 5 cours d'une phase de validation, un rapport de couverture et de traçabilité associant à chaque test de l'ensemble de tests, une liste des exigences que le test considéré permet effectivement de vérifier, le dispositif étant un ordinateur programmé pour mettre en oeuvre le procédé présenté ci-dessus. L'invention et ses avantages seront mieux compris à la lecture de la description 10 détaillée qui va suivre d'un mode de réalisation particulier, donné uniquement à titre d'exemple non limitatif, cette description étant faite en se référant aux dessins annexés sur lesquels : - la figure 1 est une représentation schématique sous forme de blocs du procédé selon l'invention d'aide à la décision par la mesure de la couverture et du degré de qualité 15 d'un ensemble de tests pour une phase de validation d'un système ; et, - la figure 2 est une représentation schématique d'un dispositif pour la mise en oeuvre du procédé de la figure 1. De manière générale, le procédé 10 d'aide à la décision pour la phase de validation d'un système prend, en entrée, une pluralité d'exigences système Eg (i étant un 20 entier d'indexation des exigences) associées au système à valider, d'une part, et un ensemble de tests I, (j étant un entier d'indexation des tests) développés pour valider ledit système vis-à-vis de certaines exigences, qui ne se retrouvent pas forcément parmi les exigences Eg (dans le cas d'une modification du système à valider par exemple), d'autre part. 25 Il est à noter que les tests I, de l'ensemble de test peuvent avoir été générés automatiquement, au moyen par exemple d'un outil de test basé sur un modèle du système, ou à la main, par un agent métier. La manière d'obtenir les exigences Eg et les tests T, est hors de la portée de la présente invention. 30 Le procédé 10 permet de générer, en sortie, un rapport R de traçabilité et de couverture de la pluralité d'exigences système Eg par l'ensemble de tests Ti. Les exigences Eg peuvent se présenter sous différentes formes. Ces exigences peuvent par exemple se présenter sous la forme d'un texte et/ou d'un texte structuré et/ou d'un modèle. Les exigences Eg, qui constituent un ensemble hétérogène, ne peuvent 35 donc pas être immédiatement comparées aux tests Ti. 3047824 4 C'est la raison pour laquelle le procédé 10 débute par une étape 12 de formalisation des exigences Eg de manière à en obtenir une description homogène sous forme d'objectifs O. Cette étape 12 de formalisation est réalisée par des agents métiers spécialistes de la validation. 5 Avantageusement, l'étape 12 de formalisation s'appuie sur l'utilisation de patrons afin de faciliter la définition des objectifs 0, de tests vis-à-vis des exigences Eg initiales. Un patron se présente sous la forme d'une structure syntaxique prédéfinie, par exemple une forme : C => P. Les patrons sont composables entre eux via l'utilisation des opérateurs logiques usuels. 10 Un exemple d'un patron est l'étude de cas selon un ensemble de classes d'équivalence fonctionnelle C défini sur n variables du système : >Exigence XXX couverte à YYY% par l'Objectif ZZZ >ZZZ: porte sur les variables val > E11, - - -1 En) => P1 15 Ek1, - - Ekn => Pk / Default => Po Dans ce patron, l'expert métier identifie selon des plages de valeurs Eim (correspondant à la valeur de la variable y, lorsque l'exigence El est remplie) les 20 propriétés PI qui doivent être respectées par le système. Le procédé 10 se poursuit par une étape 14 de traduction automatique de chaque objectifs 0, en une pluralité de formules logique Fik (où k est un entier indexant l'ensemble des formules logiques associées à un même objectif 0,). Les formules logiques respectent par exemple un langage, de préférence un langage du type logique à modalité temporelle. 25 Cette étape 14 de traduction est systématique, au sens où elle est appliquée à chacun des objectifs O, dérivant des exigences systèmes. Au cours de l'étape 14, lorsque des patrons sont utilisés, un patron est traduit automatiquement en 2(k+1) formules logiques. Plus précisément, pour chaque branche de la forme C => P, sont générées : 30 - Une formule E0((CA-, P)A(0Fail)) qui permet de vérifier que si il existe un chemin dans un test tel que si jamais la propriété P n'est pas vérifiée lorsque les variables sont évaluées selon la classe d'équivalence C alors le test conduira à un verdict « Fail ». En d'autres mots, le test sera en capacité de détecter les défauts du système relatif à cette exigence. 35 - Une formule A(-Pass W (CAP)) qui permet de vérifier que dans tous les chemins d'un test, le verdict « Pass » est émis si P est vérifié lorsque les 3047824 5 variables sont évaluées selon la classe d'équivalence C. En d'autres mots, le test sera en capacité de vérifier et d'émettre un verdict relativement à l'exigence. Parallèlement, les entrées constituées par les différents tests TJ, qui se présentent 5 sous la forme de script, sont transformés à l'étape 22 en autant d'automate à états A. A l'étape 32 du procédé 10, un algorithme de vérification de modèle (« model checker » en anglais) est utilisé afin d'établir, pour chaque automate à états Aj et pour chaque formule logique F,k, si, oui ou non, la formule logique considérée est vérifiée par le test considéré. Le résultat binaire de cette vérification est stocké dans une variable 10 dénommée verdict de bas niveau. A la sortie de l'étape 32, on obtient donc une série de verdicts, chaque verdict étant un nombre binaire 0 ou 1. Le nombre de verdicts est le produit du nombre de formules logiques, résultant de la traduction des objectifs, multiplié par le nombre d'automates à états, c'est-à-dire le nombre de tests de l'ensemble des tests. 15 A l'étape 34, les verdicts de bas niveau V,k,, obtenus en sortie de l'étape 32 et correspondant à un même objectif 0, sont agrégés afin d'obtenir des verdicts de niveau intermédiaire Vi,k Enfin à l'étape 36, les verdicts de niveau intermédiaire Vi,k sont agrégés en un verdict haut niveau V. Chaque verdict de haut niveau V, correspond donc à un objectif O. 20 Il quantifie par un facteur allant de 0 à 100 (c'est-à-dire en pourcentage) le taux de couverture de l'objectif 0, par l'ensemble de tests I. pris en entrée. Plus précisément, les étapes d'agrégation sont formalisées comme suit : Vi,k correspond à la conjonction des V,k,,, en d'autres termes il vaut 0 si aucun test ne vérifie la formule Fik et 1 sinon ; 25 V, est la somme sur k des Vik divisée par la borne supérieur de k, le tout multiplié par 100 ; Puis à l'étape 40, le rapport R de couverture et de traçabilité de l'ensemble de tests I. pour la pluralité d'exigences systèmes Eg est produit. De préférence, un tel rapport R associe sous forme tabulaire à chaque test TJ, les 30 exigences Eg qu'il permet effectivement de couvrir au cours de la validation du système, ainsi qu'un taux de couverture global de la pluralité d'exigences Eg par rapport à l'ensemble de tests Ti. Ce taux de couverture correspond à une mesure par exemple exprimée en pourcentage du nombre total d'exigences vérifiées. Cette mesure peut par exemple affecter des poids différents aux objectifs en fonction de leur importance. 3047824 6 Par exemple, le taux de couverture Vg de l'exigence Eg relativement à l'objectif 0, est calculé en pondérant le taux de couverture V, de l'objectif 0, par le taux que représente cette exigence Eg dans le fichier de description de l'objectif O. Par exemple, la traçabilité s'exprime sous la forme d'une matrice de traçabilité 5 entre tests et objectifs se calcule en considérant les variables V,k,J. En effet, il existe un lien de traçabilité entre l'objectif O, et le test I, si et seulement il existe au moins un k tel que V,k,, est égale à 1. Par transitivité sur les liens entre objectifs et exigences déclarés dans le fichier de description des objectifs, la matrice de traçabilité entre test T, et exigence Eg est déduite. 10 A la figure 2, on a représenté schématiquement un dispositif 110 d'aide à la validation d'un système. Il s'agit d'un dispositif informatique comportant des moyens de calcul tels qu'un processeur, et des moyens de mémorisation, tels que des mémoires vives et mortes. Les moyens de mémorisation stockent notamment les instructions de programmes d'ordinateur propres à être exécutées par les moyens de calcul. En 15 particulier, les moyens de mémorisation (111 sur la figure 2) stockent un programme permettant, lors de son exécution par les moyens de calcul, de mettre en oeuvre le procédé 10 selon l'invention. Ainsi, le dispositif 110 comporte une interface homme machine 112 permettant à un agent métier de formaliser les exigences systèmes sous forme d'objectifs. 20 Le dispositif 110 comporte un module 114 de traduction qui, lorsqu'il est appelé, permet de mettre les objectifs appliqués en entrée sous forme d'une ou plusieurs formules logiques. Le dispositif 110 comporte un module 122 propre à lire les scripts correspondant à l'ensemble de tests et contenus dans les moyens de mémorisation de manière à générer 25 automatiquement autant d'automate à états. Le dispositif 110 comporte un module 132 de vérification propre, lorsqu'il est appelé, à lancer l'exécution de l'algorithme de vérification de modèle de manière à générer, à partir d'une pluralité de formules logiques et d'une pluralité d'automates à états, une série de verdicts de bas niveau. 30 Le dispositif 110 comporte un module 134 d'élaboration de verdict de niveau intermédiaire à partir des différents verdicts de bas niveau des formules logiques associées au même objectif et un module 136 d'élaboration de verdict haut niveau à partir des différents verdicts de niveau intermédiaire. Enfin, le dispositif 110 comporte un module 140 de compilation des verdicts de 35 haut niveau de manière à générer en sortie un rapport de couverture et de traçabilité. 3047824 7 La présente invention est ainsi fondée sur un algorithme de vérification de modèle. Cette famille d'algorithmes est connue en soi. D'un point de vue général, un tel algorithme consiste à prendre en entrée le modèle que l'on souhaite vérifier, en particulier un modèle se présentant sous la forme d'un automate à états, ainsi que la propriété que doit vérifier 5 ledit modèle, par exemple exprimée sous la forme d'une proposition logique. L'algorithme de vérification de modèle va alors explorer l'ensemble de l'espace des états atteignables par le modèle puis vérifier si la propriété est vraie ou fausse pour chacun de ces états atteignables. Si la propriété est fausse pour l'un de ces états atteignables, alors l'algorithme de 10 vérification de modèle donnera le chemin, en termes de suite d'états de l'automate à états, menant vers cet état invalidant la propriété. Un tel chemin est généralement dénommé contre-exemple. Il existe plusieurs techniques pour que l'algorithme de vérification de modèle explore l'espace des états possibles du modèle : structure de Kripke, diagramme de 15 décision binaire dit BDD (selon l'acronyme anglais), formule SMT (« Satisfiability Modulo Theories » ), etc. De même, différents langages logiques peuvent être utilisés pour formaliser la propriété : LTL, CTL, CTL* etc. L'homme du métier constatera que, dans la présente invention, l'algorithme de 20 vérification de modèle est détourné de son utilisation classique. En effet, dans la présente invention on ne cherche pas à vérifier un modèle du système, mais à évaluer la capacité d'un ensemble de tests à vérifier des propriétés sur un système. Cette utilisation de l'algorithme de vérification de modèle est rendue possible grâce à la transformation de chaque script de test en un automate à états, ainsi que l'expression des exigences 25 système en formules logiques. Pour rendre possible cette vérification il est de plus nécessaire de retranscrire la sémantique propre à l'action de tester un système dans les automates correspondant aux tests et dans les formules logiques correspondant aux objectifs de test. Par exemple, pour vérifier qu'une propriété P est bien testée par l'ensemble de tests pour un système donné, il est nécessaire de trouver un ou des tests 30 qui amènent le système dans un ou des états où cette propriété P peut être évaluée et que tous les états des tests accessibles à partir de ces états sont des états de verdicts correctes (« Fail si P » et « Pass si P »). L'invention permettant d'évaluer automatiquement les exigences parmi une pluralité d'exigences systèmes effectivement couvertes par un ensemble de tests, elle 35 peut être avantageusement mise en oeuvre dans des procédés plus généraux. 3047824 8 En effet, disposant maintenant d'un procédé automatique pour évaluer la pertinence d'un ensemble de tests vis-à-vis d'une pluralité d'exigences, il est possible de proposer des procédés permettant de rejeter des tests qui ne sont pas ou peu pertinents dans un ensemble de tests prédéfini. Cette pertinence peut s'évaluer par exemple en 5 mesurant le gain obtenu lors de l'adjonction d'un nouveau test sur le taux de couverture global. Ce type de procédé peut s'utiliser dans des cas variés comme lorsque : - le développement des tests est sous-traité à une tierce partie. En effet, seul les tests pertinents seront acceptés et livrés. Les tests sont générés automatiquement par un outil dédié. Dans ce contexte 10 ce mécanisme permet de discriminer des tests peu pertinents et de réorienter la génération de tests ou encore de fournir un critère d'arrêt à la génération de tests. De même, disposant d'une estimation quantitative pour étiqueter chaque test avec les exigences qu'il permet de couvrir, il est possible de proposer des procédés de 15 détermination de l'ensemble minimum de tests qui couvre l'ensemble des exigences définies en entrée. Un tel procédé met en oeuvre une procédure d'optimisation combinatoire et d'évaluation automatique de la pertinence d'un ensemble de tests sur la base de rapport obtenus par la mise en oeuvre du présent procédé. Enfin il est possible de proposer des procédés d'analyse automatique de l'impact 20 d'une modification des exigences systèmes sur la couverture offerte par un ensemble de tests prédéfini. Ainsi, la présente invention permet d'évaluer quantitativement et a postériori la capacité d'un ensemble de tests à vérifier à un certain nombre d'exigence système. Cette évaluation est dite a postériori puisqu'elle est complétement indépendante de la manière 25 dont sont obtenus les ensembles de tests à évaluer. La présente invention convient donc parfaitement au cas où les ensembles de tests générés sont importants, où la combinatoire de traçabilité et d'évaluation de couverture devient difficile à maitriser et où les critères de qualité sont importants. En particulier cette invention donne des gages de qualité aux processus de validation dans les cas relativement courant où les équipes de 30 spécification et d'architecture d'un système sont différentes et éloignées physiquement des équipes de développement des scripts de validation. La présente invention est particulièrement utile dans un contexte où l'ensemble des tests est généré de différentes manières, soit par des outils dédiés, soit par des agents métiers, et où les exigences que le système doit vérifier sont hétérogènes 35 (exigences opérationnelles, de sureté, de performance, etc.) REVENDICATIONS1.- Procédé (10) d'aide à la décision pour une phase de validation d'un système permettant d'établir automatiquement, à partir d'une pluralité d'exigences systèmes (Eg) que le système doit vérifier et d'un ensemble de tests (Ti) destinés à être appliqués au système au cours d'une phase de validation, un rapport (R) de couverture et de traçabilité associant à chaque test de l'ensemble de tests, une liste des exigences que le test considéré permet effectivement de vérifier, le procédé consistant à : - formaliser (12) les exigences systèmes (Eg) en objectif (0,); - traduire (14) chaque objectif (0,) en une pluralité de formules logiques (F,k) ; - transformer (22) chaque script associé à un test (T,) de l'ensemble de tests en un automate à états (A,) ; - appliquer (32) un algorithme de vérification de modèle pour vérifier si, oui ou non, chaque formule logique (F,k) est vérifiée par chaque automate à états (A,), l'issue de la vérification correspondant à un verdict de bas niveau (Vik,J); - agréger les verdicts de bas niveau (V,k,J) des formules logiques (FO correspondant à un même objectif (0,) de manière à obtenir un verdict de haut niveau (V,), chaque verdict de haut niveau correspondant ainsi à un objectif ; et - générer (40) le rapport (R) de couverture et de traçabilité à partir, respectivement, des verdicts de haut niveau (V) et des verdicts de bas niveau (Vik,J). 2.- Procédé selon la revendication 1, dans lequel les formules logiques sont exprimées dans un langage logique du type logique à modalité temporelle. 3.- Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape de traduction (14) d'un objectif (0,) en une pluralité de formules logiques (F,k) met en oeuvre au moins un patron de traduction. 4.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comporte une étape de minimisation du nombre de tests dans l'ensemble de tests, en fonction du rapport de couverture et de traçabilité généré. 5.- Procédé selon l'une quelconque des revendications 1 à 3, comportant une étape consistant à analyser automatiquement l'impact d'une modification de la pluralité des exigences système par rapport à un ensemble de tests prédéfini, à partir de la 3047824 10 comparaison des rapports de couverture et de traçabilité obtenus avant et après ladite modification de la pluralité des exigences système. 6.- Dispositif (110) d'aide à la validation d'un système permettant d'établir 5 automatiquement, à partir d'une pluralité d'exigences systèmes (Eg) que le système doit vérifier et d'un ensemble de tests (T,) destinés à être appliqués au système au cours d'une phase de validation, un rapport (R) de couverture et de traçabilité associant à chaque test de l'ensemble de tests, une liste des exigences que le test considéré permet effectivement de vérifier, le dispositif étant un ordinateur programmé pour mettre en 10 oeuvre le procédé d'aide selon l'une quelconque des revendications 1 à 5.