FR2921170A1 - Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre - Google Patents

Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre Download PDF

Info

Publication number
FR2921170A1
FR2921170A1 FR0757615A FR0757615A FR2921170A1 FR 2921170 A1 FR2921170 A1 FR 2921170A1 FR 0757615 A FR0757615 A FR 0757615A FR 0757615 A FR0757615 A FR 0757615A FR 2921170 A1 FR2921170 A1 FR 2921170A1
Authority
FR
France
Prior art keywords
test
software
program
test program
states
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
FR0757615A
Other languages
English (en)
Other versions
FR2921170B1 (fr
Inventor
Famantanantsoa Randimbivololona
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.)
Airbus Operations SAS
Original Assignee
Airbus Operations SAS
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
Priority to FR0757615A priority Critical patent/FR2921170B1/fr
Application filed by Airbus Operations SAS filed Critical Airbus Operations SAS
Priority to EP08836799A priority patent/EP2188723A2/fr
Priority to US12/678,143 priority patent/US20110047529A1/en
Priority to CA2696020A priority patent/CA2696020A1/fr
Priority to JP2010524554A priority patent/JP2010539576A/ja
Priority to CN2008801065576A priority patent/CN101802792B/zh
Priority to PCT/FR2008/051644 priority patent/WO2009047430A2/fr
Priority to BRPI0817102 priority patent/BRPI0817102A2/pt
Priority to RU2010114709/08A priority patent/RU2473115C2/ru
Publication of FR2921170A1 publication Critical patent/FR2921170A1/fr
Application granted granted Critical
Publication of FR2921170B1 publication Critical patent/FR2921170B1/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/3664Environments for testing or debugging software

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

Abstract

L'invention concerne un procédé pour générer des programmes de test d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef, caractérisé en ce qu'il comporte les étapes suivantes :- a) identification (20) de cas de test valides par un utilisateur, de manière interactive, en positionnant un point d'entrée et un point d'arrêt, respectivement, au début et à la fin d'une fonction du logiciel de fonctionnement en cours de test.- b) observation et enregistrement (22) des états de variables de ladite fonction par l'intermédiaire de la position du point d'arrêt et du point d'entrée,- c) génération automatique (26) d'un programme de test, en analysant dans un premier temps, les états des variables observés à l'étape a) et en générant ,dans un deuxième temps, un programme de test sous la forme d'un code source (13) ,- d) exécution automatique (30) dans un environnement d'exécution des tests du programme de test généré.

Description

Procédé de génération automatique de programmes de test d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef, et dispositif de mise en oeuvre Domaine de l'invention La présente invention appartient au domaine de la sécurité de fonctionnement des systèmes lorsque le fonctionnement de ces systèmes dépend de l'exécution, dans un calculateur, de suites d'instructions logiques. En particulier, l'invention a pour objet un procédé de génération io automatique de programmes de test d'un logiciel de fonctionnement d'un système devant exécuter des suites d'instructions logiques, notamment d'un système ayant des exigences de sécurité élevées tel qu'un système électronique destiné à être embarqué à bord d'un aéronef. Le procédé permet, à un utilisateur, de pouvoir générer 15 automatiquement des programmes pour tester des suites d'instructions logiques de logiciels de fonctionnement de systèmes destinés à être embarqués à bord d'un aéronef. La présente invention trouve des applications particulièrement avantageuses, mais non exclusives, dans le domaine de l'aéronautique et, plus particulièrement, dans le domaine de la 20 réalisation de tests de logiciels de fonctionnement de systèmes destinés à être embarqués. Etat de la technique Pour des raisons de sécurité, les systèmes destinés à être embarqués à bord d'un aéronef sont soumis à des vérifications de bon fonctionnement 25 au cours desquels il doit être démontré que lesdits systèmes répondent à des exigences de certification, avant qu'un aéronef équipé de tels systèmes soit autorisé à voler et, plus encore, à entrer en service commercial. Actuellement, avant leur implantation, ces systèmes subissent de nombreux tests pour vérifier qu'ils répondent aux exigences d'intégrité et de 30 sécurité, entre autres, émises par les autorités de certification. Ces systèmes embarqués peuvent être, notamment, des calculateurs spécialisés destinés à réaliser des fonctions pouvant être importantes pour l'aéronef, par exemples des fonctions de pilotage. Ces systèmes seront appelés par la suite calculateurs.
Le plus souvent, dans les architectures des systèmes actuels, chaque calculateur est dédié à une application ou à plusieurs applications de même nature, par exemple des applications de commande de vol. Chaque calculateur comprend une partie matérielle et une partie logicielle. La partie matérielle comporte au moins une unité de traitement central (CPU: Central Processing Unit en anglais) et au moins une unité d'entrées/sorties par laquelle le calculateur est connecté à un réseau de calculateurs, à des périphériques externes, etc.... Une caractéristique essentielle des systèmes embarqués, souvent mis io en oeuvre dans le domaine aéronautique, est liée à une architecture, tant matérielle que logicielle, qui évite l'introduction, autant que possible, de tout moyen non nécessaire pour exécuter les fonctions dédiées aux dits systèmes. Ainsi, contrairement aux systèmes généralement rencontrés dans des 15 applications répandues, en aéronautique, le calculateur n'est pas pourvu d'un système d'exploitation complexe. De plus, le logiciel est réalisé dans un langage aussi proche que possible du langage compris par l'unité de traitement central et les seules entrées/sorties disponibles sont celles nécessaires au fonctionnement du système, par exemple des informations 20 provenant de capteurs ou d'autres éléments de l'aéronef ou des informations à destination d'actionneurs ou d'autres éléments. L'avantage de ce type d'architecture tient au fait que le fonctionnement d'un tel système est beaucoup mieux maîtrisé. Il n'est pas dépendant d'un système d'exploitation complexe dont certains aspects du 25 fonctionnement sont fonction de paramètres non maîtrisés et qui devrait, sinon, faire l'objet des mêmes démonstrations de sécurité que les logiciels d'application. Le système est plus simple et moins vulnérable car il ne comporte que les moyens strictement nécessaires à l'exécution des fonctions confiées audit système. 30 En contrepartie, le fonctionnement d'un tel système est beaucoup plus difficile à observer. Par exemple, le système ne dispose pas des interfaces homme/machine conventionnelles, comme les claviers et écrans, permettant de vérifier le déroulement correct des suites d'instructions et d'interagir sur ce déroulement, ce qui rend difficile les vérifications indispensables pendant 35 le développement, la vérification et la qualification des logiciels.
La partie logicielle du calculateur comprend un logiciel spécifique à l'application considérée et qui assure le fonctionnement du calculateur, dont les instructions logiques correspondent aux algorithmes qui déterminent le fonctionnement du système.
Pour obtenir la certification du système, préalable à sa mise en service et à celle de l'aéronef, une phase de validation du calculateur est effectuée. De façon connue, la phase de validation consiste, en général, à vérifier, à chaque étape du processus de réalisation du calculateur, que celui-ci est conforme aux spécifications qui ont été établies pour que ledit io calculateur réponde au fonctionnement attendu du système. Cette conformité aux spécifications est réalisée, en particulier pour les logiciels, par étapes successives depuis la vérification des composants les plus simples du logiciel jusqu'au logiciel complet intégrant tous les composants devant être intégrés dans le calculateur cible. 15 Dans une première étape de vérification, les éléments de logiciel les plus simples pouvant être testés sont soumis à des tests, dits tests unitaires. Au cours de ces tests, il est vérifié que les instructions logiques, c'est-à-dire le code, des dits éléments de logiciel ont été, pris individuellement, réalisés conformément aux exigences de conception. 20 Dans une deuxième étape, dite étape d'intégration, différents composants logiciels, ayant été soumis individuellement à une vérification isolée, sont intégrés pour constituer un ensemble dans lequel les composants logiciels interagissent. Ces différents composants logiciels sont soumis à des tests d'intégration destinés à vérifier que les composants 25 logiciels sont compatibles, en particulier au niveau des interfaces fonctionnelles entre lesdits composants. Dans une troisième étape, l'ensemble des composants logiciels est intégré dans le calculateur auquel ils sont destinés. Des essais de validation sont alors réalisés pour démontrer que le logiciel, formé par l'ensemble des 30 composants intégrés dans le calculateur, est conforme à la spécification, c'est-à-dire qu'il réalise les fonctions attendues, et que son fonctionnement est fiable et sûr. Pour garantir qu'un logiciel est sûr, et pour satisfaire aux exigences de certification, il est également nécessaire, au cours de cette phase de 35 validation, de démontrer que l'ensemble des tests auxquels le logiciel a été soumis permet de conclure, avec un niveau d'assurance adéquat, que le logiciel est conforme aux exigences de sûreté requises du système où il est incorporé. Les différents tests effectués, pendant la phase de validation, sur le logiciel, permettent de s'assurer qu'aucun dysfonctionnement du dit logiciel (qui pourrait avoir un impact sur le bon fonctionnement des calculateurs, et par suite sur l'aéronef et sa sécurité) ne peut se produire ou que, si un dysfonctionnement se produit, le logiciel est apte à le maîtriser. Toutefois, pendant la phase de validation, et surtout pour les io opérations d'investigation lorsque des anomalies sont constatées, il est souvent nécessaire de s'assurer que, non seulement, les paramètres d'entrée et de sortie du calculateur sur lequel est implanté le logiciel sont conformes aux attentes mais, également, que certains comportements internes du logiciel sont corrects. 15 Dans ce cas, en raison de l'architecture spécifique des calculateurs spécialisés pour les applications embarquées, il est généralement très difficile d'observer le fonctionnement du logiciel sans mettre en oeuvre des dispositifs et des méthodes particulières. Une première méthode connue consiste à mettre en place un 20 système de distribution de fichiers entre le calculateur en test avec le logiciel implanté et une plate-forme associée, en utilisant des émulateurs. On entend, par émulateur, un dispositif permettant de simuler, sur la plate-forme associée, le fonctionnement logique d'une unité de calcul, d'un processeur du calculateur. 25 Dans un tel mode de fonctionnement avec un émulateur, le processeur du calculateur est remplacé par une sonde qui assure l'interface avec la plate-forme associée portant l'émulation du processeur. Ainsi, il est possible de faire exécuter le logiciel à tester sur le calculateur, sauf pour la partie processeur et, par des fonctions propres de la 30 plate-forme associée, d'observer le fonctionnement ou certains dysfonctionnements internes du logiciel, par exemple, en réponse à des stimulations des entrées des unités d'entrée/sortie, en plus de l'observation des sorties des dites unités d'entrée/sortie. Une deuxième méthode consiste à simuler, sur une plate-forme hôte, 35 le fonctionnement du calculateur devant exécuter le programme à tester.
Dans ce cas, les logiciels sous test doivent accéder à des fichiers de la plate-forme hôte, soit pour lire les vecteurs de tests, soit pour enregistrer des résultats de tests. Comme le logiciel à tester ne comporte pas naturellement les fonctions pour de tels accès aux fichiers de la plate-forme hôte, il est nécessaire de modifier le logiciel à tester pour intégrer ces fonctions d'accès. Pour transférer les informations, on utilise généralement des instructions d'appels système qui sont émises par l'environnement de test simulé. Les instructions d'appels système peuvent être, par exemple, io l'ouverture d'un fichier, l'écriture d'un fichier ou encore la lecture d'un fichier. Les instructions d'appels système sont interceptées par le système d'exploitation de la plate-forme hôte qui les convertit en appels système de la plate-forme hôte. Durant la phase de validation du calculateur, et surtout pour les 15 opérations d'investigation lorsque des anomalies sont constatées, il peut être nécessaire de s'assurer que, non seulement, les paramètres d'entrée et de sortie du calculateur sur lequel est implanté le logiciel sont conformes aux attentes mais, également, que certains comportements internes du logiciel sont corrects. 20 Pour cela, un environnement d'exécution de tests des logiciels de fonctionnement des calculateurs génère plusieurs programmes de test or, les programmes de test représentent souvent un volume de codes instructions important, souvent plus important que le volume des codes instructions du logiciel que l'on veut tester. 25 Actuellement, le développement des programmes de test est réalisé cas de test par cas de test. On entend par cas de test le chemin fonctionnel à mettre en oeuvre pour atteindre un objectif de test. Autrement dit, un cas de test se définit par un jeu de test à mettre en oeuvre, un scénario de test à exécuter et les résultats attendus. Ainsi, à chaque cas de test du logiciel de 30 fonctionnement destiné à être chargé dans le calculateur, est associé un programme qui va simuler le cas de test. Ces programmes de test sont réalisés par des développeurs qui maîtrisent parfaitement les fonctions des logiciels à tester, leur contexte et leurs conditions d'exécution. Le développement des programmes de test passe par deux étapes 35 essentielles : une première étape qui concerne la conception de données de tests et une deuxième étape qui concerne l'écriture des chaînes d'instructions des programmes de test. Le développement de programmes de test fait l'objet d'un enchaînement répétitif de tâches manuelles, effectué par le développeur.
Cet enchaînement répétitif de tâches manuelles est une source importante d'introduction d'erreurs. Pour résoudre ce problème, des générateurs automatiques de tests ont été développés pour permettre de générer les données des cas de test. Avec une telle génération de données de cas de test, le développeur doit io formuler chaque objectif de test dans un langage formel puis traduire ces objectifs en langage de programmation. Chaque objectif ainsi modélisé constitue un cas de test. Cependant, cette formulation de chaque objectif de test n'est praticable que pour des objectifs simples sur des fonctions simples et une 15 automatisation de cette formulation est difficile à mettre en oeuvre à l'échelle industrielle. Exposé de l'invention La présente invention a pour but de remédier aux inconvénients des techniques exposées précédemment. Pour cela, l'invention propose un 20 procédé qui permet de générer automatiquement des programmes de test et de contrôler la validité des tests effectués. La mise en oeuvre du procédé selon l'invention permet de réduire le coût de la phase de test, en évitant le recours au développement manuel des programmes de test. L'invention permet ainsi de gagner en souplesse de 25 développement des programmes de test, puisque le développement du logiciel de fonctionnement est effectué de façon incrémentale en fonction des évolutions des tests effectués. En effet, les programmes de test sont développés parallèlement aux tests du logiciel de fonctionnement, ce qui implique que, chaque fois qu'il y a une évolution d'au moins un test, les 30 programmes de test évoluent en même temps que le logiciel de fonctionnement testé. L'invention permet aussi d'améliorer la fiabilité des programmes de test puisque la synthèse de ces programmes de test est faite automatiquement à partir de scripts déroulés et validés de façon interactive 35 par le développeur.
Plus précisément l'invention a pour objet un procédé pour générer des programmes de test d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef, caractérisé en ce qu'il comporte les étapes suivantes : - a) identification de cas de test valides par un utilisateur, de manière interactive, en positionnant un point d'entrée et un point d'arrêt, respectivement, au début et à la fin d'une fonction du logiciel de fonctionnement en cours de test. - b) observation et enregistrement des états de variables de ladite io fonction par l'intermédiaire de la position du point d'arrêt et du point d'entrée, - c) génération automatique d'un programme de test, en analysant dans un premier temps, les états des variables observés à l'étape a) et en générant ,dans un deuxième temps, un programme de test sous la forme d'un code source, 15 -d) exécution automatique dans un environnement d'exécution des tests d'un programme de test généré. L'invention peut comporter aussi une ou plusieurs des caractéristiques suivantes : - entre l'étape b) et l'étape c), est effectuée une étape de vérification 20 de la validité des cas de test permettant à l'utilisateur de décider si l'exécution de la fonction testée est valide par rapport aux états de variables observés. - la génération d'un programme de test est effectuée cas de test par cas de test. 25 - entre l'étape c) et l'étape d), est effectuée une compilation du code source pour traduire automatiquement ledit code source du programme de test en un programme équivalent en langage machine. - la compilation est suivie d'une édition de liens du programme de test fournissant un code binaire exécutable et utilisable dans l'environnement 30 d'exécution des tests sélectionné par l'utilisateur. - des résultats de tests sont générés sous une forme directement compatible avec le type d'environnement d'exécution des tests sélectionné.
L'invention a également pour objet dispositif simulant le fonctionnement d'un calculateur embarqué à bord d'un aéronef, caractérisé en ce qu'il met en oeuvre le procédé tel que défini précédemment. L'invention peut comporter aussi la caractéristique suivante : Le dispositif est simulé virtuellement sur une plate-forme hôte de test et de débogage. L'invention à également pour objet un programme de test chargeable sur une unité de commande comprenant des séquences d'instructions pour mettre en oeuvre le procédé tel que défini précédemment, lorsque le io programme est chargé sur l'unité et y est exécuté. Brève description des dessins L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci sont présentées à titre indicatif et nullement limitatif de l'invention. 15 La figure 1 illustre le diagramme fonctionnel du procédé de l'invention. La figure 2 est une représentation schématique d'une unité de commande de l'environnement d'exécution des tests, permettant la génération de programmes de test d'un logiciel de fonctionnement. Description détaillée de modes de réalisation de l'invention 20 La présente invention propose un procédé permettant de générer automatiquement des programmes de test tout au long du développement du logiciel de fonctionnement. Ce procédé permet de prendre en compte chaque modification apportée audit logiciel tout au long de son développement. 25 Le procédé de l'invention permet également, par l'intermédiaire d'une succession d'étapes, de contrôler la validité de chaque test effectué sur le logiciel de fonctionnement au fur et à mesure de son développement. La figure 1 représente un diagramme fonctionnel du procédé de l'invention. Ce diagramme fonctionnel correspond à un mode de réalisation 30 de l'invention. Ce diagramme fonctionnel comporte une étape 20 dans laquelle une identification des cas de test est effectuée par un utilisateur de manière interactive. Cet utilisateur dispose des fonctionnalités d'un débogueur lui permettant, notamment, de rechercher les erreurs éventuelles dans des chaînes d'instructions. Ce débogueur permet aussi de contrôler 35 l'exécution des tests en positionnant un point d'entrée et un point d'arrêt, respectivement, au début et à la fin de la fonction du logiciel de fonctionnement testée. Le contrôle de l'exécution des tests comporte, notamment, une observation de l'état des variables sélectionnées par l'utilisateur, appelées variables significatives.
Une vérification de la validité du test est effectuée à l'étape 21 permettant de décider si oui ou non l'exécution de la fonction est valide par rapport aux états des variables observés. Dans le cas où le test est valide, une étape 22 offre à l'utilisateur une interface de validation pour enregistrer les tests valides en conservant l'ensemble des états de variables observés. io Dans le cas où le test n'est pas valide, le procédé est réitéré à partir de l'étape 20. Lorsque l'étape 22 d'enregistrement des tests valides est appliquée, une vérification de nouveaux cas de test est effectuée à l'étape 23 sous l'action et la décision de l'utilisateur. Si un nouveau cas de tests est détecté, 15 alors le procédé est réitéré à partir de l'étape 20. Si aucun nouveau cas n'est détecté, une étape 26 de génération d'un programme de test est appliquée. Cette étape 26 est précédée par deux étapes intermédiaires 24 et 25. L'étape 24 a pour but de détecter si des paramètres de l'environnement d'exécution des tests ont été indiqués par l'utilisateur. Ces paramètres 20 permettent de sélectionner le type d'environnement d'exécution de tests pour lequel les programmes de test doivent être générés. Si des paramètres ont été détectés, l'étape 25 consiste à prendre ces paramètres en compte pour la génération du programme de test. L'étape 26 de génération du programme de test est effectuée de 25 manière automatique par un générateur de progammes. Ce générateur de programmes analyse, dans un premier temps, les états des variables contrôlés qui ont été enregistrés après l'étape 20 d'identification des cas de test valides et, dans un deuxième temps, génère un code source du programme de test (étape 27). 30 Cette génération du code source est effectuée cas de test par cas de test. Le code source est présenté directement dans un langage de programmation habituel, ce qui facilite sa compréhension par la plupart des développeurs de logiciels. A l'étape 28, une compilation du code source est effectuée permettant 35 de traduire automatiquement le code source du programme de test en un programme équivalent en langage machine. Cette compilation est suivie d'une édition des liens du programme de test fournissant à l'étape 29 un code binaire exécutable et utilisable dans l'environnement d'exécution des tests sélectionné.
A l'étape 30, le code binaire du programme de test est exécuté automatiquement dans l'environnement d'exécution des tests. A l'étape 31, les résultats de tests sont générés sous une forme directement compatible avec le type d'environnement d'exécution des tests sélectionné dans l'étape 26 de génération de programme. io Le procédé présente l'avantage de pouvoir s'adapter à tout type d'environnement d'exécution de tests de logiciels de fonctionnement. Il peut donc s'adapter à tout type d'environnement virtuel ou réel. Avec le procédé de l'invention, les programmes de test générés sont directement valides et exempts d'erreurs. En effet, durant la phase de 15 validation des programmes de test, la non validation d'un desdits programmes correspond à la découverte d'une erreur, ce qui entraîne implicitement une correction de la fonction testée du logiciel de fonctionnement. La figure 2 est une représentation schématique de l'unité de 20 commande 1 de l'environnement d'exécution des tests, permettant la génération de programmes de test du logiciel de fonctionnement destiné à être chargé dans un système embarqué (non représenté). La figure 2 montre un exemple d'unité de commande 1 d'un environnement d'exécution des tests. L'environnement d'exécution des tests peut être, selon des variantes 25 de réalisation, soit simulé virtuellement sur une plateforme hôte, telle qu'une station de travail, soit basé sur un équipement matériel de type émulateur. On entend par environnement d'exécution des tests un environnement permettant de vérifier, corriger, effectuer un rodage fonctionnel et tester un logiciel de fonctionnement d'un système embarqué. L'unité de commande 1 30 de l'environnement de test comporte, de manière non exhaustive, un processeur 2, une mémoire programme 3, une mémoire de données 4, et une interface d'entrée/sortie 5. Le processeur 2, la mémoire programme 3, la mémoire de données 4, et l'interface entrée/sortie 5 sont connectés les uns aux autres par un bus de communication 6 bidirectionnel.
Le processeur 2 est commandé par des codes instructions enregistrés dans une mémoire programme 3 de l'unité de commande 1. La mémoire programme 3 comporte, dans une zone 7, des instructions pour effectuer une identification des cas de tests valides. Cette identification permet l'interaction de l'utilisateur par l'intermédiaire d'une interface, à divers fonctionnalités que l'on retrouve dans un débogueur classique. Parmi ces fonctionnalités existe notamment la possibilité de positionner un point de contrôle d'exécution à l'entrée de la fonction du logiciel de fonctionnement qui est sous test. Une autre fonctionnalité permet io de positionner un point d'arrêt à la sortie de la fonction. Cette interaction de l'utilisateur permet audit utilisateur de contrôler les états de variables afin de déterminer si l'exécution de la fonction s'est déroulée correctement. La mémoire programme 3 comporte, dans une zone 8, des instructions pour effectuer une validation. Cette validation consiste à 15 enregistrer de manière automatique l'ensemble des états de variables contrôlés. Ces états constituent un enregistrement 12 des cas de tests valides. Cette validation permet également d'éditer l'ensemble des états contrôlés. Ces états contrôlés deviennent la valeur de référence des cas de tests validés.
20 La mémoire programme 3 comporte, dans une zone 9, des instructions pour effectuer une génération des programmes de test. Cette génération de programmes de tests découle d'une analyse des états des variables de l'enregistrement 12. Cette génération de programmes de test se présente sous la forme d'un code source 13. Elle se présente cas de test par 25 cas de test. La mémoire programme 3 comporte, dans une zone 10, des instructions pour effectuer une compilation du code source 13 afin de le traduire dans le langage machine. Suite à cette compilation, une édition des liens est effectuée pour transformer le code source 13 (qui se trouve en 30 langage machine) en un code binaire 14 exécutable. La mémoire programme 3 comporte, dans une zone 11, des instructions pour effectuer une exécution du programme de test pour générer en sortie des résultats de tests 15.

