CN116541286A - 一种基于插桩和符号执行的高覆盖率测试数据生成方法 - Google Patents

一种基于插桩和符号执行的高覆盖率测试数据生成方法 Download PDF

Info

Publication number
CN116541286A
CN116541286A CN202310516469.XA CN202310516469A CN116541286A CN 116541286 A CN116541286 A CN 116541286A CN 202310516469 A CN202310516469 A CN 202310516469A CN 116541286 A CN116541286 A CN 116541286A
Authority
CN
China
Prior art keywords
test data
variable
coverage
expression
tested
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.)
Pending
Application number
CN202310516469.XA
Other languages
English (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.)
Hangzhou Jinhenghe Information Technology Co ltd
Original Assignee
Hangzhou Jinhengsheng Technology Co 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 Hangzhou Jinhengsheng Technology Co ltd filed Critical Hangzhou Jinhengsheng Technology Co ltd
Priority to CN202310516469.XA priority Critical patent/CN116541286A/zh
Publication of CN116541286A publication Critical patent/CN116541286A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种基于插桩和符号执行的高覆盖率测试数据生成方法,首先通过分析待抽象语法树,对待测程序源代码提取输入变量信息,生成驱动函数代码,并调用待测函数。其次通过符号执行生成测试数据,并通过分析待测程序的抽象语法树,提取的各判定表达式信息以及条件表达式信息,计算各判定表达式的真值表。然后根据各判定表达式相关信息以及真值表,自动修改待测程序代码,提取程序运行时的路径信息,并通过断言函数进行路径匹配,生成满足条件组合覆盖的测试数据。最后通过测试数据选择算法,得到完整的测试数据。本发明生成的测试数据覆盖率更高,并且测试数据规模更小。

Description

