FR3044126A1 - Systeme et procede pour creer automatiquement des cas de tests a base d'exigences liees a un logiciel critique - Google Patents
Systeme et procede pour creer automatiquement des cas de tests a base d'exigences liees a un logiciel critique Download PDFInfo
- Publication number
- FR3044126A1 FR3044126A1 FR1661158A FR1661158A FR3044126A1 FR 3044126 A1 FR3044126 A1 FR 3044126A1 FR 1661158 A FR1661158 A FR 1661158A FR 1661158 A FR1661158 A FR 1661158A FR 3044126 A1 FR3044126 A1 FR 3044126A1
- Authority
- FR
- France
- Prior art keywords
- test
- model
- test cases
- software
- requirements
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Un procédé pour générer automatiquement des cas de tests à base d'exigences comporte la construction (205) dans un outil de mise au point à base de modèles, d'un modèle d'architecture logicielle dérivé automatiquement d'informations architecturales d'un modèle de conception logicielle, l'attribution (210) de modèles d'exigences à des blocs/opérateurs du modèle d'architecture logicielle, et la création (215), à partir de l'architecture logicielle, de cas de tests à base d'exigences au niveau composants.
Description
Système et procédé pour créer automatiquement des cas de tests à base d'exigences liées à un logiciel critique
Un logiciel critique tel qu'un logiciel à usage aéronautique doit, conformément à des normes de certification (p.ex. DO-178B/C pour un logiciel à usage aéronautique), faire l'objet d'une vérification rigoureuse en regard d'objectifs de certification. Les tests représentent une part essentielle du processus de vérification. Générer manuellement des cas de tests à partir des exigences est difficile et chronophage, surtout avec un gros logiciel complexe.
Des cas de tests et/ou des procédures de tests générés automatiquement sur la base des exigences liées à un logiciel de haut niveau peuvent contribuer à réduire le coût induit par des activités manuelles de création de cas de tests et de vérification. Ces cas de tests et/ou procédures de test générés à partir des spécifications peuvent être exécutés à l'aide d'un conducteur de tests sur les mises en œuvre associées de conception de bas niveau.
Les outils et/ou modèles de tests selon la technique antérieure ne sont pas à même de générer des cas de tests à base d'exigences à différents niveaux dans le modèle de conception. Les cas de tests générés produits par des outils classiques ne peuvent pas être directement exécutés sur les composants à multiples niveaux de conception. L'invention sera mieux comprise à l'étude détaillée de quelques modes de réalisation pris à titre d'exemples non limitatifs et illustrés par les dessins annexés sur lesquels : -la Figure 1 représente un système pour générer automatiquement des cas de tests à base d'exigences selon des formes de réalisation ; -la Figure 2 illustre un processus pour tester un logiciel selon des formes de réalisation ; -les figures 3A à 3D illustrent un modèle d'architecture logicielle dérivé automatiquement d'une conception logicielle selon des formes de réalisation ; -la Figure 4 illustre un processus pour la création de cas de tests au niveau composants selon des formes de réalisation ; -la Figure 5 représente un modèle d'exigences selon des formes de réalisation ; -la Figure 6 représente un modèle d'exigences avec des objectifs de tests associés selon des formes de réalisation ; -la Figure 7 représente un modèle de couverture d'états logiques avec des objectifs de tests associés selon des formes de réalisation ; -les figures 8A et 8B représentent un modèle de masquage d'entrées avec des objectifs de tests associés selon des formes de réalisation ; -la Figure 9 illustre un processus de création et de vérification de scripts de tests selon des formes de réalisation ; -la Figure 10 illustre un exemple de conception d'architecture logicielle et les informations de traçabilité d'exigences correspondantes selon des formes de réalisation ; la Figure 11 représente un exemple de script de test au niveau unitaire selon des formes de réalisation ; et -la Figure 12 représente un exemple de script de test au niveau de l'intégration selon des formes de réalisation.
Selon des formes de réalisation, des systèmes et des procédés créent automatiquement un modèle d'architecture logicielle à partir de l'architecture de conception logicielle, ainsi que des modèles d'exigences pour automatiser la création de cas de tests sur la base d'exigences architecturales multiniveaux conformément au modèle d'architecture logicielle proposé.
Selon des formes de réalisation, le modèle d'architecture logicielle et son attribution d'exigences sont construits à l'aide d'un outil de mise au point à base de modèles (MBD) avec la représentation d'un organigramme hiérarchique de données. A la différence d'outils de MBD classiques, traditionnellement utilisés pour la conception de bas niveau, un outil de MBD selon des formes de réalisation crée automatiquement le modèle d'architecture logicielle d'après l'architecture de conception logicielle et crée des cas de tests correspondants pour les exigences au niveau système ou de niveau haut.
Des formes de réalisation de systèmes et procédés peuvent mettre en œuvre la création de cas de tests à base d'exigences au niveau composants afin de générer automatiquement des cas de tests pour des composants à différents niveaux dans l'architecture logicielle.
La Figure 1 représente un système 100 pour la création automatisée de cas de tests sur la base d'exigences selon des formes de réalisation. Le système 100 comporte un processeur de commande 110 qui exécute des instructions informatiques 131 pour commander le fonctionnement du système et de ses composants. Les instructions exécutables peuvent être stockées dans une mémoire de données 130, laquelle peut également stocker des données consultées et générées par le système. Le processeur de commande 110 peut être logé dans un ordinateur ou un serveur, et être interconnecté avec les divers composants par l'intermédiaire d'une liaison de communication 120. La liaison de communication peut être un bus interne, un réseau de communication électronique ou autre. Le système 100 peut générer des cas de tests à partir d'exigences au niveau système et/ou de niveau haut 132 du logiciel critique.
La Figure 2 illustre un processus 200 pour des tests logiciels automatisés selon des formes de réalisation. Le processus 200 obtient un modèle d'architecture logicielle 134 à partir du modèle de conception logicielle. Le modèle d'architecture logicielle est construit, étape 205, dans l'environnement d'un outil de mise au point 150 à base de modèles reposant sur les informations architecturales du modèle de conception. Ce modèle d'architecture logicielle peut être généré automatiquement selon certaines mises en œuvre. Des modèles d'exigences sont attribués, étape 210, à différents modules du modèle d'architecture logicielle en connectant les variables contrôlées/commandées correspondantes (p.ex., sur la Figure 1 : VAR1-VAR19) aux ports d'entrée/sortie du composant. Selon certaines formes de réalisation, lors de l'étape 205, des ports d'entrée pour toutes les variables de sortie présentes dans les modèles d'exigences peuvent être ajoutés. En ajoutant des ports d'entrée pour toutes les variables de sortie, le générateur de cas de tests peut générer d'un seul coup des sorties attendues et des entrées pour les cas de tests.
Le générateur 140 de cas de tests au niveau composants peut utiliser le modèle d'architecture logicielle avec des exigences attribuées pour générer, étape 215, des cas de tests à base d'exigences au niveau unitaire/modulaire. Le générateur 140 de cas de tests peut aussi générer, étape 220, des cas de tests au niveau intégration pour vérifier si l'élément de code ou l'intégration est conforme aux exigences attribuées.
Les figures 3A à 3D illustrent un modèle d'architecture logicielle 300 construit sous la forme d'un organigramme hiérarchique de données reposant sur l'architecture de conception logicielle selon des formes de réalisation. Chaque composant Composantl, Composant2, Composant 3, Composant 4 de la conception logicielle est un bloc/opérateur du modèle d'architecture logicielle avec des ports d'entrée et de sortie. Les blocs/opérateurs du modèle d'architecture logicielle sont connectés les uns aux autres et peuvent avoir de multiples couches de sous-blocs/sous-opérateurs. Des modèles d'exigences REQ12, REQ13, REQ14, REQ15 sont attribués au modèle d'architecture logicielle et sont connectés aux ports d'entrée et de sortie. Le processus de construction est automatique, systématique et modulaire. L'organigramme hiérarchique de données assure une bonne visualisation et facilite la traçabilité depuis les exigences jusqu'à la conception logicielle.
La Figure 4 illustre un processus 400 pour la création de cas de tests au niveau composants selon des formes de réalisation. Le processus 400 repose sur un modèle reçu, étape 405, d'architecture logicielle généré automatiquement, sous la forme d'un organigramme hiérarchique de données avec des modèles d'exigences attribués. Un ou plusieurs des composants logiciels de la conception logicielle est/sont sélectionné(s), étape 410, d'après le niveau de création de test, et le bloc/opérateur de modèle d'architecture logicielle correspondant est utilisé pour la création de cas de tests. Un modèle intermédiaire de tests est construit, étape 415, d'après le composant sélectionné en adjoignant les contraintes des tests et les objectifs des tests au bloc/opérateur de modèle d'architecture logicielle correspondant. Les objectifs des tests sont annexés pour satisfaire certains critères de couverture au niveau exigences, tels que la couverture d'exigences (par exemple, toutes les exigences sont activées), la couverture d'états logiques (par exemple, des états logiques dans les exigences sont activés à un certain niveau), etc. Les contraintes des tests sont adjointes au modèle pour limiter l'étendue des variables contrôlées/commandées et pour assurer que les cas de tests générés ne vont pas à l'encontre des exigences.
Les stratégies de création automatique de cas de tests (à savoir pour adjoindre les objectifs et les contraintes des tests) peuvent reposer sur la forme générale d'une exigence. En langage naturel structuré, la forme d'une exigence peut être exprimée ainsi : <expression précédente>implique<expression consécutive>, où < expression précédente> est une expression logique sur des variables contrôlées, et <expression consécutive> est une expression logique sur des variables commandées.
La Figure 5 illustre le modèle d'exigences 500 (exprimé en Simulink) selon des formes de réalisation. Le modèle d'exigences comprend l'expression précédente 510 et l'expression consécutive 520. Ces expressions sont fournies au bloc logique 530, ce qui implique un signal de sortie 540 reposant sur les états des expressions (c'est-à-dire que A ==> B). Pour que l'exigence tienne, le signal de sortie doit être 1 ou “vrai”, bloc/opérateur de modèle d'architecture logicielle correspondant C'est ce que reçoit le générateur automatique 140 de cas de tests qui, sur cette base, génère des cas de tests selon une ou plusieurs stratégie(s) (p.ex. une stratégie de couverture d'exigences, une stratégie de couverture d'états logiques, une stratégie de masquage d'entrées, etc.). Les formes de réalisation ne se limitent pas à cela, et d'autres stratégies pour la création de cas de tests entrent dans le cadre de la présente invention.
Une stratégie de couverture d'exigences comprend, pour chaque exigence, la création d'un cas de test où l'exigence doit être satisfaite, l'expression précédente étant vraie. A cette fin, des objectifs et des contraintes sont insérés et un moteur de création de tests apte à activer des séquences d'entrée est mis en marche pour atteindre les objectifs du test. A titre d'exemple, l'insertion d'un objectif de test peut se faire à l'aide de blocs d'objectifs de tests et de conditions de tests issus d'une bibliothèque commerciale de blocs de vérification de conception dans l'outil sélectionné de mise au point à base de modèles (p.ex. tels que les blocs Simulink Design Vérifier disponibles avec Simulink). Le moteur de création de tests peut servir à activer les entrées pour atteindre les objectifs de tests. La Figure 6 illustre un modèle d'exigences 600 avec des objectifs de tests annexés selon des formes de réalisation. Le bloc 610 d'Objectifs de Tests (noté avec un “O” cerclé) est analysé par le vérificateur de conception pour trouver une combinaison d'attributions de valeurs de variables VAR21, VAR22 qui amènent l'expression précédente, qui est de type booléen, à être vraie. Le bloc 620 de Conditions de Tests (noté avec un “C” cerclé) amène le vérificateur de conception à maintenir vraie la sortie du bloc “implique”. Un signal de sortie vraie du bloc “implique” est une indication de ce que l'exigence REQ27 est satisfaite. Les attributions de valeurs aux variables contrôlées et commandées sont générées automatiquement par le vérificateur de conception.
Une stratégie de couverture d'états logiques (LCC) peut être mise en œuvre pour parvenir à une couverture fonctionnelle de conditions d'équations logiques. Il est démontré que chaque condition dans une équation logique a un effet sur le résultat de l'équation logique en ne faisant varier que cette condition et en maintenant inchangées toutes les autres susceptibles d'affecter le résultat. On considérera les exemples du Tableau 1, qui illustrent la couverture d'états logiques pour deux variables, où deux valeurs booléennes (a et b) sont les conditions pour les opérateurs booléens cités. Le Tableau 1 indique si un cas de test est nécessaire pour obtenir une couverture LCC (V) ou non (xx). Lorsque l'expression précédente a l'un de ces opérateurs, des cas de tests sont générés pour chacune des combinaisons correspondantes marquées par un (W), ce qui est généralisable à n'importe quel nombre d'opérandes.
Tableau 1
La Figure 7 illustre un modèle de couverture 700 d'états logiques avec des objectifs de tests adjoints selon des formes de réalisation. Le modèle de LCC repose sur le modèle d'exigences 600 avec une combinaison de blocs supplémentaires d'objectifs et de conditions de tests 710, 720, 730. Afin de générer les cas de tests, les blocs d'objectifs de tests sont annexés selon les opérateurs booléens utilisés et les cas respectifs du Tableau 1. Après que le moteur de création de tests a tourné, une série de cas de tests sont générés pour satisfaire la couverture d'états logiques. Chaque cas de test généré est également examiné afin que soient découvertes les exigences qu'il “active” - l'activation signifiant que le signal de sortie du port de Satisfiabilité 740 doit être 1 ou “vrai”.
Une stratégie de masquage d'entrées peut réussir un masquage Etat Modifié/Couverture de Décisions (EM/CD). Le masquage EM/CD est conforme à la définition d'effet indépendant en garantissant comme cause exclusive les mêmes cas de tests minimaux à chaque opérateur logique, et est acceptable pour se conformer à l'exigence d'EM/CD de normes de mise au point à base d'objectifs (p.ex. DO-178B/C). Le masquage se rapporte au concept selon lequel des entrées spécifiques d'une construction logique peuvent cacher l'effet d'autres entrées de la construction. Par exemple, une entrée fausse d'un opérateur ET masque toutes les autres entrées et une entrée vraie d'un opérateur OU masque toutes les autres entrées. L'approche de ΓΕΜ/CD par masquage permet le changement de plus d'une entrée dans une paire d'indépendances, pour autant qu'il soit démontré que la condition concernée est la seule condition qui affecte la valeur du résultat de la décision. Cependant, il faut analyser la logique interne de la décision pour démontrer que la condition concernée est la seule condition provoquant un changement de la valeur du résultat de la décision.
Les figures 8A et 8B illustrent une stratégie 800 à modèle de masquage d'entrées avec des objectifs de tests annexés selon des formes de réalisation. Chaque sous-expression figurant dans le modèle 800 de masquage d'entrées correspond à une propagation de signal/bloc qui débute dans un état d'entrée de l'expression précédente, impliquant une variable contrôlée VAR23, VAR24, VAR25, et prend fin au signal qui représente le résultat de l'expression contrôlée. Avec ce modèle, des cas de tests associés à des exigences REQ28 peuvent être générés automatiquement par le générateur 140 de cas de tests et être transcrits en scripts de tests de sortie.
La stratégie de création de tests de masquage d'entrées adjoint des objectifs de tests conformément aux étapes suivantes :
Pour chaque proposition de base (état d'entrée) de l'expression précédente, obtenir l'ensemble S de toutes les sous-expressions qui contiennent cette proposition, hormis la proposition elle-même. Ensuite, pour chaque expression de l'ensemble S : (1) si l'opération de niveau haut de la sous-expression est une fonction OU, substituer à cette expression sa négation dans S ; (2) générer une expression e qui est la conjonction de toutes les expressions de S et de la proposition de base précitée ; et (3) générer un objectif de test qui doit rendre vraie l'expression e.
Considérant à nouveau la Figure 4, après l'adjonction des contraintes de tests et des objectifs de tests, le processus 400 se poursuit avec la création de cas de tests 136, étape 420 par le générateur 140 de cas de tests. Le générateur de cas de tests peut exécuter des procédés de vérification de modèle, de résolution de contraintes et de résolution d'accessibilité sur le modèle intermédiaire de tests afin de générer les cas de tests de manière à satisfaire les objectifs de tests et/ou à détecter des objectifs de tests inaccessibles. Les cas de tests générés sont transcrits, étape 425, en scripts de tests pour l'exécution de tests et en artefacts d'examen de tests pour certification. L'avantage du procédé de création de tests au niveau composants consiste en ce que le procédé est souple pour générer automatiquement des cas de tests à base d'exigences pour des composants à différents niveaux dans l'architecture logicielle afin de respecter les critères appropriés de couverture au niveau exigences. Selon des formes de réalisation peuvent être générés des cas de tests applicables à des tests au niveau unitaire ou modulaire, ainsi qu'à des tests au niveau intégration.
La Figure 9 illustre un processus 900 pour la création de scripts de tests et l'examen d'artefacts de tests selon des formes de réalisation. Le format intermédiaire 905 généré par le processus 900 est exploitable par un humain et par une machine. Le processus 900 agit sur les cas de tests au niveau composants décrits plus haut. Un format intermédiaire est généré, étape 905, à partir des cas de tests. Ce format intermédiaire peut indiquer les informations d'entrée et les informations de sortie attendues. Le format intermédiaire peut également indiquer les exigences à l'origine du cas de test, l'objectif de test que satisfait le cas de test et la référence dont est dérivé le cas de test. Les informations intermédiaires peuvent servir à mener, manuellement ou automatiquement, des examens de tests. Des artefacts de certification sont générés, étape 910, à partir des informations intermédiaires. Les informations intermédiaires peuvent servir à générer, étape 915, des scripts de tests exécutables dans différents environnements de tests. Les scripts de tests peuvent aussi être ré-écrits automatiquement, étape 920, en outils de gestion d'exigences et de tests (p.ex. IBM® Rational®DOORS®).
Collectivement, les figures 10 à 13 présentent une illustration d'une mise en œuvre intégrale selon des formes de réalisation. La Figure 10 illustre un exemple de modèle de conception architecturale 1000 et les informations correspondantes de traçabilité d'exigences selon des formes de réalisation. Le modèle d'architecture logicielle peut être construit (Figure 2, étape 205) sous la forme d'un modèle Simulink (figures 3A à 3D). Chaque bloc de la conception d'architecture logicielle de modèle de conception logicielle est converti en bloc dans le modèle d'architecture logicielle de Simulink avec les mêmes informations d'interface et d'architecture. Chaque bloc du modèle architectural logiciel se voit également attribuer un ensemble de modèles d'exigences d'après les informations de traçabilité d'exigences de la Figure 10. Par exemple, sur la Figure 3D, quatre modèles d'exigences (1010) sont attribués au composant2 d'après les informations de la Figure 10. De même, le bloc 1020 indique les informations de traçabilité d'exigences pour le composantl ; le bloc 1030 indique les informations de traçabilité d'exigences pour le composant3 : et le bloc 1040 indique les informations de traçabilité d'exigences pour le composant4. Le modèle d'architecture logicielle illustré sur les figures 3A à 3D sert ensuite à générer des cas de tests à base d'exigences à différents niveaux dans l'architecture logicielle.
Un utilisateur peut sélectionner le bloc “composant2” (Figure 4, étape 410) pour générer des cas de tests à ce niveau unitaire et sélectionner une stratégie de test à masquage d'entrées. Selon des formes de réalisation, des blocs d'objectifs et de contraintes de tests seront automatiquement annexés à tous les modèles d'exigences à l'intérieur du bloc “composant2” lors de l'étape 415. Après une sollicitation du Vérificateur de Conception Simulink lors de l'étape 420 et une transcription de cas de tests lors de l'étape 425, les cas de tests qui satisfont la totalité des objectifs et contraintes de tests pour la stratégie de test à masquage d'entrées seront générés.
La Figure 11 illustre un exemple de script 1100 de test au niveau unitaire selon des formes de réalisation. Ce script de test au niveau unitaire est un exemple de cas de test généré au niveau unitaire pour le “composant2”. Le cas de test est généré pour se prêter à une exécution dans un environnement de test SCADE sur le bloc “composant2” de la conception. Selon une autre possibilité, un utilisateur peut sélectionner un bloc au niveau intégration qui comprend les composants 1 à 4 de la Figure 4, étape 410, afin de générer des cas de tests au niveau intégration. Selon des formes de réalisation, des blocs d'objectifs et de contraintes de tests sont adjoints automatiquement à tous les modèles d'exigences à l'intérieur du bloc au niveau intégration lors de l'étape 415. Après une sollicitation du Vérificateur de Conception Simulink lors de l'étape 420 et une transcription de cas de tests lors de l'étape 425, les cas de tests qui satisfont la totalité des objectifs et contraintes de tests pour la stratégie de test à masquage d'entrées seront générés.
La Figure 12 illustre un exemple de script 1200 de test au niveau intégration selon des formes de réalisation. Ce script de test est un exemple pour les cas de tests au niveau intégration générés. Le cas de test est généré pour se prêter à une exécution dans un environnement de test SCADE sur le bloc au niveau intégration de la conception.
Selon des formes de réalisation, un organigramme hiérarchique de données (c'est-à-dire un modèle d'architecture logicielle accompagné de modèles d'exigences) est généré automatiquement pour saisir des informations d'exigences et de conception. Cet organigramme hiérarchique de données sert à générer des cas de tests à base d'exigences à différents niveaux dans l'architecture logicielle. Selon des formes de réalisation, des informations de conception de système servent à construire l'organigramme hiérarchique de données, des modèles d'exigences étant attribués à l'intérieur de modules de l'organigramme hiérarchique de données. Les attributions d'exigences reposent sur les informations de traçabilité de module d'exigences issues des informations de conception. Des objectifs et contraintes de tests peuvent être annexés au modèle d'architecture logicielle suivant une stratégie de test choisie par l'utilisateur. La création automatique de cas de tests repose sur l'organigramme hiérarchique de données pour générer, à différents niveaux dans l'architecture de conception, des cas de tests à base d'exigences qui satisfont les objectifs et contraintes de tests. Les cas de tests générés peuvent être directement exécutés sur des composants à de multiples niveaux de la conception.
Selon certaines formes de réalisation, une application de programme informatique stockée dans une mémoire rémanente ou sur un support exploitable par ordinateur (p.ex. une mémoire à registre, une mémoire cache de processeur, une mémoire vive, une mémoire morte, un disque dur, une mémoire flash, un CD-ROM, des supports magnétiques, etc.) peut contenir un code ou des instructions exécutables qui, lorsqu'ils sont exécutés, peuvent demander à un automate ou un processeur et/ou amener celui de/à mettre en œuvre des procédés présentés ici, notamment pour la création automatisée de cas de tests à base d'exigences, décrite plus haut.
Le support exploitable par ordinateur peut consister en supports non transitoires exploitables par ordinateur, comprenant la totalité des formes et types de mémoires et tous les supports exploitables par ordinateur, sauf un signal transitoire se propageant. Dans une mise en œuvre, la mémoire rémanente ou le support exploitable par ordinateur peut être une mémoire externe.
Liste des repères 100 Système 110 Processeur de commande 120 Liaison de communication 130 Mémoire de données 131 Instructions informatiques 132 Exigences de niveau haut 134 Modèle d'architecture logicielle 136 Cas de tests 140 Générateur de cas de tests 150 Outil de mise au point à base de modèles 300 Modèle d'architecture logicielle VAR1 à VAR19 Variable REQ12 à REQ15 Modèle d'exigence
Composantl à
Composant4 Composant 500 Modèle d'exigence 510 Expression précédente 520 Expression consécutive 530 Bloc logique 540 Signal de sortie 600 Modèle d'exigences 610 Bloc d'objectifs de tests 620 Bloc de conditions de tests VAR20 à VAR22 Variable REQ27 Exigence 700 Modèle de couverture d'états logiques 710 Bloc d'état 720 Bloc d'état 730 Bloc d'état 740 Port de satisfiabilité 800 Stratégie à modèle de masquage d'entrées VAR23 à VR25 Variable REQ28 Exigence 1000 Modèle de conception d'architecture logicielle 1010 Bloc 1020 Bloc 1030 Bloc 1040 Bloc REQ1 àREQll Modèle d'exigences REQ16 à REQ26 Modèle d'exigences 1100 Script de test au niveau unitaire 1200 Script de test au niveau intégration
Claims (6)
- REVENDICATIONS1. Procédé pour générer automatiquement des cas de tests à base d'exigences, le procédé, comportant : la construction d'un modèle d'architecture logicielle (300) dans un outil de mise au point (150) à base de modèles, le modèle d'architecture logicielle étant dérivé automatiquement d'informations architecturales d'un modèle de conception logicielle (1000)Ί l'attribution de modèles d'exigences (REQ1 à REQ28) à différents composants d'un modèle d’architecture logicielle ; et la création, à partir du modèle d'architecture logicielle, des cas de tests (136) à base d'exigences au niveau composants, dans lequel les cas de tests (136) à base d'exigences au niveau composants sont générés en accord avec au moins une stratégie choisie sur une liste comprenant une stratégie de couverture d'exigences, une stratégie de couverture d'états logiques et une stratégie de masquage d'entrées.
- 2. Procédé selon la revendication 1, comportant l'attribution des modèles d'exigences en connectant des variables contrôlées ou commandées correspondantes (VAR1 à VAR25) à un port d'entrée et/ou un port de sortie de modules respectifs parmi les différents modules.
- 3. Procédé selon la revendication 1, dans lequel la génération des cas de tests (136) à base d'exigences au niveau composants comprend la création de cas de tests au niveau intégration et l'application des cas de tests au niveau intégration afin de vérifier si un module de code est conforme aux exigences attribuées.
- 4. Procédé selon la revendication 1, comportant : la réception du modèle d'architecture logicielle sous la forme d'un organigramme hiérarchique de données dérivé de la conception logicielle, ainsi que des modèles d'exigences attribués, l'organigramme hiérarchique de données comprenant un ou plusieurs blocs/opérateurs mappés avec des composants correspondants (Composant 1 à Composant 4) dans la conception logicielle ; la sélection d'un des composants logiciels dans la conception logicielle pour la création de cas de tests ; et la construction d'un modèle intermédiaire de tests sur la base du composant sélectionné en adjoignant automatiquement des objectifs de tests et/ou des contraintes de tests au bloc/opérateur correspondant de modèle d'architecture logicielle.
- 5. Procédé selon la revendication 4, comportant la sélection du composant logiciel sur la base d'un niveau de création de test.
- 6. Procédé selon la revendication 4, comportant : la création de cas de test à base d’exigences par l'exécution, sur le modèle intermédiaire de tests, d'un procédé parmi un procédé de vérification de modèle, un procédé de résolution de contraintes et un procédé de résolution d'accessibilité ; et la transcription des cas de tests générés en scripts de tests pour l'exécution de tests, et en artefacts de tests pour un examen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/947,633 US9940222B2 (en) | 2015-11-20 | 2015-11-20 | System and method for safety-critical software automated requirements-based test case generation |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3044126A1 true FR3044126A1 (fr) | 2017-05-26 |
FR3044126B1 FR3044126B1 (fr) | 2022-01-14 |
Family
ID=58699700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1661158A Active FR3044126B1 (fr) | 2015-11-20 | 2016-11-17 | Systeme et procede pour creer automatiquement des cas de tests a base d'exigences liees a un logiciel critique |
Country Status (7)
Country | Link |
---|---|
US (2) | US9940222B2 (fr) |
JP (1) | JP6307140B2 (fr) |
CN (3) | CN114996115A (fr) |
BR (2) | BR102016026988A2 (fr) |
CA (2) | CA2948250C (fr) |
FR (1) | FR3044126B1 (fr) |
GB (1) | GB2545800A (fr) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9940222B2 (en) * | 2015-11-20 | 2018-04-10 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
US10025696B2 (en) | 2016-02-09 | 2018-07-17 | General Electric Company | System and method for equivalence class analysis-based automated requirements-based test case generation |
US20180165180A1 (en) * | 2016-12-14 | 2018-06-14 | Bank Of America Corporation | Batch File Creation Service |
JP6556786B2 (ja) | 2017-05-17 | 2019-08-07 | 矢崎総業株式会社 | 端子 |
CN107729226A (zh) * | 2017-07-13 | 2018-02-23 | 中科院合肥技术创新工程院 | 基于业务流的测试用例自动生成系统及方法 |
CN107729256A (zh) * | 2017-11-16 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种项目需求和测试用例的关联方法及系统 |
EP3493051A1 (fr) * | 2017-11-30 | 2019-06-05 | The MathWorks, Inc. | Système et procédés permettant d'évaluer la conformité du code de mise en uvre avec une spécification d'architecture logicielle |
DE102018003142A1 (de) | 2017-12-13 | 2019-06-13 | The Mathworks, Inc. | Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem |
EP3572945A1 (fr) * | 2018-03-09 | 2019-11-27 | General Electric Company | Système et procédé de génération de cas d'essai basés sur des exigences automatiques de logiciel de sécurité critique |
CN108595318B (zh) * | 2018-03-31 | 2021-05-14 | 西安电子科技大学 | Rfc制导的ssl/tls实现中数字证书验证模块的差异测试方法 |
CN108427554B (zh) * | 2018-05-14 | 2023-09-08 | 华南理工大学 | 一种表驱动的云模式软件自动构造方法及系统 |
WO2020015837A1 (fr) * | 2018-07-20 | 2020-01-23 | Siemens Aktiengesellschaft | Procédé et agencement permettant de produire, vérifier et optimiser un programme d'automatisation |
US10585779B2 (en) | 2018-07-30 | 2020-03-10 | General Electric Company | Systems and methods of requirements chaining and applications thereof |
CN109344059B (zh) * | 2018-09-20 | 2023-04-11 | 天津龙拳风暴科技有限公司 | 一种服务器压力测试方法及装置 |
US11138089B2 (en) | 2018-12-19 | 2021-10-05 | International Business Machines Corporation | Performance benchmark generation |
CN109815147B (zh) * | 2019-01-21 | 2022-06-24 | 深圳乐信软件技术有限公司 | 测试案例生成方法、装置、服务器和介质 |
EP3722942B1 (fr) * | 2019-04-10 | 2023-03-22 | The Boeing Company | Mise en oeuvre de tests d'intégration utilisant de tests d'unité |
US11620454B2 (en) * | 2020-02-05 | 2023-04-04 | Hatha Systems, LLC | System and method for determining and representing a lineage of business terms and associated business rules within a software application |
CN111539099A (zh) * | 2020-04-17 | 2020-08-14 | 北京航空航天大学 | 一种基于程序变异的Simulink模型验证方法 |
CN111679941A (zh) * | 2020-05-31 | 2020-09-18 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 自动识别仪器型号映射仪器指令实现仪器互换的方法 |
US11200069B1 (en) | 2020-08-21 | 2021-12-14 | Honeywell International Inc. | Systems and methods for generating a software application |
US11144436B1 (en) | 2020-10-19 | 2021-10-12 | Bank Of America Corporation | System for testing an application with dynamically linked security tests |
CN112231164B (zh) * | 2020-12-11 | 2021-08-27 | 鹏城实验室 | 处理器验证方法、设备及可读存储介质 |
EP4050489A1 (fr) * | 2021-02-24 | 2022-08-31 | The Boeing Company | Génération automatique de procédures d'essai intégrées utilisant des procédures d'essai système |
CN113010152A (zh) * | 2021-03-24 | 2021-06-22 | 中广核工程有限公司 | 一种核电厂安全级软件设计系统和方法 |
CN112905486B (zh) * | 2021-03-26 | 2022-07-08 | 建信金融科技有限责任公司 | 一种服务集成测试方法、装置和系统 |
CN113282498B (zh) * | 2021-05-31 | 2024-04-05 | 深圳赛安特技术服务有限公司 | 测试用例的生成方法、装置、设备及存储介质 |
CN115525532A (zh) * | 2021-06-25 | 2022-12-27 | 华为云计算技术有限公司 | 一种测试用例选择方法及相关装置 |
CN117555812B (zh) * | 2024-01-11 | 2024-05-17 | 北京捷科智诚科技有限公司 | 一种云平台自动化测试方法及系统 |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5390325A (en) | 1992-12-23 | 1995-02-14 | Taligent, Inc. | Automated testing system |
US7437304B2 (en) * | 1999-11-22 | 2008-10-14 | International Business Machines Corporation | System and method for project preparing a procurement and accounts payable system |
US6681383B1 (en) | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US7272752B2 (en) | 2001-09-05 | 2007-09-18 | International Business Machines Corporation | Method and system for integrating test coverage measurements with model based test generation |
CA2393043A1 (fr) | 2002-07-11 | 2004-01-11 | Luiz Marcelo Aucelio Paternostro | Definitions de cas d'essai formel |
US20050043913A1 (en) | 2003-08-19 | 2005-02-24 | Rex Hyde | Method of determining the level of structural coverage testing of test cases which are written for a program that does not provide for structural coverage testing |
US7478365B2 (en) | 2004-01-13 | 2009-01-13 | Symphony Services Corp. | Method and system for rule-based generation of automation test scripts from abstract test case representation |
US7392509B2 (en) | 2004-04-13 | 2008-06-24 | University Of Maryland | Method for domain specific test design automation |
JP2006024006A (ja) | 2004-07-08 | 2006-01-26 | Denso Corp | テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。 |
US7865339B2 (en) | 2004-07-12 | 2011-01-04 | Sri International | Formal methods for test case generation |
US7979849B2 (en) | 2004-10-15 | 2011-07-12 | Cisco Technology, Inc. | Automatic model-based testing |
US8392873B2 (en) | 2005-01-26 | 2013-03-05 | Tti Inventions C Llc | Methods and apparatus for implementing model-based software solution development and integrated change management |
US7752606B2 (en) * | 2005-08-10 | 2010-07-06 | Capital One Financial Corporation | Software development tool using a structured format to generate software code |
KR101222860B1 (ko) | 2005-09-01 | 2013-01-16 | 삼성전자주식회사 | 광픽업장치 |
US7716254B2 (en) | 2005-09-12 | 2010-05-11 | Infosys Technologies Ltd. | System for modeling architecture for business systems and methods thereof |
US7853906B2 (en) | 2006-03-22 | 2010-12-14 | Nec Laboratories America, Inc. | Accelerating high-level bounded model checking |
US20080056210A1 (en) | 2006-06-14 | 2008-03-06 | Toshiba America Research, Inc. | Moving Networks Information Server |
DE102006050112A1 (de) | 2006-10-25 | 2008-04-30 | Dspace Digital Signal Processing And Control Engineering Gmbh | Verfahren zur Erstellung einer Anforderungsbeschreibung für ein eingebettetes System |
US7644334B2 (en) * | 2006-11-27 | 2010-01-05 | Honeywell International, Inc. | Requirements-based test generation |
US8041554B1 (en) | 2007-06-06 | 2011-10-18 | Rockwell Collins, Inc. | Method and system for the development of high-assurance microcode |
US9189757B2 (en) * | 2007-08-23 | 2015-11-17 | International Business Machines Corporation | Monitoring and maintaining balance of factory quality attributes within a software factory environment |
US8423879B2 (en) | 2008-05-14 | 2013-04-16 | Honeywell International Inc. | Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation |
US8307342B2 (en) | 2008-05-14 | 2012-11-06 | Honeywell International Inc. | Method, apparatus, and system for automatic test generation from statecharts |
JP5412510B2 (ja) | 2008-05-19 | 2014-02-12 | ジョンソン コントロールズ テクノロジー カンパニー | 1個のソフトウェアの少なくとも一部を検証するためにテストケースを自動的に形成する方法 |
JP2009294846A (ja) * | 2008-06-04 | 2009-12-17 | Denso Corp | テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 |
US8260479B2 (en) | 2008-12-09 | 2012-09-04 | Honeywell International Inc. | Modular software architecture for an unmanned aerial vehicle |
US20100192128A1 (en) | 2009-01-27 | 2010-07-29 | Honeywell International Inc. | System and methods of using test points and signal overrides in requirements-based test generation |
US20110083121A1 (en) | 2009-10-02 | 2011-04-07 | Gm Global Technology Operations, Inc. | Method and System for Automatic Test-Case Generation for Distributed Embedded Systems |
US9298598B2 (en) * | 2010-03-22 | 2016-03-29 | Red Hat, Inc. | Automated visual testing |
US8849626B1 (en) | 2010-06-23 | 2014-09-30 | Iowa State University Research Foundation, Inc. | Semantic translation of stateflow diagrams into input/output extended finite automata and automated test generation for simulink/stateflow diagrams |
WO2012049816A1 (fr) | 2010-10-14 | 2012-04-19 | 日本電気株式会社 | Dispositif, procédé et programme de vérification de modèle |
CN102136047A (zh) | 2011-02-25 | 2011-07-27 | 天津大学 | 一种基于形式化及统一软件模型的软件可信工程方法 |
JP5814603B2 (ja) * | 2011-04-21 | 2015-11-17 | 株式会社東芝 | テスト仕様作成支援装置、方法及びプログラム |
US8645924B2 (en) | 2011-06-06 | 2014-02-04 | Fujitsu Limited | Lossless path reduction for efficient symbolic execution and automatic test generation |
US8893087B2 (en) | 2011-08-08 | 2014-11-18 | Ca, Inc. | Automating functionality test cases |
US9063673B2 (en) * | 2011-08-30 | 2015-06-23 | Uniquesoft, Llc | System and method for implementing application code from application requirements |
US9360853B2 (en) | 2011-09-19 | 2016-06-07 | Dspace Gmbh | Exchange of files and meta-information between system design tools and behavior modeling tools and/or simulators for the creation of ECU software |
CN102693134B (zh) | 2012-05-25 | 2014-11-19 | 南京邮电大学 | 一种基于统一建模语言的传感网软件建模平台开发方法 |
US9971676B2 (en) | 2012-08-30 | 2018-05-15 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods for state based test case generation for software validation |
KR101408870B1 (ko) | 2012-11-06 | 2014-06-17 | 대구교육대학교산학협력단 | Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 |
US9747079B2 (en) | 2014-12-15 | 2017-08-29 | General Electric Company | Method and system of software specification modeling |
CN104991863B (zh) * | 2015-07-14 | 2017-11-03 | 株洲南车时代电气股份有限公司 | 一种基于功能块图测试模型自动生成测试用例的方法 |
CN104978275B (zh) * | 2015-07-16 | 2017-09-29 | 北京航空航天大学 | 一种面向do‑178c软件测试过程的目标验证及证据模型提取方法 |
CN105068927A (zh) * | 2015-08-04 | 2015-11-18 | 株洲南车时代电气股份有限公司 | 基于关键字驱动的城轨传动控制单元自动化测试方法 |
US9940222B2 (en) * | 2015-11-20 | 2018-04-10 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
CN107727411B (zh) * | 2017-10-30 | 2019-09-27 | 青岛慧拓智能机器有限公司 | 一种自动驾驶车辆测评场景生成系统及方法 |
-
2015
- 2015-11-20 US US14/947,633 patent/US9940222B2/en active Active
-
2016
- 2016-11-09 JP JP2016218486A patent/JP6307140B2/ja not_active Expired - Fee Related
- 2016-11-14 CA CA2948250A patent/CA2948250C/fr not_active Expired - Fee Related
- 2016-11-16 GB GB1619371.6A patent/GB2545800A/en not_active Withdrawn
- 2016-11-17 FR FR1661158A patent/FR3044126B1/fr active Active
- 2016-11-18 CN CN202210276124.7A patent/CN114996115A/zh active Pending
- 2016-11-18 BR BR102016026988-1A patent/BR102016026988A2/pt not_active Application Discontinuation
- 2016-11-18 CN CN201611015902.8A patent/CN107066375B/zh active Active
-
2018
- 2018-03-09 US US15/916,660 patent/US20180196739A1/en not_active Abandoned
-
2019
- 2019-02-28 CA CA3035176A patent/CA3035176A1/fr not_active Abandoned
- 2019-03-08 CN CN201910175783.XA patent/CN110245067B/zh active Active
- 2019-03-08 BR BR102019004568-0A patent/BR102019004568A2/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
GB2545800A (en) | 2017-06-28 |
CN107066375A (zh) | 2017-08-18 |
CA3035176A1 (fr) | 2019-09-09 |
US20180196739A1 (en) | 2018-07-12 |
US9940222B2 (en) | 2018-04-10 |
CN110245067B (zh) | 2023-09-22 |
CA2948250A1 (fr) | 2017-05-20 |
FR3044126B1 (fr) | 2022-01-14 |
JP2017097862A (ja) | 2017-06-01 |
CN114996115A (zh) | 2022-09-02 |
CA2948250C (fr) | 2020-05-26 |
JP6307140B2 (ja) | 2018-04-04 |
BR102016026988A2 (pt) | 2017-07-18 |
CN110245067A (zh) | 2019-09-17 |
BR102019004568A2 (pt) | 2019-10-01 |
CN107066375B (zh) | 2022-03-01 |
US20170147482A1 (en) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR3044126A1 (fr) | Systeme et procede pour creer automatiquement des cas de tests a base d'exigences liees a un logiciel critique | |
US8819642B2 (en) | Method and system for generating and processing black box test cases | |
Fischbein et al. | A foundation for behavioural conformance in software product line architectures | |
US10031841B2 (en) | Method and system for incrementally updating a test suite utilizing run-time application executions | |
US20140013308A1 (en) | Application Development Environment with Services Marketplace | |
US20140013306A1 (en) | Computer Load Generator Marketplace | |
US20130282545A1 (en) | Marketplace for Monitoring Services | |
CN106776338B (zh) | 一种测试方法、装置及服务器 | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
JP2009087354A (ja) | ウェブアプリケーションの自動テスト生成システム及び方法 | |
US20150143342A1 (en) | Functional validation of software | |
JP2009087352A (ja) | ソフトウェアアプリケーションにおける欠陥検出のための設定可能なウェブサービスシステム及び方法 | |
Mirzaaghaei et al. | DOM-based test adequacy criteria for web applications | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
Bonfiglio et al. | Software faults emulation at model-level: Towards automated software fmea | |
US10606732B2 (en) | Hybrid genetic concolic co-verification of hardware and software | |
US20050278577A1 (en) | Automatically generating observations of program behavior for code testing purposes | |
US20140316926A1 (en) | Automated Market Maker in Monitoring Services Marketplace | |
JP2017522639A5 (fr) | ||
US20130239093A1 (en) | Parallelizing top-down interprocedural analysis | |
US9348733B1 (en) | Method and system for coverage determination | |
US8627273B2 (en) | Model checking of liveness property in a phase abstracted model | |
KR101629578B1 (ko) | Rte 코드 생성 방법 및 이를 실행하는 장치 | |
US10481969B2 (en) | Configurable system wide tests | |
US8904236B2 (en) | High quality logic verification stress test generation using two-stage randomization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20181123 |
|
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 |