WO2023041187A1 - System for testing functionalities of a computer application - Google Patents

System for testing functionalities of a computer application Download PDF

Info

Publication number
WO2023041187A1
WO2023041187A1 PCT/EP2021/075832 EP2021075832W WO2023041187A1 WO 2023041187 A1 WO2023041187 A1 WO 2023041187A1 EP 2021075832 W EP2021075832 W EP 2021075832W WO 2023041187 A1 WO2023041187 A1 WO 2023041187A1
Authority
WO
WIPO (PCT)
Prior art keywords
source code
functions
function
score
list
Prior art date
Application number
PCT/EP2021/075832
Other languages
French (fr)
Inventor
Hamza SAYAH
Bastien BOUFFAUT
Original Assignee
Circle Internet Services Inc.
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 Circle Internet Services Inc. filed Critical Circle Internet Services Inc.
Priority to PCT/EP2021/075832 priority Critical patent/WO2023041187A1/en
Publication of WO2023041187A1 publication Critical patent/WO2023041187A1/en

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/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3696Methods or tools to render software testable

Definitions

  • the invention relates to computer developments, and in particular tools for detecting malfunctions of a computer application under development.
  • the invention aims to solve one or more of these drawbacks.
  • the invention thus relates to a system for testing the functionalities of a computer application as defined in claim 1.
  • the invention also relates to the variants of the dependent claims. Those skilled in the art will understand that each of the features of the dependent claims or of the description may be combined independently to the above characteristics, without however constituting an intermediate generalization.
  • FIG.1 is a schematic representation of an example of a system for implementing the invention
  • FIG.2 is a schematic representation of major categories of steps implemented in a system for implementing the invention.
  • FIG.3 is an example of a graph, the graph in Figure 3 represents a call graph for a registration service for an identification email and a password.
  • Figure 1 schematically illustrates a functionality test system of a computer application 1, according to an example implementation of the invention.
  • the test system 1 is configured for the implementation of unit tests of a computer application, during development or before its commissioning.
  • the test system 1 here comprises a processing device 2 and a database 20.
  • the processing device 2 typically be implemented in the form of a computer server accessible by a computer network 3, typically the Internet.
  • the database 20 is accessible by the processing device 2. Examples of the content of the database 20 will be detailed below.
  • the processing device 2 can be implemented in the form of a computer server accessible by the network 3.
  • the user here has a terminal 4 connected to the processing device 2 by the intermediary of the computer network 3.
  • the terminal 4 is configured to display a certain amount of information on a screen of the user.
  • the terminal 4 can for example have an Internet browser communicating with the processing device 2 and displaying a user interface 6.
  • the user can have an input interface such as a mouse 5, in order to provide answers At Internet browser, then transmitted to the processing device 2.
  • the terminal 4 also has access to a computer application under development or to be tested, stored on a storage medium 7.
  • the storage medium 7 can be a local storage of the terminal 4 or remote storage, for example on storage servers accessible online.
  • the processing device 2 can be configured to send display information to the terminal 4, for example in the form of HTML content.
  • the digital processing device 2 is configured to recover the source code of a computer application.
  • the source code of the computer application can also be stored in the database 20, so that the device 2 can be configured to both provide access to the source code and implement unit tests.
  • FIG. 2 illustrates the main categories of steps that can be implemented by the processing device 2 during tests or preparations for tests of the source code of the computer application.
  • Category 100 corresponds to processes for generating a list of functions to be tested.
  • Category 200 corresponds to processes for generating a list of test values for the listed functions.
  • Category 300 corresponds to the testing processes of the source code itself.
  • the digital processing device 2 is configured to analyze the source code of the computer application to be tested in order to define an appropriate list of functions to be tested, which corresponds to the category 100 mentioned above.
  • An appropriate list of functions corresponds to a selection of source code functions to be tested, i.e. a limited number of functions among all the source code functions.
  • the processing device 2 performs the following operations to generate the list of functions to be tested:
  • [0022] -defining a call graph of all the functions of the computer application and generation of a database of the frequency of calls for each of the functions of the call graph. For each function 'function', we can associate the call frequency 'fafonction' in such a database.
  • the calling frequency database may be stored in database 20;
  • FIG. 3 represents a graph of calls for a service for registering an identification email and a password.
  • Function 101 corresponds to reading input data from a user.
  • Function 102 is a function for verifying the validity of an email entered.
  • Function 103 is a password strength validation function.
  • Function 104 is an input data conformity validation function.
  • Function 105 is a registration function in an identifier database.
  • Functions 102 and 103 are executed only if the function for reading input data 101 has been carried out correctly. For a given frequency 'fa10T of call of function 101, the respective call probabilities 'pa102' and 'pa103' of functions 102 and 103 is less than 'fa10T.
  • the conformity validation function 104 is executed only if the functions 102 and 103 have been carried out correctly. Therefore, the probability of calling 'pa104' is lower than the probabilities of calling 'pa102' and 'pa103' of functions 102 and 103.
  • the registration function 105 is only executed if the function 104 has been carried out properly.
  • each function is classified by semantic theme.
  • a semantic analysis of each function is implemented to generate a failure impact score for this function as a function of its semantic theme.
  • a function whose semantic analysis reveals semantic themes of authentication, certificate management or encryption will be considered as having a very high failure impact score for a computer application processing bank payments.
  • the semantic analysis of the source code can bring out for each function, a context linked to the service, a context linked to invoicing, a context linked to the support and a display context.
  • the semantic analysis can generate a criticality score for each of the functions according to the identified semantic contexts.
  • the generation of the nesting score for each function is carried out for each function according to the scope or level of nesting of this function (nesting level in English).
  • An example of nesting score calculation for a reference function is detailed at "https://gist.github.com/avmnu-sng/790f995091d209c00dcf2170352bebbd”.
  • the score is detailed here as a source code cognitive complexity score.
  • the nesting score is representative of the difficulty of understanding a function due to its level of nesting.
  • the generation of the atypicality score makes it possible to take the difficulty of debugging for functions which are outside the usual context of the application.
  • the generation of the atypicality score can be implemented as follows. A list of the most used words in the whole of the source code is determined, then a list of words used for each of the functions is generated. An atypicality score is generated, depending on the semantic mismatch between words in a function's wordlist compared to the list of most used words in the entire source code. For example, in a 3D management application, the majority vocabulary is related to graphics (shapes, light, camera angle, etc.). However, such applications most often include a module related to the laws of physics in order to be able to generate a realistic animation. Such a module can include a lot of vocabulary related to the theme of mechanics, which is a significant shift from the theme of 3D.
  • the processing device 2 In order to be able to simply and objectively make a selection to be tested from among all the functions of the source code, the processing device 2 generates a combined score for each function of the source code.
  • the combined score notably combines the call probability score, the failure impact score, the nesting score and the atypicality score, for example by simply adding these scores or by applying weightings.
  • a score is digitally generated for each function, allowing a digital processing system to establish a hierarchy of functions to be tested, and thus a reduced list of functions to be tested.
  • the invention makes it possible to optimize the efficiency of the unit tests carried out, that is to say that for a given number of unit tests carried out, the level of criticality of the errors detected will be optimal. With limited test resources, optimal test reliability can thus be achieved.
  • the processing device 2 is configured to generate the list of functions to be tested, by:
  • the generation of the atypicality score is implemented as follows.
  • the selection of names of the most used words in the source code includes the listing of all the words of the source code and the elimination of the names of usual operators of a computer language. The usual operators are therefore not taken into account to calculate a semantic shift with the words of the different functions.
  • the processing device 2 is further configured to generate a list of test values of the listed functions.
  • the generation of the list of test values corresponds to the category 200 mentioned previously.
  • the generation of a list of test values according to the invention can be implemented as follows:
  • the operations carried out on the parameters of the functions of the source code are analyzed, by identifying the structures of parameters compatible with these operations, and by constructing examples of parameter values corresponding to the structures identified.
  • the identification of compatible parameter structures comprises the association of a weighting with each compatible parameter structure.
  • the number of values for each compatible structure in the list of values is thus determined according to this weighting, so that the test values correspond statistically to the most probable data structures.
  • the identification of compatible parameter structures is based on a semantic analysis of the terms close to each call to a function.
  • Compatible parameter structures are thus determined by taking into account the terms used near the calls of each function in the source code.
  • mocks are simulated objects that reproduce the behavior of real objects in a controlled way.
  • a programmer creates a mock in order to test the behavior of other objects, real, but related to an inaccessible or unimplemented object. The latter is then replaced by a mock.
  • mocks can simulate the behavior of real and complex objects and are useful in this respect when these real objects are impossible to use.
  • the following cases can be cited:
  • the processing device 2 is also configured to implement a process for testing the source code itself.
  • the implementation of the tests corresponds to the category 300 mentioned above.
  • the computer application tests are implemented with execution of the source code to test the list of generated functions, with the list of parameter values generated, and thus benefit from the selections made to have maximum efficiency of these tests.
  • the processing device 2 is advantageously configured to memorize the output values of the listed functions for the listed input values and to memorize the internal calls. Such storage makes it possible to carry out an a posteriori analysis of the execution of the computer application.
  • the source code testing process includes a mutation module.
  • the mutation module is configured to generate mutations of the source code to be tested.
  • the processing device 2 is then configured to execute the mutated source code for the list of functions and the list of listed values.
  • the processing device 2 is further configured to compare the output values of the listed functions of the original source code and the mutated source code.

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)