Claims (3)

REVENDICATIONS
1 ù Procédé pour générer des programmes de test d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef, caractérisé en ce qu'il comporte les étapes suivantes : - a) identification (20) de cas de test valides par un utilisateur, de manière interactive, en positionnant un point d'entrée et un point d'arrêt, respectivement, au début et à la fin d'une fonction du logiciel de fonctionnement en cours de test. io - b) observation et enregistrement (22) des états de variables de ladite fonction par l'intermédiaire de la position du point d'arrêt et du point d'entrée, - c) génération automatique (26) d'un programme de test, en analysant dans un premier temps, les états des variables observés à l'étape a) et en générant ,dans un deuxième temps, un programme de test sous la 15 forme d'un code source(13), - d) exécution automatique (30) dans un environnement d'exécution des tests du programme de test généré.
2 ù Procédé selon la revendication 1 caractérisé en ce qu'entre l'étape b) et l'étape c), est effectuée une étape de vérification de la validité des cas 20 de test permettant à l'utilisateur de décider si l'exécution de la fonction testée est valide par rapport aux états de variables observés.
3 ù Procédé selon l'une quelconque des revendications 1 à 2 caractérisé en ce que la génération du programme de test est effectuée cas de test par cas de test. 25 4 ù Procédé selon l'une quelconque des revendications 1 à 3 caractérisé en ce qu'entre l'étape c) et l'étape d), est effectuée une compilation du code source pour traduire automatiquement ledit code source du programme de test en un programme équivalent en langage machine. 5 ù Procédé selon la revendication 4 caractérisé en ce que la 30 compilation est suivie d'une édition de liens du programme de test fournissant un code binaire exécutable et utilisable dans l'environnement d'exécution des tests sélectionné par l'utilisateur. 6 ù Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que des résultats de tests sont générés sous une formedirectement compatible avec le type d'environnement d'exécution des tests sélectionné. 7 ù Dispositif simulant le fonctionnement d'un calculateur embarqué à bord d'un aéronef, caractérisé en ce qu'il met en oeuvre le procédé selon 5 l'une quelconque des revendications 1 à 6. 8 ù Dispositif selon la revendication 7 caractérisé en ce qu'il est simulé virtuellement sur une plate-forme hôte de test et de débogage. 9 ù Programme de test chargeable sur une unité de commande 1 comprenant des séquences d'instructions pour mettre en oeuvre le procédé io selon l'une des revendications 1 à 6, lorsque le programme est chargé sur l'unité et y est exécuté.
FR0757615A 2007-09-14 2007-09-14 Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre Active FR2921170B1 (fr)

Priority Applications (9)

Application Number Priority Date Filing Date Title
FR0757615A FR2921170B1 (fr) 2007-09-14 2007-09-14 Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre
US12/678,143 US20110047529A1 (en) 2007-09-14 2008-09-12 Method for automatic script generation for testing the validity of operational software of a system onboard an aircraft and device for implementing the same
CA2696020A CA2696020A1 (fr) 2007-09-14 2008-09-12 Procede de generation automatique de script pour tester la validite d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre
JP2010524554A JP2010539576A (ja) 2007-09-14 2008-09-12 航空機搭載システムのオペレーション・ソフトウェアの妥当性をテストするための自動スクリプト生成の方法および同方法を実施するためのデバイス
EP08836799A EP2188723A2 (fr) 2007-09-14 2008-09-12 Procédé de génération automatique de script pour tester la validité d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef, et dispositif de mise en oeuvre
CN2008801065576A CN101802792B (zh) 2007-09-14 2008-09-12 用于测试航空器上的系统的操作软件的有效性的自动脚本生成方法及用于实现该方法的设备
PCT/FR2008/051644 WO2009047430A2 (fr) 2007-09-14 2008-09-12 Procédé de génération automatique de script pour tester la validité d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef, et dispositif de mise en oeuvre
BRPI0817102 BRPI0817102A2 (pt) 2007-09-14 2008-09-12 Processo de geração automática de roteiro para testar a validade de um software de funcionamento de um sistema embarcado a bordo de uma aeronave, e dispositivo de aplicação
RU2010114709/08A RU2473115C2 (ru) 2007-09-14 2008-09-12 Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0757615 2007-09-14
FR0757615A FR2921170B1 (fr) 2007-09-14 2007-09-14 Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre

Publications (2)

Publication Number Publication Date
FR2921170A1 true FR2921170A1 (fr) 2009-03-20
FR2921170B1 FR2921170B1 (fr) 2018-01-12

Family

ID=39273116

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0757615A Active FR2921170B1 (fr) 2007-09-14 2007-09-14 Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre

Country Status (9)

Country Link
US (1) US20110047529A1 (fr)
EP (1) EP2188723A2 (fr)
JP (1) JP2010539576A (fr)
CN (1) CN101802792B (fr)
BR (1) BRPI0817102A2 (fr)
CA (1) CA2696020A1 (fr)
FR (1) FR2921170B1 (fr)
RU (1) RU2473115C2 (fr)
WO (1) WO2009047430A2 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819646B2 (en) 2010-03-30 2014-08-26 Airbus Helicopters Control architecture and process for porting application software for equipment on board an aircraft to a consumer standard computer hardware unit
EP3076299A1 (fr) * 2015-04-03 2016-10-05 IVECO S.p.A. Procédé pour améliorer et prolonger la logique d'un banc d'essai pour un composant de véhicule, en particulier une batterie ou un alternateur

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732663B2 (en) * 2010-02-24 2014-05-20 Salesforce.Com, Inc. System, method and computer program product for providing automated testing by utilizing a preconfigured point of entry in a test or by converting a test to a predefined format
CN102541735A (zh) * 2011-12-28 2012-07-04 云海创想信息技术(天津)有限公司 软件自动化测试方法
US9135147B2 (en) * 2012-04-26 2015-09-15 International Business Machines Corporation Automated testing of applications with scripting code
US9286273B1 (en) * 2013-03-11 2016-03-15 Parallels IP Holding GmbH Method and system for implementing a website builder
CN104281518B (zh) * 2013-07-02 2018-05-15 腾讯科技(深圳)有限公司 终端应用测试方法、装置、系统、平台及移动终端
CN103500141A (zh) * 2013-10-09 2014-01-08 中国联合网络通信集团有限公司 自动化测试方法和装置
US20160098259A1 (en) * 2014-10-02 2016-04-07 The Boeing Company Software Aircraft Part Installation System
GB2533117A (en) * 2014-12-10 2016-06-15 Ibm Software test automation
CN106502896B (zh) * 2016-10-21 2019-08-23 武汉斗鱼网络科技有限公司 一种函数测试代码的生成方法及装置
US11142345B2 (en) 2017-06-22 2021-10-12 Textron Innovations Inc. System and method for performing a test procedure
RU2679350C2 (ru) * 2017-07-10 2019-02-07 Федеральное государственное бюджетное образовательное учреждение высшего образования "Воронежский государственный технический университет" Система генерации тестовых данных
JP6723483B2 (ja) * 2018-01-17 2020-07-15 三菱電機株式会社 テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
CN109214043B (zh) * 2018-07-20 2023-04-07 北京航空航天大学 数字飞行器动力学环境信息传输源代码人工智能书写方法
CN112445467A (zh) * 2019-09-04 2021-03-05 常州星宇车灯股份有限公司 汽车风扇模块软件生成方法
US11144437B2 (en) 2019-11-25 2021-10-12 International Business Machines Corporation Pre-populating continuous delivery test cases
CN112699033B (zh) * 2020-12-29 2023-05-23 中国航空工业集团公司西安飞机设计研究所 一种多分区机载软件测试用例多级同步加载方法
US20220237483A1 (en) * 2021-01-27 2022-07-28 Capital One Services, Llc Systems and methods for application accessibility testing with assistive learning
CN113297083B (zh) * 2021-05-27 2022-08-19 山东云海国创云计算装备产业创新中心有限公司 一种跨平台ic测试方法、装置、设备及介质
DE102022213441A1 (de) * 2022-12-12 2024-06-13 Gts Deutschland Gmbh Verfahren zum automatischen Erstellen eines Testskripts
CN116756043B (zh) * 2023-08-10 2023-11-03 东方空间技术(山东)有限公司 一种目标设备的软件测试方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161216A (en) * 1998-04-29 2000-12-12 Emc Corporation Source code debugging tool

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1541617A1 (ru) * 1988-05-10 1990-02-07 Предприятие П/Я А-3821 Устройство отладки микропрограммных блоков
JPH06110733A (ja) * 1992-09-30 1994-04-22 Hitachi Ltd プログラムのテストケース生成装置
US7039912B1 (en) * 1998-05-12 2006-05-02 Apple Computer, Inc. Integrated computer testing and task management systems
JP2002207611A (ja) * 2001-01-11 2002-07-26 Mitsubishi Heavy Ind Ltd ソフトウェアワーキングベンチ
JP2004530191A (ja) * 2001-02-22 2004-09-30 アクセンチュア グローバル サービスィズ ゲーエムベーハー ウェブ・サービスで構成された、インタネット・ホスティング・ビジネス・アプリケーションの開発システム
US7058857B2 (en) * 2001-10-10 2006-06-06 International Business Machines Corporation Method and system for testing a software product
JP4061931B2 (ja) * 2002-03-13 2008-03-19 株式会社デンソー 実行履歴記録装置、ブレーク命令設定装置、及びプログラム
RU2213939C1 (ru) * 2002-10-14 2003-10-10 Загороднев Александр Васильевич Способ передачи информации с бортового накопителя информации летательного аппарата во внешние блоки обработки и система для его осуществления
JP2004220269A (ja) * 2003-01-14 2004-08-05 Cyx Inc 統合テスト管理システム
WO2005088444A2 (fr) * 2004-03-01 2005-09-22 Raytheon Company Systeme et procede pour l'affichage de donnees d'execution de federation hla a duree d'execution dynamique
RU2263973C1 (ru) * 2004-05-07 2005-11-10 Федеральное государственное унитарное предприятие Летно-исследовательский институт им. М.М. Громова Пилотажно-тренировочный комплекс
CN100375057C (zh) * 2004-08-31 2008-03-12 中国银联股份有限公司 一种自动化测试辅助系统及相应的软件自动测试方法
US7543278B2 (en) * 2004-10-15 2009-06-02 Microsoft Corporation System and method for making a user interface element visible
JP2006155047A (ja) * 2004-11-26 2006-06-15 Nec Electronics Corp 検証システム及び検証方法
JP2006260390A (ja) * 2005-03-18 2006-09-28 Nomura Research Institute Ltd テストケース生成プログラム及び方法
US7526759B2 (en) * 2005-04-19 2009-04-28 International Business Machines Corporation Debugging prototyped system solutions in solution builder wizard environment
CN100362479C (zh) * 2005-12-09 2008-01-16 华为技术有限公司 基于自动化测试脚本对被测对象进行测试的方法和系统
US7895565B1 (en) * 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161216A (en) * 1998-04-29 2000-12-12 Emc Corporation Source code debugging tool

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819646B2 (en) 2010-03-30 2014-08-26 Airbus Helicopters Control architecture and process for porting application software for equipment on board an aircraft to a consumer standard computer hardware unit
EP3076299A1 (fr) * 2015-04-03 2016-10-05 IVECO S.p.A. Procédé pour améliorer et prolonger la logique d'un banc d'essai pour un composant de véhicule, en particulier une batterie ou un alternateur