一种基于插桩和符号执行的高覆盖率测试数据生成方法
技术领域
本发明属于计算机信息处理以及软件工程测试自动化领域,具体涉及一种基于插桩和符号执行的高覆盖率测试数据生成方法。
背景技术
轨道交通、核电等安全性要求较高的领域的软件项目需要完整的单元测试保障项目的可靠性。但是完整的软件单元测试需要耗费大量的人力与时间,其中,测试数据编写,尤其是高覆盖率测试数据的编写,需要花费大量的人力。近年来,符号执行技术的发展为高覆盖率的测试数据的自动生成提供了一种解决方案。符号执行是一种使用符号量而不是具体的值作为程序输入运行程序的技术,借助约束求解器,符号执行可以同时系统地探索诸多可能的执行路径,而不依赖于具体的输入。
覆盖率是衡量软件测试完整性的一种指标。单元测试场景下常见的覆盖率标准有语句覆盖、路径覆盖、条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖等。符号执行技术为生成高路径覆盖率、语句覆盖率的测试数据提供了一种方法。与目前存在的其他测试数据生成方法如模糊测试、基于模型的测试、基于搜索的测试等相比,符号执行具有自动化程度高、生成测试数据路径覆盖率高等优点。然而,符号执行不能生成满足条件覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖等覆盖率标准的测试数据。
符号执行具有能够生成高路径覆盖率的测试数据的优点,但是在条件覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖等覆盖率标准的测试数据自动生成上仍然存在不足,生成的测试数据在覆盖率上存在上升空间,且存在冗余测试数据。
发明内容
为实现一种面向多种覆盖率标准且自动化程度高的测试数据生成方法,本发明提出一种基于插桩和符号执行的高覆盖率测试数据生成方法,插桩方法指导符号执行生成满足条件组合覆盖的测试数据,然后提出测试数据选择算法,从生成的满足条件组合覆盖的测试数据中分别挑选满足条件组合覆盖等覆盖率标准的测试数据,能够针对被测程序中的被测函数,分别生成满足语句覆盖、条件覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖、路径覆盖和条件组合覆盖共七种覆盖率的测试数据。本发明能够针对使用C语言编写的程序,生成用于单元测试场景的高覆盖率测试数据。
本发明的技术方案为如下几个步骤:
S1、静态分析提取输入变量信息
通过分析待测程序的抽象语法树(AST),对待测程序源代码静态分析,提取其中全局变量以及待测函数的参数变量的变量名、变量类型信息。
S2、生成驱动函数
根据全局变量以及待测函数的参数变量的变量名、变量类型信息,对待测程序的原代码进行代码转换,生成驱动函数代码,实现输入变量的定义、初始化与符号化,并调用待测函数。
S3、通过符号执行生成测试数据
使用符号执行分析步骤2转换后的代码,分别生成满足语句覆盖、路径覆盖的测试数据。
S4、静态分析提取判定表达式与条件表达式信息
通过分析待测程序的抽象语法树,对待测程序源代码静态分析,提取其中if语句、for语句、while语句、do-while语句、switch语句、三目运算符的位置信息,得到各语句的判定表达式信息以及条件表达式信息。
S5、计算各判定表达式的真值表
根据各判定表达式信息以及条件表达式信息,计算各判定表达式的真值表。
S6、插桩自动修改原有代码
根据步骤4提取的各判定表达式相关的信息以及步骤5计算得到的真值表信息,在步骤2的基础上自动修改待测程序代码,提取程序运行时的路径信息,并通过断言函数进行路径匹配。
S7、通过符号执行生成测试数据
使用符号执行分析步骤6修改后的代码,生成满足条件组合覆盖的测试数据。
S8、通过测试数据选择算法筛选测试数据
通过测试数据选择算法,在步骤7生成的满足条件组合覆盖的测试数据的基础上,根据条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖各自的要求,挑选需要的测试数据,分别生成满足条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖的测试数据。
S9、将步骤3、步骤7和步骤8得到的满足不同覆盖率标准的测试数据构成完整的测试数据,总共包括语句覆盖、路径覆盖、条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖七种覆盖率标准。
本发明有益效果:与原始的符号执行方法生成的测试数据相比,本发明生成条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖的测试数据在各自的覆盖率标准上覆盖率更高,且测试数据的规模更小。
附图说明
图1-本发明所描述方法的流程示意图;
图2-处理表达式A>0&&(*C>0||B>0)得到的表达式树。
具体实施方式
下面结合附图和实施方法对本发明做进一步的详细描述。
本发明提出一种基于插桩和符号执行的高覆盖率测试数据生成方法,具体流程如图1所示,包含如下步骤:
1、对待测程序进行词法分析,得到待测程序的抽象语法树;然后遍历待测程序的抽象语法树,提取全局变量以及待测函数的参数变量的变量名与变量类型。以如下示例程序为例:
将提取其中的全局变量B以及函数func1的参数变量A和C,其中变量A与B的类型为int,变量C的类型为int*。
2、根据提取的全局变量以及待测函数的参数变量的变量名、变量类型信息,生成main函数作为驱动函数。首先生成空白的驱动函数int main(){return 0;},然后向驱动函数的函数体中添加变量定义与符号化语句。根据输入变量的不同变量类型,选择不同的符号化策略。对于基本数据类型,直接符号化;对于指针类型,首先定义该指针变量指向的类型的变量,记为变量a,然后定义并符号化一个额外的变量,记为变量b,当变量b为0时,原指针变量赋值为空指针,当变量b非0时,原指针变量赋值为指向变量a,然后符号化变量a。对于示例程序中的3个变量,变量A是函数参数变量,首先生成变量定义语句int A,然后生成变量符号化语句klee_make_symbolic(&A,sizeof(A),"int A")。变量B是全局变量,无需重复定义,只需要生成变量符号化语句klee_make_symbolic(&B,sizeof(B),"int B")。变量C是函数参数变量,但是变量类型是指针类型,因此需要特殊处理,生成变量定义语句int___C___和int*C=&___C___,其中变量___C___表示指针变量C指向的变量,然后生成变量符号化语句klee_make_symbolic(&___C___,sizeof(___C___),"int*C--->int___C___")。
3、使用符号执行分析步骤2转换后的代码。符号执行过程中,为每一条路径生成一条对应的测试数据,可以得到满足路径覆盖的测试数据;只生成覆盖了新的代码行的测试数据,可以得到满足语句覆盖的测试数据。
4、遍历待测程序的抽象语法树,提取if语句、for语句、while语句、do-while语句、switch语句、三目运算符的位置信息以及各语句的判定表达式信息;遍历各判定表达式节点,将各判定表达式进一步分解为条件表达式与逻辑运算符。以如下程序为例:
将提取其中第4行的if语句、第7行的for语句、第8行的if语句。其中第4行的if语句的判定表达式为A>0&&(*C>0||B>0),其中的条件表达式包括A>0、*C>0以及B>0;第7行的for语句的判定表达式为i<10,其中的条件表达式只有i<10;第8行的if语句的判定表达式为*C<i,其中的条件表达式只有*C<i。
5、通过提取的各判定表达式的信息,构建各判定表达式对应的表达式树,该表达式树以条件表达式作为叶子节点,以逻辑运算符作为非叶子节点,每个非根节点对应的子树分别对应该判定表达式的一个子表达式。以表达式A>0&&(*C>0||B>0)为例,转换后得到的表达式树如图2所示。
自下而上遍历该表达式树,生成各节点的真值表,最终得到各判定表达式的真值表。通过该真值表可以得到满足条件组合覆盖所需路径的信息。以表达式A>0&&(*C>0||B>0)为例,最终生成真值表如表1所示,其中T表示表达式的值为真,F表示表达式的值为假,X表示表达式被短路。
表1
6、根据步骤4提取的各判定表达式相关的信息以及步骤5计算得到的真值表信息,在步骤2转换后的代码的基础上进一步修改代码。对于每一个判定表达式,定义一个变量存储该判定表达式中各条件表达式的真假值信息,记为变量c,并根据步骤5中计算出的判定表达式的真值表,计算真值表各行对应的变量c的期望值。接着通过扩展判定表达式内容,使得在判定表达式求值的同时将该判定表达式中各条件表达式的真假值信息存储于变量c中。最后,生成路径匹配函数实现路径的匹配,路径匹配函数只有一个参数,该参数是一个布尔变量,该函数的作用是,当符号执行过程中执行路径匹配函数且函数的参数值为假,则为当前路径生成一条测试数据。以如下程序中第4行的if语句为例:
首先定义一个变量__kappa__0__(上面程序中第7行),然后根据表1中的真值表定义各路径对应变量__kappa__0__的期望值(上面程序中第8至11行)。接着扩展该if语句,将该判定表达式中各条件表达式的真假值信息存储于变量__kappa__0__中(上面程序中第26至28行),并使用函数klee_trigger_if_false对变量__kappa__0__与期望值进行匹配(上面程序中第30至33行)。
7、使用符号执行分析步骤6转换后的代码,符号执行过程中,如果触发了插桩时添加的路径匹配函数,则生成一条对应的测试数据,且每个路径匹配函数最多生成一条测试数据。符号执行结束后,由触发路径匹配函数生成的测试数据的集合组成了满足条件组合覆盖的测试数据。
8、通过测试数据选择算法,在步骤7生成的满足条件组合覆盖的测试数据的基础上,根据条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖各自的要求,挑选需要的测试数据,分别生成满足条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖的测试数据。根据待测函数中条件表达式的数量,使用不同的测试数据选择算法,当条件表达式数量较小时,使用搜索算法得到保证覆盖率不降低前提下的最小集合;当条件表达式数量较大时,使用贪心算法得到保证覆盖率不降低前提下的较小集合。
9、上面描述的步骤中,将步骤3、步骤7和步骤8分别得到的满足不同覆盖率标准的测试数据,构成完整的测试数据,总共包括语句覆盖、路径覆盖、条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖、条件组合覆盖七种覆盖率标准。表2是生成的测试数据,其中,变量C一列展示的是变量C指向的变量的值。
表2
A B C(C指向的变量的值)
0 0 0
1 1 0
1 0 1
1 0 0
0 0 -1
表3是生成测试数据的各覆盖率值以及测试数据数量。表4是使用符号执行工具KLEE生成测试数据的各覆盖率的值以及测试数据的数量。与使用符号执行工具KLEE相比本发明生成的测试数据的条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖以及条件组合覆盖的覆盖率得到提升并且降低了测试数据的数量。
表3
表4
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。

Claims (8)

1.一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,具体步骤如下:
S1、静态分析提取输入变量信息:通过分析待测程序的抽象语法树,对待测程序源代码静态分析,提取其中全局变量以及待测函数的参数变量的变量名、变量类型信息;
S2、生成驱动函数:根据全局变量以及待测函数的参数变量的变量名、变量类型信息,对待测程序的原代码进行代码转换,生成驱动函数代码,实现输入变量的定义、初始化与符号化,并调用待测函数;
S3、通过符号执行生成测试数据:使用符号执行分析步骤2转换后的代码,分别生成满足语句覆盖、路径覆盖的测试数据;
S4、静态分析提取判定表达式与条件表达式信息:通过分析待测程序的抽象语法树,对待测程序源代码静态分析,提取其中if语句、for语句、while语句、do-while语句、switch语句和三目运算符的位置信息,得到各语句的判定表达式信息以及条件表达式信息;
S5、计算各语句的判定表达式的真值表:根据判定表达式信息以及条件表达式信息,计算各判定表达式的真值表;
S6、插桩自动修改原有代码:根据判定表达式信息以及真值表,在步骤2的基础上自动修改待测程序代码,提取程序运行时的路径信息,并通过断言函数进行路径匹配;
S7、通过符号执行生成测试数据:使用符号执行分析步骤6修改后的代码,生成满足条件组合覆盖的测试数据;
S8、筛选测试数据:通过测试数据选择算法,在步骤7生成的满足条件组合覆盖的测试数据的基础上,根据条件覆盖、判定覆盖、条件/判定覆盖、修正条件/判定覆盖各自的要求,挑选测试数据;
S9、将S3、S7和S8得到的满足不同覆盖率标准的测试数据,组合构成全部的测试数据。
2.根据权利要求1所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,S2生成驱动函数的具体过程如下:
首先,生成空白的驱动函数;
其次,向空白的驱动函数的函数体中添加变量定义与符号化语句;
最后,根据输入变量的不同变量类型,选择不同的符号化策略。
3.根据权利要求2所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,所述的符号化策略具体如下:
对于基本数据类型,直接符号化;
对于指针类型,首先定义该指针变量指向的类型的变量,记为变量a;其次定义并符号化一个额外的变量,记为变量b;当变量b为0时,原指针变量赋值为空指针,当变量b非0时,原指针变量赋值为指向变量a,然后符号化变量a。
4.根据权利要求1所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,S3所述符号执行的过程中,为每一条路径生成一条对应的测试数据,得到满足路径覆盖的测试数据;
生成覆盖了新的代码行的测试数据,得到满足语句覆盖的测试数据。
5.根据权利要求1所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,S5所述计算各语句的判定表达式的真值表包括如下过程:
构建各判定表达式对应的表达式树,该表达式树以条件表达式作为叶子节点,以逻辑运算符作为非叶子节点,每个非根节点对应的子树分别对应该判定表达式的一个子表达式;
自下而上遍历该表达式树,生成各节点的真值表,得到判定表达式的真值表。
6.根据权利要求1所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,S6所述自动修改待测程序代码具体过程如下:
对于每一个判定表达式,定义一个变量存储该判定表达式中各条件表达式的真假值信息,记为变量c,并根据真值表,计算真值表各行对应的变量c的期望值;
然后通过扩展判定表达式内容,使得在判定表达式求值的同时将该判定表达式中各条件表达式的真假值信息存储于变量c中;
最后,生成路径匹配函数实现路径的匹配,路径匹配函数只有一个参数,该参数是一个布尔变量,该函数的作用是,当符号执行过程中执行路径匹配函数且函数的参数值为假,则为当前路径生成一条测试数据。
7.根据权利要求6所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,在S7符号执行过程具体如下:
如果触发了插桩时添加的路径匹配函数,则生成一条对应的测试数据,且每个路径匹配函数最多生成一条测试数据;
符号执行结束后,由触发路径匹配函数生成的测试数据的集合组成了满足条件组合覆盖的测试数据。
8.根据权利要求1所述的一种基于插桩和符号执行的高覆盖率测试数据生成方法,其特征在于,在S8中,根据待测程序中条件表达式的数量,使用不同的测试数据选择算法,当条件表达式数量较小时,使用搜索算法得到保证覆盖率不降低前提下的集合;当条件表达式数量较大时,使用贪心算法得到保证覆盖率不降低前提下的集合。
CN202310516469.XA 2023-05-09 2023-05-09 一种基于插桩和符号执行的高覆盖率测试数据生成方法 Pending CN116541286A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310516469.XA CN116541286A (zh) 2023-05-09 2023-05-09 一种基于插桩和符号执行的高覆盖率测试数据生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310516469.XA CN116541286A (zh) 2023-05-09 2023-05-09 一种基于插桩和符号执行的高覆盖率测试数据生成方法