Abstract

The invention relates to a system (1) for testing functionalities of a computer application, comprising: -a digital processing device (2) for retrieving a source code, and for: a) generating a list of functions to be tested by: -defining a graph of calls of all of the functions and by generating a call-frequency database; -generating a call probability score; -classifying each function by semantic theme; -generating an interlinking score for each of said functions, depending on scope; -determining a list of most commonly used words; -generating a combined score for each function; -selecting some of the functions of the source code using their combined score; -b) generating a list of test values for the listed functions, by: -analysing operations carried out on the parameters; -listing exemplary values of the parameters; -extrapolating other parameters by applying variations to the exemplary values.

Description

Description Description
Titre de l'invention : Système de test de fonctionnalités d’une application informatique Title of the invention: System for testing the functionalities of a computer application
[0001 ] [L'invention concerne les développements informatiques, et en particulier les outils permettant de détecter des dysfonctionnements d'une application informatique en cours de développement. [0001] [The invention relates to computer developments, and in particular tools for detecting malfunctions of a computer application under development.
[0002] En vue d'anticiper des problèmes de développement, il est connu de réaliser des tests unitaires d'une application informatique. A cet effet, des valeurs de paramètres sont injectées comme données d'entrée dans des fonctions de l'application informatique. On détermine alors si l'exécution de l'application ou les valeurs renvoyées posent des problèmes. [0002] With a view to anticipating development problems, it is known to carry out unit tests of a computer application. To this end, parameter values are injected as input data into functions of the computer application. It is then determined whether the execution of the application or the returned values are causing problems.
[0003] En pratique, et en particulier pour des applications informatiques complexes et développées en équipe, les tests unitaires ne peuvent porter que sur une partie de l'application et que sur un jeu limité de valeurs de paramètres. En effet, il s'avère irréaliste de réaliser des tests unitaires pour l'ensemble de l'application et pour des valeurs exhaustives de paramètres. Par conséquent, les développeurs réalisent des tests unitaires sur des échantillons vraiment limités de l'application et de paramètres. De plus, le choix des fonctions testées et des valeurs de paramètres de test s'avère vraiment empirique. Les tests unitaires ne sont donc pas optimaux à la fois en termes de fiabilité et en termes de temps de mise en œuvre. [0003] In practice, and in particular for complex computer applications developed as a team, the unit tests can relate only to part of the application and only to a limited set of parameter values. Indeed, it turns out to be unrealistic to carry out unit tests for the entire application and for exhaustive parameter values. Therefore, developers perform unit tests on really limited samples of the application and settings. Moreover, the choice of the functions tested and the values of test parameters proves to be truly empirical. Unit tests are therefore not optimal both in terms of reliability and in terms of implementation time.
[0004] Par ailleurs, les évolutions d'une application informatique sont parfois faites en partant d'une application saine, avec de nouveaux interlocuteurs qui peuvent introduire des mutations néfastes de l'application. L'anticipation de telles mutations et de leur conséquence est délicate. [0004] Moreover, the evolutions of a computer application are sometimes made starting from a healthy application, with new interlocutors who can introduce harmful mutations of the application. Anticipating such changes and their consequences is tricky.
[0005] L'invention vise à résoudre un ou plusieurs de ces inconvénients. L'invention porte ainsi sur un système de teste de fonctionnalités d’une application informatique tel que défini à la revendication 1 . The invention aims to solve one or more of these drawbacks. The invention thus relates to a system for testing the functionalities of a computer application as defined in claim 1.
[0006] L’invention porte également sur les variantes des revendications dépendantes. L’homme du métier comprendra que chacune des caractéristiques des revendications dépendantes ou de la description peut être combinée indépendamment aux caractéristiques ci-dessus, sans pour autant constituer une généralisation intermédiaire. [0006] The invention also relates to the variants of the dependent claims. Those skilled in the art will understand that each of the features of the dependent claims or of the description may be combined independently to the above characteristics, without however constituting an intermediate generalization.
[0007] D'autres caractéristiques et avantages de l'invention ressortiront clairement de la description qui en est faite ci-après, à titre indicatif et nullement limitatif, en référence aux dessins annexés, dans lesquels : Other characteristics and advantages of the invention will emerge clearly from the description which is made of it below, by way of indication and in no way limiting, with reference to the appended drawings, in which:
[0008] [Fig.1 ] est une représentation schématique d’un exemple de système pour la mise en œuvre de l’invention ; [0008] [Fig.1] is a schematic representation of an example of a system for implementing the invention;
[0009] [Fig.2] est une représentation schématique de grandes catégories d’étapes mises en œuvre dans un système pour la mise en œuvre de l’invention ; [0009] [Fig.2] is a schematic representation of major categories of steps implemented in a system for implementing the invention;
[0010] [Fig.3] est un exemple de graphe , le graphe de la figure 3 représente un graphe d’appels pour un service d’enregistrement d’un email d’identification et d’un mot de passe. [0010] [Fig.3] is an example of a graph, the graph in Figure 3 represents a call graph for a registration service for an identification email and a password.
[0011 ] La figure 1 illustre de façon schématique un système de test de fonctionnalités d’une application informatique 1 , selon un exemple de mise en œuvre de l'invention. Le système de test 1 est configuré pour la mise en œuvre de tests unitaires d’une application informatique, en cours de développement ou avant sa mise en service. [0011] Figure 1 schematically illustrates a functionality test system of a computer application 1, according to an example implementation of the invention. The test system 1 is configured for the implementation of unit tests of a computer application, during development or before its commissioning.
[0012] Le système de test 1 comporte ici un dispositif de traitement 2 et une base de données 20. Le dispositif de traitement 2 typiquement être mis en œuvre sous la forme d'un serveur informatique accessible par un réseau informatique 3, typiquement Internet. La base de données 20 est accessible par le dispositif de traitement 2. Des exemples de contenu de la base de données 20 seront détaillés par la suite. The test system 1 here comprises a processing device 2 and a database 20. The processing device 2 typically be implemented in the form of a computer server accessible by a computer network 3, typically the Internet. The database 20 is accessible by the processing device 2. Examples of the content of the database 20 will be detailed below.
[0013] Le dispositif de traitement 2 peut être mis en œuvre sous la forme d'un serveur informatique accessible par le réseau 3. À cet effet, l'utilisateur dispose ici d'un terminal 4 connecté au dispositif de traitement 2 par l'intermédiaire du réseau informatique 3. Le terminal 4 est configuré pour afficher un certain nombre d'informations sur un écran de l'utilisateur. Le terminal 4 peut par exemple disposer d'un navigateur Internet communiquant avec le dispositif de traitement 2 et affichant une interface utilisateur 6. L'utilisateur peut disposer d'une interface de saisie telle qu'une souris 5, en vue de fournir des réponses au navigateur Internet, ensuite transmises au dispositif de traitement 2. Le terminal 4 dispose par ailleurs d’un accès à une application informatique en cours de développement ou devant être testée, mémorisée sur un support de stockage 7. Le support de stockage 7 peut être un stockage local du terminal 4 ou un stockage distant, par exemple sur des serveurs de stockage accessibles en ligne. Le dispositif de traitement 2 peut être configuré pour envoyer des informations d'affichage au terminal 4, par exemple sous la forme de contenus HTML. [0013] The processing device 2 can be implemented in the form of a computer server accessible by the network 3. For this purpose, the user here has a terminal 4 connected to the processing device 2 by the intermediary of the computer network 3. The terminal 4 is configured to display a certain amount of information on a screen of the user. The terminal 4 can for example have an Internet browser communicating with the processing device 2 and displaying a user interface 6. The user can have an input interface such as a mouse 5, in order to provide answers At Internet browser, then transmitted to the processing device 2. The terminal 4 also has access to a computer application under development or to be tested, stored on a storage medium 7. The storage medium 7 can be a local storage of the terminal 4 or remote storage, for example on storage servers accessible online. The processing device 2 can be configured to send display information to the terminal 4, for example in the form of HTML content.
[0014] Le dispositif de traitement numérique 2 est configuré pour récupérer le code source d’une application informatique. Le code source de l’application informatique peut également être stocké dans la base de données 20, de sorte que le dispositif 2 peut être configuré pour à la fois donner un accès au code source et mettre en œuvre des tests unitaires. [0014] The digital processing device 2 is configured to recover the source code of a computer application. The source code of the computer application can also be stored in the database 20, so that the device 2 can be configured to both provide access to the source code and implement unit tests.
[0015] La figure 2 illustre des grandes catégories d’étapes pouvant être mises en œuvre par le dispositif de traitement 2 lors de tests ou de préparations de tests du code source de l’application informatique. La catégorie 100 correspond à des processus de génération d’une liste de fonctions à tester. La catégorie 200 correspond à des processus de génération d’une liste de valeurs de test pour les fonctions listées. La catégorie 300 correspond aux processus de test du code source lui-même. [0015] FIG. 2 illustrates the main categories of steps that can be implemented by the processing device 2 during tests or preparations for tests of the source code of the computer application. Category 100 corresponds to processes for generating a list of functions to be tested. Category 200 corresponds to processes for generating a list of test values for the listed functions. Category 300 corresponds to the testing processes of the source code itself.
[0016] Le dispositif de traitement numérique 2 est configuré pour analyser le code source de l’application informatique à tester dans le but de définir une liste appropriée de fonctions à tester, ce qui correspond à la catégorie 100 mentionnée précédemment. Une liste de fonctions appropriée correspond à une sélection de fonctions du code source à tester, c’est-à-dire un nombre restreint de fonctions parmi l’ensemble des fonctions du code source. A cet effet, selon l’invention, le dispositif de traitement 2 réalise les opérations suivantes pour générer la liste des fonctions à tester : The digital processing device 2 is configured to analyze the source code of the computer application to be tested in order to define an appropriate list of functions to be tested, which corresponds to the category 100 mentioned above. An appropriate list of functions corresponds to a selection of source code functions to be tested, i.e. a limited number of functions among all the source code functions. To this end, according to the invention, the processing device 2 performs the following operations to generate the list of functions to be tested:
[0017] -générer un score de probabilité d’appel de chaque fonction ; [0017] -generate a call probability score for each function;
[0018] -générer un score d’impact de défaillance de chaque fonction ; [0018] -generate a failure impact score for each function;
[0019] -générer un score d’imbrication pour chaque fonction ; [0020] -générer un score d’atypicité. [0019] to generate a nesting score for each function; [0020] to generate an atypicality score.
[0021 ] La génération du score de probabilité d’appel de chaque fonction peut être réalisée comme suit : [0021] The generation of the call probability score for each function can be performed as follows:
[0022] -définir un graphe d’appels de l’ensemble des fonctions de l’application informatique et génération d’une base de données de la fréquence d’appel de chacune des fonctions du graphe d’appels. Pour chaque fonction ‘fonction’, on pourra associer la fréquence d’appel ‘fafonction’ dans une telle base de données. La base de données des fréquences d’appel peut être stockée dans la base de données 20 ; [0022] -defining a call graph of all the functions of the computer application and generation of a database of the frequency of calls for each of the functions of the call graph. For each function 'function', we can associate the call frequency 'fafonction' in such a database. The calling frequency database may be stored in database 20;
[0023] -générer un score de probabilité d’appel de chaque fonction, le score dépendant du graphe d’appels et de la fréquence d’appel mémorisée dans la base de données pour cette fonction. Un score de probabilité d’appel d’une fonction ‘fonction’ sera référencé ‘pafonction’ par la suite. Un exemple correspondant est illustré par référence à la figure 3. Dans l’exemple, le graphe de la figure 3 représente un graphe d’appels pour un service d’enregistrement d’un email d’identification et d’un mot de passe. La fonction 101 correspond à une lecture de données d’entrée d’un utilisateur. La fonction 102 est une fonction de vérification de la validité d’un email saisi. La fonction 103 est une fonction de validation de la robustesse du mot de passe. La fonction 104 est une fonction de validation de conformité des données d’entrée. La fonction 105 est une fonction d’inscription dans une base de données d’identifiants. Les fonctions 102 et 103 ne sont exécutées que si la fonction de lecture des données d’entrée 101 s’est effectuée correctement. Pour une fréquence donnée ‘fa10T d’appel de la fonction 101 , les probabilités d’appel respectives ‘pa102’ et ‘pa103’ des fonctions 102 et 103 est inférieure à ‘fa10T. La fonction de validation de conformité 104 n’est exécutée que si les fonctions 102 et 103 se sont effectuées correctement. Par conséquent, la probabilité d’appel ‘pa104’ est inférieure aux probabilités d’appel ‘pa102’ et ‘pa103’ des fonctions 102 et 103. La fonction d’inscription 105 n’est exécutée que si la fonction 104 s’est effectuée correctement. Par conséquent, la probabilité d’appel ‘pa105’ est inférieure à la probabilité d’appel ‘pa104’ ; [0024] La génération du score d’impact de défaillance de chaque fonction peut être réalisée comme suit : chaque fonction est classée par thème sémantique. A cet effet, on met en œuvre une analyse sémantique de chaque fonction, pour générer un score d’impact de défaillance de cette fonction en fonction de son thème sémantique. Par exemple, une fonction dont l’analyse sémantique fait apparaître des thèmes sémantiques d’authentification, de gestion de certificats ou de chiffrement sera considérée comme ayant un score d’impact de défaillance très élevée pour une application informatique de traitement de paiements bancaires. Pour un autre exemple, pour une application informatique d’un fournisseur de service, l’analyse sémantique du code source peut faire ressortir pour chaque fonction, un contexte lié au service, un contexte lié à la facturation, un contexte lié au support et un contexte d’affichage. En fonction d’une criticité qui peut être définie par le développeur ou l’utilisateur pour chaque contexte, l’analyse sémantique peut générer un score de criticité pour chacune des fonctions en fonction des contextes sémantiques identifiés. [0023] to generate a call probability score for each function, the score depending on the call graph and the call frequency stored in the database for this function. A call probability score for a function 'function' will be referenced 'pafonction' thereafter. A corresponding example is illustrated with reference to FIG. 3. In the example, the graph of FIG. 3 represents a graph of calls for a service for registering an identification email and a password. Function 101 corresponds to reading input data from a user. Function 102 is a function for verifying the validity of an email entered. Function 103 is a password strength validation function. Function 104 is an input data conformity validation function. Function 105 is a registration function in an identifier database. Functions 102 and 103 are executed only if the function for reading input data 101 has been carried out correctly. For a given frequency 'fa10T of call of function 101, the respective call probabilities 'pa102' and 'pa103' of functions 102 and 103 is less than 'fa10T. The conformity validation function 104 is executed only if the functions 102 and 103 have been carried out correctly. Therefore, the probability of calling 'pa104' is lower than the probabilities of calling 'pa102' and 'pa103' of functions 102 and 103. The registration function 105 is only executed if the function 104 has been carried out properly. Therefore, the call probability 'pa105' is less than the call probability 'pa104'; The generation of the failure impact score of each function can be carried out as follows: each function is classified by semantic theme. To this end, a semantic analysis of each function is implemented to generate a failure impact score for this function as a function of its semantic theme. For example, a function whose semantic analysis reveals semantic themes of authentication, certificate management or encryption will be considered as having a very high failure impact score for a computer application processing bank payments. For another example, for a computer application of a service provider, the semantic analysis of the source code can bring out for each function, a context linked to the service, a context linked to invoicing, a context linked to the support and a display context. According to a criticality which can be defined by the developer or the user for each context, the semantic analysis can generate a criticality score for each of the functions according to the identified semantic contexts.
[0025] La génération du score d’imbrication pour chaque fonction est réalisée pour chaque fonction en fonction de la portée ou du niveau d’imbrication de cette fonction (nesting level en langue anglaise). Un exemple de calcul de score d’imbrication pour une fonction de référence est détaillé à l’adresse "https://gist.github.com/avmnu-sng/790f995091 d209c00dcf2170352bebbd". Le score est détaillé ici comme un score de complexité cognitive du code source. Le score d’imbrication est représentatif de la difficulté de compréhension d’une fonction du fait de son niveau d’imbrication. The generation of the nesting score for each function is carried out for each function according to the scope or level of nesting of this function (nesting level in English). An example of nesting score calculation for a reference function is detailed at "https://gist.github.com/avmnu-sng/790f995091d209c00dcf2170352bebbd". The score is detailed here as a source code cognitive complexity score. The nesting score is representative of the difficulty of understanding a function due to its level of nesting.
[0026] La génération du score d’atypicité permet de prendre la difficulté du débuggage pour des fonctions qui sortent du contexte usuel de l’application. La génération du score d’atypicité peut être mise en œuvre comme suit. On détermine une liste de mots les plus utilisés dans l’ensemble du code source, puis on génère une liste de mots utilisés pour chacune des fonctions. Un score d’atypicité est généré, dépendant du décalage sémantique entre les mots de la liste de mots d’une fonction par rapport à liste des mots les plus utilisés dans l’ensemble du code source. Par exemple, dans une application de gestion de 3D, le vocabulaire majoritaire est lié au graphisme (formes, lumière, angle de la caméra, etc.). Cependant, de telles applications incluent le plus souvent un module lié aux lois de la physique afin de pouvoir générer une animation réaliste. Un tel module peut inclure beaucoup de vocabulaire lié à de la thématique de la mécanique, ce qui est représente un décalage important par rapport à la thématique de la 3D. [0026] The generation of the atypicality score makes it possible to take the difficulty of debugging for functions which are outside the usual context of the application. The generation of the atypicality score can be implemented as follows. A list of the most used words in the whole of the source code is determined, then a list of words used for each of the functions is generated. An atypicality score is generated, depending on the semantic mismatch between words in a function's wordlist compared to the list of most used words in the entire source code. For example, in a 3D management application, the majority vocabulary is related to graphics (shapes, light, camera angle, etc.). However, such applications most often include a module related to the laws of physics in order to be able to generate a realistic animation. Such a module can include a lot of vocabulary related to the theme of mechanics, which is a significant shift from the theme of 3D.
[0027] Pour pouvoir effectuer simplement et objectivement une sélection à tester parmi l’ensemble des fonctions du code source, le dispositif de traitement 2 génère un score combiné pour chaque fonction du code source. Le score combiné combine notamment le score de probabilité d’appel, le score d’impact de défaillance, le score d’imbrication et le score d’atypicité, par exemple par simple ajout de ces scores ou par application de pondérations. In order to be able to simply and objectively make a selection to be tested from among all the functions of the source code, the processing device 2 generates a combined score for each function of the source code. The combined score notably combines the call probability score, the failure impact score, the nesting score and the atypicality score, for example by simply adding these scores or by applying weightings.
[0028] Ainsi, on génère numériquement un score pour chaque fonction, permettant à un système de traitement numérique d’établir une hiérarchie des fonctions à tester, et ainsi une liste réduite de fonctions à tester. Thus, a score is digitally generated for each function, allowing a digital processing system to establish a hierarchy of functions to be tested, and thus a reduced list of functions to be tested.
[0029] L’invention permet d’optimiser l’efficacité des tests unitaires réalisés, c’est-à- dire que pour un nombre donné de tests unitaires réalisés, le niveau de criticité des erreurs détectées sera optimal. Avec des ressources de test limitées, une fiabilité optimale des tests pourra ainsi être obtenue. The invention makes it possible to optimize the efficiency of the unit tests carried out, that is to say that for a given number of unit tests carried out, the level of criticality of the errors detected will be optimal. With limited test resources, optimal test reliability can thus be achieved.
[0030] Avantageusement, le dispositif de traitement 2 est configuré pour générer la liste de fonctions à tester, en : [0030] Advantageously, the processing device 2 is configured to generate the list of functions to be tested, by:
-identifiant la présence d’une documentation de chaque fonction dans le code source et en générant un score de documentation de la fonction basé sur l’identification de la présence d’une telle documentation. La présence d’une documentation d’une fonction est en effet un facteur favorisant la reprise de l’application informatique par un autre développeur ou par le développeur initial lui-même ; - identifying the presence of documentation of each function in the source code and generating a documentation score for the function based on the identification of the presence of such documentation. The presence of documentation for a function is indeed a factor favoring the resumption of the computer application by another developer or by the initial developer himself;
-en générant le score combiné de chaque fonction du code source en tenant compte de score de documentation. -by generating the combined score of each source code function taking into account the documentation score.
[0031] Avantageusement, la génération du score d’atypicité est mise en œuvre comme suit. La sélection de noms de mots les plus utilisés dans le code source comprend le listage de l’ensemble des mots du code source et l’élimination des noms d’opérateurs usuels d’un langage informatique. Les opérateurs usuels ne sont donc pas pris en compte pour calculer un décalage sémantique avec les mots des différentes fonctions. Advantageously, the generation of the atypicality score is implemented as follows. The selection of names of the most used words in the source code includes the listing of all the words of the source code and the elimination of the names of usual operators of a computer language. The usual operators are therefore not taken into account to calculate a semantic shift with the words of the different functions.
[0032] Le dispositif de traitement 2 est en outre configuré pour générer une liste de valeurs de tests des fonctions listées. La génération de la liste de valeurs de test correspond à la catégorie 200 mentionnée précédemment. La génération d’une liste de valeurs de test selon l’invention peut être mise en œuvre comme suit : The processing device 2 is further configured to generate a list of test values of the listed functions. The generation of the list of test values corresponds to the category 200 mentioned previously. The generation of a list of test values according to the invention can be implemented as follows:
[0033] -les opérations réalisées sur les paramètres des fonctions du code source sont analysées, en identifiant des structures de paramètres compatibles avec ces opérations, et en construisant des exemples de valeurs de paramètres correspondant aux structures identifiées. [0033] the operations carried out on the parameters of the functions of the source code are analyzed, by identifying the structures of parameters compatible with these operations, and by constructing examples of parameter values corresponding to the structures identified.
[0034] - des exemples de valeurs des paramètres du code source sont listées; [0034] - examples of source code parameter values are listed;
[0035] - d’autres valeurs des paramètres sont extrapolées en appliquant des variations aux exemples de valeurs de paramètres dans le code source. [0035] - other parameter values are extrapolated by applying variations to example parameter values in the source code.
[0036] Par exemple, pour la fonction suivante: For example, for the following function:
[0037] def check(email): [0037] defcheck(email):
[0038] if(re.match(regex, email)): [0038] if(re.match(regex, email)):
[0039] print("Valid Email") [0039] print("Valid Email")
[0040] else: [0040] else:
[0041 ] print("lnvalid Email") [0041 ] print("lnvalid Email")
[0042] La fonction re. match ne s’applique qu’à des chaînes de caractère et donc on en déduit que le paramètre ‘email’ est une chaîne de caractère. On a donc identifié une structure de paramètre compatible avec le paramètre ‘email’. The function re. match only applies to character strings and therefore we deduce that the 'email' parameter is a character string. We have therefore identified a parameter structure compatible with the 'email' parameter.
[0043] Par une analyse sémantique, on détermine également que ‘email’ est sans doute une information sous la forme d’un email. Ensuite, d’autres valeurs des paramètres sont extrapolées en appliquant des variations aux exemples de valeurs de paramètres dans le code source. Par exemple, les valeurs suivantes peuvent être extrapolées pour le paramètre ‘email’ : user@domain.com, user123@domain.com, User@domain.com, user@domain.co.uk, @domain.com, ou user.domain.com [0044] Des structures de paramètres compatibles les plus courantes et les plus utilisées peuvent par exemple être des entiers, des nombres réels, des chaines de caractères, des dates, des tableaux, des dictionnaires ou des instances de classes. [0043] By a semantic analysis, it is also determined that 'email' is undoubtedly information in the form of an email. Then, other values of the parameters are extrapolated by applying variations to the sample parameter values in the source code. For example, the following values can be extrapolated for the 'email' parameter: user@domain.com, user123@domain.com, User@domain.com, user@domain.co.uk, @domain.com, or user. domain.com The most common and most used compatible parameter structures can for example be integers, real numbers, character strings, dates, arrays, dictionaries or instances of classes.
[0045] Avantageusement, l’identification de structures de paramètres compatibles comprend l’association d’une pondération à chaque structure de paramètre compatible. Le nombre de valeurs pour chaque structure compatible dans la liste de valeurs est ainsi déterminé en fonction de cette pondération, pour que les valeurs de test correspondent statistiquement à des structures de données les plus probables. Advantageously, the identification of compatible parameter structures comprises the association of a weighting with each compatible parameter structure. The number of values for each compatible structure in the list of values is thus determined according to this weighting, so that the test values correspond statistically to the most probable data structures.
[0046] Avantageusement, l’identification de structures de paramètres compatibles est basée sur une analyse sémantique des termes à proximité de chaque appel d’une fonction. Des structures des paramètres compatibles sont ainsi déterminées en tenant compte des termes utilisés à proximité des appels de chaque fonction dans le code source. Advantageously, the identification of compatible parameter structures is based on a semantic analysis of the terms close to each call to a function. Compatible parameter structures are thus determined by taking into account the terms used near the calls of each function in the source code.
[0047] Préalablement à la génération des valeurs, on peut détecter grâce à la sémantique des appels internes qui doivent faire l’objet de mocks et on peut ensuite les traiter comme des entrées. En programmation orientée objet, les mocks (simulacres ou mock object) sont des objets simulés qui reproduisent le comportement d'objets réels de manière contrôlée. Un programmeur crée un mock dans le but de tester le comportement d'autres objets, réels, mais liés à un objet inaccessible ou non implémenté. Ce dernier est alors remplacé par un mock. Prior to the generation of values, we can detect, thanks to the semantics, the internal calls which must be the subject of mocks and we can then treat them as inputs. In object-oriented programming, mocks (simulacra or mock object) are simulated objects that reproduce the behavior of real objects in a controlled way. A programmer creates a mock in order to test the behavior of other objects, real, but related to an inaccessible or unimplemented object. The latter is then replaced by a mock.
[0048] Dans un test unitaire, les mocks peuvent simuler le comportement d'objets réels et complexes et sont utiles à ce titre quand ces objets réels sont impossibles à utiliser. On peut citer les cas suivants : [0048] In a unit test, mocks can simulate the behavior of real and complex objects and are useful in this respect when these real objects are impossible to use. The following cases can be cited:
-Remplacer un comportement non déterministe (l'heure ou la température ambiante) ; - Replace non-deterministic behavior (time or ambient temperature);
-Si l'objet a des états difficiles à reproduire (une erreur de réseau par exemple) ; -Si l'initialisation de l'objet est longue (par exemple. : création d'une base de données) ; -If the object has states that are difficult to reproduce (a network error for example); - If the initialization of the object is long (for example: creation of a database);
-Si l'objet n'existe pas ou si son comportement peut encore changer ; -S'il est nécessaire d'inclure des attributs et des méthodes uniquement à des fins de test. -If the object does not exist or if its behavior can still change; -If it is necessary to include attributes and methods for testing purposes only.
[0049] Le dispositif de traitement 2 est en outre configuré pour mettre en œuvre un processus de test du code source lui-même. La mise en œuvre des tests correspond à la catégorie 300 mentionnée précédemment. Les tests de l’application informatique sont mis en œuvre avec exécution du code source pour tester la liste de fonctions générées, avec la liste de valeurs de paramètres générée, et ainsi bénéficier des sélections effectuées pour avoir un maximum d’efficacité de ces tests. Le dispositif de traitement 2 est avantageusement configuré pour mémoriser les valeurs de sortie des fonctions listées pour les valeurs d’entrée listées et pour mémoriser les appels internes. Une telle mémorisation permet de réaliser une analyse a posteriori de l’exécution de l’application informatique. The processing device 2 is also configured to implement a process for testing the source code itself. The implementation of the tests corresponds to the category 300 mentioned above. The computer application tests are implemented with execution of the source code to test the list of generated functions, with the list of parameter values generated, and thus benefit from the selections made to have maximum efficiency of these tests. The processing device 2 is advantageously configured to memorize the output values of the listed functions for the listed input values and to memorize the internal calls. Such storage makes it possible to carry out an a posteriori analysis of the execution of the computer application.
[0050] Avantageusement, le processus de test du code source comprend un module de mutation. Le module de mutation est configuré pour générer des mutations du code source à tester. Le dispositif de traitement 2 est alors configuré pour exécuter le code source muté pour la liste de fonctions et la liste de valeurs listées. Le dispositif de traitement 2 est en outre configuré pour comparer les valeurs de sortie des fonctions listées du code source d’origine et du code source muté. Un tel test de mutation permet de constater l’influence de mutations du code sur son exécution, son fonctionnement et sur ses résultats. [0050] Advantageously, the source code testing process includes a mutation module. The mutation module is configured to generate mutations of the source code to be tested. The processing device 2 is then configured to execute the mutated source code for the list of functions and the list of listed values. The processing device 2 is further configured to compare the output values of the listed functions of the original source code and the mutated source code. Such a mutation test makes it possible to observe the influence of mutations of the code on its execution, its operation and its results.
[0051 ] Avantageusement, on peut mettre en place un filtrage des assertions et des tests en fin de processus avant de réaliser les tests unitaires. On peut par exemple garder le sous-ensemble minimal des cas de tests et d’assertions qui couvrent toutes les lignes de code et éliminent tous les mutants générés. Ce filtrage permet d’optimiser les coûts d'exécution des tests et la lisibilité des tests unitaires. [0051] Advantageously, it is possible to set up a filtering of the assertions and of the tests at the end of the process before carrying out the unit tests. For example, we can keep the minimal subset of test cases and assertions that cover all lines of code and eliminate all generated mutants. This filtering optimizes test execution costs and the readability of unit tests.

Claims

Revendications Claims
[Revendication 1 ] [Système (1 ) de test de fonctionnalités d’une application informatique, caractérisé en ce qu’il comprend : [Claim 1] [System (1) for testing the functionalities of a computer application, characterized in that it comprises:
-un dispositif de traitement numérique (2) configuré pour récupérer un code source d’une application informatique, et pour : a) générer une liste de fonctions à tester en : -a digital processing device (2) configured to retrieve source code from a computer application, and to: a) generate a list of functions to be tested by:
-définissant un graphe d’appels de l’ensemble des fonctions de l’application et en générant une base de données de la fréquence d’appel de chacune des fonctions du graphe d’appels ; - defining a call graph of all the functions of the application and generating a database of the frequency of calls for each of the functions of the call graph;
-générant un score de probabilité d’appel de chaque fonction, le score dépendant du graphe d’appels et de la fréquence d’appel mémorisée dans la base de données pour cette fonction ; -generating a call probability score for each function, the score depending on the call graph and the call frequency stored in the database for this function;
-classant chaque fonction par thème sémantique par analyse sémantique de cette fonction, et en générant un score d’impact de défaillance de cette fonction en fonction de son thème sémantique ; - classifying each function by semantic theme by semantic analysis of this function, and by generating a failure impact score for this function according to its semantic theme;
-générant un score d’imbrication pour chacune desdites fonctions, dépendant de la portée ou du niveau d’imbrication de cette fonction ; -generating a nesting score for each of said functions, depending on the scope or level of nesting of this function;
-déterminant une liste des mots les plus utilisés dans l’ensemble du code source, en générant une liste des mots utilisés pour chacune desdites fonctions, et en générant un score d’atypicité dépendant du décalage sémantique entre les mots de la liste de mots de chaque fonction par rapport à liste des mots les plus utilisés ; -determining a list of the most used words in the whole of the source code, by generating a list of the words used for each of said functions, and by generating an atypicality score depending on the semantic shift between the words of the list of words of each function in relation to the list of the most used words;
-générant un score combiné pour chaque fonction du code source, le score combiné combinant le score de probabilité d’appel, le score d’impact de défaillance, le score d’imbrication et le score d’atypicité ; -generating a combined score for each function of the source code, the combined score combining the call probability score, the failure impact score, the nesting score and the atypicality score;
-sélectionnant une partie des fonctions du code source par leur score combiné pour générer la liste des fonctions sélectionnées ; - selecting part of the source code functions by their combined score to generate the list of selected functions;
-b) générer une liste de valeurs de test de chacune des fonctions listées, en : -analysant des opérations réalisées sur les paramètres des fonctions dans le code source, en identifiant des structures de paramètres compatibles avec ces opérations, et en construisant des exemples de valeurs de paramètres correspondant aux structures identifiées ; -b) generate a list of test values for each of the listed functions, by: -analyzing operations performed on function parameters in the source code, identifying parameter structures compatible with these operations, and building example parameter values corresponding to the identified structures;
-listant des exemples de valeurs des paramètres dans le code source ; -extrapolant d’autres paramètres en appliquant des variations aux exemples de valeurs de paramètres dans le code source. - listing examples of parameter values in the source code; - extrapolating other parameters by applying variations to example parameter values in the source code.
[Revendication 2] Système de test de fonctionnalités d’une application informatique selon la revendication 1 , dans lequel le dispositif de traitement numérique est configuré pour générer la liste de fonctions à tester en : -identifiant la présence d’une documentation de chaque fonction dans le code source et en générant un score de documentation de la fonction basé sur l’identification de la présence d’une documentation ; [Claim 2] System for testing the functions of a computer application according to claim 1, in which the digital processing device is configured to generate the list of functions to be tested by: - identifying the presence of documentation of each function in source code and generating a feature documentation score based on the identification of the presence of documentation;
-générant ledit score combiné pour chaque fonction du code source en combinant le score de documentation. -generating said combined score for each function of the source code by combining the documentation score.
[Revendication 3] Système de test de fonctionnalités d’une application informatique selon la revendication 1 ou 2, dans lequel la sélection de mots les plus utilisés dans le code source comprend le listage de l’ensemble des mots du code source et l’élimination des noms d’opérateurs usuels d’un langage informatique. [Claim 3] A computer application functionality testing system according to claim 1 or 2, wherein selecting most used words in the source code includes listing all source code words and eliminating names of usual operators of a computer language.
[Revendication 4] Système de test de fonctionnalités d'une application informatique selon l'une quelconque des revendications précédentes, dans lequel l'identification des structures de paramètres compatibles comprend l'association d'une pondération à chaque structure de paramètre compatible, le nombre de valeurs pour chaque structure compatible dans la liste de valeurs étant déterminé en fonction de cette pondération. [Claim 4] A computer application functionality testing system according to any preceding claim, wherein identifying compatible parameter structures includes associating a weight to each compatible parameter structure, the number of values for each compatible structure in the list of values being determined based on this weighting.
[Revendication 5] Système de test de fonctionnalités d'une application informatique selon l'une quelconque des revendications précédentes, dans lequel l'identification des structures de paramètres compatibles comprend une analyse sémantique des termes à proximité de chaque fonction, les structures de paramètres compatibles étant déterminées en fonction des termes utilisés à proximité de chaque fonction dans le code source. [Claim 5] A computer application functionality testing system according to any preceding claim, wherein the identification of compatible parameter structures includes a semantic analysis of terms near each function, the compatible parameter structures being determined according to the terms used near each function in the source code.
[Revendication 6] Système de test de fonctionnalités d'une application informatique selon l'une quelconque des revendications précédentes, dans lequel le dispositif de traitement numérique est configuré pour exécuter le code source pour tester ladite liste de fonctions avec ladite liste de valeurs, le dispositif de traitement numérique étant en outre configuré pour mémoriser les valeurs de sortie des fonctions listées pour des valeurs d'entrée listées, et configuré pour mémoriser les appels internes. [Claim 6] A computer application functionality testing system according to any preceding claim, wherein the digital processing device is configured to execute source code to test said list of functions with said list of values, the digital processing device being further configured to store output values of listed functions for listed input values, and configured to log internal calls.
[Revendication 7] Système de test de fonctionnalités d'une application informatique selon la revendication 6, dans lequel le dispositif de traitement numérique est configuré pour générer des mutations dudit code source, le dispositif de traitement numérique étant en outre configuré pour exécuter le code source muté pour ladite liste de fonctions avec ladite liste de valeurs, et en outre configuré pour comparer les valeurs de sortie des fonctions listées du code source et du code source muté. [Claim 7] A computer application functionality testing system according to claim 6, wherein the digital processing device is configured to generate mutations of said source code, the digital processing device being further configured to execute the source code mutated for said list of functions with said list of values, and further configured to compare the output values of the listed functions of the source code and the mutated source code.
[Revendication 8] Système de test de fonctionnalités d'une application informatique selon la revendication 6 ou 7, dans lequel le dispositif de traitement numérique est configuré pour effectuer une sélection dans ladite liste de valeurs sur la base d’un système d’optimisation de programmation linéaire. [Claim 8] A computer application functionality testing system according to claim 6 or 7, wherein the digital processing device is configured to select from said list of values based on a system optimization of linear programming.
[Revendication 9] Système de test de fonctionnalités d'une application informatique selon l'une quelconque des revendications précédentes, dans lequel lesdites structures de paramètres compatibles comprennent les entiers, les nombres réels, les chaines de caractères et les dates. [Claim 9] A computer application functionality testing system according to any preceding claim, wherein said compatible parameter structures include integers, real numbers, character strings and dates.
PCT/EP2021/075832 2021-09-20 2021-09-20 System for testing functionalities of a computer application WO2023041187A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/075832 WO2023041187A1 (en) 2021-09-20 2021-09-20 System for testing functionalities of a computer application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/075832 WO2023041187A1 (en) 2021-09-20 2021-09-20 System for testing functionalities of a computer application