Also Published As

Publication number Publication date
RU2010114709A (ru) 2011-10-20
WO2009047430A3 (fr) 2009-12-30
CN101802792A (zh) 2010-08-11
CA2696020A1 (fr) 2009-04-16
RU2473115C2 (ru) 2013-01-20
WO2009047430A2 (fr) 2009-04-16
FR2921170B1 (fr) 2018-01-12
JP2010539576A (ja) 2010-12-16
EP2188723A2 (fr) 2010-05-26
CN101802792B (zh) 2012-12-26
US20110047529A1 (en) 2011-02-24
BRPI0817102A2 (pt) 2015-03-24

Similar Documents

Publication Publication Date Title
FR2921170A1 (fr) Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre
Schäfer et al. An empirical evaluation of using large language models for automated unit test generation
US9697108B2 (en) System, method, and apparatus for automatic recording and replaying of application executions
US20170212829A1 (en) Deep Learning Source Code Analyzer and Repairer
Soltani et al. A guided genetic algorithm for automated crash reproduction
EP1387304A1 (fr) Procédé de vérification fonctionnelle d'un modèle de circuit intégré pour constituer une plate-forme de vérification, équipement émulateur et plate-forme de vérification
CN106528100A (zh) 用于安全关键软件开发的基于模型的技术和过程的系统和方法
US20110016356A1 (en) Fault detection and localization in dynamic software applications
EP1593982B1 (fr) Contrôle de la robustesse d'une modélisation d'un système physique
EP2150897B1 (fr) Procede de simulation d'un systeme embarque a bord d'un aeronef pour tester un logiciel de fonctionnement et dispositif pour la mise en oeuvre de ce procede
WO2009047435A2 (fr) Procédé de débogage d'un logiciel de fonctionnement d'un système embarqué à bord d'un aéronef et dispositif de mise en oeuvre
CN104156311B (zh) 一种基于cpu模拟器的嵌入式c语言目标码级单元测试方法
JP6142705B2 (ja) オブジェクト指向言語のための記号テストドライバの反復生成
CA2697725C (fr) Procede de traitement du volume d'informations manipule durant une phase de debogage d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre
CN109614107B (zh) 一种软件开发工具包的集成方法和装置
Chalupa et al. Symbiotic 3: New Slicer and Error-Witness Generation: (Competition Contribution)
Jaffuel et al. LEIRIOS test generator: Automated test generation from B models
US11561888B2 (en) Initialization sequences for automatic software test generation
EP3182286B1 (fr) Procede de verification de fonctionnalites d'un logiciel destine a etre embarque dans un composant cryptographique, systeme
Berthier et al. Tutorials on testing neural networks
WO2016017560A1 (fr) Système de validation logicielle et contrôleur
CN107957954B (zh) 一种Linux系统下提高测试数据安全性的方法和系统
FR3042291A1 (fr) Dispositif et procede de verification d'un logiciel
Lancia Detecting fault injection vulnerabilities in binaries with symbolic execution
Ascate et al. Mobile App Testing: Tools, Frameworks, and Challenges

Legal Events

Date Code Title Description
CA Change of address

Effective date: 20110916

CD Change of name or company name

Owner name: AIRBUS HOLDING, FR

Effective date: 20110916

CJ Change in legal form

Effective date: 20110916

TP Transmission of property

Owner name: AIRBUS HOLDING, FR

Effective date: 20110913

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

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: 16

PLFP Fee payment

Year of fee payment: 17