Publications (1)

Publication Number Publication Date
CN116541286A true CN116541286A (zh) 2023-08-04

Family

ID=87457284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310516469.XA Pending CN116541286A (zh) 2023-05-09 2023-05-09 一种基于插桩和符号执行的高覆盖率测试数据生成方法

Country Status (1)

Country Link
CN (1) CN116541286A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033248A (zh) * 2023-10-08 2023-11-10 中国海洋大学 一种基于程序状态反馈和控制流图的Web模糊测试方法
CN117520191A (zh) * 2023-11-27 2024-02-06 浙江大学 一种基于程序路径的测试完备性检查方法、设备及存储介质
CN117851254A (zh) * 2024-01-09 2024-04-09 浙江大学 一种基于符号执行和路径数缩减的mc/dc覆盖用例生成方法
CN118012767A (zh) * 2024-02-27 2024-05-10 浙江大学 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033248A (zh) * 2023-10-08 2023-11-10 中国海洋大学 一种基于程序状态反馈和控制流图的Web模糊测试方法
CN117033248B (zh) * 2023-10-08 2024-01-26 中国海洋大学 一种基于程序状态反馈和控制流图的Web模糊测试方法
CN117520191A (zh) * 2023-11-27 2024-02-06 浙江大学 一种基于程序路径的测试完备性检查方法、设备及存储介质
CN117851254A (zh) * 2024-01-09 2024-04-09 浙江大学 一种基于符号执行和路径数缩减的mc/dc覆盖用例生成方法
CN117851254B (zh) * 2024-01-09 2024-07-26 浙江大学 一种基于符号执行和路径数缩减的mc/dc覆盖用例生成方法
CN118012767A (zh) * 2024-02-27 2024-05-10 浙江大学 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法

Similar Documents

Publication Publication Date Title
Joshi et al. Repair is nearly generation: Multilingual program repair with llms
CN107832229B (zh) 一种基于nlp的系统测试用例自动生成方法
CN116541286A (zh) 一种基于插桩和符号执行的高覆盖率测试数据生成方法
CN105426711B (zh) 一种计算机软件源代码相似度检测方法
Meng et al. Improving fault localization and program repair with deep semantic features and transferred knowledge
CN102339252B (zh) 基于xml中间模型以及缺陷模式匹配的静态检测系统
CN107203468B (zh) 一种基于ast的软件版本演化对比分析方法
CN106843849B (zh) 一种基于文档的库函数的代码模型的自动合成方法
CN110059006B (zh) 代码审计方法及装置
CN111914534B (zh) 构建知识图谱语义映射方法及系统
CN116049831A (zh) 一种基于静态分析和动态分析的软件漏洞检测方法
CN101576850B (zh) 一种改进的面向宿主的嵌入式软件白盒测试方法
CN114547619B (zh) 一种基于树的漏洞修复系统及修复方法
CN118012767B (zh) 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法
CN102298552A (zh) 基于代码查询进行源代码插桩的方法
CN108563561B (zh) 一种程序隐性约束提取方法及系统
CN113238937B (zh) 一种基于代码精简与误报过滤的编译器模糊测试方法
CN117851101A (zh) 一种基于大语言模型的仓库级别代码缺陷自动修复的方法
CN103049504A (zh) 基于源代码查询的半自动插桩方法
CN113032366A (zh) 基于Flex和Bison的SQL语法树解析方法
CN108664238A (zh) 一种解释型脚本语言c-sub的执行方法及装置
CN114090017B (zh) 编程语言的解析方法及装置、非易失性存储介质
CN115438341A (zh) 提取代码循环计数器的方法、装置、存储介质和电子设备
CN114781330A (zh) 一种基于需求建模的类型检查方法
CN117251477B (zh) 基于sql解析的数据开发脚本标准化检查方法及系统

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
TA01 Transfer of patent application right

Effective date of registration: 20230912

Address after: Room 605, 6th Floor, Building 24, Creative Business Center, No. 1 Xixi, Xihu District, Hangzhou City, Zhejiang Province, 310000

Applicant after: Hangzhou jinhenghe Information Technology Co.,Ltd.

Address before: Room 1107, Floor 11, Huachuang Building, 511 Jianye Road, Changhe Street, Binjiang District, Hangzhou, Zhejiang Province, 310000

Applicant before: Hangzhou Jinhengsheng Technology Co.,Ltd.

TA01 Transfer of patent application right