Publications (1)

Publication Number Publication Date
WO2023041187A1 true WO2023041187A1 (en) 2023-03-23

Family

ID=77998959

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/075832 WO2023041187A1 (en) 2021-09-20 2021-09-20 System for testing functionalities of a computer application

Country Status (1)

Country Link
WO (1) WO2023041187A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321013A1 (en) * 2010-06-23 2011-12-29 Quickunit Ltd Interactive environment for test case generation associated with a computer code

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321013A1 (en) * 2010-06-23 2011-12-29 Quickunit Ltd Interactive environment for test case generation associated with a computer code

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHI JIANLEI ET AL: "Test Case Prioritization Based on Method Call Sequences", 2017 IEEE 41ST ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC), IEEE, vol. 1, 23 July 2018 (2018-07-23), pages 251 - 256, XP033409487, ISSN: 0730-3157, ISBN: 978-1-5386-2667-2, [retrieved on 20180608], DOI: 10.1109/COMPSAC.2018.00039 *
HAGAI CIBULSKI ET AL: "Regression Test Selection Techniques for Test-Driven Development", SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2011 IEEE FOURTH INTERNATIONAL CONFERENCE ON, IEEE, 21 March 2011 (2011-03-21), pages 115 - 124, XP031895099, ISBN: 978-1-4577-0019-4, DOI: 10.1109/ICSTW.2011.28 *
HONG MEI ET AL: "A Static Approach to Prioritizing JUnit Test Cases", IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 38, no. 6, 1 November 2012 (2012-11-01), pages 1258 - 1275, XP011473889, ISSN: 0098-5589, DOI: 10.1109/TSE.2011.106 *

