FR 2981473 A1 20130419 FR 1103177 A 20111018 La présente innovation concerne un procédé et des composants techniques implémentés par logiciel permettant l'automatisation des tests fonctionnels et de non régression sur les programmes informatiques liés à un système d'information ou à un logiciel de gestion. La réalisation de tests sur de tels programmes nécessite une vérification par un opérateur humain 5 des résultats de l'exécution du programme ou l'écriture d'un programme ou d'un script d'automatisation des tests ou encore la génération automatique d'un programme ou d'un script en fonction du cas de test saisi. Dans le premier cas, le test n'est pas automatisé et nécessite une vérification par un opérateur des résultats. Dans les deux autres cas, le test automatique est associé à un code ou à un script informatique dédié, ce qui nécessite une expertise technique en langage de programmation ou de script de la part du 10 testeur pour le créer ou le modifier, ou l'utilisation d'un outil dédié pour générer automatiquement le script et l'interpréter. Le procédé présenté permet d'automatiser les tests fonctionnels et de non régression en s'affranchissant de l'inconvénient d'écriture ou de génération d'un programme ou d'un script informatique associés à des cas de test. Il offre donc la possibilité de saisie et de sauvegarde de cas de tests sans 15 connaissance technique liée à la programmation informatique et sans outil de génération de script. Le résultat final attendu du procédé et les composants logiciels sur lesquels il s'appuie est l'exécution des tests après l'exécution du programme à tester et la génération d'un rapport contenant les tests ayant réussi et ceux ayant échoué. Le rapport pouvant prendre la forme d'un fichier informatique sauvegardé ou alors un affichage sur l'écran de l'utilisateur. 20 Le procédé décrit se base sur le principe de comparaison entre un référentiel de données en entrée du programme à tester et un référentiel de données en sortie. L'évaluation du différentiel entre le référentiel de données en entrée et le référentiel de données en sortie est réalisée après l'exécution du programme à tester. Le référentiel de données représente les données stockées dans un système de persistance pouvant être un système de fichiers, une base de données ou bien fournies par un serveur. Ce 25 référentiel représente le jeu de données utilisé pour le test. Le référentiel de données en sortie représente les données lues, créées ou modifiées par le programme à tester. Les référentiels de données en entrée et en sortie sont utilisés, dans le cadre du procédé, en utilisant un adaptateur dont le rôle est de faire abstraction de la nature physique du référentiel de données et de représenter le référentiel de données « adapté » sous forme d'une série d'enregistrements ou d'un modèle de données. Le modèle de données 30 représente la structure et les caractéristiques des données du référentiel. Un enregistrement représente des données réelles dans le référentiel. Les enregistrements issus d'un même référentiel peuvent avoir des liens entre eux, donnant lieu à une restructuration des données sous la forme d'un « arbre ». Chaque enregistrement regroupe des données. Chaque donnée d'un enregistrement est caractérisée par au moins son nom et sa valeur. Seule la valeur de la donnée est obligatoirement présente dans un enregistrement. 35 Les autres caractéristiques telles que le nom de la donnée, son type (nombre entier, chaine de caractères, date, booléen...) n'apparaissent pas nécessairement dans l'enregistrement mais peuvent être identifiés durant l'une des phases d'exécution du procédé grâce à l'adaptateur. Le procédé permet de créer des liens logiques et mathématiques entre les données en entrée « adaptées », que nous appellerons enregistrements en entrée et les données en sortie « adaptées », que nous appellerons enregistrements en sortie, et de sauvegarder ces liens. Les liens ainsi créés permettent, lors de l'exécution des tests de retrouver, pour chaque enregistrement en entrée l'enregistrement en sortie qui lui est associé selon les liens définis et d'exécuter les tests à partir de ces deux enregistrements, en appliquant les règles logiques et mathématiques précédemment saisies et sauvegardées. La définition des liens logiques et mathématiques entre les données en entrée et les données en sortie représentent les cas de test. Le procédé s'appuie sur un composant logiciel permettant d'exécuter les cas de tests. Le système d'automatisation des tests se décline en procédés et composants logiciels permettant de gérer l'intégralité du processus d'automatisation des tests et de leur exécution. Les caractéristiques du 10 procédé sont les suivantes : Les créateurs d'adaptateurs implémentés par une solution logicielle permettant de créer des adaptateurs. Lorsqu'un adaptateur est créé, il permet de lire ou d'extraire puis de représenter les données stockées dans le référentiel dans un format compréhensible par les autres parties du système. L'adaptateur permet aussi de faire abstraction de la nature du référentiel de donnée (base de données, système de 15 fichier, serveur) et de représenter les données sous un même format dans le système. L'interpréteur d'adaptateurs permettant d'interpréter les données issues d'un fichier ou d'une base de données lorsqu'un adaptateur adéquat a été crée. L'interprétation de ces données donne lieu à la représentation des données issues du référentiel dans un format compréhensible par les autres composants du dispositif, notamment le système de modélisation et le système d'exécution des tests 20 automatiques. Le procédé de modélisation permet d'exprimer des relations logiques et mathématiques entre les modèles de données de deux référentiels. Cette modélisation est rendue possible par l'adaptateur faisant l'interface avec le référentiel de données en entrée et l'adaptateur faisant l'interface avec le référentiel de données en sortie. 25 A l'issue de la modélisation, le procédé inclut une phase de sauvegarde de la modélisation créée dans un système de fichier, sur un serveur ou en base de données. La phase de sauvegarde est assistée par ordinateur. L'expression d'un cas de test entre un enregistrement en entrée et un enregistrement en sortie se fait en saisissant, dans le système, pour une donnée de l'enregistrement en entrée et pour une donnée de 30 l'enregistrement de sortie la relation de logique qui permet de valider ou invalider ce test. Plusieurs cas de tests peuvent être saisis pour le même enregistrement en entrée et le même enregistrement en sortie. A l'issue de la saisie des cas de test, le procédé inclut une phase de sauvegarde de ces derniers dans un système de fichier, sur un serveur ou en base de données. Le dispositif d'automatisation contient un composant logiciel qui permet d'exécuter les tests 35 sauvegardés. Ce programme utilise l'adaptateur du référentiel en entrée et l'adaptateur du référentiel en sortie pour accéder aux données et les transformer en enregistrements interprétables par le système. Pour chaque enregistrement en entrée, il utilise la modélisation préalablement saisie pour rechercher si un enregistrement satisfaisant les conditions d'association existe dans le référentiel de sortie. Si une association est trouvée, le programme exécute un à un les cas de test saisis sur les données du couple enregistrement en entrée - enregistrement en sortie et enregistre le résultat de chaque test avant de restituer le rapport des tests à l'utilisateur. La figure 1 schématise le procédé de transposition des données issues d'un référentiel de données 5 vers une série d'enregistrements en utilisant les adaptateurs et les interpréteurs La figure 2 illustre le rôle des créateurs d'adaptateurs dans le procédé La figure3 illustre la modélisation des liens et des cas de test entre deux référentiels de données. La figure 4 illustre les éléments composant le procédé dans un ordre chronologique, en regroupant les éléments faisant partie de la phase de modélisation et ceux faisant partie de la phase d'exécution. 10 En référence à ces figures, le système comporte deux créateurs d'adaptateurs : Le « FileAdapterCreator » (3) est un créateur des adaptateurs pour les référentiels de données pour lesquels le support physique de stockage est un fichier (1). Le type de fichier peut être l'un des suivants : fichier plat, fichier avec délimiteurs, ou fichier XML. Le « FileAdapterCreator » est un composant logiciel qui permet à un utilisateur de décrire les caractéristiques du fichier dans lequel les données sont stockées. Les 15 caractéristiques à décrire portent à la fois sur le type de fichier et sur le contenu du fichier, ce qui permet d'identifier les enregistrements contenus dans le fichier et d'identifier les couples (nom de la donnée, valeur de la donnée) pour chaque enregistrement. Lorsque l'utilisateur renseigne les informations descriptives du fichier, le « FileAdapterCreator » enregistre les informations relatives à la description du fichier. Cet enregistrement peut être fait dans un ou plusieurs fichiers de description ou dans une base de 20 données. Cet enregistrement sera dénommé pour la suite un adaptateur de fichier. L'adaptateur de fichier ainsi créé (5) permettra au système de lire et d'interpréter tous les fichiers ayant les mêmes caractéristiques que celles décrites et enregistrées. Le « DatabaseAdapterCreator » (4) est un créateur des adaptateurs qui est utilisé lorsque le référentiel de données s'appuie sur un support de stockage de type base de données. Le « Data baseAdapterCreator » est 25 un composant logiciel qui permet à un utilisateur de saisir des données techniques nécessaires à l'établissement d'une connexion avec une base de données, ainsi que la requête d'interrogation de la base de données permettant de sélectionner une partie des données du référentiel. Les informations saisies par l'utilisateur sont sauvegardées dans un ou plusieurs fichiers de description ou dans une base de données. Cet enregistrement sera dénommé pour la suite un adaptateur de base de données (6). L'adaptateur ainsi 30 créé permettra au système de lire et d'interpréter les données restituées après la connexion à la base de données décrite et à l'exécution de la requête enregistrée par l'utilisateur. L'adaptateur de fichier et l'adaptateur de base de données sont enregistrés dans un format spécifique qui est interprétable par deux autres composants du dispositif : l'interpréteur des fichiers (7) et l'interpréteur de base de données (8). 35 L'interpréteur des adaptateurs de fichier est une partie du système qui permet de lire un fichier contenant des données dont le type et la structure sont décrits par un adaptateur de fichier. L'interpréteur des adaptateurs permet au dispositif de représenter les données issues de différents référentiels dans un même format (9)(10), ce qui permet au dispositif d'exploiter ces données en vue de la réalisation des tests quelque soit l'organisation initiale des données dans le référentiel d'origine. Le procédé de modélisation des associations entre le référentiel de données en entrée et le référentiel de donnée en sortie s'appuie sur les adaptateurs afin de transposer le référentiel de donnée en 5 entrée et de transposer le référentiel de données en sortie. Le résultat des transpostions est l'obtention des séries d'enregistrement (21)(22) ou du modèle de donnée propre à chaque référentiel. La modélisation consiste à sélectionner des données à partir des enregistrements ou du modèle et d'exprimer la relation de comparaison (23) (par exemple l'égalité) entre les valeurs des deux données (27)(28) qui doit être satisfaite pour que le système déduise que les enregistrements auxquelles appartiennent ces données sont liés entre 10 eux de façon logique. Le dispositif prévoit également la possibilité de réaliser une opération de transformation de la valeur de la donnée en entrée et/ou de la valeur de la donnée en sortie avant l'application de la relation de comparaison. Le nom d'une donnée peut être simple (par exemple nom, prénom, adresse) ou composé permettant de caractériser la donnée sous une forme arborescente (par exemple client/information/nom, client/information/prénom, client/information/adresse). Une relation 15 d'association peut être représentée, à titre d'exemple sous la forme : client/information/nom = contrat/titulaire/nom. Le membre à gauche de l'égalité appartenant au référentiel de donnée en entrée moyennant la transformation de l'interpréteur et le membre à droite de l'égalité appartenant au référentiel de donnée en sortie moyennant la transformation de l'interpréteur. Le procédé de création des cas de test fait abstraction de la manière dont le programme 20 informatique s'est exécuté et les règles métiers qui ont été appliquées et se base uniquement sur une comparaison entre le référentiel de données en entrée, dont une partie constitue les données utilisées par le programme et le référentiel de donnée en sortie, dont une partie constitue les données modifiées par le même programme. Le procédé de saisie de cas de test s'appuie également sur les adaptateurs afin de représenter une donnée du référentiel en entrée, caractérisée par son nom, puis de représenter une 25 donnée du référentiel en sortie, caractérisée également par son nom et d'exprimer la relation mathématique (24) (=,#,>, REVENDICATIONS1) Procédé implémenté par logiciel pour l'automatisation des tests fonctionnels et de non régression d'un programme informatique caractérisé en ce que les tests sont décrits par une modélisation exprimant les relations logiques et mathématiques entre un référentiel de données en entrée (14) et un référentiel de données en sortie (18) identiques ou différents. Le dispositif inclut des adaptateurs (5) (6) et des interpréteurs (2) (5) pour l'extraction et la transformation des données du référentiel et un composant logiciel pour l'exécution des tests. 2) Procédé selon la revendication 1 caractérisé en ce qu'un référentiel de données est une base de données relationnelle (12) (16) ou un système de gestion des fichiers (11) (15) ou une base de données XML ou un serveur d'application (13) (17) 3) Procédé selon la revendication 2 caractérisé en ce que le référentiel de données peut être transposé dans un format intermédiaire de représentation des données (19)(20) en utilisant des adaptateurs (5) (6) et des interpréteurs (7) (8) faisant partie du système 4) Procédé selon la revendication 1 caractérisé en ce que la modélisation des associations entre enregistrements est une représentation abstraite ou concrète portant sur les noms des données permettant de lier un enregistrement en entrée (21) à un enregistrement en sortie (22) par la définition d'une règle d'association (23) entre les données (27) (28) issues des séries d'enregistrements (19) et (20) 5) Procédé selon la revendication 1 caractérisé en ce que la modélisation portant sur les cas de test est une représentation abstraite ou concrète permettant de lier une ou plusieurs données d'un enregistrement en entrée (21) à une ou plusieurs données d'un enregistrement en sortie (22) 6) Procédé selon la revendication 5 caractérisé en ce qu'une représentation abstraite porte sur le nom d'une donnée et qu'une représentation concrète porte sur la valeur d'une donnée. 7) Procédé selon la revendication 1 caractérisé en ce que l'automatisation des tests inclut l'exécution des tests par un composant logiciel 8) Procédé selon la revendication 1 caractérisé en ce que le composant logiciel d'exécution des tests est un outil d'analyse et de vérification de la conformité des données traitées, au vu des modélisations saisies et sauvegardées. 9) Procédé selon la revendication 8 caractérisé en ce que le composant logiciel est un générateur de rapports de tests, au vu des résultats de l'analyse et la vérification de la conformité.