EP2553584A1 - Method, computer program, and device for validating task execution in scaleable computer systems - Google Patents

Method, computer program, and device for validating task execution in scaleable computer systems

Info

Publication number
EP2553584A1
EP2553584A1 EP11715960A EP11715960A EP2553584A1 EP 2553584 A1 EP2553584 A1 EP 2553584A1 EP 11715960 A EP11715960 A EP 11715960A EP 11715960 A EP11715960 A EP 11715960A EP 2553584 A1 EP2553584 A1 EP 2553584A1
Authority
EP
European Patent Office
Prior art keywords
test
task
execution
cluster
program
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.)
Withdrawn
Application number
EP11715960A
Other languages
German (de)
French (fr)
Inventor
Damien Guinier
Patrick Le Dot
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.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Publication of EP2553584A1 publication Critical patent/EP2553584A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Definitions

  • the present invention relates to the validation of execution of software routines and more particularly to a method, a computer program and a device for validating the execution of tasks in evolving computer systems.
  • intermediate software layers are generally used between the hardware layer and the software application layer.
  • Such intermediate layers make it possible to perform tasks as generic as possible, such as data transfers and processing.
  • the use of such tasks often makes it possible to decorrelate the application and hardware layers, thus allowing a software application to be executed by several different hardware layers.
  • these intermediate layers typically include the operating system used, they may also include particular tasks related, in particular, to the optimization of hardware resources.
  • certain tasks may be proposed, in addition to the operating system, in order, in particular, to choose the most efficient mathematical algorithms depending on the applications targeted.
  • testing and validation of the execution of these tasks represents an essential phase of the development of computer systems comprising a hardware layer and an intermediate layer adapted to perform these tasks to detect failures and thus guarantee a level of reliability required.
  • These tests are generally intended to observe the behavior of the system performing these tasks according to predetermined sequences, that is to say according to particular test data, in order to compare the results obtained with expected results.
  • the computer systems implementing these tasks evolve over time to, on the one hand, correct any errors observed and, on the other hand, improve their performance or integrate new functionalities.
  • Such evolutions may concern hardware elements of the computer system, the hardware architecture or the configuration of these elements as well as a part of the intermediate software layer such as an operating system.
  • performing these tasks on these modified systems should be checked again to ensure that performance has not been degraded. This is a non-regression test.
  • the tests aim at observing the behavior of the modified system performing the tasks under test data in order to compare the results obtained with expected results or previous results.
  • test and validation strategies There are many test and validation strategies. However, a test is typically related to an environment, i.e. a hardware and software configuration, test data, i.e. call sequences to the tested tasks and their parameters, and a method of analysis or obtaining results. This results in a number of combinations that can be particularly important. In order to facilitate the test and validation operations, the latter are generally automated according to a mechanism of interleaved loops to perform all the tests exhaustively or according to predetermined scenarios. For these purposes, a material environment is often devoted to this function. It is configured according to the tests and validations to be performed.
  • Figure 1 schematically illustrates a test system for performing tasks in a computer system.
  • the test and validation system 100 comprises a test hardware environment 105, itself comprising a plurality of computers, generally clustered together, and a database 1 10 here containing the test and validation data and configuration parameters of the test environment.
  • the test and validation system 100 further comprises a control system 1 15, for example a computer or a server, to identify the tests and validations to be performed, configure the test environment, transmit the test data, receive the results obtained and compare these results with the expected results.
  • a first step is to identify this test and to obtain the corresponding data.
  • a next step is to configure the test environment. It aims in particular to determine the computers to be used, that is to say, for example, a particular cluster, and their implementation. It also relates to the configuration of the interconnections between these computers, that is to say the configuration of the network or the architecture used.
  • the networks are, for example Ethernet networks or InfiniBand type. It is possible to define a test environment depending on the cluster to be used, a version of the operating system implemented, and a particular architecture.
  • the test data and the definitions or rules for obtaining the desired results are identified to start the test. The results obtained are then processed and compared with the results expected by the control system 1 15.
  • Figure 2 schematically shows results of tests and validations performed for a computer system evolving over time.
  • the tests are performed here at times ti, t 2 , t n .
  • Each test (tests 1 to n) corresponds here to a particular test environment as well as to particular test data, for example test data from different suppliers.
  • test and validation results are compared here with expected results to determine an indication of success () or failure (*).
  • the results are, for example, data transmission rates, response times and processing times. These results can be presented in a table such as that illustrated in FIG. 2 in which each line corresponds to a particular test and each column corresponds to a time or a test date.
  • an error in the sense of a particular test may be an error related to the result of the test, that is to say an erroneous result with respect to a test data, but may also be related to the change.
  • test results if no modification of the computer system theoretically affecting the result has been made.
  • the observation of an indication of success at this test without a modification of the computer system related to this test has been performed can be interpreted as a potential error.
  • test and validation system such as that presented with reference to FIGS. 1 and 2 makes it possible to effectively test and validate the execution of static tasks in computer systems, it does not make it possible to use the environment evolutionary test equipment optimally. This results in particular a loss of time related to the sequence of tests and an underutilization of resources of the test system.
  • the invention solves at least one of the problems discussed above.
  • the invention thus relates to a process for validating the execution of at least one task for an evolving computer system in a test environment comprising at least one cluster, each of said at least cluster comprising a plurality of nodes, at least one node of said plurality of nodes of each of said at least one cluster comprising a program residing in memory, said program residing in memory, called the program, comprising the following steps,
  • test element storage system comprises data representative of least one test of said at least one task compatible with said at least one characteristic, receiving said representative data of said at least one test for executing said at least one task in the cluster to which the node comprising said program belongs;
  • the method according to the invention thus makes it possible to optimize the resources of a test environment comprising a cluster gathering several nodes during the execution of tests by allowing a parallel use of shared resources.
  • said data receiving step allowing the execution of said at least one task comprises a step of receiving at least one configuration datum of the environment of the cluster to which the node comprising said program belongs, the method comprising further a step of configuring the cluster environment to which the node comprising said program according to said received configuration data belongs.
  • the method according to the invention thus makes it possible to configure the test environment according to the tests to be performed.
  • Said data receiving step allowing the execution of said at least one task furthermore preferably comprises a step of receiving at least one data item for determining a result of execution of said at least one task, the method comprising in addition, a step of determining at least one result of executing said at least one task according to said at least one piece of data received to determine a result of execution of said at least one task.
  • the method according to the invention thus makes it possible to configure the way in which the results of test execution are evaluated.
  • the method further comprises a step of creating said at least one test of said at least one task according to said representative received data of said at least one test.
  • the method according to the invention thus makes it possible to create dynamic tests from referent test elements, thus multiplying the test possibilities.
  • the method further comprises a step of creating an entry in a routine execution table in response to said data receiving step allowing the execution of said at least one task, said routine execution table for automatically executing said at least one task.
  • the method further comprises a step of transmitting a command to an external system for ordering the sending of an execution report of said at least one task.
  • the test environment is thus adapted to manage the execution of tests and to control the transmission of test reports independently.
  • said test element storage system comprises a database, said database comprising environment, test, analysis and task data, said step of transmission of said data element. at least one characteristic of said plurality of nodes of the cluster to which the node comprising said program comprising a request for access to said database belongs.
  • a plurality of tests is performed simultaneously.
  • the invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above and a device comprising means adapted to the implementation of each of the steps of the method described. previously.
  • FIG. 3 schematically illustrates a test execution validation and execution environment implementing the invention
  • FIG. 4 diagrammatically represents an algorithm implemented in a program residing in memory of an input node of a cluster belonging to a test and validation environment
  • FIG. 5 illustrates an exemplary architecture of a node of a cluster adapted to implement the invention.
  • the object of the invention is notably to manage the execution of tests, that is to say sequences of tasks associated with configuration data and results analysis, from the test clusters themselves, according to their capabilities, to enable the validation of the execution of these tasks and optimize the execution of these sequences.
  • a test environment consists of several clusters each comprising a set of nodes.
  • a particular node of each cluster called an entry node or a login node, includes a memory-resident program to automatically launch task sequences.
  • Such a program When the invention is implemented in an environment based on a Linux operating system (Linux is a brand), such a program typically includes crond.
  • This program combined with a program of shell or binary script type, that is to say a program allowing access to the operating system, makes it possible in particular to identify the resources of the cluster as well as its execution environment in order to launching task sequences that can be executed in the identified configuration. In other words, from the identified configuration information, it is possible to determine the tests that can be performed, to access the data allowing the execution of the sequences of tasks and run when the necessary resources are available.
  • a database includes a list of scheduled tasks and, for each scheduled task, the list of clusters capable of executing the corresponding task sequences.
  • This database also includes referential tests themselves comprising sequences of tasks to be executed, execution environments and information relating to obtaining and analyzing the test results.
  • the program residing in memory of each input node of each cluster can create corresponding dynamic tests from referent tests and launch the associated task sequences according to available resources.
  • Figure 3 schematically illustrates a test execution validation and execution environment 300 implementing the invention.
  • a table 305 is used here to determine the tests to be performed by combination of parameters.
  • a dynamic test to be performed here is defined by the combination of referent test elements, that is to say, for example, the combination of an environment, test data, analysis rules, tasks and a user.
  • a dynamic test can be created from indications for referenced test items and the targeted items themselves.
  • the referenced tests and the scheduled tasks are here stored in the database 310.
  • the referent tests may comprise elements of a different nature, for example hardware targets to be used during the execution of the tests.
  • test environment also includes test clusters, here the test clusters 315-1 and 315-2, also called test clusters A and B.
  • Each test cluster comprises a set of nodes interconnected according to a predefined or configurable architecture and a generically referenced management system 320 linked to a particular node or distributed over several nodes.
  • a particular node 325 called an input node or a node of login, is used to access the cluster from an external system.
  • the input node comprises a memory-resident program, generically referenced 325.
  • the input node is also used to transmit the obtained test results to an external system.
  • the nodes of the cluster used to execute the tasks corresponding to a dynamic test are here generically referenced 335.
  • An application evaluation system is also used to compare the results obtained with the expected results.
  • This is an Apache PHP 345 application server. This is preferably used to exchange data between the test clusters and the database 310.
  • the program residing in memory of the input node 325 is intended in particular to determine the resources of the cluster on which it is implemented and to access the test elements stored in the database 310 in order to create the dynamic tests and start the execution of the task sequences corresponding to these tests when the necessary resources are available and transmit the results obtained to this database.
  • each test may, for example, be stored in a separate file.
  • these files store, for each test, the test environment comprising, for example, a reference to an operating system and to the version to be used, the test data, that is to say here the tasks to perform and their parameters, and the analysis rules to get the results.
  • These files can also be used to store, temporarily, the test results before they are transmitted to the database 310 from which they can be processed and analyzed by the application server 345.
  • the 330 files are for example, stored in the cluster file system.
  • FIG. 4 diagrammatically represents an example of an algorithm implemented in a program residing in memory of an input node a cluster belonging to a test environment to perform dynamic tests based on cluster resources. As indicated, this algorithm is called by the global scheduler of the considered cluster or by its crontab.
  • a first step (step 400) aims at obtaining characteristics of the cluster, in particular those relating to its hardware resources, for example, the number of nodes, their type and the configuration of the interconnections between the nodes. It can also be a predetermined reference, for example the name or a reference of the cluster.
  • These features may also include the operating system implemented and its version. However, such features are preferably associated with each test so that the required operating system is implemented.
  • a next step (step 405) is to obtain scheduled tasks and referent test data according to the characteristics of the cluster.
  • this step can take the form of SQL requests (acronym for Structured! Query Language in English terminology) including the characteristics of the cluster, for example its name, its type of microprocessor and its software configuration. It is here addressed to the database 310 via the application server 345 as previously described.
  • the cluster's input node receives test items to create one, more, or all of the dynamic tests that can be performed and to be performed by the cluster that originated the request. 410).
  • This data received here from the database 310 via the application server 345, advantageously comprises, for each dynamic test, the following information:
  • test environment that is to say, for example, the number of nodes to use, the configuration of their interconnection, the environment variables and the operating system to be used;
  • test data that is to say, in particular, the sequence of tasks to be executed as well as the parameters for executing these tasks; and, - the analysis rules, that is to say the rules allowing to obtain the test results to be transmitted in response to the execution of the test.
  • the data received from referent tests or the dynamic tests created are preferably stored in files (files 330 in FIG. 3).
  • a next step is to determine if there are still dynamic tests to be performed (step 415). If no dynamic test is to be executed, a command is sent to the application server 345 to order it to transmit to the client at the origin of the dynamic tests carried out a final report on the execution of these tests (step 420). This report includes, for example, test results. The algorithm then ends.
  • a next step is to identify the dynamic tests to be performed according to the available resources of the cluster (step 425).
  • the available resources are compared with the resources required to perform the tasks identified through a routine execution table to determine the tests that can be executed.
  • this step is repeated until an interrupt halts the system or until resources are released for testing.
  • the available resources of the cluster allow the execution of a sequence of tasks corresponding to one or more dynamic tests, these are selected in the execution table of routines. It may be, for example, first tests that can be run from an index of the execution table of routines.
  • the data of the test is obtained from the corresponding file in order to configure the environment and compile the test applications (if necessary, according to the operating system used).
  • step 425 is executed as long as there remain dynamic tests to be performed.
  • the resources required to execute the selected tests are then reserved for each of these dynamic tests (step 430-1, 430-n) and the task sequence is started by performing these dynamic tests (step 435-1, 435-n).
  • the results obtained during the execution of the task sequence, according to the analysis rules used, are here stored in the file associated with the test.
  • the resource reservation step may include a step of resetting cluster nodes or changing the operating system, i.e. a complete software cleanup step.
  • the results obtained as well as, preferably, the configuration of the dynamic test are transmitted (step 440-1, 440-n) to the database 310 via the application server. 345 to be processed and analyzed by an evaluation system in order to validate or not the execution of the tasks and to construct a representation of the test and validation results such as that described with reference to FIG. 2.
  • a command is then sent to the application server 345 to order it to transmit to the client at the origin of the dynamic test carried out a report on the execution of this test (step 4445-1, 445-n).
  • the dynamic test performed is then marked as realized (step 450-1, 450-n) so that it is not selected again.
  • step 455 the algorithm then returns to step 415 to determine whether dynamic tests are running or need to be executed. If no dynamic test is running or must be executed, a command is sent to the application server 345 to order it to transmit to the client at the origin of the dynamic tests carried out a final report on the execution of these tests. tests (step 420) and the algorithm ends.
  • FIG. 5 An exemplary architecture of a node of a cluster adapted to put the algorithm described with reference to FIG. 4 is illustrated in FIG. 5.
  • the device 500 here comprises a communication bus 502 to which are connected:
  • each RAM component may be associated with a microprocessor or be common to the elements of the device 500; and,
  • communication interfaces 508 adapted to transmit and receive data.
  • the device 500 furthermore has internal storage means 512, such as hard disks, which can notably comprise the executable code of programs enabling the device 500 to implement the processes according to the invention and data processed or treat according to the invention.
  • internal storage means 512 such as hard disks, which can notably comprise the executable code of programs enabling the device 500 to implement the processes according to the invention and data processed or treat according to the invention.
  • the communication bus allows communication and interoperability between the various elements included in the device 500 or connected to it.
  • the representation of the bus is not limiting and, in particular, the microprocessors are capable of communicating instructions to any element of the device 500 directly or via another element of the device 500.
  • the program or programs implemented can be loaded by one of the storage or communication means of the device 500 before being executed.
  • the microprocessors 504 control and direct the execution of the instructions or portions of software code of the program or programs according to the invention.
  • the program or programs that are stored in a non-volatile memory for example a hard disk, are transferred into the random access memory 506 which then contains the executable code of the program or programs according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention.

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

The invention particularly relates to the validation of task execution in a testing environment that includes at least one cluster having a plurality of nodes, at least one of which includes a program for managing the performance of tests. After transmitting at least one characteristic of said nodes to a test element storage system, data representing at least one test enabling the execution of said task in said cluster is received (405) if said test element storage system includes data representing said at least one test that is compatible with said at least one characteristic. If the available resources for said cluster enable the execution of said task according to said received data representing said at least one test, said task is executed (435) according to said received data representing said at least one test, and at least one result, obtained during said execution, is sent (440).

Description

Procédé, programme d'ordinateur et dispositif de validation d'exécution de tâches dans des systèmes informatiques évolutifs  Method, computer program and device for validating task execution in evolving computer systems
La présente invention concerne la validation d'exécution de routines logicielles et plus particulièrement un procédé, un programme d'ordinateur et un dispositif de validation d'exécution de tâches dans des systèmes informatiques évolutifs. The present invention relates to the validation of execution of software routines and more particularly to a method, a computer program and a device for validating the execution of tasks in evolving computer systems.
Afin de faciliter la programmation des systèmes informatiques, des couches logicielles intermédiaires sont généralement utilisées entre la couche matérielle et la couche logicielle applicative. De telles couches intermédiaires permettent d'exécuter des tâches aussi génériques que possible, telles que des transferts et des traitements de données. En outre, l'utilisation de telles tâches permet souvent de décorréler les couches applicative et matérielle, autorisant ainsi une application logicielle à être exécutée par plusieurs couches matérielles différentes.  To facilitate the programming of computer systems, intermediate software layers are generally used between the hardware layer and the software application layer. Such intermediate layers make it possible to perform tasks as generic as possible, such as data transfers and processing. In addition, the use of such tasks often makes it possible to decorrelate the application and hardware layers, thus allowing a software application to be executed by several different hardware layers.
Si ces couches intermédiaires comprennent typiquement le système d'exploitation utilisé, elles peuvent également comprendre des tâches particulières liées, notamment, à l'optimisation des ressources matérielles. Ainsi, par exemple, dans le domaine des calculs à haute performance, certaines tâches peuvent être proposées, en marge du système d'exploitation, pour, notamment, choisir les algorithmes mathématiques les plus performants en fonction des applications visées.  If these intermediate layers typically include the operating system used, they may also include particular tasks related, in particular, to the optimization of hardware resources. Thus, for example, in the field of high-performance computations, certain tasks may be proposed, in addition to the operating system, in order, in particular, to choose the most efficient mathematical algorithms depending on the applications targeted.
Naturellement, il convient de tester et valider l'exécution de ces tâches afin que les résultats produits répondent à des caractéristiques prédéterminées, quelque soit la couche matérielle utilisée, ou, à tout le moins, que les résultats produits soient caractérisés en fonction de la couche matérielle utilisée.  Naturally, it is necessary to test and validate the execution of these tasks so that the results produced respond to predetermined characteristics, whatever the material layer used, or, at the very least, that the results produced are characterized according to the layer hardware used.
Ainsi, le test et la validation de l'exécution de ces tâches représentent une phase essentielle du développement de systèmes informatiques comprenant une couche matérielle et une couche intermédiaire adaptée à exécuter ces tâches pour détecter des défaillances et garantir ainsi un niveau de fiabilité requis. Ces tests ont généralement pour objet d'observer le comportement du système exécutant ces tâches selon des séquences prédéterminées, c'est-à-dire selon des données de test particulières, afin de comparer les résultats obtenus avec des résultats attendus. Thus, the testing and validation of the execution of these tasks represents an essential phase of the development of computer systems comprising a hardware layer and an intermediate layer adapted to perform these tasks to detect failures and thus guarantee a level of reliability required. These tests are generally intended to observe the behavior of the system performing these tasks according to predetermined sequences, that is to say according to particular test data, in order to compare the results obtained with expected results.
Les systèmes informatiques mettant en œuvre ces tâches évoluent au cours du temps pour, d'une part, corriger d'éventuelles erreurs observées et, d'autre part, améliorer leurs performances ou intégrer de nouvelles fonctionnalités. De telles évolutions peuvent concerner des éléments matériels du système informatique, l'architecture matériel ou la configuration de ces éléments ainsi qu'une partie de la couche logicielle intermédiaire telle qu'un système d'exploitation. Toujours dans un souci de fiabilité, l'exécution de ces tâches sur ces systèmes modifiés doit à nouveau être vérifiée pour s'assurer que les performances n'ont pas été dégradées. Il s'agit alors d'un test de non régression. A ces fins, les tests visent à observer le comportement du système modifié exécutant les tâches considérées selon des données de test afin de comparer les résultats obtenus avec des résultats attendus ou des résultats antérieurs.  The computer systems implementing these tasks evolve over time to, on the one hand, correct any errors observed and, on the other hand, improve their performance or integrate new functionalities. Such evolutions may concern hardware elements of the computer system, the hardware architecture or the configuration of these elements as well as a part of the intermediate software layer such as an operating system. Also for the sake of reliability, performing these tasks on these modified systems should be checked again to ensure that performance has not been degraded. This is a non-regression test. For these purposes, the tests aim at observing the behavior of the modified system performing the tasks under test data in order to compare the results obtained with expected results or previous results.
Il existe de nombreuses stratégies de test et de validation. Cependant, un test est typiquement lié à un environnement, c'est-à-dire une configuration matérielle et logicielle, des données de test, c'est-à-dire des séquences d'appels aux tâches testées et leurs paramètres, et une méthode d'analyse ou d'obtention des résultats. Il en résulte un nombre de combinaison pouvant être particulièrement important. Afin de faciliter les opérations de test et de validation, ces dernières sont généralement automatisées selon un mécanisme de boucles imbriquées pour réaliser tous les tests de façon exhaustives ou selon des scénarii prédéterminés. A ces fins, un environnement matériel est souvent consacré à cette fonction. Il est configuré selon les tests et validations à effectuer.  There are many test and validation strategies. However, a test is typically related to an environment, i.e. a hardware and software configuration, test data, i.e. call sequences to the tested tasks and their parameters, and a method of analysis or obtaining results. This results in a number of combinations that can be particularly important. In order to facilitate the test and validation operations, the latter are generally automated according to a mechanism of interleaved loops to perform all the tests exhaustively or according to predetermined scenarios. For these purposes, a material environment is often devoted to this function. It is configured according to the tests and validations to be performed.
La figure 1 illustre schématiquement un système de test d'exécution de tâches dans un système informatique.  Figure 1 schematically illustrates a test system for performing tasks in a computer system.
Comme illustré, le système de test et de validation 100 comprend un environnement matériel de test 105, comprenant lui-même une pluralité de calculateurs, généralement regroupés en clusters, ainsi qu'une base de données 1 10 contenant ici les données de test et de validation et les paramètres de configuration de l'environnement de test. Le système de test et de validation 100 comprend en outre un système de contrôle 1 15, par exemple un ordinateur ou un serveur, pour identifier les tests et les validations devant être effectués, configurer l'environnement de test, transmettre les données de test, recevoir les résultats obtenus et comparer ces résultats avec les résultats attendus. As illustrated, the test and validation system 100 comprises a test hardware environment 105, itself comprising a plurality of computers, generally clustered together, and a database 1 10 here containing the test and validation data and configuration parameters of the test environment. The test and validation system 100 further comprises a control system 1 15, for example a computer or a server, to identify the tests and validations to be performed, configure the test environment, transmit the test data, receive the results obtained and compare these results with the expected results.
Ainsi, pour effectuer un test particulier à l'aide du système 100, une première étape consiste à identifier ce test et à obtenir les données correspondantes. Une étape suivante a pour objet la configuration de l'environnement de test. Elle vise notamment à déterminer les calculateurs devant être utilisés, c'est-à-dire, par exemple, un cluster particulier, et leur mise en œuvre. Elle concerne également la configuration des interconnexions entre ces calculateurs, c'est-à-dire la configuration du réseau ou l'architecture utilisée. Les réseaux sont, par exemple des réseaux Ethernet ou de type InfiniBand. Il est possible de définir un environnement de test selon le cluster devant être utilisé, une version du système d'exploitation mis en œuvre et une architecture particulière. Enfin, les données de test et les définitions ou règles d'obtention des résultats cherchés sont identifiées pour lancer le test. Les résultats obtenus sont alors traités et comparés avec les résultats attendus par le système de contrôle 1 15.  Thus, to perform a particular test using the system 100, a first step is to identify this test and to obtain the corresponding data. A next step is to configure the test environment. It aims in particular to determine the computers to be used, that is to say, for example, a particular cluster, and their implementation. It also relates to the configuration of the interconnections between these computers, that is to say the configuration of the network or the architecture used. The networks are, for example Ethernet networks or InfiniBand type. It is possible to define a test environment depending on the cluster to be used, a version of the operating system implemented, and a particular architecture. Finally, the test data and the definitions or rules for obtaining the desired results are identified to start the test. The results obtained are then processed and compared with the results expected by the control system 1 15.
Ces étapes sont répétées pour chaque test devant être effectué. These steps are repeated for each test to be performed.
La figure 2 représente schématiquement des résultats de tests et de validations effectués pour un système informatique évoluant au cours du temps. Les tests sont ici réalisés aux instants ti, t2, tn. Chaque test (tests 1 à n) correspond ici à un environnement de test particulier ainsi qu'à des données de test particulières, par exemple des données de test issues de fournisseurs différents. Figure 2 schematically shows results of tests and validations performed for a computer system evolving over time. The tests are performed here at times ti, t 2 , t n . Each test (tests 1 to n) corresponds here to a particular test environment as well as to particular test data, for example test data from different suppliers.
Les résultats de test et de validation sont ici comparés avec des résultats attendus pour déterminer une indication de réussite ( ) ou d'échec (*). Les résultats sont, par exemple, des débits de transmission de données, des temps de réponse et des temps de traitement. Ces résultats peuvent être présentés dans un tableau tel que celui illustré figure 2 dans lequel chaque ligne correspond à un test particulier et chaque colonne correspond à un instant ou une date de test. The test and validation results are compared here with expected results to determine an indication of success () or failure (*). The results are, for example, data transmission rates, response times and processing times. These results can be presented in a table such as that illustrated in FIG. 2 in which each line corresponds to a particular test and each column corresponds to a time or a test date.
II est observé ici qu'une erreur au sens d'un test particulier peut être une erreur liée au résultat du test, c'est-à-dire un résultat erroné par rapport à une donnée de test, mais peut également être liée au changement, dans le temps, de résultats du test si aucune modification du système informatique n'affectant théoriquement le résultat n'a été effectuée. Ainsi, par exemple, si un échec est observé pour un test donné, l'observation d'une indication de succès à ce test sans qu'une modification du système informatique liée à ce test ait été réalisée peut être interprétée comme une erreur potentielle.  It is observed here that an error in the sense of a particular test may be an error related to the result of the test, that is to say an erroneous result with respect to a test data, but may also be related to the change. , in time, test results if no modification of the computer system theoretically affecting the result has been made. Thus, for example, if a failure is observed for a given test, the observation of an indication of success at this test without a modification of the computer system related to this test has been performed can be interpreted as a potential error.
Cependant, alors qu'un système de test et de validation tel que celui présenté en référence aux figures 1 et 2 permet de tester et valider efficacement l'exécution de tâches statiques dans des systèmes informatiques, il ne permet pas d'utiliser l'environnement matériel de test évolutif de façon optimale. Il en résulte notamment une perte de temps liée à l'enchaînement des tests et une sous utilisation des ressources du système de test.  However, while a test and validation system such as that presented with reference to FIGS. 1 and 2 makes it possible to effectively test and validate the execution of static tasks in computer systems, it does not make it possible to use the environment evolutionary test equipment optimally. This results in particular a loss of time related to the sequence of tests and an underutilization of resources of the test system.
L'invention permet de résoudre au moins un des problèmes exposés précédemment.  The invention solves at least one of the problems discussed above.
L'invention a ainsi pour objet un procédé de validation d'exécution d'au moins une tâche pour système informatique évolutif dans un environnement de test comprenant au moins un cluster, chacun desdits au moins cluster comprenant une pluralité de nœuds, au moins un nœud de ladite pluralité de nœuds de chacun desdits au moins un cluster comprenant un programme résidant en mémoire, ledit programme résidant en mémoire, appelé le programme, comprenant les étapes suivantes,  The invention thus relates to a process for validating the execution of at least one task for an evolving computer system in a test environment comprising at least one cluster, each of said at least cluster comprising a plurality of nodes, at least one node of said plurality of nodes of each of said at least one cluster comprising a program residing in memory, said program residing in memory, called the program, comprising the following steps,
- transmission à un système de mémorisation d'éléments de tests d'au moins une caractéristique de ladite pluralité de nœuds du cluster auquel appartient le nœud comprenant ledit programme ;  transmitting to a system for memorizing test elements at least one characteristic of said plurality of nodes of the cluster to which the node comprising said program belongs;
- en réponse à ladite étape de transmission, si ledit système de mémorisation d'éléments de tests comprend des données représentatives d'au moins un test de ladite au moins une tâche compatible avec ladite au moins une caractéristique, réception desdites données représentatives dudit au moins un test permettant l'exécution de ladite au moins une tâche dans le cluster auquel appartient le nœud comprenant ledit programme ; et, in response to said transmitting step, if said test element storage system comprises data representative of least one test of said at least one task compatible with said at least one characteristic, receiving said representative data of said at least one test for executing said at least one task in the cluster to which the node comprising said program belongs; and,
- si les ressources disponibles du cluster auquel appartient le nœud comprenant ledit programme permettent l'exécution de ladite au moins une tâche selon lesdites données reçues représentatives dudit au moins un test, exécution de ladite au moins une tâche selon lesdites données reçues représentatives dudit au moins un test et transmission d'au moins un résultat obtenu lors de ladite exécution.  if the available resources of the cluster to which the node comprising said program belongs, allow the execution of said at least one task according to said received representative data of said at least one test, execution of said at least one task according to said representative received data of said at least one task a test and transmission of at least one result obtained during said execution.
Le procédé selon l'invention permet ainsi d'optimiser les ressources d'un environnement de test comprenant un cluster regroupant plusieurs nœuds lors de l'exécution de tests en permettant une utilisation parallélisée de ressources mutualisées.  The method according to the invention thus makes it possible to optimize the resources of a test environment comprising a cluster gathering several nodes during the execution of tests by allowing a parallel use of shared resources.
De façon avantageuse, ladite étape de réception de données permettant l'exécution de ladite au moins une tâche comprend une étape de réception d'au moins une donnée de configuration de l'environnement du cluster auquel appartient le nœud comprenant ledit programme, le procédé comprenant en outre une étape de configuration de l'environnement du cluster auquel appartient le nœud comprenant ledit programme selon ladite donnée de configuration reçue. Le procédé selon l'invention permet ainsi de configurer l'environnement de test selon les tests à effectuer.  Advantageously, said data receiving step allowing the execution of said at least one task comprises a step of receiving at least one configuration datum of the environment of the cluster to which the node comprising said program belongs, the method comprising further a step of configuring the cluster environment to which the node comprising said program according to said received configuration data belongs. The method according to the invention thus makes it possible to configure the test environment according to the tests to be performed.
Ladite étape de réception de données permettant l'exécution de ladite au moins une tâche comprend en outre, de préférence, une étape de réception d'au moins une donnée pour déterminer un résultat d'exécution de ladite au moins une tâche, le procédé comprenant en outre une étape de détermination d'au moins un résultat d'exécution de ladite au moins une tâche selon ladite au moins une donnée reçue pour déterminer un résultat d'exécution de ladite au moins une tâche. Le procédé selon l'invention permet ainsi de configurer la façon dont sont évalués les résultats d'exécution de tests.  Said data receiving step allowing the execution of said at least one task furthermore preferably comprises a step of receiving at least one data item for determining a result of execution of said at least one task, the method comprising in addition, a step of determining at least one result of executing said at least one task according to said at least one piece of data received to determine a result of execution of said at least one task. The method according to the invention thus makes it possible to configure the way in which the results of test execution are evaluated.
Selon un mode de réalisation particulier, le procédé comprend en outre une étape de création dudit au moins un test de ladite au moins une tâche selon lesdites données reçues représentatives dudit au moins un test. Le procédé selon l'invention permet ainsi de créer des tests dynamiques à partir d'éléments de tests référents, multipliant ainsi les possibilités de test. According to a particular embodiment, the method further comprises a step of creating said at least one test of said at least one task according to said representative received data of said at least one test. The method according to the invention thus makes it possible to create dynamic tests from referent test elements, thus multiplying the test possibilities.
Toujours selon un mode de réalisation particulier, le procédé comprend en outre une étape de création d'une entrée dans une table d'exécution de routines en réponse à ladite étape de réception de données permettant l'exécution de ladite au moins une tâche, ladite table d'exécution de routines permettant l'exécution automatique de ladite au moins une tâche.  Still according to a particular embodiment, the method further comprises a step of creating an entry in a routine execution table in response to said data receiving step allowing the execution of said at least one task, said routine execution table for automatically executing said at least one task.
Avantageusement, le procédé comprend en outre une étape de transmission d'une commande à un système externe pour ordonner l'envoi d'un rapport d'exécution de ladite au moins une tâche. L'environnement de test est ainsi adapté à gérer l'exécution de tests et à contrôler la transmission de rapport de test de façon autonome.  Advantageously, the method further comprises a step of transmitting a command to an external system for ordering the sending of an execution report of said at least one task. The test environment is thus adapted to manage the execution of tests and to control the transmission of test reports independently.
Toujours selon un mode de réalisation particulier, ledit système de mémorisation d'éléments de tests comprend une base de données, ladite base de données comprenant des données d'environnement, de test, d'analyse et de tâches, ladite étape de transmission de ladite au moins une caractéristique de ladite pluralité de nœuds du cluster auquel appartient le nœud comprenant ledit programme comprenant une requête d'accès à ladite base de données.  Still according to a particular embodiment, said test element storage system comprises a database, said database comprising environment, test, analysis and task data, said step of transmission of said data element. at least one characteristic of said plurality of nodes of the cluster to which the node comprising said program comprising a request for access to said database belongs.
De façon avantageuse, une pluralité de tests est exécutée simultanément.  Advantageously, a plurality of tests is performed simultaneously.
L'invention a également pour objet un programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé décrit précédemment ainsi qu'un dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé décrit précédemment.  The invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above and a device comprising means adapted to the implementation of each of the steps of the method described. previously.
Les avantages procurés par ce programme d'ordinateur et ce dispositif sont similaires à ceux évoqués précédemment.  The benefits provided by this computer program and device are similar to those discussed above.
D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels : - la figure 1 illustre schématiquement un système de test d'exécution de tâches dans un système informatique ; Other advantages, aims and features of the present invention will emerge from the detailed description which follows, given by way of non-limiting example, with reference to the accompanying drawings in which: - Figure 1 schematically illustrates a test system for performing tasks in a computer system;
- la figure 2 représente schématiquement des résultats de tests effectués pour un système informatique évoluant au cours du temps ;  - Figure 2 schematically shows test results for a computer system evolving over time;
- la figure 3 illustre schématiquement un environnement de test et de validation d'exécution de tâches mettant en œuvre l'invention ;  FIG. 3 schematically illustrates a test execution validation and execution environment implementing the invention;
- la figure 4 représente schématiquement un algorithme mis en œuvre dans un programme résidant en mémoire d'un nœud d'entrée d'un cluster appartenant à un environnement de test et de validation ; et,  FIG. 4 diagrammatically represents an algorithm implemented in a program residing in memory of an input node of a cluster belonging to a test and validation environment; and,
- la figure 5 illustre un exemple d'architecture d'un nœud d'un cluster adapté à mettre en œuvre l'invention.  FIG. 5 illustrates an exemplary architecture of a node of a cluster adapted to implement the invention.
L'invention a notamment pour objet de gérer l'exécution de tests, c'est-à-dire de séquences de tâches associées à des données de configuration et d'analyse de résultats, à partir des clusters de test eux-mêmes, selon leurs capacités, pour permettre la validation de l'exécution de ces tâches et optimiser l'exécution de ces séquences.  The object of the invention is notably to manage the execution of tests, that is to say sequences of tasks associated with configuration data and results analysis, from the test clusters themselves, according to their capabilities, to enable the validation of the execution of these tasks and optimize the execution of these sequences.
Selon un mode de réalisation particulier, un environnement de test est constitué de plusieurs clusters comprenant chacun un ensemble de nœuds. Un nœud particulier de chaque cluster, appelé nœud d'entrée ou nœud de login, comprend un programme résident en mémoire pour lancer automatiquement des séquences de tâches.  According to a particular embodiment, a test environment consists of several clusters each comprising a set of nodes. A particular node of each cluster, called an entry node or a login node, includes a memory-resident program to automatically launch task sequences.
Lorsque l'invention est mise en œuvre dans un environnement basé sur un système d'exploitation de type Linux (Linux est une marque), un tel programme comprend typiquement le crond. Ce programme, combiné à un programme de type script shell ou binaire, c'est-à-dire un programme permettant d'accéder au système d'exploitation, permet notamment d'identifier les ressources du cluster ainsi que son environnement d'exécution afin de lancer des séquences de tâches pouvant être exécutées dans la configuration identifiée. En d'autres termes, à partir des informations de configuration identifiées, il est possible de déterminer les tests pouvant être effectués, d'accéder aux données permettant l'exécution des séquences de tâches associées et de lancer leur exécution lorsque les ressources nécessaires sont disponibles. When the invention is implemented in an environment based on a Linux operating system (Linux is a brand), such a program typically includes crond. This program, combined with a program of shell or binary script type, that is to say a program allowing access to the operating system, makes it possible in particular to identify the resources of the cluster as well as its execution environment in order to launching task sequences that can be executed in the identified configuration. In other words, from the identified configuration information, it is possible to determine the tests that can be performed, to access the data allowing the execution of the sequences of tasks and run when the necessary resources are available.
A ces fins, une base de données comprend une liste de tâches planifiées et, pour chaque tâche planifiée, la liste des clusters capables d'exécuter les séquences de tâches correspondantes. Cette base de données comprend également des tests référents comprenant eux-mêmes des séquences de tâches à exécutées, des environnements d'exécution et des informations relatives à l'obtention et à l'analyse des résultats de test. Ainsi, après avoir identifié les tâches planifiées pouvant être effectuées, le programme résidant en mémoire de chaque nœud d'entrée de chaque cluster peut créer des tests dynamiques correspondant à partir de tests référents et lancer les séquences de tâches associées selon les ressources disponibles.  For these purposes, a database includes a list of scheduled tasks and, for each scheduled task, the list of clusters capable of executing the corresponding task sequences. This database also includes referential tests themselves comprising sequences of tasks to be executed, execution environments and information relating to obtaining and analyzing the test results. Thus, after identifying the scheduled tasks that can be performed, the program residing in memory of each input node of each cluster can create corresponding dynamic tests from referent tests and launch the associated task sequences according to available resources.
La figure 3 illustre schématiquement un environnement de test et de validation 300 d'exécution de tâches mettant en œuvre l'invention.  Figure 3 schematically illustrates a test execution validation and execution environment 300 implementing the invention.
Une table 305 est ici utilisée pour déterminer les tests à effectuer par combinaison de paramètres. Un test dynamique à effectuer est ici défini par la combinaison d'éléments de tests référents, c'est-à-dire, par exemple, l'association d'un environnement, de données de test, de règles d'analyse, de tâches et d'un utilisateur. Ainsi, comme illustré sur la table 305 par un lien d'association représentant une tâche planifiée, un test dynamique peut être créé à partir d'indications visant des éléments de tests référents et des éléments visés eux-mêmes. Les tests référents ainsi que les tâches planifiées sont ici mémorisés dans la base de données 310.  A table 305 is used here to determine the tests to be performed by combination of parameters. A dynamic test to be performed here is defined by the combination of referent test elements, that is to say, for example, the combination of an environment, test data, analysis rules, tasks and a user. Thus, as shown in table 305 by an association link representing a scheduled task, a dynamic test can be created from indications for referenced test items and the targeted items themselves. The referenced tests and the scheduled tasks are here stored in the database 310.
Il est observé ici que les tests référents peuvent comprendre des éléments de nature différente, par exemple des cibles matérielles devant être utilisées lors de l'exécution des tests.  It is observed here that the referent tests may comprise elements of a different nature, for example hardware targets to be used during the execution of the tests.
L'environnement de test comprend également des clusters de test, ici les clusters de test 315-1 et 315-2, aussi appelés clusters de test A et B.  The test environment also includes test clusters, here the test clusters 315-1 and 315-2, also called test clusters A and B.
Chaque cluster de test comprend un ensemble de nœuds reliés entre eux selon une architecture prédéfinie ou configurable et un système de gestion génériquement référencé 320 lié à un nœud particulier ou réparti sur plusieurs nœuds. Un nœud particulier 325, appelé nœud d'entrée ou nœud de login, est utilisé pour accéder au cluster depuis un système externe. Le nœud d'entrée comprend un programme résidant en mémoire, génériquement référencé 325. Le nœud d'entrée est également utilisé pour transmettre les résultats de test obtenus à un système externe. Each test cluster comprises a set of nodes interconnected according to a predefined or configurable architecture and a generically referenced management system 320 linked to a particular node or distributed over several nodes. A particular node 325, called an input node or a node of login, is used to access the cluster from an external system. The input node comprises a memory-resident program, generically referenced 325. The input node is also used to transmit the obtained test results to an external system.
Les nœuds du cluster utilisés pour exécuter les tâches correspondant à un test dynamique sont ici génériquement référencés 335.  The nodes of the cluster used to execute the tasks corresponding to a dynamic test are here generically referenced 335.
Un système applicatif d'évaluation des résultats est en outre utilisé pour comparer les résultats obtenus avec les résultats attendus. Il s'agit ici d'un serveur applicatif PHP Apache 345. Celui-ci est, de préférence, utilisé pour échanger des données entre les clusters de test et la base de données 310.  An application evaluation system is also used to compare the results obtained with the expected results. This is an Apache PHP 345 application server. This is preferably used to exchange data between the test clusters and the database 310.
Comme décrit précédemment, le programme résidant en mémoire du nœud d'entrée 325 a notamment pour objet de déterminer les ressources du cluster sur lequel il est implémenté et accéder aux éléments de tests mémorisés dans la base de données 310 afin de créer les tests dynamiques et lancer l'exécution des séquences de tâches correspondant à ces tests lorsque les ressources nécessaires sont disponibles et transmettre à cette base de données les résultats obtenus.  As described above, the program residing in memory of the input node 325 is intended in particular to determine the resources of the cluster on which it is implemented and to access the test elements stored in the database 310 in order to create the dynamic tests and start the execution of the task sequences corresponding to these tests when the necessary resources are available and transmit the results obtained to this database.
Plus précisément, les éléments de tests obtenus de la base de données 310 en fonction des ressources du cluster sont utilisés pour créer les tests dynamiques qui sont mémorisés dans des fichiers 330, chaque test pouvant, par exemple, être mémorisé dans un fichier distinct. De façon avantageuse, ces fichiers mémorisent, pour chaque test, l'environnement de test comprenant, par exemple, une référence à un système d'exploitation et à la version devant être utilisée, les données de test, c'est-à-dire ici les tâches à exécuter et leurs paramètres, et les règles d'analyse pour obtenir les résultats. Ces fichiers peuvent également être utilisés pour stocker, de façon temporaire, les résultats de test avant que ces derniers ne soient transmis à la base de données 310 à partir de laquelle ils peuvent être traités et analysés par le serveur applicatif 345. Les fichiers 330 sont, par exemple, mémorisés dans le système de fichiers du cluster.  Specifically, the test items obtained from the database 310 based on the resources of the cluster are used to create the dynamic tests that are stored in files 330, each test may, for example, be stored in a separate file. Advantageously, these files store, for each test, the test environment comprising, for example, a reference to an operating system and to the version to be used, the test data, that is to say here the tasks to perform and their parameters, and the analysis rules to get the results. These files can also be used to store, temporarily, the test results before they are transmitted to the database 310 from which they can be processed and analyzed by the application server 345. The 330 files are for example, stored in the cluster file system.
La figure 4 représente schématiquement un exemple d'algorithme mis en œuvre dans un programme résidant en mémoire d'un nœud d'entrée d'un cluster appartenant à un environnement de test pour effectuer des tests dynamiques selon les ressources du cluster. Comme indiqué, cet algorithme est appelé par le planificateur global du cluster considéré ou par sa crontab. FIG. 4 diagrammatically represents an example of an algorithm implemented in a program residing in memory of an input node a cluster belonging to a test environment to perform dynamic tests based on cluster resources. As indicated, this algorithm is called by the global scheduler of the considered cluster or by its crontab.
Une première étape (étape 400) vise à obtenir des caractéristiques du cluster, notamment celles relatives à ses ressources matérielles, par exemple, le nombre de nœuds, leur type et la configuration des interconnexions entre les nœuds. Il peut également s'agir d'une référence prédéterminée, par exemple le nom ou une référence du cluster.  A first step (step 400) aims at obtaining characteristics of the cluster, in particular those relating to its hardware resources, for example, the number of nodes, their type and the configuration of the interconnections between the nodes. It can also be a predetermined reference, for example the name or a reference of the cluster.
Ces caractéristiques peuvent également comprendre le système d'exploitation mis en œuvre et sa version. Cependant, de telles caractéristiques sont, de préférence, associées à chaque test de telle sorte que le système d'exploitation requis soit mis en oeuvre.  These features may also include the operating system implemented and its version. However, such features are preferably associated with each test so that the required operating system is implemented.
Une étape suivante (étape 405) a pour objet l'obtention de tâches planifiées et de données de tests référents en fonction des caractéristiques du cluster. A titre d'illustration, cette étape peut prendre la forme de requêtes SQL (sigle de Structurée! Query Language en terminologie anglo-saxonne) comprenant les caractéristiques du cluster, par exemple son nom, son type de microprocesseurs et sa configuration logicielle. Elle est ici adressée à la base de données 310 via le serveur applicatif 345 comme décrit précédemment.  A next step (step 405) is to obtain scheduled tasks and referent test data according to the characteristics of the cluster. As an illustration, this step can take the form of SQL requests (acronym for Structured! Query Language in English terminology) including the characteristics of the cluster, for example its name, its type of microprocessor and its software configuration. It is here addressed to the database 310 via the application server 345 as previously described.
En réponse à cette requête, le nœud d'entrée du cluster reçoit des éléments de tests permettant de créer un, plusieurs ou l'ensemble des tests dynamiques pouvant être effectués et devant être effectués par le cluster à l'origine de la requête (étape 410). Ces données, reçues ici de la base de données 310 via le serveur applicatif 345, comprennent avantageusement, pour chaque test dynamique, les informations suivantes :  In response to this request, the cluster's input node receives test items to create one, more, or all of the dynamic tests that can be performed and to be performed by the cluster that originated the request. 410). This data, received here from the database 310 via the application server 345, advantageously comprises, for each dynamic test, the following information:
- l'environnement de test, c'est-à-dire, par exemple, le nombre de nœuds à utiliser, la configuration de leur interconnexion, les variables d'environnement et le système d'exploitation à utiliser ;  the test environment, that is to say, for example, the number of nodes to use, the configuration of their interconnection, the environment variables and the operating system to be used;
- les données de test, c'est-à-dire, en particulier, la séquence de tâches devant être exécutées ainsi que les paramètres d'exécution de ces tâches ; et, - les règles d'analyse, c'est-à-dire les règles permettant d'obtenir les résultats de test devant être transmis en réponse à l'exécution du test. the test data, that is to say, in particular, the sequence of tasks to be executed as well as the parameters for executing these tasks; and, - the analysis rules, that is to say the rules allowing to obtain the test results to be transmitted in response to the execution of the test.
Les données reçues de tests référents ou les tests dynamiques créés sont, de préférence, mémorisées dans des fichiers (fichiers 330 sur la figure 3).  The data received from referent tests or the dynamic tests created are preferably stored in files (files 330 in FIG. 3).
Une étape suivante a pour objet de déterminer s'il reste des tests dynamiques devant être exécutés (étape 415). Si aucun test dynamique ne doit être exécuté, une commande est transmise au serveur applicatif 345 pour lui ordonner de transmettre au client à l'origine des tests dynamiques effectués un rapport final sur l'exécution de ces tests (étape 420). Ce rapport comprend, par exemple, les résultats de tests. L'algorithme prend alors fin.  A next step is to determine if there are still dynamic tests to be performed (step 415). If no dynamic test is to be executed, a command is sent to the application server 345 to order it to transmit to the client at the origin of the dynamic tests carried out a final report on the execution of these tests (step 420). This report includes, for example, test results. The algorithm then ends.
Si, au contraire, au moins un test dynamique doit être effectué, une étape suivante a pour objet d'identifier les tests dynamiques devant être exécutés selon les ressources disponibles du cluster (étape 425).  If, instead, at least one dynamic test is to be performed, a next step is to identify the dynamic tests to be performed according to the available resources of the cluster (step 425).
A ces fins, les ressources disponibles sont comparées avec les ressources nécessaires à l'exécution des tâches identifiées via une table d'exécution de routines pour déterminer les tests pouvant être exécutés.  For these purposes, the available resources are compared with the resources required to perform the tasks identified through a routine execution table to determine the tests that can be executed.
Si les ressources ne permettent pas d'effectuer au moins l'un des tests, cette étape est répétée jusqu'à ce qu'une interruption arrête le système ou jusqu'à ce que des ressources se libèrent pour permettre d'effectuer un test.  If the resources do not allow at least one of the tests to be performed, this step is repeated until an interrupt halts the system or until resources are released for testing.
Si, au contraire, les ressources disponibles du cluster permettent l'exécution d'une séquence de tâches correspondant à un ou à plusieurs tests dynamiques, ceux-ci sont sélectionnés dans la table d'exécution de routines. Il peut s'agir, par exemple, des premiers tests pouvant être exécutés à partir d'un index de la table d'exécution de routines. Pour exécuter la séquence de tâches correspondant à un test, les données de celui-ci sont obtenues à partir du fichier correspondant afin de configurer l'environnement et compiler les applications de test (si nécessaire, selon le système d'exploitation utilisé).  If, on the contrary, the available resources of the cluster allow the execution of a sequence of tasks corresponding to one or more dynamic tests, these are selected in the execution table of routines. It may be, for example, first tests that can be run from an index of the execution table of routines. To execute the task sequence corresponding to a test, the data of the test is obtained from the corresponding file in order to configure the environment and compile the test applications (if necessary, according to the operating system used).
Comme illustré avec la flèche rebouclant vers l'étape 415, l'étape 425 est exécutée tant qu'il reste des tests dynamiques à exécuter.  As illustrated with the arrow looping back to step 415, step 425 is executed as long as there remain dynamic tests to be performed.
Les ressources nécessaires à l'exécution des tests sélectionnés sont alors réservées pour chacun de ces tests dynamiques (étape 430-1 , 430-n) et la séquence de tâches est lancée par l'exécution de ces tests dynamiques (étape 435-1 , 435-n). Les résultats obtenus lors de l'exécution de la séquence de tâches, selon les règles d'analyse utilisées, sont ici mémorisés dans le fichier associé au test. The resources required to execute the selected tests are then reserved for each of these dynamic tests (step 430-1, 430-n) and the task sequence is started by performing these dynamic tests (step 435-1, 435-n). The results obtained during the execution of the task sequence, according to the analysis rules used, are here stored in the file associated with the test.
II est observé que l'étape de réservation de ressources (étape 430) peut comprendre une étape de réinitialisation de nœuds du cluster ou de changement du système d'exploitation, c'est-à-dire une étape de nettoyage logiciel complet.  It is observed that the resource reservation step (step 430) may include a step of resetting cluster nodes or changing the operating system, i.e. a complete software cleanup step.
Lorsque la séquence de tâches correspondant à un test dynamique a été exécutée, les résultats obtenus ainsi que, de préférence, la configuration du test dynamique sont transmis (étape 440-1 , 440-n) à la base de données 310 via le serveur applicatif 345 pour être traités et analysés par un système d'évaluation afin de valider ou non l'exécution des tâches et construire une représentation des résultats de test et validation telle que celle décrite en référence à la figure 2.  When the task sequence corresponding to a dynamic test has been executed, the results obtained as well as, preferably, the configuration of the dynamic test are transmitted (step 440-1, 440-n) to the database 310 via the application server. 345 to be processed and analyzed by an evaluation system in order to validate or not the execution of the tasks and to construct a representation of the test and validation results such as that described with reference to FIG. 2.
Une commande est ensuite transmise au serveur applicatif 345 pour lui ordonner de transmettre au client à l'origine du test dynamique effectué un rapport sur l'exécution de ce test (étape 4445-1 , 445-n). Le test dynamique effectué est alors marqué comme réalisé (étape 450-1 , 450-n) afin qu'il ne soit pas sélectionné à nouveau.  A command is then sent to the application server 345 to order it to transmit to the client at the origin of the dynamic test carried out a report on the execution of this test (step 4445-1, 445-n). The dynamic test performed is then marked as realized (step 450-1, 450-n) so that it is not selected again.
Dès qu'un test dynamique a été exécuté, les ressources correspondantes sont libérées (étape 455). L'algorithme retourne alors à l'étape 415 pour déterminer si des tests dynamiques sont en cours d'exécution ou doivent être exécutés. Si aucun test dynamique n'est en cours d'exécution ou ne doit être exécuté, une commande est transmise au serveur applicatif 345 pour lui ordonner de transmettre au client à l'origine des tests dynamiques effectués un rapport final sur l'exécution de ces tests (étape 420) et l'algorithme prend fin.  As soon as a dynamic test has been executed, the corresponding resources are released (step 455). The algorithm then returns to step 415 to determine whether dynamic tests are running or need to be executed. If no dynamic test is running or must be executed, a command is sent to the application server 345 to order it to transmit to the client at the origin of the dynamic tests carried out a final report on the execution of these tests. tests (step 420) and the algorithm ends.
Comme illustré par les références 430-i à 450-i, plusieurs tests peuvent être exécutés simultanément par un cluster, permettant ainsi une utilisation parallélisée de ressources mutualisées. Des séquences de tâches peuvent donc être lancées alors même que d'autres séquences de tâches sont en cours d'exécution. Il doit être observé ici qu'il n'est pas nécessaire de synchroniser les étapes liées à l'exécution d'un test dynamique avec les étapes correspondantes d'un autre test dynamique. En d'autres termes, l'exécution des étapes 430-i à 450-i est indépendante de l'exécution des étapes 430-j à 450-j. As illustrated by the references 430-i to 450-i, several tests can be executed simultaneously by a cluster, thus allowing a parallel use of shared resources. Task sequences can be started even though other task sequences are running. It must be observed here that it is not necessary to synchronize the steps related to the execution of a dynamic test with the corresponding steps of another dynamic test. In other words, the execution of steps 430-i through 450-i is independent of the execution of steps 430-j through 450-j.
Un exemple d'architecture d'un nœud d'un cluster adapté à mettre l'algorithme décrit en référence à la figure 4 est illustré sur la figure 5.  An exemplary architecture of a node of a cluster adapted to put the algorithm described with reference to FIG. 4 is illustrated in FIG. 5.
Le dispositif 500 comporte ici un bus de communication 502 auquel sont reliés :  The device 500 here comprises a communication bus 502 to which are connected:
- des unités centrales de traitement ou microprocesseurs 504 (ou CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;  - Central processing units or microprocessors 504 (or CPU, acronym for Central Processing Unit in English terminology);
- des composants de mémoire vive 506 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités. Comme illustré, chaque composant de mémoire vive peut être associé à un microprocesseur ou être commun aux éléments du dispositif 500 ; et,  - RAM components 506 (RAM, acronym for Random Access Memory in English terminology) having registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs. As illustrated, each RAM component may be associated with a microprocessor or be common to the elements of the device 500; and,
- des interfaces de communication 508 adaptées à transmettre et à recevoir des données.  communication interfaces 508 adapted to transmit and receive data.
De préférence, le dispositif 500 dispose en outre des moyens de stockage interne 512, tels que des disques durs, pouvant notamment comporter le code exécutable de programmes permettant au dispositif 500 de mettre en œuvre les processus selon l'invention et de données traitées ou à traiter selon l'invention.  Preferably, the device 500 furthermore has internal storage means 512, such as hard disks, which can notably comprise the executable code of programs enabling the device 500 to implement the processes according to the invention and data processed or treat according to the invention.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 500 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, les microprocesseurs sont susceptibles de communiquer des instructions à tout élément du dispositif 500 directement ou par l'intermédiaire d'un autre élément du dispositif 500.  The communication bus allows communication and interoperability between the various elements included in the device 500 or connected to it. The representation of the bus is not limiting and, in particular, the microprocessors are capable of communicating instructions to any element of the device 500 directly or via another element of the device 500.
De manière générale, le ou les programmes mis en œuvre peuvent être chargés par un des moyens de stockage ou de communication du dispositif 500 avant d'être exécutés. Les microprocesseurs 504 commandent et dirigent l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention. Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple un disque dur, sont transférés dans la mémoire vive 506 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention. In general, the program or programs implemented can be loaded by one of the storage or communication means of the device 500 before being executed. The microprocessors 504 control and direct the execution of the instructions or portions of software code of the program or programs according to the invention. When powering up, the program or programs that are stored in a non-volatile memory, for example a hard disk, are transferred into the random access memory 506 which then contains the executable code of the program or programs according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention.
Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente.  Naturally, to meet specific needs, a person skilled in the field of the invention may apply modifications in the foregoing description.

Claims

REVENDICATIONS
1 . Procédé de validation d'exécution d'au moins une tâche pour système informatique évolutif dans un environnement de test comprenant au moins un cluster, chacun desdits au moins cluster comprenant une pluralité de nœuds, au moins un nœud de ladite pluralité de nœuds de chacun desdits au moins un cluster comprenant un programme résidant en mémoire, ce procédé étant caractérisé en ce que ledit programme résidant en mémoire, appelé le programme, comprend les étapes suivantes, 1. A method of validating the execution of at least one task for a scalable computer system in a test environment comprising at least one cluster, each of said at least one cluster comprising a plurality of nodes, at least one node of said plurality of nodes of each of said at least one cluster comprising a program residing in memory, this method being characterized in that said program residing in memory, called the program, comprises the following steps,
- transmission à un système de mémorisation d'éléments de tests d'au moins une caractéristique de ladite pluralité de nœuds du cluster auquel appartient le nœud comprenant ledit programme ;  transmitting to a system for memorizing test elements at least one characteristic of said plurality of nodes of the cluster to which the node comprising said program belongs;
- en réponse à ladite étape de transmission, si ledit système de mémorisation d'éléments de tests comprend des données représentatives d'au moins un test de ladite au moins une tâche compatible avec ladite au moins une caractéristique, réception (405) desdites données représentatives dudit au moins un test permettant l'exécution de ladite au moins une tâche dans le cluster auquel appartient le nœud comprenant ledit programme ; et,  in response to said transmitting step, if said test element storage system comprises data representative of at least one test of said at least one task compatible with said at least one characteristic, receiving (405) said representative data said at least one test for executing said at least one task in the cluster to which the node comprising said program belongs; and,
- si les ressources disponibles du cluster auquel appartient le nœud comprenant ledit programme permettent l'exécution de ladite au moins une tâche selon lesdites données reçues représentatives dudit au moins un test, exécution (435) de ladite au moins une tâche selon lesdites données reçues représentatives dudit au moins un test et transmission (440) d'au moins un résultat obtenu lors de ladite exécution.  if the available resources of the cluster to which the node comprising said program belongs, allow the execution of said at least one task according to said received representative data of said at least one test, execution (435) of said at least one task according to said representative received data said at least one test and transmission (440) of at least one result obtained during said execution.
2. Procédé selon la revendication 1 selon lequel ladite étape de réception de données permettant l'exécution de ladite au moins une tâche comprend une étape de réception d'au moins une donnée de configuration de l'environnement du cluster auquel appartient le nœud comprenant ledit programme, le procédé comprenant en outre une étape de configuration de l'environnement du cluster auquel appartient le nœud comprenant ledit programme selon ladite donnée de configuration reçue. 2. Method according to claim 1, wherein said step of receiving data enabling the execution of said at least one task comprises a step of receiving at least one configuration datum of the environment of the cluster to which the node comprising said node belongs. program, the method further comprising a step of configuring the cluster environment to which the node comprising said program according to said received configuration data belongs.
3. Procédé selon la revendication 1 ou la revendication 2 selon lequel ladite étape de réception de données permettant l'exécution de ladite au moins une tâche comprend une étape de réception d'au moins une donnée pour déterminer un résultat d'exécution de ladite au moins une tâche, le procédé comprenant en outre une étape de détermination d'au moins un résultat d'exécution de ladite au moins une tâche selon ladite au moins une donnée reçue pour déterminer un résultat d'exécution de ladite au moins une tâche.  The method of claim 1 or claim 2 wherein said data receiving step for performing said at least one task comprises a step of receiving at least one data item to determine a result of executing said at least one task. least one task, the method further comprising a step of determining at least one result of execution of said at least one task according to said at least one received data to determine a result of execution of said at least one task.
4. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de création (410) dudit au moins un test de ladite au moins une tâche selon lesdites données reçues représentatives dudit au moins un test.  4. Method according to any one of the preceding claims further comprising a step of creating (410) said at least one test of said at least one task according to said representative received data of said at least one test.
5. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de création d'une entrée dans une table d'exécution de routines en réponse à ladite étape de réception de données permettant l'exécution de ladite au moins une tâche, ladite table d'exécution de routines permettant l'exécution automatique de ladite au moins une tâche.  The method of any one of the preceding claims further comprising a step of creating an entry in a routine execution table in response to said data receiving step for performing said at least one task, said routine execution table allowing the automatic execution of said at least one task.
6. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de transmission d'une commande à un système externe pour ordonner l'envoi d'un rapport d'exécution de ladite au moins une tâche.  6. Method according to any one of the preceding claims further comprising a step of transmitting a command to an external system for ordering the sending of an execution report of said at least one task.
7. Procédé selon l'une quelconque des revendications précédentes selon lequel ledit système de mémorisation d'éléments de tests comprend une base de données (310), ladite base de données comprenant des données d'environnement, de test, d'analyse et de tâches, ladite étape de transmission de ladite au moins une caractéristique de ladite pluralité de nœuds du cluster auquel appartient le nœud comprenant ledit programme comprenant une requête d'accès à ladite base de données.  The method of any of the preceding claims wherein said test item storage system comprises a database (310), said database comprising environment, test, analysis and test data. tasks, said step of transmitting said at least one characteristic of said plurality of nodes of the cluster to which belongs the node comprising said program comprising a request to access said database.
8. Procédé selon l'une quelconque des revendications précédentes selon lequel une pluralité de tests est exécutée simultanément. The method of any of the preceding claims wherein a plurality of tests are performed simultaneously.
9. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédente lorsque ledit programme est exécuté sur un ordinateur. 9. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of the preceding claims when said program is run on a computer.
10. Dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 8.  10. Device comprising means adapted to the implementation of each of the steps of the method according to any one of claims 1 to 8.
EP11715960A 2010-03-26 2011-03-22 Method, computer program, and device for validating task execution in scaleable computer systems Withdrawn EP2553584A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1052235A FR2958059B1 (en) 2010-03-26 2010-03-26 METHOD, COMPUTER PROGRAM, AND TASK EXECUTION VALIDATION DEVICE IN EVOLUTIVE COMPUTER SYSTEMS
PCT/FR2011/050584 WO2011117528A1 (en) 2010-03-26 2011-03-22 Method, computer program, and device for validating task execution in scaleable computer systems

Publications (1)

Publication Number Publication Date
EP2553584A1 true EP2553584A1 (en) 2013-02-06

Family

ID=42306691

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11715960A Withdrawn EP2553584A1 (en) 2010-03-26 2011-03-22 Method, computer program, and device for validating task execution in scaleable computer systems

Country Status (6)

Country Link
US (1) US20130031532A1 (en)
EP (1) EP2553584A1 (en)
JP (1) JP2013524312A (en)
BR (1) BR112012021145A2 (en)
FR (1) FR2958059B1 (en)
WO (1) WO2011117528A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060070033A1 (en) * 2004-09-24 2006-03-30 International Business Machines Corporation System and method for analyzing effects of configuration changes in a complex system
US20150095756A1 (en) * 2013-10-01 2015-04-02 Zijad F. Aganovic Method and apparatus for multi-loop, real-time website optimization
CN104133750A (en) * 2014-08-20 2014-11-05 浪潮(北京)电子信息产业有限公司 Method and system for testing compatibility adaptability of host and storage device
JP6684233B2 (en) * 2017-01-12 2020-04-22 株式会社日立製作所 Test input information retrieval device and method
CN109766228A (en) * 2017-11-09 2019-05-17 北京京东尚科信息技术有限公司 Verification method and device on a kind of line based on interface
CN110175130B (en) * 2019-06-11 2024-05-28 深圳前海微众银行股份有限公司 Cluster system performance testing method, device, equipment and readable storage medium
US11194699B2 (en) * 2019-09-17 2021-12-07 Red Hat, Inc. Compatibility testing with different environment configurations
CN111913884A (en) * 2020-07-30 2020-11-10 百度在线网络技术(北京)有限公司 Distributed test method, device, equipment, system and readable storage medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711616B1 (en) * 2000-05-01 2004-03-23 Xilinx, Inc. Client-server task distribution system and method
US7426729B2 (en) * 2001-07-11 2008-09-16 Sun Microsystems, Inc. Distributed processing framework system
US7114159B2 (en) * 2001-07-11 2006-09-26 Sun Microsystems, Inc. Processing resource for use in a distributed processing framework system and methods for implementing the same
US6842891B2 (en) * 2001-09-11 2005-01-11 Sun Microsystems, Inc. Dynamic attributes for distributed test framework
US20040015975A1 (en) * 2002-04-17 2004-01-22 Sun Microsystems, Inc. Interface for distributed processing framework system
US8024705B2 (en) * 2003-11-12 2011-09-20 Siemens Product Lifecycle Management Software Inc. System, method, and computer program product for distributed testing of program code
WO2009011028A1 (en) * 2007-07-17 2009-01-22 Advantest Corporation Electronic device, host device, communication system, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2011117528A1 *

Also Published As

Publication number Publication date
FR2958059B1 (en) 2012-04-13
US20130031532A1 (en) 2013-01-31
FR2958059A1 (en) 2011-09-30
JP2013524312A (en) 2013-06-17
WO2011117528A1 (en) 2011-09-29
BR112012021145A2 (en) 2019-09-24

Similar Documents

Publication Publication Date Title
WO2011117528A1 (en) Method, computer program, and device for validating task execution in scaleable computer systems
US10419546B2 (en) Migration assessment for cloud computing platforms
EP0820013B1 (en) Method for real-time monitoring of a computer system for its administration and helping its maintenance during operation
EP2697936B1 (en) Method and device for processing administration commands in a cluster
US10318369B2 (en) Application performance management system with collective learning
WO2014072628A1 (en) Method, device and computer programme for the placement of tasks in a multi-core system
US10848371B2 (en) User interface for an application performance management system
EP2704010A1 (en) Method and device for processing commands in a set of computing elements
WO2021089357A1 (en) Method for detecting attacks using hardware performance counters
FR3003365A1 (en) METHOD AND DEVICE FOR MANAGING SOFTWARE UPDATES OF A SET OF EQUIPMENT OF A SYSTEM SUCH AS A SYSTEM OF AN AIRCRAFT
US11928051B2 (en) Test space sampling for model-based biased random system test through rest API
EP3729273B1 (en) System and method for formulating and executing fonctional tests for cluster de servers
EP2721487B1 (en) Method, apparatus and computer program for software update of clusters to optimise the availability of these
FR2973131A1 (en) METHOD AND DEVICE FOR DETECTING INCOMPATIBILITIES OF LOGIC INTERFACES OF ONBOARD SYSTEM EQUIPMENT
EP2734921B1 (en) Method, computer program and device for aiding the deployment of clusters
EP3754506B1 (en) Method and system for automatic validation of cots
FR3076367A1 (en) METHOD FOR DEVELOPING AN ONTOLOGY ADAPTED TO A PARTICULAR INDUSTRIAL DOMAIN
WO2020058343A1 (en) Method for analysing malfunctions of a system and associated devices
EP3767476A1 (en) Device and method for analysing the performance of an n-tier application
FR3108747A1 (en) A method of managing a digital file describing a data model, a method of using such a file by client equipment, devices, server equipment, client equipment, system and corresponding computer programs.
FR2984052A1 (en) METHOD AND COMPUTER CONFIGURATION COMPUTER PROGRAM IN COMPUTER INFRASTRUCTURE HAVING INFINIBAND TYPE ARCHITECTURE
FR3101973A1 (en) Monitoring device
EP2727057A1 (en) Method and computer program for dynamically identifying components of a cluster and for automating operations for optimized management of the cluster
WO2019130256A1 (en) Total application performance management server
WO2017025672A1 (en) Monitoring system for supercomputer using topological data

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20120928

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20151001