Similar Documents

Publication Publication Date Title
US9558230B2 (en) Data quality assessment
US20190311133A1 (en) Auto-remediation workflow for computer security testing
Brajnik Comparing accessibility evaluation tools: a method for tool effectiveness
US20180225280A1 (en) Systems and methods for improved text classification
Lo et al. Learning extended FSA from software: An empirical assessment
Di Biase et al. A security perspective on code review: The case of chromium
US11307975B2 (en) Machine code analysis for identifying software defects
US20060178858A1 (en) Baseline architecture monitor application for distributed systems
Theisen et al. Risk-based attack surface approximation: how much data is enough?
Hartel et al. An empirical study into the success of listed smart contracts in ethereum
Schoofs et al. Ampyfier: Test amplification in python
Hirsch et al. A systematic literature review on benchmarks for evaluating debugging approaches
WO2023041187A1 (en) System for testing functionalities of a computer application
Ouni et al. An empirical study on continuous integration trends, topics and challenges in stack overflow
Erlenhov et al. Dependency management bots in open-source systems—prevalence and adoption
Xiao et al. Lalaine: Measuring and Characterizing {Non-Compliance} of Apple Privacy Labels
FR3105862A1 (en) METHOD AND SYSTEM FOR SELECTING A LEARNING MODEL WITHIN A PLURALITY OF LEARNING MODELS
Vimpari An evaluation of free fuzzing tools
Chowdhury et al. A holistic ranking scheme for apps
Stolee et al. Exploring the benefits of using redundant responses in crowdsourced evaluations
Laranjeiro et al. Testing web applications using poor quality data
FR3105844A1 (en) PROCESS AND SYSTEM FOR IDENTIFYING RELEVANT VARIABLES
Fisher et al. An automated analysis methodology to detect inconsistencies in web services with WSDL interfaces
JP7456344B2 (en) Information processing device, information processing system, information processing method and program
Kim et al. How are we detecting inconsistent method names? an empirical study from code review perspective

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21782665

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE