WO2022100447A1 - 单元测试代码结构自动解析与路径分析方法 - Google Patents
单元测试代码结构自动解析与路径分析方法 Download PDFInfo
- Publication number
- WO2022100447A1 WO2022100447A1 PCT/CN2021/127039 CN2021127039W WO2022100447A1 WO 2022100447 A1 WO2022100447 A1 WO 2022100447A1 CN 2021127039 W CN2021127039 W CN 2021127039W WO 2022100447 A1 WO2022100447 A1 WO 2022100447A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- path
- node
- analysis
- function
- nodes
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Definitions
- the invention relates to the software testing field of computer software engineering, in particular to a unit testing code structure automatic analysis and path analysis method.
- BPEL4WS is based on simple path coverage, while EvoSuite It can only analyze branch coverage and statement coverage. Among all types of coverage in software testing, path coverage is the strongest coverage, with stronger error correction capabilities, and can more effectively detect software flaws and errors.
- the first step to achieve unit test path coverage is to analyze the program to obtain the path to be covered, program flow chart and other related information, but most of the existing technologies require manual participation, which greatly increases the testing cost .
- the invention provides a unit testing code structure automatic analysis and path analysis method.
- the purpose of the present invention is to design a reasonable unit test code automatic parsing and path analysis method to help software testers to quickly obtain the structure of the program that needs to be covered under the path coverage criterion, path information and path coverage analysis of test cases, thereby Use this information to generate test cases to better detect possible bugs in the test program and fix program vulnerabilities.
- the object of the present invention is achieved by at least one of the following technical solutions.
- the unit test code structure automatic parsing and path analysis method includes the following steps:
- step S3 analyze the set of small segment paths obtained in step S2, and replace the part including nesting to obtain the set of small segment paths that do not include nesting;
- step S4 based on the set of small segment paths obtained in step S3 that does not include nesting, initialize the path table between the nodes, and use the depth-first DFS algorithm to update the path table, and obtain the path set according to the path table;
- step S5 if all path sets are covered, that is, all path sets have been updated, skip to step S6, otherwise skip to step S4;
- step S2 the compiled bytecode is traversed, and in the traversal process, the nodes that need to be instrumented include the beginning of the function, the end of the function, the general execution statement segment, the branch statement, the loop statement, and the function or class. Nested statements.
- the preset class insertion function Data.add(temp) is used to implement the instrumentation of the node, where temp represents the string of node information and node encoding, and Data is the path information.
- temp represents the string of node information and node encoding
- Data is the path information.
- N Stored class; in the process of encoding each node of the path, a global variable N is set, and its initial value is set to 0.
- N N + 1 update value
- Branch loop statements include if, switch, for, and while.
- step S2 preprocessing is performed while traversing the compiled bytecode, and the node code of the instrumentation and the constraint expression information appearing in the branch statement, loop statement, and function nesting are obtained, and the The variable information is backtracked to find the original input variable expression, which is convenient for subsequent analysis of path feasibility.
- step S2 every time the node traversed to the instrumentation will be stored, and a small path between two nodes will be formed according to the traversal order, for example, the following program example:
- a multi-segment path such as (A, invoke.C) (invoke.C, B) will be formed, which is convenient for subsequent replacement.
- step S3 on the basis of the small-segment path set composed of pairs of nodes obtained in step S2, traverse the small-segment path set, find a path marked with a function call label in the path set, and obtain the corresponding function through the label.
- the path set of the function path set is used to replace the path marked with the function call label in the original path set to form a small segment path set without function nesting or class nesting.
- step S4 the path table M between the nodes is initialized using the set information obtained in step S3 that does not include the nested small segment path set, and the number of rows and columns of the path table M are the number of nodes; Then, using the depth-first algorithm DFS, taking the starting node of the function as the starting point of the path, the path table M is depth-first traversed according to the adjacency relationship between the nodes, and the traversed nodes are recorded during the traversal process. When the current traversal is completed, the recorded node passed by the current traversal is taken out and recorded as a complete path, and then the traversal is performed again, and all other complete paths are generated according to the same method.
- the pseudocode of step S4 is as follows:
- the top node of the stack is popped:
- the path table M represents the adjacency relationship between path nodes, and each column and row represents whether there is a path between the nodes, wherein the leftmost column represents the node at the starting point of the path, and the top row represents the node at the end point of the path. For a cell, if there is a path to the node corresponding to the row of the cell to reach the node corresponding to the column of the cell, the value of the cell is set to 1, otherwise it is 0.
- step S5 due to the existence of loop statements, the number of paths in the unit program may increase sharply, and the number of paths that need to be covered in the end cannot be determined. K times, determine the set of paths that need to be covered, for example:
- step S6 after obtaining all path coding information through step S4 and step S5, a tree structure diagram of the node will be constructed through statistical analysis of the path node information, thereby obtaining a complete flow chart of the test unit program. ,details as follows:
- the unit code to be tested is compiled and processed to obtain the bytecode; then the bytecode is traversed to determine the judgment, loop branch, function nesting, etc. of the tested program , Instrument the mark in the program, and obtain the symbol code at the branch node and other data references and calculation expressions, etc., while traversing the bytecode, obtain the node information of the two connected nodes between the marked nodes, and obtain the set of paths of the small segment of the tested program.
- the complete set of small-segment paths is obtained, and then the path table is initialized with the small-segment path set, and the complete path table is obtained by using the depth-first search algorithm. Finally, the method will be used in the obtained constraint expression. On the basis, combined with the path branch information, the constraint expressions under the feasible path are analyzed, the infeasible paths are eliminated, the final obtained path set is output, and the final program flow chart CFG is obtained through the path node synthesis algorithm.
- the present invention has the following advantages and technical effects:
- the invention adopts the method of automatically instrumenting the marking code and analyzing the compiled bytecode, which can obtain the internal information of the nested function existing in the tested function, form a complete path, and use the obtained path constraint expression to eliminate those redundant
- the non-coverable path reduces the pressure of subsequent generation of path coverage test cases, and the method can also determine the path covered by test cases in real time and provide testers with visual flow chart information.
- Applying the related method of the present invention is relatively convenient, does not require the tester to have a deep understanding of the logic and other laws of the program to be tested, and has strong ease of use. application space.
- the technical means adopted in the present invention can realize the automatic analysis and path analysis of the actual engineering code unit program without manual participation. On the one hand, it can automatically instrument the program, analyze the program structure, and obtain the path information that needs to be covered. It can automatically analyze the paths covered by test cases and provide important information such as evaluation functions for the path coverage algorithm, which significantly improves the efficiency of path coverage test case generation.
- FIG. 1 is a flowchart of a method for automatic parsing and path analysis of a unit test code structure in an embodiment of the present invention.
- FIG. 2 is a schematic diagram of a visualization result of a path set and a flowchart in an embodiment of the present invention.
- Computer computer new Computer(a, b);
- the dependent class is Computer, and the code is as follows:
- the unit test code structure automatic analysis and path analysis method includes the following steps:
- the nodes that need to be instrumented include the beginning of the function, the end of the function, the general execution statement segment, the branch statement, the loop statement, and the nested statement of the function or class;
- the preset class insertion function Data.add(temp) is used to implement the instrumentation of the node, where temp represents the string of node information and node encoding, and Data is the class of path information storage ;
- Branch loop statements include if, switch, for, and while.
- Preprocessing is performed while traversing the compiled bytecode, and the node code of the instrumentation and the constraint expression information appearing in the branch statement, loop statement, and function nesting are obtained, and the variable information in it is backtracked to find out The original input variable expression is convenient for subsequent analysis of path feasibility.
- a node Whenever a node is traversed to the instrumentation, it will be stored, and a small segment path between two nodes will be formed according to the traversal order, including function nesting and class nested nodes. Use the function call label invoke tag to replace the small segment path, which is convenient for subsequent replacement.
- the asm library is used to traverse the compiled code to be tested, so as to implement the instrumentation of the code and the acquisition of the small path set.
- the code after instrumentation is as follows:
- com/moi/test/sample/Single.init:START is the node information expression
- com/moi/test/sample is the package name of the class
- Single corresponds to the class name
- init corresponds to the function name where the node is located
- after ":" is the label of the node
- START represents the starting position of the function
- END represents the end position of the function
- !L1502635287 represents the value of the corresponding LABEL in the bytecode
- the specific value is determined by the bytecode.
- Computer var3 new Computer(var0, var1);
- step S3 analyze the set of small segment paths obtained in step S2, and replace the part including nesting to obtain the set of small segment paths that do not include nesting;
- step S2 On the basis of the small-segment path set composed of two nodes obtained in step S2, traverse the small-segment path set, find the path marked with the function call label in the path set, obtain the path set of the corresponding function through the label, and use the function
- the paths in the path set replace the paths marked with function call labels in the original path set, forming a set of small-segment paths without function nesting or class nesting.
- the set of small path segments composed of two or two nodes in the function to be tested will be obtained according to the source code logic as follows: ( The test function in the Single class is used as the function to be tested. )
- path 1 The left half of path 1 represents the node of the function to be tested, Single.test, and the Computer.sub with the label #INVOKE# in the right half is the external function called in Single.test, so first get the function of the called function.
- the path set of the called function is integrated into the path set of the function to be tested, so as to obtain a path set without function nesting.
- step S4 based on the set of small segment paths obtained in step S3 that does not include nesting, initialize the path table between nodes, and use the depth-first DFS algorithm to update the path table, and obtain the path set according to the path table;
- the path table M between nodes is initialized using the set information obtained in step S3 that does not include the nested small segment path set, and the number of rows and columns of the path table M are the number of nodes;
- the path table M represents the adjacency relationship between path nodes, each column and row represents whether there is a path between the nodes, wherein the leftmost column represents the node at the starting point of the path, and the top row represents the node at the end point of the path.
- the value of the cell is set to 1, otherwise it is 0.
- the path table M is depth-first traversed according to the adjacency relationship between the nodes, and the traversed nodes are recorded during the traversal process.
- the recorded node passed by the current traversal is taken out and recorded as a complete path, and then the traversal is performed again, and all other complete paths are generated according to the same method.
- a path table can be obtained by removing the nested path set, and a node information mapping table is made first for this, as shown in Table 1.
- a corresponding path table can be made, as shown in Table 2, if there is a path Lx->Ly, set the value of [Lx, Ly] to 1.
- step S5 if all path sets are covered, that is, all path sets have been updated, skip to step S6, otherwise skip to step S4;
- the K-loop loop path judgment method is adopted, that is, the maximum number of loops of all loops is K times by default, and it is determined that the number of paths to be covered needs to be covered.
- a collection of paths for example:
- the constraint expressions of the above-mentioned paths are analyzed, and the paths for which the constraint expressions cannot be solved are eliminated.
- the loop path judgment method of K-loop is used to alleviate the situation that loop statements generate a large number of paths. As follows:
- path 28 does not conform to the code logic and should be eliminated.
- step S4 After obtaining all the path coding information through step S4 and step S5, the tree structure diagram of the node will be constructed through the statistical analysis of the path node information, so as to obtain the complete flow chart of the test unit program, as follows:
- the present invention can find out the path set of the program under test, generate a corresponding flow chart, and visualize the results.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
| Single.test:START:L747 | L0 |
| Computer.init:START:L701 | L1 |
| Computer.init:END:L702 | L2 |
| Single.test:!L292917034:L750 | L3 |
| Single.test:L292917034:L749 | L4 |
| Single.test:L242355057:L751 | L5 |
| Single.test:!L455538610:L753 | L6 |
| Single.test:L455538610:L752 | L7 |
| Computer.div:START:L707 | L8 |
| Computer.div:END:L710 | L9 |
| Computer.sub:START:L705 | L10 |
| Computer.sub:END:L706 | L11 |
| Single.test:END:L758 | L12 |
| L0 | L1 | L2 | L3 | L4 | L5 | L6 | L7 | L8 | L9 | L10 | L11 | L12 | |
| L0 | 1 | ||||||||||||
| L1 | 1 | ||||||||||||
| L2 | 1 | 1 | |||||||||||
| L3 | 1 | ||||||||||||
| L4 | 1 | ||||||||||||
| L5 | 1 | 1 | |||||||||||
| L6 | 1 | ||||||||||||
| L7 | 1 | ||||||||||||
| L8 | 1 | ||||||||||||
| L9 | 1 | ||||||||||||
| L10 | 1 | ||||||||||||
| L11 | 1 | ||||||||||||
| L12 |
Claims (10)
- 单元测试代码结构自动解析与路径分析方法,其特征在于,包括以下步骤:S1、根据测试程序的语言,使用对应语言的编译器获取编译后的字节码;S2、遍历编译后的字节码,在重要语句前分别做插桩代码,同时获取结点信息与小段路径集合;S3、分析步骤S2中获取的小段路径集合,对其中包括嵌套的部分进行替换,得到不包括嵌套的小段路径集合;S4、以步骤S3中得到的不包括嵌套的小段路径集合为基础,初始化结点之间的路径表格,并利用深度优先DFS算法更新路径表格,并依据路径表格得到路径集合;S5、若所有路径集合都被覆盖即所有路径集合都已更新,跳至步骤S6,否则跳至步骤S4;S6、输出获取的路经集合与分析得到的程序流程图CFG。
- 根据权利要求1所述的单元测试代码结构自动解析与路径分析方法,其特征在于,步骤S2中,对编译后的字节码进行遍历,在遍历过程中,需要插桩的结点包括函数开头、函数结尾、一般执行语句段、分支语句、循环语句以及函数或类的嵌套语句。
- 根据权利要求2所述的单元测试代码结构自动解析与路径分析方法,其特征在于,当搜索到对应结点时,使用预设的类插入函数Data.add(temp)实现该结点的插桩,其中temp代表结点信息与结点编码的字符串,Data为路径信息存储的类;在对路径每个结点编码过程中,设置一个全局变量 N,其初始值设为0,每次遍历到特定结点时就将其编码赋值为 N,之后通过 N=N+1更新值;在遍历到函数开头、函数结尾以及分支循环语句时使用插桩语句对字节码进行插桩,将相对应的节点信息插入到相应位置;分支循环语句包括if、switch、for和while。
- 根据权利要求3所述的单元测试代码结构自动解析与路径分析方法,其特征在于:步骤S2中,在遍历编译后的字节码的同时进行预处理,获取插桩的结点编码以及分支语句、循环语句、函数嵌套中出现的约束表达式信息,同时对其中的变量信息进行回溯,找出原始的输入变量表达式,方便后续分析路径可行性。
- 根据权利要求4所述的单元测试代码结构自动解析与路径分析方法,其特征在于:步骤S2中,每当遍历到插桩的结点将进行存储,并按照遍历顺序组成两两结点之间的小段路径,其中包括函数嵌套、类的嵌套的结点使用函数调用标签标记代替该小段路径,方便后续进行替换。
- 根据权利要求5所述的单元测试代码结构自动解析与路径分析方法,其特征在于:步骤S3中,在步骤S2中获取的两两结点组成的小段路径集合的基础上,遍历小段路径集,找到路径集中带有函数调用标签标记的路径,通过该标签获取对应的函数的路径集合,使用该函数路径集中的路径替换原路径集中的带有函数调用标签标记的路径,形成没有函数嵌套或类的嵌套的小段路径集合。
- 根据权利要求6所述的单元测试代码结构自动解析与路径分析方法,其特征在于:步骤S4中,利用步骤S3中获取的不包括嵌套的小段路径集合的集合信息初始化结点之间的路径表格 M,路径表格 M的行数与列数均为结点个数;之后利用深度优先算法DFS,以函数的起始节点为路径起点,对路径表格M根据节点之间的邻接关系进行深度优先遍历,遍历过程中记录所遍历到的节点,当遍历到该函数的终止节点时,当前遍历结束,取出记录到的当前遍历所经过的节点并记为一条完整路径,之后重新进行遍历,按照相同方法生成其他所有完整路径。
- 根据权利要求7所述的单元测试代码结构自动解析与路径分析方法,其特征在于:所述路径表格 M表示的是路径节点之间的邻接关系,每列每行代表节点之间是否存在路径,其中最左列代表路径起点的节点,最上行代表路径终点的节点,对于一个单元格来说,若该单元格所在行所对应的节点存在一条路径能到达该单元格所在列所对应的节点,则该单元格的值置为1,否则为0。
- 根据权利要求7所述的单元测试代码结构自动解析与路径分析方法,其特征在于:步骤S5中,采用K-loop的循环路径判断方法,即默认所有循环的最大循环次数为K次,判定需要覆盖的路径集合;同时利用符号执行技术,分析路径的约束表达式,从而判定路径的可行性,去除不可行路径,优化得到最终需要覆盖的单元程序路径集合。
- 根据权利要求1~9任一项所述的单元测试代码结构自动解析与路径分析方法,其特征在于:步骤S6中,在通过步骤S4和步骤S5获取所有路径编码信息后,将通过对路径结点信息的统计分析,构建结点的树形结构图,从而得到测试单元程序的完整流程图,具体如下:首先,将找出每个结点前出现次数最多的前置结点,在流程图中将此结点的前置结点作为此结点的父节点;按照此规律,由起始节点开始,遍历所有未放置过的结点,构建树形结构,从而获取流程图信息。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/013,557 US20230185703A1 (en) | 2020-11-13 | 2021-10-28 | Automatic parsing and path analysis method for unit test code structure |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011267313.5A CN112380120B (zh) | 2020-11-13 | 2020-11-13 | 单元测试代码结构自动解析与路径分析方法 |
| CN202011267313.5 | 2020-11-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022100447A1 true WO2022100447A1 (zh) | 2022-05-19 |
Family
ID=74583804
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2021/127039 Ceased WO2022100447A1 (zh) | 2020-11-13 | 2021-10-28 | 单元测试代码结构自动解析与路径分析方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20230185703A1 (zh) |
| CN (1) | CN112380120B (zh) |
| WO (1) | WO2022100447A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115033612A (zh) * | 2022-07-06 | 2022-09-09 | 中煤(西安)地下空间科技发展有限公司 | 一种基于postgresql实现的地下管网纵断面分析方法 |
| CN115080448A (zh) * | 2022-07-27 | 2022-09-20 | 北京航空航天大学 | 一种软件代码不可达路径自动检测的方法和装置 |
| CN117971687A (zh) * | 2024-02-19 | 2024-05-03 | 广州虎牙科技有限公司 | 一种单元测试用例生成方法、装置、电子设备及存储介质 |
| CN118193359A (zh) * | 2024-02-01 | 2024-06-14 | 上海博为峰软件技术股份有限公司 | 一种多路并行的软件自动化测试方法 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112380120B (zh) * | 2020-11-13 | 2022-06-10 | 华南理工大学 | 单元测试代码结构自动解析与路径分析方法 |
| CN117520191B (zh) * | 2023-11-27 | 2024-06-21 | 浙江大学 | 一种基于程序路径的测试完备性检查方法、设备及存储介质 |
| CN118626403B (zh) * | 2024-08-15 | 2024-10-15 | 北京航空航天大学 | 一种编译级程序谱生成方法、程序谱及故障定位方法 |
| CN119416977A (zh) * | 2024-11-07 | 2025-02-11 | 成都智慧锦城大数据有限公司 | 基于企业经营数据和业务流程的办理结果路径预测方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103714000A (zh) * | 2013-12-18 | 2014-04-09 | 杭州电子科技大学 | 一种面向敏感区域的嵌入式软件测试用例生成方法 |
| US20170220455A1 (en) * | 2016-01-29 | 2017-08-03 | Mentor Graphics Corporation | Test case generation using a constraint graph solver |
| CN110046089A (zh) * | 2019-03-01 | 2019-07-23 | 华南师范大学 | 一种基于路径覆盖充分性准则的智能合约测试方法 |
| CN110377493A (zh) * | 2018-04-12 | 2019-10-25 | 南京慕测信息科技有限公司 | 一种面向代码可读性的单元测试用例优化方法 |
| CN110399286A (zh) * | 2018-04-24 | 2019-11-01 | 西安邮电大学 | 一种基于独立路径的测试数据自动生成方法 |
| CN112380120A (zh) * | 2020-11-13 | 2021-02-19 | 华南理工大学 | 单元测试代码结构自动解析与路径分析方法 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090037885A1 (en) * | 2007-07-30 | 2009-02-05 | Microsoft Cororation | Emulating execution of divergent program execution paths |
| US8826233B2 (en) * | 2008-11-19 | 2014-09-02 | Sap Ag | Graphical representation of a JAVA bytecode |
| EP3106982B1 (en) * | 2015-06-18 | 2021-03-10 | ARM Limited | Determination of branch convergence in a sequence of program instructions |
| US10360004B2 (en) * | 2017-02-27 | 2019-07-23 | International Business Machines Corporation | Using dynamic information to refine control flow graphs |
| US10853041B2 (en) * | 2017-03-09 | 2020-12-01 | Microsoft Technology Licensing, Llc | Extensible instrumentation |
| CN107196858B (zh) * | 2017-07-04 | 2020-06-23 | 西安理工大学 | 一种考虑多类型约束的k最短路径求解方法 |
| CN108710575B (zh) * | 2018-05-23 | 2020-11-24 | 华南理工大学 | 基于路径覆盖测试用例自动生成的单元测试方法 |
| CN110837892A (zh) * | 2019-11-12 | 2020-02-25 | 广东外语外贸大学 | 基于带类型关系路径嵌入的事实溯因推理方法 |
-
2020
- 2020-11-13 CN CN202011267313.5A patent/CN112380120B/zh active Active
-
2021
- 2021-10-28 WO PCT/CN2021/127039 patent/WO2022100447A1/zh not_active Ceased
- 2021-10-28 US US18/013,557 patent/US20230185703A1/en not_active Abandoned
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103714000A (zh) * | 2013-12-18 | 2014-04-09 | 杭州电子科技大学 | 一种面向敏感区域的嵌入式软件测试用例生成方法 |
| US20170220455A1 (en) * | 2016-01-29 | 2017-08-03 | Mentor Graphics Corporation | Test case generation using a constraint graph solver |
| CN110377493A (zh) * | 2018-04-12 | 2019-10-25 | 南京慕测信息科技有限公司 | 一种面向代码可读性的单元测试用例优化方法 |
| CN110399286A (zh) * | 2018-04-24 | 2019-11-01 | 西安邮电大学 | 一种基于独立路径的测试数据自动生成方法 |
| CN110046089A (zh) * | 2019-03-01 | 2019-07-23 | 华南师范大学 | 一种基于路径覆盖充分性准则的智能合约测试方法 |
| CN112380120A (zh) * | 2020-11-13 | 2021-02-19 | 华南理工大学 | 单元测试代码结构自动解析与路径分析方法 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115033612A (zh) * | 2022-07-06 | 2022-09-09 | 中煤(西安)地下空间科技发展有限公司 | 一种基于postgresql实现的地下管网纵断面分析方法 |
| CN115080448A (zh) * | 2022-07-27 | 2022-09-20 | 北京航空航天大学 | 一种软件代码不可达路径自动检测的方法和装置 |
| CN118193359A (zh) * | 2024-02-01 | 2024-06-14 | 上海博为峰软件技术股份有限公司 | 一种多路并行的软件自动化测试方法 |
| CN117971687A (zh) * | 2024-02-19 | 2024-05-03 | 广州虎牙科技有限公司 | 一种单元测试用例生成方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112380120A (zh) | 2021-02-19 |
| US20230185703A1 (en) | 2023-06-15 |
| CN112380120B (zh) | 2022-06-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112380120B (zh) | 单元测试代码结构自动解析与路径分析方法 | |
| Sarhan et al. | A survey of challenges in spectrum-based software fault localization | |
| Green et al. | Graphfuzz: Library api fuzzing with lifetime-aware dataflow graphs | |
| JP7172435B2 (ja) | 抽象コードグラフを用いたソフトウェアの表現 | |
| Zhang et al. | Faulttracer: a change impact and regression fault analysis tool for evolving java programs | |
| EP2975527A2 (en) | A method for tracing computer software | |
| Zhao et al. | A large-scale empirical study of real-life performance issues in open source projects | |
| Biaggi et al. | An architectural smells detection tool for c and c++ projects | |
| CN113157551B (zh) | 一种面向ros的差分模糊测试方法 | |
| CN113282495B (zh) | 一种基于轨迹监控的Java软件故障定位方法 | |
| Liu et al. | Extracting inline tests from unit tests | |
| US11132286B1 (en) | Dynamic reordering of test case execution | |
| CN102662829B (zh) | 一种复杂数据结构在代码静态测试中的处理方法和装置 | |
| US7539977B1 (en) | Automatic bug isolation in computer programming languages | |
| Liu et al. | Funredisp: Reordering function dispatch in smart contract to reduce invocation gas fees | |
| Delamaro et al. | Interface mutation test adequacy criterion: An empirical evaluation | |
| CN105824758B (zh) | 一种基于执行索引和访问路径的堆区对象比较方法 | |
| Liang et al. | Improving the precision of static analysis: Symbolic execution based on GCC abstract syntax tree | |
| Zhao et al. | Event handler-based coverage for GUI testing | |
| Behler et al. | Static Analysis and Transformation for Quantum Programming Languages | |
| Li et al. | CodeTracer: Towards Traceable Agent States | |
| Darvish et al. | Guidiva: Automated discovery and validation of state-based gui invariants | |
| Xing et al. | Distilling useful clones by contextual differencing | |
| Sarkar | Testing database applications using coverage analysis and mutation analysis | |
| Vancsics | New Algorithms and Benchmarks for Supporting Spectrum-Based Fault Localization |
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: 21890974 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21890974 Country of ref document: EP Kind code of ref document: A1 |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 05.09.2023) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21890974 Country of ref document: EP Kind code of ref document: A1 |