CN118779247B - Application program testing method, device, storage medium and program product - Google Patents

Application program testing method, device, storage medium and program product Download PDF

Info

Publication number
CN118779247B
CN118779247B CN202411251848.1A CN202411251848A CN118779247B CN 118779247 B CN118779247 B CN 118779247B CN 202411251848 A CN202411251848 A CN 202411251848A CN 118779247 B CN118779247 B CN 118779247B
Authority
CN
China
Prior art keywords
code
test case
test
test cases
version
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.)
Active
Application number
CN202411251848.1A
Other languages
Chinese (zh)
Other versions
CN118779247A (en
Inventor
单凯伦
张永超
石晓海
马涛
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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing Ltd
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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202411251848.1A priority Critical patent/CN118779247B/en
Publication of CN118779247A publication Critical patent/CN118779247A/en
Application granted granted Critical
Publication of CN118779247B publication Critical patent/CN118779247B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • 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/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • 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/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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 embodiment of the present invention provides an application testing method, device, storage medium and program product. The method includes: obtaining multiple test cases; executing multiple test cases in a first version of the application source code to determine the code line coverage information of the multiple test cases; in response to a change operation on the first version of the application source code, determining multiple lines of code corresponding to the change operation; determining a target test case to be executed based on the code line coverage information of the multiple test cases, the preset dependencies between the multiple test cases and the multiple lines of code, so as to execute the target test case in the changed second version of the application source code. In this solution, when the application source code is changed, there is no need to use multiple test cases to re-test the changed source code, and the testing efficiency is high.

Description

Application program testing method, device, storage medium and program product
Technical Field
The present invention relates to the field of software testing technologies, and in particular, to an application program testing method, device, storage medium, and program product.
Background
Sustained integration (Continuous Integration, CI for short)/sustained delivery (Continuous Delivery, CD for short) is a method of frequently delivering applications to customers by introducing automation during the application development phase. In the current application development mode, a plurality of developers are often required to cooperatively develop an application program, and in general, the plurality of developers write functional modules in charge of themselves or some developers are in charge of developing the same functional module together. Therefore, codes of all developers can be integrated into a shared memory bank through a version control system, each developer can create corresponding branches according to different requirements, after the requirements are completed, each developer submits and merges, and the branch codes of the respective developers are integrated together and merged into a main branch. The CI can help the developer to more conveniently merge code changes into the main branch, once the developer merges the changed code into the main branch, the system will verify the changes by automatically building the application and running test cases, ensuring that the changes do not destroy the application. During the development of an application, iterations of the version, i.e., changes to the code, are often involved. In the CI/CD development mode, the user's change operation to the source code of the application program can be realized by means of Pull Request (PR). After the CI completes the automatic processes of constructing and testing, the CD can automatically deploy the verified codes from the development environment to the enterprise generation environment.
Currently, a tester prepares a plurality of test cases in advance for testing a developed application program. And after part of codes in the source codes of the application programs are changed, the changed source codes are tested again by adopting the test cases, and the test efficiency is low.
Disclosure of Invention
The embodiment of the invention provides an application program testing method, equipment, a storage medium and a program product, which can test a changed source code by only adopting a test case related to a code line influenced by a change behavior when the source code of the application program is changed, and have higher testing efficiency.
In a first aspect, an embodiment of the present invention provides an application program testing method, including:
acquiring code line coverage information of a plurality of test cases obtained after the plurality of test cases are executed in the source code of the application program of the first version;
Determining a plurality of lines of code corresponding to a change operation relative to the first version of application source code in response to the change operation of the current version of application source code;
And determining a target test case to be executed according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases and the plurality of lines of codes so as to execute the target test case in the changed application program source code of the second version.
In a second aspect, an embodiment of the present invention provides an application testing apparatus, the apparatus including:
the acquisition module is used for acquiring code line coverage information of a plurality of test cases obtained after the plurality of test cases are executed in the source code of the application program of the first version;
a response module, configured to respond to a change operation of an application source code of a current version, and determine a plurality of lines of code corresponding to the change operation with respect to the application source code of the first version;
The determining module is used for determining a target test case to be executed according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases and the plurality of lines of codes so as to execute the target test case in the changed application program source code of the second version.
In a third aspect, an embodiment of the present invention provides an electronic device, including a memory, a processor, and a communications interface, where the memory stores executable code, and when the executable code is executed by the processor, causes the processor to execute the application testing method according to the first aspect.
In a fourth aspect, embodiments of the present invention provide a non-transitory machine-readable storage medium having stored thereon executable code which, when executed by a processor of an electronic device, causes the processor to perform the application testing method of the first aspect.
In a fifth aspect, an embodiment of the present invention provides a computer program product comprising a computer program which, when executed by a processor of an electronic device, causes the processor to perform the application testing method according to the first aspect.
According to the application program testing method provided by the embodiment of the invention, the corresponding relation between the test cases and the code lines can be determined by acquiring the code line coverage information of the test cases obtained after the test cases are executed in the first version of application program source code. Then, in response to a change operation of the current version of the application source code, a plurality of lines of code corresponding to the change operation, i.e., an effect result of the change operation, with respect to the first version of the application source code may be determined, wherein the changed second version of the application source code is different from the first version of the application source code. And then, according to the dependency relationship among different test cases and the corresponding relationship between the test cases and the code lines, determining the target test case related to the plurality of lines of codes from the plurality of test cases, and executing the target test case in the changed second version of application program source code directly later, so that the changed source code is not required to be tested again by adopting all the plurality of test cases, and the test efficiency is improved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for the description of the embodiments will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a flowchart of an application program testing method according to an embodiment of the present invention;
FIG. 2 is a flowchart of determining a target test case to be executed according to an embodiment of the present invention;
Fig. 3 is an application schematic diagram of an application program testing method according to an embodiment of the present invention;
FIG. 4 is a schematic illustration of an application of a directed acyclic graph according to an embodiment of the invention;
FIG. 5 is a further flowchart of determining a target test case to be executed according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of an updated directed acyclic graph according to an embodiment of the invention;
FIG. 7 is a flowchart of determining code line coverage information of multiple test cases according to an embodiment of the present invention;
FIG. 8 is a schematic diagram of an application test system according to an embodiment of the present invention;
Fig. 9 is an application schematic diagram of a code coverage information collecting unit according to an embodiment of the present invention;
fig. 10 is a schematic structural diagram of an application testing device according to an embodiment of the present invention;
fig. 11 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
It should be noted that, the user information (including but not limited to user equipment information, user personal information, etc.) and the data (including but not limited to data for analysis, stored data, presented data, etc.) related to the embodiments of the present invention are information and data authorized by the user or fully authorized by each party, and the collection, use and processing of the related data need to comply with the related laws and regulations and standards of the related country and region, and provide corresponding operation entries for the user to select authorization or rejection.
Some embodiments of the present invention are described in detail below with reference to the accompanying drawings. In the case where there is no conflict between the embodiments, the following embodiments and features in the embodiments may be combined with each other. In addition, the sequence of steps in the method embodiments described below is only an example and is not strictly limited.
Terms or concepts related to the embodiments of the present invention will be explained first:
Test cases (Test cases), which refer to descriptions of Test tasks performed on a specific application program, embody Test schemes, methods, techniques and strategies, and can also be simply considered as a set of Test inputs, execution conditions and expected results compiled for a specific target, for verifying whether the requirements of the specific application program are met.
Directed acyclic graph (DIRECTED ACYCLIC GRAPH, DAG for short) refers to a loop-free directed graph that is made up of multiple nodes and multiple directed edges. In the embodiment of the invention, a plurality of nodes are used for representing a plurality of test cases, each node is associated with code row coverage information of a corresponding test case, and directed edges among the nodes represent the dependency relationship among the test cases.
Sustained integration (Continuous Integration, CI for short) is an application development practice with the core that team members integrate their work on a regular basis, typically at least once a day per member, which also means that multiple integration per day may occur. Each integration is verified by automated build-up (including compilation, release, automated testing) to discover integration errors as early as possible.
Persistent delivery (Continuous Delivery, CD for short) is used to complete the output process of the application program in a short period to ensure that the application program can be stably and continuously maintained in a ready-to-release condition. The method aims to enable compiling, testing and publishing of the application program to be faster and more frequent, so that the cost and time for developing the application program are reduced, and the risk is reduced.
Pull Request (PR) is a notification mechanism that, for example, when you modify the code of another person, informs the original person of the code of your modification, requesting him to merge your modification, which can be called PR.
During the development of an application, iterations of the version, i.e., changes to the code, are often involved. In the CI/CD development mode, the user's change operation to the source code of the application program can be realized by means of Pull Request (PR). After the automated processes are constructed and tested through the CI, the verified code can be automatically deployed from the development environment to the generation environment of the enterprise through the CD. Currently, a tester prepares a plurality of test cases in advance for testing a developed application program. And after part of codes in the source codes of the application programs are changed, the changed source codes are tested again by adopting the test cases, and the test efficiency is low.
In view of this, the embodiment of the present invention provides a solution to the problem of low test efficiency by first acquiring code line coverage information of a plurality of test cases obtained after executing the plurality of test cases in the application source code of the first version, that is, determining which code lines in the application source code are covered by which test cases. And when the source codes of the application programs of the current version are changed, determining a plurality of lines of codes corresponding to the changing operation relative to the source codes of the application programs of the first version, selecting target test cases related to the code lines from a plurality of test cases, and directly executing the target test cases corresponding to the lines of codes in the source codes of the application programs of the second version after the change.
The application program test scheme provided by the embodiment of the invention is described below with reference to the accompanying drawings.
Fig. 1 is a flowchart of an application program testing method provided in an embodiment of the present invention, where the method may be executed by a server, as shown in fig. 1, and the method includes the following steps:
101. and acquiring code line coverage information of a plurality of test cases obtained after the plurality of test cases are executed in the application program source code of the first version.
102. In response to a change operation to the current version of the application source code, a plurality of lines of code corresponding to the change operation relative to the first version of the application source code is determined.
103. And determining the target test case to be executed according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases and the plurality of lines of codes so as to execute the target test case in the changed application program source code of the second version.
In practical application, when a certain application program needs to be tested, a plurality of test cases corresponding to the application program can be acquired first. The method comprises the steps of obtaining a plurality of tests, wherein the steps comprise determining a test scene and/or a functional module contained in a first version of application program source code, and obtaining a plurality of test cases according to the test scene and/or the functional module. In the embodiment of the present invention, the first version refers to an initial version of the application program, and the current version may be the first version or another version different from the first version.
It should be appreciated that multiple test cases may be made to overlay functional modules contained in the application source code in order to ensure the integrity of the application test. Specifically, as an alternative implementation manner, the functional module included in the source code of the application program of the first version may be determined first, and then the test case corresponding to the functional module may be obtained as a plurality of test cases to be used finally. For example, assuming that the functional module included in the application source code includes a data processing module, a data storage module, and a log module, after determining the functional module, a plurality of test cases corresponding to the data processing module, the data storage module, and the log module may be directly obtained as a plurality of test cases to be finally used. The acquisition of the plurality of test cases refers to the acquisition of test cases compiled by test case writers aiming at the functional modules.
As another alternative implementation, to ensure the comprehensiveness of the application testing, multiple test cases may be determined based on the test scenario. For ease of understanding, for example, it is assumed that the application is a commodity sales application, and it should be understood that the commodity sales application has a user access amount a (test scenario 1) on a common workday or holiday, and a user access amount B (test scenario 2) on a commodity sales promotion day, where B is much larger than a, and requirements on performance, stability, and the like of the application are different, so different test cases may be selected for different test scenarios, so as to be a plurality of test cases to be used finally.
As a further alternative implementation manner, the two conditions of the functional module and the test scenario can be combined, and on the basis of ensuring that a plurality of test cases cover the functional module contained in the source code of the application program, corresponding test cases are selected as a plurality of test cases to be finally used according to different test scenarios, so that the comprehensiveness of the application program test is ensured under the condition of ensuring that the application program test is successfully completed.
After the plurality of test cases are obtained, the plurality of test cases are executed in the first version of application source code. In the process of executing the plurality of test cases, the detection tool can be used for determining code row coverage information of the plurality of test cases, namely determining which code rows in the source code of the application program are covered by which test cases, and can be simply understood as determining the corresponding relation between the code rows and the test cases. At this time, the code line coverage information of the plurality of test cases obtained is stored.
Wherein the selection of the detection tool may be determined based on the programming language type of the application source code. In particular, for example, assuming that the programming language type of the application source code is Python language, the detection tool may be coverage. ‌ it can help the developer identify which code lines, ‌ statements, or branches are not covered by the test, ‌ to guide the developer in writing more test cases, ‌ to improve code quality. Assuming that the programming language type of the application source code is C/C++ language, the detection tool may be gcov, and the gcov is a tool in GCC (GNU Compiler Collection, GNU compiler set). Assuming the programming language type of the application source code is Java, the detection tool may be JaCoCo or the like, not to mention here, the JaCoCo is a tool for computing Java code coverage, ‌ it provides a number of ways to collect and report code coverage data, ‌ helps developers know which parts of the code are covered by their test.
It should be noted that, when the current version of the application source code is changed, in response to the change operation of the current version of the application source code, a plurality of lines of codes corresponding to the change operation with respect to the first version of the application source code are determined, where the plurality of lines of codes are changed in the source code, for example, assuming that the current version of the application source code contains 500 lines of codes in total, and lines 200-300 of the lines are changed, the "lines of codes" refers to the lines 200-300 of the lines of codes. In this process, the changed lines of code may be obtained by comparing the first version with the changed second version of the application source code.
If the current version is the first version, after the 'multi-line code' is obtained, the target test case to be executed can be determined directly according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases and the multi-line code.
If the current version is other than the first version, the code line coverage information of the plurality of test cases stored before can be directly obtained, and the code line coverage information of the plurality of test cases does not need to be determined by executing the plurality of test cases again, so that the working efficiency is improved. And then, determining the target test case to be executed according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases and the plurality of lines of codes.
The dependency relationship among the test cases is artificially configured when the test cases are generated. It should be understood that, after the code lines of the plurality of lines are changed relative to the code lines of the source code, in order to ensure the accuracy of the application program test, part of the test cases related to the code lines can be determined in the plurality of test cases, and when the part of test cases are determined, not only the corresponding relationship between the test cases and the code lines, but also the dependency relationship among the plurality of test cases needs to be considered, namely, the target test cases to be executed are determined according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases and the code lines.
For ease of understanding, for example, assume that "multiple lines of code" are 200 th-300 th lines of code in the source code of the first version of the application program, and according to code line coverage information of multiple test cases, it can be determined that the test cases corresponding to the multiple lines of code include test case a and test case B, and the test case a needs to be executed depending on test case C, and the test case B needs to be executed depending on test case D, then the new test case that is finally determined, that is, the target test case to be executed includes test case a, test case B, test case C, and test case D at the same time.
Further, after the target test case to be executed is determined, the target test case can be directly executed in the changed application program source code of the second version. Based on the above, the application program testing method provided by the embodiment of the invention can obtain the corresponding relation between the test cases and the code lines after obtaining the code line coverage information of the plurality of test cases obtained after executing the plurality of test cases in the application program source code of the first version. And when the current version of the application program source code is changed, selecting a target test case related to a plurality of lines of codes corresponding to the changing operation from a plurality of test cases relative to the first version of the application program source code, and then directly executing the target test case corresponding to the plurality of lines of codes in the changed second version of the application program source code without adopting the plurality of test cases to test the changed source code again, thereby improving the test efficiency.
FIG. 2 is a flowchart of determining a target test case to be executed, where, as shown in FIG. 2, the determining the target test case to be executed according to code line coverage information of a plurality of test cases, dependency relationships among the plurality of test cases and a plurality of lines of codes specifically includes the following steps:
201. generating a directed acyclic graph according to code line coverage information of a plurality of test cases and the dependency relationship among the plurality of test cases, wherein the plurality of test cases are determined to be used as a plurality of nodes in the directed acyclic graph, each node is associated with code line coverage information of a corresponding test case, and directed edges among the nodes represent the dependency relationship among the test cases.
202. And determining the target test case to be executed according to the directed acyclic graph and the plurality of lines of codes.
For ease of understanding, the following illustrates the dependency relationship between code line coverage information of a plurality of test cases and the plurality of test cases in conjunction with fig. 3:
In fig. 3, 4 test cases and 4 different functional modules are included. The 4 test cases are test case A, test case B, test case C and test case D, and the 4 functional modules are respectively a functional module 1 (corresponding to 1-500 lines of codes), a functional module 2 (corresponding to 1-200 lines of codes), a functional module 3 (corresponding to 1-100 lines of codes) and a functional module 4 (corresponding to 1-300 lines of codes). Wherein test case A covers the 200 th-300 th row codes in functional module 1, test case B covers the 400 th-500 th row codes in functional module 1, and test case B depends on test case A. Test case C covers the 20 th-100 th line code in functional module 2 and the 20 th-30 th line code in functional module 3. Test case D covers the 60 th-90 th line codes in functional module 3 and the 200 th-300 th line codes in functional module 4, and test case D depends on test case B and test case C.
After the code line coverage information of the plurality of test cases and the dependency relationship between the plurality of test cases are obtained, a directed acyclic graph can be generated based on the code line coverage information, and the directed acyclic graph can be specifically seen in fig. 4. In fig. 4, a total of 4 nodes are included, and the 4 nodes are used to represent test case a, test case B, test case C, and test case D, respectively. The directed edge between the test case A and the test case B indicates that the test case B depends on the test case A, the directed edge between the test case B and the test case D indicates that the test case D depends on the test case B, the directed edge between the test case C and the test case D indicates that the test case D depends on the test case C, and the "function module 1:200-300" beside the test case A indicates code line coverage information associated with the node of the test case A, wherein the specific content of the code line coverage information is that the test case A covers 200 th-300 th line codes in the function module 1, and the "function module 1:400-500" beside the test case B indicates code line coverage information associated with the node of the test case B, and the specific content of the code line coverage information is that the test case B covers 400 th-500 th line codes in the function module 1. "functional modules 2:20-100" beside test case C, functional modules 3:20-30 "represent code row coverage information associated with this node of test case C, where the specific content of the code row coverage information is that test case C covers 20 th-100 th row codes in functional module 2 and 20 th-30 th row codes in functional module 3. "functional modules 3:60-90" beside the test case D, and "functional modules 4:200-300" represent code line coverage information associated with the node of the test case D, where the specific content of the code line coverage information is that the test case D covers the 60 th-90 th line codes in the functional modules 3 and the 200 th-300 th line codes in the functional modules 4. In fig. 4, the two special nodes "start" and "end" are logical virtual nodes, and are used to represent the head and tail of the directed acyclic graph.
After the directed acyclic graph is obtained, determining a target test case to be executed according to the directed acyclic graph and a plurality of lines of codes, wherein the specific steps are that at least one test case covering the plurality of lines of codes is determined in the directed acyclic graph; and determining that the target test case comprises at least one test case and the test case on which the at least one test case depends respectively.
It should be understood that, by generating the directed acyclic graph according to the code line coverage information of the test cases and the dependency relationship between the test cases, the visualization effect of the information is increased, so that at least one test case covering multiple lines of codes and the test case on which the at least one test case depends can be found quickly and accurately, and in practical application, the at least one test case and the test case on which the at least one test case depends can be determined directly as the final target test case, so that the accuracy of the target test case is ensured. When the target test case is executed, the test case on the depended side in the target test case needs to be executed first, and then the test case on the depended side is executed, for example, if the target test case includes test case a, test case B and test case D, where the test case B depends on the test case a, and the test case D depends on the test case B, the target test case is executed sequentially according to the sequence of the test case a, the test case B and the test case D.
In practical applications, the modification operation of the source code of the first version of the application program may include the operations of modifying, adding and deleting the code line of the existing function module and the operation of adding a new function module.
Based on the above, in the embodiment of the present invention, the source code of the application program of the first version includes codes corresponding to each of the plurality of function modules, the changing operation includes an operation of adding a function module, and correspondingly, the changing operation includes a plurality of lines of codes corresponding to the changing operation including codes of the function module. At this time, a determination process of the target test case is performed with reference to fig. 5.
FIG. 5 is a further flowchart of determining a target test case to be executed according to an embodiment of the present invention, where, as shown in FIG. 5, determining the target test case to be executed specifically includes the following steps:
And acquiring a new test case generated aiming at the newly added functional module and the dependency relationship between the new test case and the existing multiple test cases.
502. And executing the new test case in the changed application program source code of the second version so as to determine the code line coverage information of the new test case.
503. And updating the directed acyclic graph according to the dependency relationship between the new test case and the plurality of test cases and the code row coverage information of the new test case.
504. And determining a new test case covering codes of the newly added functional module in the updated directed acyclic graph.
505. And determining the test cases on which the new test cases depend in the updated directed acyclic graph.
506. The target test cases are determined to comprise new test cases and test cases on which the new test cases depend.
It should be understood that, in practical application, if the operation of changing the source code of the first version of the application program is the operation of the newly added function module, then the code corresponding to the change operation is the code corresponding to the newly added function module. In specific implementation, because a new functional module exists, a corresponding new test case is generated aiming at the new functional module, and the dependency relationship between the new test case and a plurality of test cases is configured. For example, assuming that the functional module 5 is newly added on the basis of the embodiments provided in fig. 3 and 4, a test case E (i.e., a new test case) may be generated for the functional module 5, and the dependency relationship between the test case E and the test case a, the test case B, the test case C, and the test case D may be determined, respectively, for example, finally determining that the test case a depends on the test case E.
And then executing a new test case in the changed application program source code of the second version to determine code line coverage information of the new test case, and updating the previous directed acyclic graph according to the dependency relationship between the new test case and a plurality of test cases and the code line coverage information of the new test case, such as nodes corresponding to the new test case, connecting edges between the nodes are modified, the corresponding code line coverage information is associated for the new node, the code line coverage information associated with other existing nodes is modified, and the like. Assuming that the functional module 5 corresponds to 1-200 lines of code and the test case E covers 10-180 lines of code in the functional module 5 and 50-90 lines of code in the functional module 1, in combination with the above-mentioned dependency relationship "test case a depends on test case E", an updated directed acyclic graph can be obtained, see in particular fig. 6.
After the updated directed acyclic graph is obtained, the new test case covering the code of the newly added functional module and the test case on which the new test case depends can be determined in the updated directed acyclic graph, and the new test case and the test case on which the new test case depends are used as final target test cases, and the specific implementation manner of the process can refer to the embodiments and is not repeated herein. That is, for the change operation of the newly added functional module, the finally determined target test case not only includes the new test case designed for the newly added functional module, but also includes other test cases on which the new test case depends, so that comprehensive and accurate test can be performed for the change operation result.
FIG. 7 is a flowchart of determining code line coverage information of a plurality of test cases according to an embodiment of the present invention, where, as shown in FIG. 7, determining code line coverage information of a plurality of test cases specifically includes the following steps:
701. The method comprises the steps of obtaining at least one basic test case obtained by splitting a plurality of test cases and advanced test cases respectively depending on the at least one basic test case, wherein test configuration information contained in one test case comprises test configuration information contained in the split basic test case and test configuration information contained in a corresponding advanced test case, and each basic test case comprises common test configuration information in at least two test cases in the plurality of test cases.
702. And acquiring the dependency relationship among the optimized test cases, wherein the optimized test cases comprise at least one basic test case and advanced test cases respectively depending on the at least one basic test case.
703. And acquiring code line coverage information of the plurality of test cases obtained after executing the optimized plurality of test cases in the first version of application program source code.
In practical application, a plurality of test cases which are generated initially may contain some common test configuration information, for example, the test case F, the test case G and the test case H which are generated initially all contain the same test environment configuration information, and the difference is that the test configuration information such as test data, test steps and the like in each test case is different. In practical application, if the test case F, the test case G, and the test case H are executed respectively, the same test configuration information is repeatedly executed multiple times, which increases resource consumption and test time.
Therefore, in this embodiment, for a plurality of test cases that are initially generated, extraction of "the same test configuration information" of all or part of the test cases may be performed, as one basic test case corresponding to the test cases, and "the difference test configuration information" is used as a further test case, so as to complete optimization of the plurality of test cases that are initially generated. For example, test case F splits to obtain a base test case a and a further test case b depending on the base test case a, test case G splits to obtain a base test case a and a further test case c depending on the base test case a, and test case H splits to obtain a base test case a and a further test case d depending on the base test case a. Thus, the optimized plurality of test cases includes a base test case a, and a further test case b, a further test case c, and a further test case d, which depend on the base test case a, respectively.
At this time, the basic test case a is executed in the source code of the first version of the application program, and the advanced test case b, the advanced test case c and the advanced test case d are executed respectively, that is, the test configuration information in the basic test case a only needs to be executed once, multiple repeated execution is not needed, so that the resource consumption and the test time are reduced, and the test efficiency is improved.
The generation of the directed acyclic graph may be based on these optimized test cases.
In order to more intuitively understand the application program testing method provided by the embodiment of the present invention, a specific embodiment of an application program testing system is provided below to describe the scheme of the present invention:
fig. 8 is a schematic structural diagram of an application program testing system according to an embodiment of the present invention. As shown in fig. 8, the system includes a code coverage information collection unit 81, a directed acyclic graph construction unit 82, and a test case selection optimization unit 83.
The code coverage information collection unit 81 includes a code coverage information collection tool and a data analysis engine. In practical application, the code coverage information acquisition tool is used for acquiring code row coverage information of a plurality of test cases, and the data analysis engine is used for analyzing the code row coverage information of the plurality of test cases to obtain a corresponding relation table of the test cases and the code rows in the source code.
In particular, as shown in fig. 9, the code coverage information collecting unit 81 includes at least the following steps in actual application:
determining the programming language type of the source code of the application program;
If the programming language type is Python language, adopting coverage. Py as a code coverage information acquisition tool, or if the programming language type is Java language, adopting JaCoCo as a code coverage information acquisition tool, or if the programming language type is C/C++ language, adopting GCC as a code coverage information acquisition tool, or if the programming language type is other languages, adopting a corresponding detection tool as a code coverage information acquisition tool. When the implementation is carried out, after the code coverage information acquisition tool is selected, the code coverage information acquisition tool is integrated into the whole application program test framework;
Executing a plurality of test cases in the source code of the first version of the application program, in the process, determining code line coverage information of the plurality of test cases by using a code coverage information acquisition tool, and generating a code line coverage information analysis report, wherein the code line coverage information analysis report identifies which code lines are covered by which test cases;
And analyzing the code line coverage information analysis report by using a data analysis engine to generate a corresponding relation table of the test cases and the code lines in the source codes.
Based on the above, when the embodiment of the invention faces different programming language types, different code coverage information acquisition tools can be selected, so that the method is suitable for various application environments and has good expansibility and practicability.
The directed acyclic graph construction unit 82 is configured to node-arrange a plurality of test cases, determine a dependency relationship between the plurality of test cases, and generate a directed acyclic graph according to code line coverage information (i.e., a table of correspondence between test cases obtained by the code coverage information collection unit 81 and code lines in source code) of the plurality of test cases and the dependency relationship between the plurality of test cases. The node arrangement of the test cases is to organize and arrange the test cases according to a certain logic and sequence so as to ensure the orderly execution of the test work and the accuracy of the test result.
The test case selection optimizing unit 83 is configured to check the code change line of the current PR, perform code change analysis to obtain a plurality of lines of codes of the current change, determine a target test case to be executed according to the directed acyclic graph (including code line coverage information of a plurality of test cases and dependency relationships among the plurality of test cases) and the plurality of lines of codes obtained by the directed acyclic graph constructing unit 82, and execute the target test case in the changed application source code.
The system shown in fig. 8 may perform the steps performed by the application testing method in the foregoing embodiment, and the detailed execution process and technical effects are referred to the description in the foregoing embodiment, which is not repeated herein.
An application testing apparatus of one or more embodiments of the present invention will be described in detail below. Those skilled in the art will appreciate that these means may be configured by the steps taught by the present solution using commercially available hardware components.
Fig. 10 is a schematic structural diagram of an application program testing device according to an embodiment of the present invention, and as shown in fig. 10, the device includes an obtaining module 11, a response module 12, and a determining module 13.
An acquiring module 11, configured to acquire code line coverage information of a plurality of test cases obtained after the plurality of test cases are executed in source code of an application program in a first version;
a response module 12, configured to respond to a change operation of an application source code of a current version, and determine a plurality of lines of code corresponding to the change operation with respect to the application source code of the first version;
And the determining module 13 is configured to determine a target test case to be executed according to the code line coverage information of the plurality of test cases, the preset dependency relationship among the plurality of test cases, and the plurality of lines of codes, so as to execute the target test case in the changed application source code of the second version.
Wherein optionally the current version is the first version or another version different from the first version.
The determining module 13 is specifically configured to generate a directed acyclic graph according to the code line coverage information of the multiple test cases and the dependency relationship between the multiple test cases, and determine a target test case to be executed according to the directed acyclic graph and the multiple lines of codes, where the multiple test cases are determined to be multiple nodes in the directed acyclic graph, each node is associated with the code line coverage information of the corresponding test case, and directed edges between the nodes represent the dependency relationship between the test cases.
The determining module 13 is specifically configured to determine, in the directed acyclic graph, at least one test case covering the multiple lines of code, determine, in the directed acyclic graph, a test case on which the at least one test case depends, and determine that the target test case includes the at least one test case and a test case on which the at least one test case depends.
Optionally, the source code of the application program of the first version includes codes corresponding to a plurality of function modules, the changing operation includes an operation of adding a function module, and correspondingly, the plurality of lines of codes include codes of the added function module. Based on this, the obtaining module 11 is further configured to obtain a new test case generated for the new function module, and a dependency relationship between the new test case and the multiple test cases.
The determining module 13 is configured to execute the new test case in the changed second version of application source code, so as to determine code line coverage information of the new test case, and update the directed acyclic graph according to the dependency relationship between the new test case and the multiple test cases and the code line coverage information of the new test case.
The determining module 13 is further specifically configured to determine, in the updated directed acyclic graph, the new test case covering the code of the new added function module, determine, in the updated directed acyclic graph, the test case on which the new test case depends, and determine that the target test case includes the new test case and the test case on which the new test case depends.
The obtaining module 11 is further configured to obtain at least one basic test case obtained by splitting the plurality of test cases and a further test case that depends on the at least one basic test case, where test configuration information included in one test case includes test configuration information included in the split basic test case and test configuration information included in a corresponding further test case, each basic test case includes common test configuration information in at least two test cases in the plurality of test cases, and obtain a dependency relationship between the plurality of optimized test cases, where the plurality of optimized test cases includes the at least one basic test case and the further test case that depends on the at least one basic test case.
The obtaining module 11 is specifically configured to obtain code line coverage information of the plurality of test cases obtained after executing the optimized plurality of test cases in the first version of application source code, determine a detection tool to be used according to a programming language type of the application source code, and determine the code line coverage information of the plurality of test cases based on the detection tool.
The apparatus shown in fig. 10 may perform the steps provided in the foregoing embodiments, and detailed execution and technical effects are referred to the descriptions in the foregoing embodiments, which are not repeated herein.
In one possible design, the configuration of the application testing apparatus shown in fig. 10 may be implemented as an electronic device. As shown in fig. 11, the electronic device may include a processor 21, a memory 22, and a communication interface 23. Wherein the memory 22 has stored thereon executable code which, when executed by the processor 21, causes the processor 21 to at least implement the application test method as provided in the previous embodiments.
Additionally, embodiments of the present invention provide a non-transitory machine-readable storage medium having executable code stored thereon, which when executed by a processor of an electronic device, causes the processor to at least implement an application testing method as provided in the previous embodiments.
In addition, an embodiment of the present invention provides a computer program product comprising a computer program which, when executed by a processor of an electronic device, enables the processor to implement at least an application program testing method as provided in the previous embodiment.
The apparatus embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separate. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art will understand and implement the present invention without undue burden.
From the above description of embodiments, it will be apparent to those skilled in the art that the embodiments may be implemented by adding necessary general purpose hardware platforms, or may be implemented by a combination of hardware and application programs. Based on such understanding, the foregoing aspects, in essence and portions contributing to the art, may be embodied in the form of a computer program product, which may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
It should be noted that the above-mentioned embodiments are merely for illustrating the technical solution of the present invention, and not for limiting the same, and although the present invention has been described in detail with reference to the above-mentioned embodiments, it should be understood by those skilled in the art that the technical solution described in the above-mentioned embodiments may be modified or some technical features may be equivalently replaced, and these modifications or substitutions do not make the essence of the corresponding technical solution deviate from the spirit and scope of the technical solution of the embodiments of the present invention.

Claims (10)

1.一种应用程序测试方法,其特征在于,包括:1. An application testing method, comprising: 获取在第一版本的应用程序源代码中执行多个测试用例后得到的所述多个测试用例的代码行覆盖信息,其中,所述多个测试用例根据测试场景和/或所述第一版本的应用程序源代码中包含的功能模块确定;Obtaining code line coverage information of multiple test cases obtained after executing the multiple test cases in the first version of the application source code, wherein the multiple test cases are determined according to the test scenarios and/or the functional modules included in the first version of the application source code; 响应于对当前版本的应用程序源代码的变更操作,确定相对于所述第一版本的应用程序源代码,所述变更操作对应的多行代码;In response to a change operation on the current version of the application source code, determining a plurality of lines of code corresponding to the change operation relative to the first version of the application source code; 根据所述多个测试用例的代码行覆盖信息、预设的所述多个测试用例之间的依赖关系和所述多行代码,确定待执行的目标测试用例,以在变更后的第二版本的应用程序源代码中执行所述目标测试用例;Determine a target test case to be executed according to the code line coverage information of the multiple test cases, the preset dependency relationship between the multiple test cases and the multiple lines of code, so as to execute the target test case in the changed second version of the application source code; 所述根据所述多个测试用例的代码行覆盖信息、所述多个测试用例之间的依赖关系和所述多行代码,确定待执行的目标测试用例,包括:根据所述多个测试用例的代码行覆盖信息和所述多个测试用例之间的依赖关系,生成有向无环图,其中,确定所述多个测试用例作为所述有向无环图中的多个节点,每个节点关联有相应测试用例的代码行覆盖信息,节点之间的有向边表示测试用例之间的依赖关系;根据所述有向无环图和所述多行代码,确定待执行的目标测试用例。The method of determining target test cases to be executed based on the code line coverage information of the multiple test cases, the dependencies between the multiple test cases and the multiple lines of code includes: generating a directed acyclic graph based on the code line coverage information of the multiple test cases and the dependencies between the multiple test cases, wherein the multiple test cases are determined as multiple nodes in the directed acyclic graph, each node is associated with the code line coverage information of the corresponding test case, and the directed edges between the nodes represent the dependencies between the test cases; and determining the target test cases to be executed based on the directed acyclic graph and the multiple lines of code. 2.根据权利要求1所述的方法,其特征在于,所述当前版本为所述第一版本或不同于所述第一版本的另一版本。2 . The method according to claim 1 , wherein the current version is the first version or another version different from the first version. 3.根据权利要求1所述的方法,其特征在于,所述根据所述有向无环图和所述多行代码,确定待执行的目标测试用例,包括:3. The method according to claim 1, characterized in that the step of determining a target test case to be executed based on the directed acyclic graph and the plurality of lines of code comprises: 在所述有向无环图中确定覆盖所述多行代码的至少一个测试用例;Determining at least one test case covering the plurality of lines of code in the directed acyclic graph; 在所述有向无环图中确定所述至少一个测试用例各自依赖的测试用例;Determining in the directed acyclic graph the test cases on which each of the at least one test case depends; 确定所述目标测试用例包括所述至少一个测试用例以及所述至少一个测试用例各自依赖的测试用例。It is determined that the target test case includes the at least one test case and the test cases on which the at least one test case depends. 4.根据权利要求1所述的方法,其特征在于,所述第一版本的应用程序源代码中包括多个功能模块各自对应的代码,所述变更操作包括:新增功能模块的操作,对应地,所述多行代码包括:所述新增功能模块的代码;4. The method according to claim 1, characterized in that the first version of the application source code includes codes corresponding to multiple functional modules, the change operation includes: an operation of adding a new functional module, and correspondingly, the multiple lines of code include: the code of the newly added functional module; 所述方法还包括:The method further comprises: 获取针对所述新增功能模块生成的新测试用例,以及所述新测试用例与所述多个测试用例之间的依赖关系;Acquire a new test case generated for the newly added functional module, and a dependency relationship between the new test case and the multiple test cases; 在变更后的第二版本的应用程序源代码中执行所述新测试用例,以确定所述新测试用例的代码行覆盖信息;Execute the new test case in the changed second version of the application source code to determine code line coverage information of the new test case; 根据所述新测试用例与所述多个测试用例之间的依赖关系以及所述新测试用例的代码行覆盖信息,更新所述有向无环图。The directed acyclic graph is updated according to the dependency relationship between the new test case and the multiple test cases and the code line coverage information of the new test case. 5.根据权利要求4所述的方法,其特征在于,所述根据所述有向无环图和所述多行代码,确定待执行的目标测试用例,包括:5. The method according to claim 4, characterized in that determining the target test case to be executed according to the directed acyclic graph and the multiple lines of code comprises: 在更新后的有向无环图中确定覆盖所述新增功能模块的代码的所述新测试用例;Determine the new test case covering the code of the newly added functional module in the updated directed acyclic graph; 在所述更新后的有向无环图中确定所述新测试用例依赖的测试用例;Determining, in the updated directed acyclic graph, the test cases on which the new test case depends; 确定所述目标测试用例包括所述新测试用例和所述新测试用例依赖的测试用例。It is determined that the target test case includes the new test case and the test case on which the new test case depends. 6.根据权利要求1所述的方法,其特征在于,所述方法还包括:6. The method according to claim 1, characterized in that the method further comprises: 获取拆分所述多个测试用例得到的至少一个基础测试用例以及分别依赖于所述至少一个基础测试用例的进阶测试用例,其中,一个测试用例中包含的测试配置信息包括被拆分出的基础测试用例中所包含的测试配置信息以及对应的进阶测试用例中所包含的测试配置信息,每个基础测试用例中包括所述多个测试用例中的至少两个测试用例中的共同测试配置信息;Obtain at least one basic test case obtained by splitting the multiple test cases and advanced test cases that are respectively dependent on the at least one basic test case, wherein the test configuration information contained in a test case includes the test configuration information contained in the split basic test case and the test configuration information contained in the corresponding advanced test case, and each basic test case includes common test configuration information in at least two test cases among the multiple test cases; 获取优化后的多个测试用例之间的依赖关系,其中,所述优化后的多个测试用例包括所述至少一个基础测试用例以及分别依赖于所述至少一个基础测试用例的进阶测试用例;Obtaining a dependency relationship between the optimized multiple test cases, wherein the optimized multiple test cases include the at least one basic test case and advanced test cases that are respectively dependent on the at least one basic test case; 所述获取在第一版本的应用程序源代码中执行多个测试用例后得到的所述多个测试用例的代码行覆盖信息,包括:The acquiring of code line coverage information of the multiple test cases obtained after executing the multiple test cases in the first version of the application source code includes: 获取在第一版本的应用程序源代码中执行所述优化后的多个测试用例后得到的所述多个测试用例的代码行覆盖信息。Code line coverage information of the multiple test cases obtained after executing the optimized multiple test cases in the first version of the application source code is obtained. 7.根据权利要求1-6中任一项所述的方法,其特征在于,所述获取在第一版本的应用程序源代码中执行多个测试用例后得到的所述多个测试用例的代码行覆盖信息:7. The method according to any one of claims 1 to 6, characterized in that the step of obtaining code line coverage information of the multiple test cases obtained after executing the multiple test cases in the first version of the application source code is: 在第一版本的应用程序源代码中执行多个测试用例;Execute multiple test cases on the first version of the application source code; 根据所述应用程序源代码的编程语言类型,确定采用的检测工具;Determine the detection tool to be used according to the programming language type of the source code of the application program; 基于所述检测工具确定所述多个测试用例的代码行覆盖信息。Code line coverage information of the multiple test cases is determined based on the detection tool. 8.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的应用程序测试方法。8. An electronic device, characterized in that it comprises: a memory, a processor, and a communication interface; wherein the memory stores executable code, and when the executable code is executed by the processor, the processor executes the application testing method as described in any one of claims 1 to 7. 9.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的应用程序测试方法。9. A non-transitory machine-readable storage medium, characterized in that executable code is stored on the non-transitory machine-readable storage medium, and when the executable code is executed by a processor of an electronic device, the processor executes the application testing method as described in any one of claims 1 to 7. 10.一种计算机程序产品,其特征在于,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的应用程序测试方法。10. A computer program product, comprising: a computer program, which, when executed by a processor of an electronic device, causes the processor to execute the application program testing method according to any one of claims 1 to 7.
CN202411251848.1A 2024-09-06 2024-09-06 Application program testing method, device, storage medium and program product Active CN118779247B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411251848.1A CN118779247B (en) 2024-09-06 2024-09-06 Application program testing method, device, storage medium and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411251848.1A CN118779247B (en) 2024-09-06 2024-09-06 Application program testing method, device, storage medium and program product

Publications (2)

Publication Number Publication Date
CN118779247A CN118779247A (en) 2024-10-15
CN118779247B true CN118779247B (en) 2025-02-18

Family

ID=92981128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411251848.1A Active CN118779247B (en) 2024-09-06 2024-09-06 Application program testing method, device, storage medium and program product

Country Status (1)

Country Link
CN (1) CN118779247B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116909906A (en) * 2023-07-21 2023-10-20 网易传媒科技(北京)有限公司 Test case determination method, device, medium and computing equipment
CN117290209A (en) * 2023-08-29 2023-12-26 格兰菲智能科技(北京)有限公司 Test case generation method, chip verification system and medium

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6536036B1 (en) * 1998-08-20 2003-03-18 International Business Machines Corporation Method and apparatus for managing code test coverage data
GB2508643A (en) * 2012-12-07 2014-06-11 Ibm Method for Performing a Regression Test after Modifying Source Code File
CN103294594B (en) * 2013-05-08 2016-01-06 南京大学 A kind of wrong report of the static analysis based on test removing method
CN110109816A (en) * 2018-02-01 2019-08-09 华为技术有限公司 Test cases selection method and apparatus
US10678678B1 (en) * 2018-03-12 2020-06-09 Amazon Technologies, Inc. Ordered test execution based on test coverage
US20190294536A1 (en) * 2018-03-26 2019-09-26 Ca, Inc. Automated software deployment and testing based on code coverage correlation
US11487645B2 (en) * 2020-12-14 2022-11-01 Sap Se Predictive test case coverage
CN112965903A (en) * 2021-03-09 2021-06-15 北京百度网讯科技有限公司 Test method, test device, electronic equipment and computer readable storage medium
CN113127357B (en) * 2021-04-21 2023-10-03 北京百度网讯科技有限公司 Unit test method, apparatus, device, storage medium, and program product
US11734159B2 (en) * 2021-08-19 2023-08-22 Sap Se Ranking test cases specific to changes in software code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116909906A (en) * 2023-07-21 2023-10-20 网易传媒科技(北京)有限公司 Test case determination method, device, medium and computing equipment
CN117290209A (en) * 2023-08-29 2023-12-26 格兰菲智能科技(北京)有限公司 Test case generation method, chip verification system and medium

Also Published As

Publication number Publication date
CN118779247A (en) 2024-10-15

Similar Documents

Publication Publication Date Title
KR101989802B1 (en) Method for performing test using test case and apparatus for the same
US20180246803A1 (en) Targeted software testing
JP2024536124A (en) Checking source code validity when updating code
US10705807B2 (en) Application testing
US10915302B2 (en) Identification and visualization of associations among code generated from a model and sources that affect code generation
CN112882751B (en) CUDA program transplantation method, device, electronic device and storage medium
US20210263833A1 (en) Code Generation Platform with Debugger
US20050137839A1 (en) Methods, apparatus and programs for system development
US20210182038A1 (en) Format-specific data processing operations
US7500149B2 (en) Generating finite state machines for software systems with asynchronous callbacks
CN111240987A (en) Migration program detection method and device, electronic equipment and computer readable storage medium
CN110737438A (en) data processing method and device
CN118779247B (en) Application program testing method, device, storage medium and program product
CN115469844A (en) Code processing method, system, computer cluster, medium, and program product
US11740895B2 (en) Generation of software program repair explanations
CN110737429A (en) modular compiling method and device utilizing Makefile self-dependent relationship
CN112559019B (en) Incremental file updating method and device
JP2022022115A (en) Automated software program repair
US12164892B2 (en) Methods and devices for compiler function fusion
CN119719711A (en) Operator verification method, device, electronic device, storage medium and program product
Törnqvist et al. Enabling synchronization between Cypress end-to-end tests and Gherkin requirement descriptions in Javascript applications
CN119782145A (en) Method and device for generating test cases
Dubey et al. Amalgamation of automated test case generation techniques with data mining techniques: A survey
Matsushita et al. Program‐delta oriented debugging supporting method DMET
CN119292929A (en) Test coverage optimization method, device and electronic equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant