FR3026511A1 - Procede de test d'un composant logiciel - Google Patents

Procede de test d'un composant logiciel Download PDF

Info

Publication number
FR3026511A1
FR3026511A1 FR1459321A FR1459321A FR3026511A1 FR 3026511 A1 FR3026511 A1 FR 3026511A1 FR 1459321 A FR1459321 A FR 1459321A FR 1459321 A FR1459321 A FR 1459321A FR 3026511 A1 FR3026511 A1 FR 3026511A1
Authority
FR
France
Prior art keywords
software component
stimulus
conditions
signals
condition
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
FR1459321A
Other languages
English (en)
Other versions
FR3026511B1 (fr
Inventor
Fabrice Larribe
Laurent Bellonguet
Severine Morin
Bertrand Tavernier
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.)
Safran Electronics and Defense SAS
Original Assignee
Sagem Defense Securite 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 Sagem Defense Securite SA filed Critical Sagem Defense Securite SA
Priority to FR1459321A priority Critical patent/FR3026511B1/fr
Publication of FR3026511A1 publication Critical patent/FR3026511A1/fr
Application granted granted Critical
Publication of FR3026511B1 publication Critical patent/FR3026511B1/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/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

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)
  • Stored Programmes (AREA)

Abstract

La présente invention concerne un procédé de procédé de test d'un composant logiciel, caractérisé en ce qu'il comprend la mise en œuvre par des moyens de traitement de données (11) d'un équipement (1) d'étapes de : (a) Expression sur une interface (13) de l'équipement (1) d'un ou plusieurs stimuli, chaque stimulus définissant sur un intervalle temporel : ○ des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; ○ des conditions sur des paramètres de sortie dudit composant logiciel ; (b) Pour chaque stimulus, ○ génération de premiers signaux conformes auxdites valeurs des paramètres d'entrée ; ○ exécution dudit composant logiciel et application en entrée desdits premiers signaux générés ; ○ Observation de seconds signaux en sortie dudit composant logiciel ; (c) confirmation de la fiabilité du composant logiciel seulement si pour chaque stimulus les seconds signaux respectent lesdites conditions sur les paramètres de sortie.

Description

DOMAINE TECHNIQUE GENERAL La présente invention concerne la certification des logiciels critiques de l'avionique, et en particulier un procédé de test d'un composant logiciel.
ETAT DE L'ART Les aéronefs de dernière génération recourent massivement à l'informatique et utilisent pour cela des logiciels embarqués.
Des environnements de modélisation et génération permettent à des utilisateurs de produire automatiquement du code source à partir de modèles. On connait par exemple la génération automatique de code avec la Scade0 Suite, ou la génération automatique de code à partir de modèles Matlab® Simulink®.
Les normes DO-178 fixent les conditions de sécurité applicables aux logiciels critiques de l'avionique utilisés dans des aéronefs. Elles présentent cinq niveaux de criticité (de A à E) appelés niveaux DAL (« Development Assurance Level »), culminant au niveau A: un défaut du système ou sous-système étudié peut provoquer un problème catastrophique pouvant compromettre la sécurité du vol ou l'atterrissage, voire provoquer un crash de l'avion. Une fiabilité irréprochable de tout code informatique utilisé dans des logiciels critiques DO-178 DAL A (qu'il soit généré automatiquement ou manuellement) est par conséquent requise. Pour cela, il est nécessaire de mettre en oeuvre des procédures de test draconiennes permettant de vérifier les propriétés de ces logiciels embarqués. L'état de la technique actuelle consiste à soit réaliser cette vérification manuellement (via le débogueur d'un environnement de développement), soit à utiliser certains outils automatisés. Par exemple, on connait : - RTRT (« Rational Test RealTime »), qui est un outil permettant la réalisation de tests unitaires et la mesure de couverture structurelle de code. Il crée un squelette, à compléter avec les différents cas de tests. Il génère à partir de ce squelette des « stubs » (c'est-à-dire des modules logiciels simulant à minima la présence d'un autre), compile le tout et lance un simulateur avec lequel il est interfacé. Enfin il récupère les résultats d'exécution et génère un rapport. Cet outil permet de réellement tester du code comme s'il était déjà intégré à un calculateur, mais dans la mesure où il ne permet que des tests unitaires, toute opération de vérification demande une préparation extrêmement rigoureuse et donc très coûteuse en temps si l'on souhaite que les résultats soient vraiment fiables (en d'autres termes que l'on soit sûr que le composant fonctionne correctement dans tous les cas). - le Framework Eclipse, qui est un environnement de développement (IDE) permettant d'interfacer des plugins avec des objectifs de développement/vérification ciblés (par exemple le plugin CDT (« C/C++ Development Tooling) ») pour le développement de code source en C/C++). Le domaine d'application est toutefois restreint dans la mesure où il ne permet que la vérification de code manuellement saisi (et pas de composants générés avec une technologie Scade® ou Simulink® par exemple). Il serait ainsi souhaitable de disposer d'une méthode fiable et reproductible permettant d'automatiser le test de composants logiciels 25 critiques (jusqu'au niveau DO-178 DAL A), qu'ils soient générés automatiquement ou manuellement, et ce quelle que soit la complexité des systèmes à tester : mono/multi fréquentiels, calculs matriciels/flottants, etc. De plus il serait souhaitable que cette méthode minimise les impacts sur l'atelier de test et sur l'environnement de test d'un changement de 30 technologie d'un composant sous test. PRESENTATION DE L'INVENTION Selon un premier aspect, la présente invention se rapporte donc à un procédé de test d'un composant logiciel, caractérisé en ce qu'il comprend la mise en oeuvre par des moyens de traitement de données d'un équipement d'étapes de : (a) Expression sur une interface de l'équipement d'un ou plusieurs stimuli, chaque stimulus définissant sur un intervalle temporel : o des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; o des conditions sur des paramètres de sortie dudit composant logiciel ; (b) Pour chaque stimulus, o génération de premiers signaux conformes auxdites valeurs des paramètres d'entrée ; o exécution dudit composant logiciel et application en entrée desdits premiers signaux générés ; o Observation de seconds signaux en sortie dudit composant logiciel, (c) confirmation de la fiabilité du composant logiciel seulement si pour chaque stimulus les seconds signaux respectent lesdites conditions sur les paramètres de sortie. Selon d'autres caractéristiques avantageuses et non limitatives : - chaque stimulus définit une combinaison de fonctions élémentaires des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; - ladite combinaison de fonctions élémentaires comprend au moins une séquence temporelle de fonctions élémentaires ; - lesdites fonctions élémentaires sont choisies parmi un ensemble comprenant des rampes, des échelons et des attentes. - le procédé est tel que : Une attente est définie par une durée ; un échelon est défini par un paramètre choisi parmi une valeur d'un paramètre d'entrée et une valeur d'incrément, et - une rampe est définie par deux paramètres choisis parmi une valeur cible d'un paramètre d'entrée, une durée de variation dudit paramètre d'entrée, une vitesse de variation dudit paramètre d'entrée, et une valeur d'incrément. - chaque stimulus définit une combinaison de conditions comprenant au moins une séquence temporelle de conditions ; - au moins une condition de ladite séquence de conditions est une condition principale associée à au moins une condition auxiliaire définissant un intervalle de temps réduit au sein de la séquence sur lequel les seconds signaux doivent respecter la condition principale pour que la fiabilité du composant logiciel soit vérifiée à l'étape (c) ; - au moins une condition principale est associée à au moins deux conditions auxiliaires dont une condition de départ et une condition de fin ; - un code informatique dudit composant logiciel est généré automatiquement par les moyens de traitement de données de l'équipement préalablement à l'étape (a) ; - ladite génération de code informatique est de type Scade®, Simulink® ou VHDL ; - le procédé comprend en outre une étape (d) d'embarquement du composant logiciel sur un calculateur d'un appareil si la fiabilité du composant logiciel est confirmée.
Selon un deuxième aspect, l'invention concerne un équipement de test d'un composant logiciel, caractérisé en ce qu'il comprend : - une interface permettant l'expression d'un ou plusieurs stimuli, chaque stimulus définissant sur un intervalle temporel : o des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; o des conditions sur des paramètres de sortie dudit composant logiciel ; des moyens de traitement de données configurés pour la mise en oeuvre de : o un module de génération de premiers signaux conformes auxdites valeurs des paramètres d'entrée pour chaque stimulus ; o un module d'exécution dudit composant logiciel et d'application en entrée desdits premiers signaux générés pour chaque stimulus ; o un module d'observation de seconds signaux en sortie dudit composant logiciel pour chaque stimulus ; o un module de confirmation de la fiabilité du composant logiciel seulement si pour chaque stimulus les seconds signaux respectent lesdites conditions sur les paramètres de sortie. Selon un troisième et un quatrième aspect, l'invention concerne respectivement un produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon le premier aspect de l'invention ; et des moyens de stockage lisibles par un équipement informatique sur lesquels un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon le premier aspect de l'invention.
PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux 30 figures annexées dont : - la figure 1 représente un système pour la mise en oeuvre du procédé selon l'invention ; - les figures 2a-2c illustrent divers exemples de structures de séquences de fonctions élémentaires des valeurs de paramètres d'entrée définissant un stimulus, utilisables dans le procédé selon l'invention ; la figure 3 représente les principales fonctions élémentaires permettant d'exprimer des stimuli utilisables dans le procédé selon l'invention ; les figures 4a-4d illustrent divers exemples de structures de séquences de conditions sur des paramètres de sortie définissant un stimulus, utilisables dans le procédé selon l'invention ; la figure 5 représente une interface utilisateur pour la mise en oeuvre du procédé selon l'invention.
DESCRIPTION DETAILLEE Architecture En référence à la figure 1, le présent procédé est un procédé de test automatisé d'un composant logiciel (par « composant logiciel », comme l'on verra on entend des instructions de code directement exécutables par un processeur, mais également une configuration d'un circuit logique de type FPGA (« field-programmable gate array »), qui peut être reprogrammé). Ce procédé est avantageusement conforme aux objectifs de la norme DO-330 TQL5 (qui est le pendant de la norme DO-178 DAL A relatif à la qualification des outils). Dans la suite de la présente description, par « outil de test » on entendra un programme utilisant le présent procédé. Le procédé est mis en oeuvre via un équipement 1 qui peut être n'importe quel poste informatique comprenant des moyens de traitement de données 11 (par exemple un processeur), des moyens de stockage de données 12 (par exemple un disque dur) et des moyens d'affichage d'une interface graphique 13 (par exemple un écran).
Des moyens de saisie 14 (tels qu'un clavier et une souris) permettent à un utilisateur souhaitant utiliser le procédé (et/ou programmer graphiquement) d'interagir avec l'interface graphique 13. Il est à noter que le présent procédé n'est pas limité à l'utilisation d'un poste de travail, et que d'autres types d'équipements tels qu'un serveur peuvent tout à fait être utilisés. Le composant logiciel est destiné à être embarqué (la terminologie « enfoui » est utilisée pour illustrer le fait que le composant logiciel est inaccessible par un utilisateur) sur un calculateur 21 d'un appareil 2, en particulier un véhicule tel qu'aéronef, un équipement de sécurité tel qu'une système de planification et de restitution de mission ou un système de combat individuel, etc. l'embarquement consiste en général en l'écriture du code du composant logiciel dans une mémoire morte du calculateur 21, en vue d'une exécution par un processeur du calculateur 21. Dans le cas où le composant logiciel est mis en oeuvre par un circuit logique de type FPGA, l'embarquement consiste en une reconfiguration adéquate du circuit logique (faisant partie du calculateur 21), ou à la réalisation d'un circuit intégré de type ASIC (« Application-Specific Integrated Circuit ») conforme à la configuration du FPGA et son intégration dans le calculateur 21.
Le composant logiciel consiste comme expliqué en des instructions de code compilées, qu'elles aient été générées manuellement par un programmeur, ou automatiquement par un générateur de code, en particulier via une technologie Scade®, Simulink® ou VHDL. Ce dernier 25 (« VHSIC1 Hardware Description Language ») est un langage de description de matériel, destiné à la programmation de circuits logiques de type FPGA. Le composant logiciel présente une entrée et une sortie. Il reçoit ainsi un signal d'entrée définissant des valeurs de paramètres d'entrée (les 30 variables du composant), qu'il traite, et produit en conséquence un signal de sortie définissant des valeurs de paramètres de sorties.
Le composant peut être mono ou multi fréquentiel. Dans le cas du mono-fréquentiel, il n'existe qu'une seule « tache » qui est exécutée à période constante, alors que dans le cas du multi-fréquentiel, il existe plusieurs « taches » qui sont exécuté à des fréquences différentes, bien que leurs fréquences propres soit constantes. Stimulus Le présent procédé vise à garantir que le code du composant logiciel est correctement généré, et que le composant logiciel est ainsi fiable. Le test consiste à vérifier que pour n'importe quelles valeurs des paramètres d'entrée, les valeurs des paramètres de sorties obtenues sont conformes à des valeurs obtenues. Il propose pour cela la construction de « stimuli » complexes (dont un une représentation schématique est donnée par la figure 2a), par opposition aux tests unitaires, qui permettent de réaliser des observations continues sur le logiciel. Un seul stimulus remplace ainsi efficacement un très grand nombre de tests unitaires, et permet même un niveau de sécurité accru.
Par stimulus, on entend des données de test dynamiques sur un intervalle temporel, données à la fois « d'entrée », et « de sortie » (respectivement en haut et en bas sur la figure 2a). Plus précisément, un stimulus définit sur un tel intervalle temporel : o des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; o des conditions sur des paramètres de sortie dudit composant logiciel. Dans une étape (a), un ou plusieurs stimuli sont exprimés par un utilisateur sur l'interface 13, 14 de l'équipement. Cette expression est par exemple une saisie sur les moyens de saisie 14. Pour cela, le présent procédé propose un langage structuré appelé TCML (« Test Case Modeling Language ») qui permet facilement de définir n'importe quel stimulus, via des mots clés proches du langage naturel. Dans ce langage, chaque stimulus définit une combinaison de 5 fonctions élémentaires (chacune associée à des mots-clés) des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps. Cette combinaison est plus particulièrement au moins une séquence temporelle (plusieurs séquences peuvent être enchaînées comme l'on voit sur la figure 2b, et/ou déroulées en parallèle comme l'on voit sur la figure 2c, et ce le 10 cas échéant à plusieurs niveaux puisque chaque « boite » représente une fonction élémentaire ou une combinaison de fonctions élémentaires. Des architectures encore plus complexes sont possibles, comme l'on verra plus loin) de fonctions élémentaires. Ces dernières sont en particulier choisies parmi un ensemble comprenant des « rampes », des « échelons », des 15 « attentes ». Ces trois fonctions basiques (déclinées en hausse/baisse pour l'échelon et la rampe) sont représentées sur la figure 3, avec les mots-clés possibles. Par exemple, si l'on souhaite augmenter la valeur d'un paramètre d'entrée « data » jusqu'à [Seuil+1] à la vitesse de [0.1] par seconde, 20 attendre [2.3] secondes, puis positionner instantanément « data » à la valeur [Seuil/2], on saisit en TCML le stimulus : rampUntil data [Seuil+1, 0.1] wait [2.3] s setFloat data [Seuil/2] 25 Ce stimulus comprend une première fonction élémentaire de type « rampe » (rampUntil), une deuxième fonction élémentaire de type « attente » (Wait) et une troisième fonction élémentaire de type « échelon » (setFloat). Une fonction élémentaire attente définit une durée séparant deux 30 autres fonctions élémentaires de la séquence (ici l'intervalle temporel d'attente est de 2.3 secondes). Une fonction élémentaire échelon est définie par un paramètre choisi parmi une valeur d'un paramètre d'entrée (ici [Seuil/2]) et une valeur d'incrément (qui peut être positif ou négatif). Une rampe est définie par deux paramètres choisis parmi une valeur cible d'un paramètre d'entrée (ici [Seuil+1]) une durée de variation dudit paramètre d'entrée, i.e. la durée pour atteindre la valeur cible (ici ce n'est pas le paramètre choisi, mais il aurait eu pour valeur [ABS(Seuil+1 - valeur initale)/0.1]), et une vitesse de variation dudit paramètre d'entrée (ici [0.1] par seconde), et une valeur d'incrément (ici ce n'est pas le paramètre choisi, il aurait eu pour valeur [Seuil+1 - valeur initiale]). Pour la rampe, 5 combinaisons de paramètres sont préférentiellement utilisées : valeur cible et durée pour l'atteindre ; incrément et durée pour l'atteindre ; valeur-cible et une vitesse de variation ; incrément et vitesse de variation ; vitesse et durée de variation. On peut également faire intervenir une notion de « condition d'arêt », par exemple Ramp data with [0.1] until [mesure > 12.0]. On comprendra que le présent procédé n'est pas limité aux fonctions élémentaires rampe échelon et attente, et que l'homme du métier saura utiliser d'autres fonctions contrôlant la valeur d'un paramètre en fonction du temps, éventuellement plus complexes (par exemple une fonction sinusoïdale). On notera en outre que chaque fonction peut contrôler plus d'un paramètre d'entrée, et que des combinaisons complexes peuvent être envisagées. Par exemple, le stimulus peut comprendre simultanément une fonction rampe sur un premier paramètre et une fonction échelon sur un deuxième paramètre. Un stimulus peut même comprendre autant de séquences de fonctions élémentaires que de paramètres d'entrée. De plus plusieurs séquences peuvent se dérouler en parallèle (figure 2c).
Comme expliqué, chaque stimulus définit en outre des conditions sur des paramètres de sortie dudit composant logiciel (dont un exemple est schématisé par la figure 4a). Comme pour les fonctions élémentaires, chaque stimulus définit les conditions sous forme d'une combinaison comprenant une ou plusieurs séquences temporelles (figure 4b) disposées le cas échéant en parallèle (figure 4c). Chaque élément rond (le « V » signifie vérification) désigne une condition ou une combinaison de conditions, au même titre qu'une boite désigne une fonction élémentaire ou une combinaison de fonctions élémentaires. La figure 4a représente par exemple comme l'on verra plus loin trois conditions principales. Dans le langage TCML, chaque condition de ladite séquence de 10 conditions peut être mise en parallèle avec une ou plusieurs fonctions élémentaires et/ou chaque fonction élémentaire peut être mise en correspondance avec une ou plusieurs conditions. Cela définit les intervalles de temps pendant lesquels les conditions doivent être vérifiées. Par exemple, sur la figure 4b, les six conditions représentées sont 15 associées aux neuf fonctions élémentaires, et doivent potentiellement être simultanément vérifiées sur toute la durée du stimulus. De façon plus complexe, la figure 4c propose six conditions et dix fonctions élémentaires, la condition Cl étant associée aux fonctions élémentaires F2 et F3, la condition C2 étant associée aux fonctions élémentaires F4 et F5, la 20 condition C3 étant associée aux fonctions élémentaires F6 à F8, la condition C4 étant associée aux fonctions élémentaires F9 et F10 (on note que les fonctions F6 à F8 d'une part et F9 et F10 d'autre part sont effectuées en parallèle, ce qui fait que pendant un intervalle de temps au moins les conditions C3 et C4 devront être vérifiées simultanément), et 25 enfin la condition C5 est associée à tout le stimulus (et doit être vérifiée en même temps que toutes les autres conditions). Chaque condition de la séquence peut être une condition simple, c'est-à-dire à vérifier uniformément sur l'ensemble de l'intervalle de temps prévu, ou une condition plus complexe. De façon générale, on parle de 30 « réduction de contexte », c'est-à-dire de conditions annexes réduisant l'intervalle de temps durant laquelle chaque condition d'une séquence de conditions doit être vérifiée.
Par exemple, la figure 4a représente trois conditions principales (conditions portant réellement sur les paramètres de sortie), chacune associée à une ou deux conditions auxiliaires. Par exemple la deuxième condition principale représentée est «Si a pour valeur Cl », et les deux conditions auxiliaires sont « A<=B » et « A<C » (A et B étant des paramètres d'entrée). Ainsi, les conditions auxiliaires nuancent la condition principale : il n'est pas nécessaire que la condition principale soit vérifiée sur tout l'intervalle de temps, mais seulement sur une sous-partie de celui-ci ou les deux conditions auxiliaire « A<=B » et « A<C » sont vérifiées. Ladite sous-partie n'est pas nécessairement continue, puisque les conditions auxiliaires peuvent dynamiquement varier. Et si par exemple A était toujours supérieur à B ou C, alors, la condition principale serait toujours vraie (puisque le sous-intervalle de temps associé est vide). De façon générale, on comprendra que pour réduire le contexte il suffit qu'au moins une condition de ladite séquence de conditions soit une condition principale associée à au moins une condition auxiliaire définissant un intervalle de temps réduit au sein de la séquence sur lequel les seconds signaux doivent respecter la condition principale pour que la fiabilité du composant logiciel soit vérifiée à l'étape (c).
Un cas particulier et non-limitatif de réduction de contexte est l'association d'une condition de départ (première condition auxiliaire) et une condition de fin (deuxième condition auxiliaire). Par exemple, si l'on souhaite vérifier qu'à partir de l'instant où [Conditionl =condition de départ] et avant que [Condition2=condition de fin], on observe toujours [Condition3=condition de la séquence à tester], on saisit en TCML le stimulus : FROM [Condition1] BEFORE [Condition?' ALWAYS [Condition3] On note à nouveau que seule la condition de la séquence à tester porte nécessairement sur les valeurs des paramètres de sortie (elle définit des valeurs de paramètres de sortie « attendus ») fonction le cas échéant des paramètres d'entrée que l'on peut aussi prendre pour référence, alors que les conditions de départ et de sortie peuvent par exemple être simplement des conditions temporelles.
L'homme du métier comprendra que des séquences bien plus complexes (utilisant davantage de mots clés) sont possibles. On citera par exemple les mots SINCE et WHILE. Test du composant Dans une étape (b), chaque stimulus va être « injecté » dans le composant logiciel à tester par les moyens de traitement de données 11. Pour cela sont générés des premiers signaux (évoluant dans le temps) conformes auxdites valeurs des paramètres d'entrée définies par le stimulus. Les premiers signaux sont des signaux d'entrée. Le composant logiciel est alors exécuté et lesdits premiers signaux générés sont appliqués à son entrée. En réponse, sont observés des seconds signaux en sortie dudit composant logiciel. Cette architecture permet que les parties de l'outil dépendantes des 20 technologies d'implémentation des composants logiciels sous test soient dé-corrélées du moteur de test. Ceci permet une forte évolutivité de l'outil puisque l'ajout d'une nouvelle configuration de l'outil, telle que l'implémentation d'une nouvelle technologie de modélisation par exemple, ne vient pas remettre en cause les scénarios de tests existants qui peuvent 25 ainsi être réutilisés. En particulier, les stimulii sont écrit en fonction de paramètres dont les valeurs peuvent êtres « centralisées » dans un fichier de configuration. La réutilisabilité est aussi possible en cas de modification paramétrique. De façon préférée, les interfaces des composants logiciels sous test 30 sont entièrement décrites dans un langage générique, en particulier XML (« eXtensible Markup Langage »), et fournies ainsi à l'atelier de test dans un format agnostique vis-à-vis des particularités des technologies telles que ScadeeSimulink®/VHDL. Dans une dernière étape (c) du procédé, l'outil de test conclut sur la vérification : la fiabilité du composant logiciel est confirmée seulement si pour chaque stimulus les seconds signaux respectent ladite séquence de conditions sur les paramètres de sortie, en d'autres termes si à tout instant de l'intervalle temporel la partie « condition sur la sortie » du stimulus est vraie.
Au moindre écart supérieur à un seuil de tolérance donné, un problème est détecté sur le composant logiciel, et son code sera réexaminé. Si la fiabilité est confirmée, le procédé peut comprendre une étape (d) ultérieure d'embarquement du composant logiciel sur le calculateur 21 du véhicule 2 (l'aéronef).
Système Selon un deuxième aspect, l'invention concerne un équipement 1 pour la mise en oeuvre du précédent procédé. L'équipement 1 est 20 éventuellement un poste de génération de code informatique. Cet équipement comprend des moyens d'interface 13, 14 (plus précisément des moyens d'affichage 13 tel qu'un écran et des moyens de saisie 14 tels qu'un clavier) permettant l'expression d'un ou plusieurs stimuli, chaque stimulus définissant sur un intervalle temporel : 25 o des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; o des conditions sur des paramètres de sortie dudit composant logiciel ; L'équipement 1 comprend également des moyens de traitement de 30 données (par exemple un processeur) configurés pour la mise en oeuvre de : o un module de génération de premiers signaux conformes auxdites valeurs des paramètres d'entrée pour chaque stimulus ; o un module d'exécution dudit composant logiciel et d'application en entrée desdits premiers signaux générés pour chaque stimulus ; o un module d'observation de seconds signaux en sortie dudit composant logiciel pour chaque stimulus ; o un module de confirmation de la fiabilité du composant logiciel seulement si pour chaque stimulus les seconds signaux respectent lesdites conditions sur les paramètres de sortie. La figure 5 représente un exemple de vue de l'interface 14 de l'équipement 1. Cette interface permet facilement de programmer graphiquement (en partie gauche) un stimulus en sélectionnant et configurant d'une part des blocs correspondant à des fonctions élémentaires (on voit successivement une attente, un échelon, une rampe et une attente), et d'autre part des blocs correspondant aux conditions (ici une seule condition pour la séquence de quatre fonctions élémentaires évoquée). Les blocs graphiques sont sélectionnés depuis un catalogue en partie droite. La partie du milieu affiche le code en TCML associé généré. Produit programme d'ordinateur Selon un troisième et un quatrième aspects, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution (en particulier sur les moyens de traitement 11 de l'équipement 1) de test du composant logiciel, ainsi que des moyens de stockage lisibles par un équipement informatique (notamment une mémoire 12 de l'équipement 1) sur lequel on trouve ce produit programme d'ordinateur.

Claims (14)

  1. REVENDICATIONS1. Procédé de test d'un composant logiciel, caractérisé en ce qu'il comprend la mise en oeuvre par des moyens de traitement de données (11) d'un équipement (1) d'étapes de : (a) Expression sur une interface (13) de l'équipement (1) d'un ou plusieurs stimuli, chaque stimulus définissant sur un intervalle temporel : o des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; o des conditions sur des paramètres de sortie dudit composant logiciel ; (b) Pour chaque stimulus, o génération de premiers signaux conformes auxdites valeurs des paramètres d'entrée ; o exécution dudit composant logiciel et application en entrée desdits premiers signaux générés ; o Observation de seconds signaux en sortie dudit composant logiciel, (c) confirmation de la fiabilité du composant logiciel seulement si pour chaque stimulus les seconds signaux respectent lesdites conditions sur les paramètres de sortie.
  2. 2. Procédé selon la revendication 1, dans lequel chaque stimulus définit une combinaison de fonctions élémentaires des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps.
  3. 3. Procédé selon la revendication 2, dans lequel ladite combinaison de fonctions élémentaires comprend au moins une séquence temporelle de fonctions élémentaires.
  4. 4. Procédé selon l'une des revendications 2 et 3, dans lequel lesdites fonctions élémentaires sont choisies parmi un ensemble comprenant des rampes, des échelons et des attentes.
  5. 5. Procédé selon la revendication 4, dans lequel - Une attente est définie par une durée ; un échelon est défini par un paramètre choisi parmi une valeur d'un paramètre d'entrée et une valeur d'incrément, et une rampe est définie par deux paramètres choisis parmi une valeur cible d'un paramètre d'entrée, une durée de variation dudit paramètre d'entrée, une vitesse de variation dudit paramètre d'entrée, et une valeur d'incrément.
  6. 6. Procédé selon l'une des revendications précédentes, dans lequel chaque stimulus définit une combinaison de conditions comprenant au moins une séquence temporelle de conditions.
  7. 7. Procédé selon la revendication 6, dans lequel au moins une condition de ladite séquence de conditions est une condition principale associée à au moins une condition auxiliaire définissant un intervalle de temps réduit au sein de la séquence sur lequel les seconds signaux doivent respecter la condition principale pour que la fiabilité du composant logiciel soit vérifiée à l'étape (c).
  8. 8. Procédé selon la revendication 7, dans lequel au moins une condition principale est associée à au moins deux conditions auxiliaires dont une condition de départ et une condition de fin.
  9. 9. Procédé selon l'une des revendications précédentes, dans lequel un code informatique dudit composant logiciel est généréautomatiquement par les moyens de traitement de données (11) de l'équipement (1) préalablement à l'étape (a).
  10. 10. Procédé selon la revendication 9, dans lequel ladite génération de code informatique est de type Scade0, Simulink® ou VHDL.
  11. 11. Procédé selon l'une des revendications précédentes, comprenant en outre une étape (d) d'embarquement du composant logiciel sur un calculateur (21) d'un appareil (2) si la fiabilité du composant logiciel est confirmée.
  12. 12. Equipement (1) de test d'un composant logiciel, caractérisé en ce qu'il comprend : - une interface (13, 14) permettant l'expression d'un ou plusieurs stimuli, chaque stimulus définissant sur un intervalle temporel : o des valeurs de paramètres d'entrée dudit composant logiciel en fonction du temps ; o des conditions sur des paramètres de sortie dudit composant logiciel ; - des moyens de traitement de données (11) configurés pour la mise en oeuvre de : o un module de génération de premiers signaux conformes auxdites valeurs des paramètres d'entrée pour chaque stimulus ; o un module d'exécution dudit composant logiciel et d'application en entrée desdits premiers signaux générés pour chaque stimulus ; o un module d'observation de seconds signaux en sortie dudit composant logiciel pour chaque stimulus ; o un module de confirmation de la fiabilité du composant logiciel seulement si pour chaque stimulus les seconds signaux respectent lesdites conditions sur les paramètres de sortie.
  13. 13. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 11 de test d'un composant logiciel, lorsque ledit 5 programme est exécuté par un ordinateur.
  14. 14. Moyens de stockage lisibles par un équipement informatique sur lesquels un produit programme d'ordinateur comprend des instructions de code pour l'exécution d'un procédé selon l'une des 10 revendications 1 à 11 de test d'un composant logiciel.
FR1459321A 2014-09-30 2014-09-30 Procede de test d'un composant logiciel Active FR3026511B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1459321A FR3026511B1 (fr) 2014-09-30 2014-09-30 Procede de test d'un composant logiciel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1459321 2014-09-30
FR1459321A FR3026511B1 (fr) 2014-09-30 2014-09-30 Procede de test d'un composant logiciel

Publications (2)

Publication Number Publication Date
FR3026511A1 true FR3026511A1 (fr) 2016-04-01
FR3026511B1 FR3026511B1 (fr) 2018-02-16

Family

ID=52988111

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1459321A Active FR3026511B1 (fr) 2014-09-30 2014-09-30 Procede de test d'un composant logiciel

Country Status (1)

Country Link
FR (1) FR3026511B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394688B2 (en) 2015-12-21 2019-08-27 Safran Electronics & Defense Method for detecting computer module testability problems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2131285A2 (fr) * 2008-05-14 2009-12-09 Honeywell International Inc. Procédé et appareil pour la génération de test à partir de diagrammes hybrides avec un flux de données et une notation de Statechart combinés

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2131285A2 (fr) * 2008-05-14 2009-12-09 Honeywell International Inc. Procédé et appareil pour la génération de test à partir de diagrammes hybrides avec un flux de données et une notation de Statechart combinés

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
K-P LINDEGAARD ET AL: "Signal based functionality testing of control systems", INTELLIGENT CONTROL, 2006 IEEE INTERNATIONAL SYMPOSIUM ON, IEEE, PI, 4 October 2006 (2006-10-04), pages 2635 - 2640, XP031420465, ISBN: 978-0-7803-9797-2 *
PIKETEC SOFTWARE ENGINEERING: "TPT Tutorial version 3.1", 13 February 2009 (2009-02-13), XP002742659, Retrieved from the Internet <URL:http://www.piketec.com/downloads/3.1/TPT-3.1_Tutorial.pdf> [retrieved on 20150723] *
PIKETEC SOFTWARE ENGINEERING: "TPT User's Guide version 3.1", 13 February 2009 (2009-02-13), XP002742660, Retrieved from the Internet <URL:http://www.piketec.com/downloads/3.1/TPT-3.1_UsersGuide.pdf> [retrieved on 20150723] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394688B2 (en) 2015-12-21 2019-08-27 Safran Electronics & Defense Method for detecting computer module testability problems

Also Published As

Publication number Publication date
FR3026511B1 (fr) 2018-02-16

Similar Documents

Publication Publication Date Title
FR3044126A1 (fr) Systeme et procede pour creer automatiquement des cas de tests a base d&#39;exigences liees a un logiciel critique
US20180137037A1 (en) White box testing
FR2843214A1 (fr) Procede de verification fonctionnelle d&#39;un modele de circuit integre pour constituer une plate-forme de verification, equipement emulateur et plate-forme de verification.
CN106528100A (zh) 用于安全关键软件开发的基于模型的技术和过程的系统和方法
FR2921170A1 (fr) Procede de generation automatique de programmes de test d&#39;un logiciel de fonctionnement d&#39;un systeme embarque a bord d&#39;un aeronef, et dispositif de mise en oeuvre
EP1593982B1 (fr) Contrôle de la robustesse d&#39;une modélisation d&#39;un système physique
EP2150897B1 (fr) Procede de simulation d&#39;un systeme embarque a bord d&#39;un aeronef pour tester un logiciel de fonctionnement et dispositif pour la mise en oeuvre de ce procede
FR2947925A1 (fr) Procede de creation automatique de simulation de cablage
EP2273360A1 (fr) Procédé de création d&#39;une bibliothèque de représentations algorithmiques d&#39;équipements électroniques
FR3066606B1 (fr) Appareil de test et procede de test d&#39;un circuit integre
US9871649B2 (en) Real time subsample time resolution signal alignment in time domain
FR3026511A1 (fr) Procede de test d&#39;un composant logiciel
US11960385B2 (en) Automatic generation of integrated test procedures using system test procedures
FR2923925A1 (fr) Procede d&#39;evaluation de la surete de fonctionnement d&#39;un systeme
CN110297625B (zh) 应用的处理方法及装置
Boydston et al. Joint common architecture (JCA) demonstration architecture centric virtual integration process (ACVIP) shadow effort
EP3195113B1 (fr) Procédé de vérification de traçabilité de premières instructions en un langage de programmation procédurale générées à partir de secondes instructions en un langage de modélisation
WO2017108924A1 (fr) Procédé de détection de problèmes de testabilité d&#39;un module informatique
Uetsuki et al. Improvement of description for reusable test type by using test frame
Nguyen et al. FPGA-based development for sophisticated automotive embedded safety critical system
EP2369486A1 (fr) Système de test d&#39;une architecture de calcul multitâches à partir de données de communication entre processeurs et procédé de test correspondant
Fatih et al. Improving the Continuous Integration Pro cess for the Vehicle Dynamics Software at VCC using Docker
EP1387270B1 (fr) Procédé et système de reconnaissance automatique de configurations de simulations d&#39;un circuit intégré
FR3031820A1 (fr) Procede de determination de la validite d&#39;un modele
FR3024566A1 (fr) Procede de verification de tracabilite de premieres instructions en un langage de programmation procedurale generees a partir de secondes instructions en un langage de modelisation

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160401

PLFP Fee payment

Year of fee payment: 3

CD Change of name or company name

Owner name: SAGEM DEFENSE SECURITE, FR

Effective date: 20161214

CJ Change in legal form

Effective date: 20161214

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10