CN101833500A - 一种基于Agent的嵌入式软件智能测试方法 - Google Patents
一种基于Agent的嵌入式软件智能测试方法 Download PDFInfo
- Publication number
- CN101833500A CN101833500A CN 201010140772 CN201010140772A CN101833500A CN 101833500 A CN101833500 A CN 101833500A CN 201010140772 CN201010140772 CN 201010140772 CN 201010140772 A CN201010140772 A CN 201010140772A CN 101833500 A CN101833500 A CN 101833500A
- Authority
- CN
- China
- Prior art keywords
- agent
- program
- source program
- analysis
- pitching pile
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 46
- 238000004458 analytical method Methods 0.000 claims abstract description 59
- 230000006870 function Effects 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 21
- 239000000523 sample Substances 0.000 claims abstract description 13
- 238000013461 design Methods 0.000 claims description 5
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000007781 pre-processing Methods 0.000 abstract 2
- 239000003795 chemical substances by application Substances 0.000 description 78
- 238000005516 engineering process Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000877 morphologic effect Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于Agent的嵌入式软件智能测试方法,是一种改进的以Linux系统作为嵌入式操作系统内核的软件测试方法,主要包括三个Agent模块:首先为预处理Agent模块,包括词法分析Agent和语法分析Agent,主要用来生成源程序的语法树结构;其次是程序插桩Agent模块,包括语法树分析Agent和自动插桩Agent,主要用来对语法树进行分析,找出源程序的关键点,并自动往源程序中插入探针函数,从而获取程序执行中的动态信息;再次是动态测试信息分析Agent模块,包括覆盖率分析Agent和查询Agent,主要用来实现源程序的语句和分支覆盖率测试,以及自动查询覆盖率不满足要求时源程序中未覆盖目标的相关情况。本发明能够应用到不同的程序,简单快捷,能大大提高软件自动化测试的效率,通用性强。
Description
技术领域
发明涉及一种软件测试方法,特别地涉及一种基于Agent的嵌入式软件智能测试方法。
背景技术
嵌入式软件作为计算机软件的重要分支,已经在消费电子产品、交通系统、工业控制、医疗设备和军事领域等应用越来越广泛。Linux作为当前非常流行的一种操作系统种类,被广泛地用于嵌入式操作系统内核。随着嵌入式技术的发展,嵌入式应用的不断增长以及嵌入式系统复杂性的不断提高,要求嵌入式软件的规模和复杂性也不断提高,嵌入式软件的质量和开发周期对产品的最终质量和上市时间起到决定性的影响。
软件测试是保证软件系统正确性的一个重要手段,也是计算机软件工程方法和技术的一个主要组成部分。虽然测试并不能证明软件系统的正确性,但是,它通过运行选定的测试用例来发现软件中的错误,并通过纠正错误使软件的质量达到令人以满意的程度。所以,在今后相当长的时间内测试仍是保证软件质量的主要手段。
在测试理论发展的同时,各种软件测试方法被相继提出。如基于程序插装的软件测试方法,这种方法的核心思想是在保持程序原有逻辑完整的基础上,在程序中插入“探测仪”,以便获取程序中的控制流和数据流信息,通过对获取的数据进行分析来判断程序中包含错误。还有一种基于程序变异的测试方法,该方法通过对源程序和变异后的程序执行结果的比较来进行软件故障的检测。这些测试方法的提出,为软件测试工作提供了帮助。
但是,这些已有的软件测试理论及测试方法中,一般仍然或多或少存在以下不足:
(1)对软件可靠性评价只是一个整体的概念,预测软件缺陷的个数,但不能具体指出缺陷存在的位置;
(2)对隐含的代码错误测试效果不好,如果再次测试将花费大量的人力物力;
(3)人为参与的步骤太多,使用起来很不方便;
(4)得到的覆盖率指标比较单一,不能全面的反映软件的质量。
(5)大部分测试软件价格昂贵,很难大规模普及。
发明内容
本发明要解决的技术问题是针对目前流行的以Linux系统作为嵌入式操作系统内核的嵌入式软件,如何能减少人为参与且能快速有效地对软件进行智能测试。
为了解决上述问题,本发明提供了一种基于Agent的软件智能测试方法,包括以下步骤:
1.)预处理Agent模块,包括词法分析Agent和语法分析Agent,主要用来生成源程序的语法树结构。
2.)程序插桩Agent模块。包括语法树分析Agent和自动插桩Agent,主要用来对语法树进行分析,找出源程序的关键点,并自动往源程序中插入探针函数,从而获取程序执行中的动态信息。
3.)动态测试信息分析Agent模块,包括覆盖率分析Agent和查询Agent,主要用来实现源程序的语句和分支覆盖率测试,以及自动查询覆盖率不满足要求时源程序中未覆盖目标的相关情况。
进一步地,预处理Agent模块中,词法分析Agent是采用Linux下的lex将被测程序分解成单独的词的表示,形成初步的符号表,并将结果传递给语法分析Agent;语法分析Agent则通过接收词法分析Agent的结果,采用yacc将输入字符串识别为单词符号流,找出变量声明语句,并相应分离出指针变量和数组变量。其结果是生成语法树,每一个语法规则对应一个相应的处理函数,并作为树的一个节点挂在语法树上,提供对外的接口。
进一步地,程序插桩Agent模块中,语法树分析Agent是在语法树的基础上自动分析源程序的关键点,即插桩位置;自动插桩Agent通过接收语法树分析Agent传来的分析结果,自动往程序的关键点处插入探针函数即插桩语句,从而在程序运行到插桩点时记录下有关的运行情况。
进一步地,动态测试信息分析Agent模块中,通过输入测试用例,覆盖率分析Agent可通过插桩函数库自动计算出源程序的语句和分支覆盖率;当覆盖率不满足要求时,查询Agent可自动分析源程序中未覆盖目标的相关情况,并找出到达此目标的路径。
与现有技术相比,本发明提出的基于Agent技术的嵌入式软件智能测试方法有如下显著优点:将Agent的观念运用到测试技术中,是一种利用Agent帮助测试者进行软件测试的智能测试工具。在测试过程中,本发明利用Agent的自治特性,在没有其它Agent或测试者的直接命令和干预下进行独立的判断,利用Agent的智能特性理解测试者的测试目标,利用Agent的社交能力与其它的Agent进行通信。该多Agent软件测试系统能够减少测试者的直接干预,并提供一个良好的集成测试环境,可以大大提高自动化测试的效率。另外,本发明方法实现简单快捷,且能大大降低测试费用。
附图说明
图1为本发明的体系结构图。
图2为本发明程序插桩Agent模块中的静态插桩模型。
具体实施方式
本发明的核心思想是:利用Agent的自治特性,在没有其它Agent或测试者的直接命令和干预下进行独立的判断,利用Agent的智能特性理解测试者的测试目标,利用Agent的社交能力与其它的Agent进行通信。下面结合附图1对本发明的工作流程及各模块功能进行详细说明。
1.预处理Agent模块
词法分析Agent和语法分析Agent主要采用Linux环境下的lex和yacc来完成。Lex与yacc是Linux系统所提供的词法分析工具和语法分析工具,使用这两个工具可以生成词法和语法分析器,缩短开发系统软件的周期,节约时间,提高工作效率。
(1)词法分析Agent。Lex是一个词法分析程序的生成程序,它是为了对字符输入流进行词法分析处理而专门设计的,这个程序的核心是正规表达式,用来描述输入串的词法结构。
本发明针对词法分析Agent设计的步骤为:首先写出一个词法规则文件lex.1,给出特定的词法规则,即表达式和相关动作。之后,由lex将其转变成一个通用宿主语言,生成一个C程序lex.yy.c,其主函数为yylex()。其功能是识别输入字符流中的单词,并返回指定的单词或其他语法单位的代号。当yyparse()(语法分析主函数)调用yylex()时,将按照yylex()返回的代号值进行语法分析。
(2)语法分析Agent。Yacc是inux上一个用来生成编译器的编译器。Yacc生成的编译器主要是用C语言写成的语法解析器,需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。
本发明针对语法分析Agent设计的步骤为:首先根据任务需求制定一个输入处理的功能说明,即一个语法规则文件yacc.y,其内容就是指定的语法规则集及其各规则对应的动作。然后,由yacc将这样的说明转换成一个处理相应输入流的C语言程序yy.tab.c,其主函数是yyparse()。它通过调用词法分析Agent的分析程序yylex(),进而从输入流中找到“单词”,再根据输入结构对这些单词加以组织。当某条规则被匹配,并完整地识别出来后,就调用用户指定的对应于这条规则的一个动作,该动作具有返回值和利用其他动作的值的能力。
本发明中,语法分析Agent可将生成的分析信息以一种双向链表的形式组织起来。在双向链表中有一些特殊的结点这些结点中记录了程序结构信息。例如有记录函数的起始位置和结束位置的结点,有记录循环起始位置和结束位置的结点,有记录程序跳转位置的结点,还有记录基本程序块的起始位置和结束位置的结点等。这些节点会作为重要数据传递给程序插桩模块中的语法树分析Agent,并经过进一步分析整理,确定插桩位置。
本发明将词法分析Agent(lex)和语法分析Agent(yacc)结合起来使用,它们之间的接口非常简单,lex只接收正则表达式,而yacc写出的语法分析程序则可以接收很广泛的一类上下文无关语法。当lex被用作这个语法分析程序的预处理程序时,它的工作是把输入流分成小段,而语法分析程序则指出这些小段间的结构。
本发明的预处理Agent模块(词法分析Agent和语法分析Agent)实现过程如下:对分析器定义运行yacc;对词法定义运行lex;编译生成的yacc源文件;编译生成的lex源文件;编译任何其他的模块;将lex、yacc和其他源链接为一个可执行文件。这里采用编写Makefile的方法来连接这些源程序,通过执行“make”命令生成可执行文件。
2.程序插桩Agent模块
语法树分析Agent主要用来对预处理Agent模块生成的语法树进行分析,找出源程序的关键点,确定探针函数的插桩位置;自动插桩Agent则是通过接收语法树分析Agent发送来的分析结果,自动地往插桩位置插入探针函数,从而获取程序执行中的动态信息。
本发明采用静态插装技术。静态插装技术是一种不通过执行程序,只对源程序静态分析找出插装点,同时根据对程序的分析得到插装库代码,然后将代码插装到对应的插装点,从而完成插装过程的一种技术。静态插装技术的过程模型如图2所示。静态插装过程是通过静态扫描程序代码获取程序结构并插入一些获取所需信息的代码,因此静态插装在程序运行过程中不会产生额外的开销(被插入的代码执行时所产生的开销除外),并且静态插装实现起来较为简单。
本发明中,语法树分析Agent首先接收预处理Agent模块中生成的语法树结构中的重要节点,并对语法树结构进行进一步的分析,从而得到源程序的所有关键点,并将分析结果传递给自动插桩Agent。在对语法树进行分析时主要考虑以下几个问题:
(1)探测哪些信息;
(2)在程序的什么部位设置探测点;
(3)需要设置多少个探测点。
鉴于如上所述的几个问题,本发明中,为了减小测试的复杂性,采用一次插装算法。语法树分析Agent主要识别源程序语法树结构中的如下几个关键点:
(1)If选择结构中,then分支和else分支处;
(2)switch语句的每个分支处;
(3)对于循环结构(for、while、do...while),存在两个分支,即空循环分支和循环1次,这两个分支均需考虑;
(4)顺序结构中,在程序入口处和出口处、子函数入口处和出口处、转移指令return语句,break语句,continue语句等处。
语法树分析Agent结果产生后,由其返回值来启动自动插桩Agent。自动插桩Agent通过接收语法树分析Agent的结果,自动地往这些位置插入能收集源程序控制流信息的语句即插桩函数,并且这些插装函数能在执行过程中将执行标记写入到特定的文件。待插桩结束,自动插桩Agent会自动将这些信息传递给动态测试信息分析Agent,从而测试出源程序的语句和分支覆盖率情况。
本发明中,自动插桩Agent的探针函数按如下原则来设计:
(1)分支覆盖探针函数。在分支语句的各个分支插入计数器函数统计各个分支的执行次数。当输入测试用例,被测程序执行时,可以通过观察计数器的值确定程序执行情况。
(2)语句覆盖探针函数。计数器插入以块为单位,所谓“块”指逻辑上连续执行相邻最大的语句集。
根据需要的不同的插桩代码,可将所有的插桩函数编辑成一函数库,即插桩库。插装库是实现探针功能的所有函数实体以及测试程序的集合,为了插装程序插装方便,对所有函数进行编号,建立函数索引表。这样在插装过程中,就可以根据函数ID进行选择,从而快速植入探针。
另外,在插装的过程中,对于某些语句可能要做某些修改,但是修改的前提是不能改变程序的逻辑功能。如if语句,if语句有如下两种情况:
if(表达式)
语句
if(表达式)
语句
else
语句
其中语句又分为简单语句和复合语句。当为简单语句时,由于插装语句的插入,都会处理成为复合语句。当没有配对的else时,为了对假分支进行插装也必须增加一个else。上面两种修改是可行的,因为它们并不改变程序的逻辑功能,并应将源程序中每个能产生分支的关键词后面的语句用“{”和“}”包含将其做为复合语句。
3.动态测试信息分析Agent
将插桩后的源程序进行编译并运行,输入事先准备好的测试用例,通过选择需要的测试类型(分支覆盖或语句覆盖),覆盖率分析Agent会调用自动插桩Agent中的语句或分支覆盖探针函数库,同时相应地生成一个插桩记录文件,里面记录了该测试类型中的所有函数的位置或者ID号,同时还能将测试结果记录到事先确定的缓冲区或文件中。通过将测试结果与期望值相比较,即能判定覆盖情况是否满足要求。另外,此模块还需返回比较结果的值,满足要求返回“1”,不满足要求则返回“0”。
若不能满足要求,即覆盖率分析Agent返回“0”,查询Agent便会自动开始工作,首先分析覆盖率分析Agent生成的插桩记录文件,找出未覆盖目标,然后根据控制流图,找出到达此目标的路径。之后测试人员便可依据此路径上各分支节点找出要到达此目标应满足的条件,设计新的测试用例,以增加覆盖率,最后将结果以GUI的形式显示。
以上所述,即为本发明的具体实施方式。本发明提出了一种基于Agent技术的嵌入式软件智能测试方法,将Agent技术引入软件测试过程中,利用Agent自身的特性对嵌入式软件系统进行代码性能测试,有效地解决了传统手工测试程序运行效率低、繁琐等一些问题,保证了嵌入式软件系统的高效稳定的运行,通用性强,同时还能大大降低测试费用。
Claims (4)
1.一种基于Agent的嵌入式软件智能测试方法,其特征在于,包括如下三个Agent模块:
1.)预处理Agent模块,包括词法分析Agent和语法分析Agent,主要用来生成源程序的语法树结构。
2.)程序插桩Agent模块。包括语法树分析Agent和自动插桩Agent,主要用来对语法树进行分析,找出源程序的关键点,并自动往源程序中插入探针函数,从而获取程序执行中的动态信息。
3.)动态测试信息分析Agent模块,包括覆盖率分析Agent和查询Agent,主要用来实现源程序的语句和分支覆盖率测试,以及自动查询覆盖率不满足要求时源程序中未覆盖目标的相关情况。
2.如权利要求1中所述方法,其特征在于,所述预处理Agent模块中,词法分析Agent是采用Linux下的lex将被测程序分解成单独的词的表示,形成初步的符号表,并将结果传递给语法分析Agent;语法分析Agent则通过接收词法分析Agent的结果,采用yacc将输入字符串识别为单词符号流,找出变量声明语句,并相应分离出指针变量和数组变量。其结果是生成语法树,每一个语法规则对应一个相应的处理函数,并作为树的一个节点挂在语法树上,提供对外的接口。
3.如权利要求1中所述方法,其特征在于,所述程序插桩Agent模块中,语法树分析Agent是在语法树的基础上自动分析源程序的关键点,即插桩位置;自动插桩Agent通过接收语法树分析Agent传来的分析结果,自动往程序的关键点处插入探针函数即插桩语句,从而在程序运行到插桩点时记录下有关的运行情况。
4.如权利要求1中所述方法,其特征在于,所述动态测试信息分析Agent模块中,通过输入测试用例,覆盖率分析Agent可通过插桩函数库自动计算出源程序的语句和分支覆盖率;当覆盖率不满足要求时,查询Agent可自动分析源程序中未覆盖目标的相关情况,并找出到达此目标的路径,从而据此设计新的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010140772 CN101833500A (zh) | 2010-04-07 | 2010-04-07 | 一种基于Agent的嵌入式软件智能测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010140772 CN101833500A (zh) | 2010-04-07 | 2010-04-07 | 一种基于Agent的嵌入式软件智能测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101833500A true CN101833500A (zh) | 2010-09-15 |
Family
ID=42717576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010140772 Pending CN101833500A (zh) | 2010-04-07 | 2010-04-07 | 一种基于Agent的嵌入式软件智能测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101833500A (zh) |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087629A (zh) * | 2011-01-25 | 2011-06-08 | 南京航空航天大学 | 一种基于Agent嵌入式软件的不变量测试方法与工具 |
CN102103538A (zh) * | 2011-02-22 | 2011-06-22 | 南京航空航天大学 | 一种基于Agent的码垛机器人控制软件测试方法 |
CN102129406A (zh) * | 2011-03-03 | 2011-07-20 | 南京航空航天大学 | 一种基于条件值的软件静态预测方法及工具 |
CN102214142A (zh) * | 2011-07-15 | 2011-10-12 | 南京大学 | 无痕可管理的源代码手动定义标志插桩方法 |
CN102231109A (zh) * | 2011-07-15 | 2011-11-02 | 南京大学 | 无痕可管理的源代码自动插桩方法 |
CN102298552A (zh) * | 2011-09-19 | 2011-12-28 | 南京大学 | 基于代码查询进行源代码插桩的方法 |
CN102419731A (zh) * | 2011-12-08 | 2012-04-18 | 北京控制工程研究所 | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 |
CN102419728A (zh) * | 2011-11-01 | 2012-04-18 | 北京邮电大学 | 基于覆盖率量化指标确定软件测试过程充分性的方法 |
CN102508780A (zh) * | 2011-11-21 | 2012-06-20 | 电子科技大学 | 一种用于软件测试的交叉式动态法和装置 |
CN102521123A (zh) * | 2011-11-24 | 2012-06-27 | 西安邮电学院 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
CN102750135A (zh) * | 2011-04-20 | 2012-10-24 | 卡斯柯信号有限公司 | 一种基于隔离的软件设计方法 |
CN102810078A (zh) * | 2011-06-02 | 2012-12-05 | 兰州大学 | 一种分析Linux内核动态执行的方法 |
CN102880546A (zh) * | 2012-09-03 | 2013-01-16 | 上海方正数字出版技术有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
CN103268354A (zh) * | 2013-06-04 | 2013-08-28 | 百度在线网络技术(北京)有限公司 | 搜索引擎中相关性策略之间耦合度的分析方法及装置 |
CN103593285A (zh) * | 2013-10-17 | 2014-02-19 | 北京控制工程研究所 | 一种基于判定识别的图像类软件单元测试方法 |
CN103970659A (zh) * | 2014-05-16 | 2014-08-06 | 刘玉光 | 基于插桩技术的安卓应用软件自动化测试方法 |
CN104063326A (zh) * | 2014-07-14 | 2014-09-24 | 上海零一拼装信息技术有限公司 | 一种用于软件测试数据分析的示波器及方法 |
CN104199773A (zh) * | 2014-09-03 | 2014-12-10 | 腾讯科技(深圳)有限公司 | 获取代码覆盖信息的方法及装置 |
CN104487939A (zh) * | 2012-07-31 | 2015-04-01 | 惠普发展公司,有限责任合伙企业 | 插桩文件的部署 |
CN104484270A (zh) * | 2014-12-05 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种机载嵌入式操作系统软件的验证方法 |
CN105094939A (zh) * | 2015-07-16 | 2015-11-25 | 南京富士通南大软件技术有限公司 | 一种基于Makefile自动编译技术实现的软件源文件静态分析方法 |
CN105786710A (zh) * | 2016-03-22 | 2016-07-20 | 中国银行股份有限公司 | 一种程序代码复查方法及引擎 |
CN106155897A (zh) * | 2015-04-16 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种业务处理方法及装置 |
CN106326093A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | 自动化测试系统及测试方法 |
CN106445829A (zh) * | 2016-10-21 | 2017-02-22 | 天津海量信息技术股份有限公司 | 大数据标引规则调试Debug的方法 |
WO2017041530A1 (zh) * | 2015-09-09 | 2017-03-16 | 中兴通讯股份有限公司 | 一种软件度量检测方法和系统 |
CN106681905A (zh) * | 2015-11-05 | 2017-05-17 | 财团法人资讯工业策进会 | 软件测试装置及其软件测试方法 |
CN106874187A (zh) * | 2016-12-29 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN107729254A (zh) * | 2017-11-10 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种通过shell脚本自动维护批量订单工艺的实现方法 |
CN110389895A (zh) * | 2019-06-14 | 2019-10-29 | 平安科技(深圳)有限公司 | 终端测试方法、装置、计算机设备和存储介质 |
CN110427320A (zh) * | 2019-07-24 | 2019-11-08 | 长安大学 | 一种轻量级嵌入式程序控制流异常定位检测方法 |
CN110765017A (zh) * | 2019-10-24 | 2020-02-07 | 上海创景信息科技有限公司 | 基于risc-v扩展指令的源码覆盖率测试方法和系统 |
CN111124937A (zh) * | 2020-03-31 | 2020-05-08 | 深圳开源互联网安全技术有限公司 | 基于插桩函数辅助提高生成测试用例效率的方法及系统 |
CN111913878A (zh) * | 2020-07-13 | 2020-11-10 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN113434385A (zh) * | 2021-05-26 | 2021-09-24 | 华东师范大学 | 一种针对软件模型检查工具的测试用例自动生成方法和系统 |
-
2010
- 2010-04-07 CN CN 201010140772 patent/CN101833500A/zh active Pending
Non-Patent Citations (2)
Title |
---|
《单片机与嵌入式系统应用》 20100228 杨振兴等 基于仿真的嵌入式软件白盒覆盖测试系统设计 第12-15页 1-4 , 第2期 2 * |
《微计算机信息》 20081231 姜博等 嵌入式智能设备的测试方法研究 第71-72页 1-4 第24卷, 第2期 2 * |
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087629A (zh) * | 2011-01-25 | 2011-06-08 | 南京航空航天大学 | 一种基于Agent嵌入式软件的不变量测试方法与工具 |
CN102103538A (zh) * | 2011-02-22 | 2011-06-22 | 南京航空航天大学 | 一种基于Agent的码垛机器人控制软件测试方法 |
CN102129406A (zh) * | 2011-03-03 | 2011-07-20 | 南京航空航天大学 | 一种基于条件值的软件静态预测方法及工具 |
CN102750135A (zh) * | 2011-04-20 | 2012-10-24 | 卡斯柯信号有限公司 | 一种基于隔离的软件设计方法 |
CN102750135B (zh) * | 2011-04-20 | 2015-01-21 | 卡斯柯信号有限公司 | 一种基于隔离的软件设计方法 |
CN102810078A (zh) * | 2011-06-02 | 2012-12-05 | 兰州大学 | 一种分析Linux内核动态执行的方法 |
CN102214142A (zh) * | 2011-07-15 | 2011-10-12 | 南京大学 | 无痕可管理的源代码手动定义标志插桩方法 |
CN102231109A (zh) * | 2011-07-15 | 2011-11-02 | 南京大学 | 无痕可管理的源代码自动插桩方法 |
CN102298552A (zh) * | 2011-09-19 | 2011-12-28 | 南京大学 | 基于代码查询进行源代码插桩的方法 |
CN102419728A (zh) * | 2011-11-01 | 2012-04-18 | 北京邮电大学 | 基于覆盖率量化指标确定软件测试过程充分性的方法 |
CN102419728B (zh) * | 2011-11-01 | 2014-10-29 | 北京邮电大学 | 基于覆盖率量化指标确定软件测试过程充分性的方法 |
CN102508780B (zh) * | 2011-11-21 | 2014-08-20 | 电子科技大学 | 一种用于软件测试的交叉式动态法和装置 |
CN102508780A (zh) * | 2011-11-21 | 2012-06-20 | 电子科技大学 | 一种用于软件测试的交叉式动态法和装置 |
CN102521123B (zh) * | 2011-11-24 | 2016-04-06 | 西安邮电大学 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
CN102521123A (zh) * | 2011-11-24 | 2012-06-27 | 西安邮电学院 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
CN102419731A (zh) * | 2011-12-08 | 2012-04-18 | 北京控制工程研究所 | C语言嵌入式软件插桩及动态测试覆盖率信息提取方法 |
CN104487939B (zh) * | 2012-07-31 | 2018-03-13 | 慧与发展有限责任合伙企业 | 插桩文件的部署 |
CN104487939A (zh) * | 2012-07-31 | 2015-04-01 | 惠普发展公司,有限责任合伙企业 | 插桩文件的部署 |
CN102880546A (zh) * | 2012-09-03 | 2013-01-16 | 上海方正数字出版技术有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
CN102880546B (zh) * | 2012-09-03 | 2015-06-17 | 北大方正集团有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
CN103268354B (zh) * | 2013-06-04 | 2019-04-02 | 百度在线网络技术(北京)有限公司 | 搜索引擎中相关性策略之间耦合度的分析方法及装置 |
CN103268354A (zh) * | 2013-06-04 | 2013-08-28 | 百度在线网络技术(北京)有限公司 | 搜索引擎中相关性策略之间耦合度的分析方法及装置 |
CN103593285B (zh) * | 2013-10-17 | 2016-03-02 | 北京控制工程研究所 | 一种基于判定识别的图像类软件单元测试方法 |
CN103593285A (zh) * | 2013-10-17 | 2014-02-19 | 北京控制工程研究所 | 一种基于判定识别的图像类软件单元测试方法 |
CN103970659A (zh) * | 2014-05-16 | 2014-08-06 | 刘玉光 | 基于插桩技术的安卓应用软件自动化测试方法 |
CN103970659B (zh) * | 2014-05-16 | 2017-01-18 | 刘玉光 | 基于插桩技术的安卓应用软件自动化测试方法 |
CN104063326A (zh) * | 2014-07-14 | 2014-09-24 | 上海零一拼装信息技术有限公司 | 一种用于软件测试数据分析的示波器及方法 |
CN104199773B (zh) * | 2014-09-03 | 2017-08-25 | 腾讯科技(深圳)有限公司 | 获取代码覆盖信息的方法及装置 |
CN104199773A (zh) * | 2014-09-03 | 2014-12-10 | 腾讯科技(深圳)有限公司 | 获取代码覆盖信息的方法及装置 |
CN104484270A (zh) * | 2014-12-05 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种机载嵌入式操作系统软件的验证方法 |
CN106155897A (zh) * | 2015-04-16 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种业务处理方法及装置 |
CN106326093A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | 自动化测试系统及测试方法 |
CN105094939B (zh) * | 2015-07-16 | 2018-05-01 | 南京富士通南大软件技术有限公司 | 一种基于Makefile自动编译技术实现的软件源文件静态分析方法 |
CN105094939A (zh) * | 2015-07-16 | 2015-11-25 | 南京富士通南大软件技术有限公司 | 一种基于Makefile自动编译技术实现的软件源文件静态分析方法 |
WO2017041530A1 (zh) * | 2015-09-09 | 2017-03-16 | 中兴通讯股份有限公司 | 一种软件度量检测方法和系统 |
CN106681905A (zh) * | 2015-11-05 | 2017-05-17 | 财团法人资讯工业策进会 | 软件测试装置及其软件测试方法 |
CN105786710B (zh) * | 2016-03-22 | 2018-10-16 | 中国银行股份有限公司 | 一种程序代码复查方法及引擎 |
CN105786710A (zh) * | 2016-03-22 | 2016-07-20 | 中国银行股份有限公司 | 一种程序代码复查方法及引擎 |
CN106445829A (zh) * | 2016-10-21 | 2017-02-22 | 天津海量信息技术股份有限公司 | 大数据标引规则调试Debug的方法 |
CN106874187A (zh) * | 2016-12-29 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN106874187B (zh) * | 2016-12-29 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN107729254A (zh) * | 2017-11-10 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种通过shell脚本自动维护批量订单工艺的实现方法 |
CN110389895A (zh) * | 2019-06-14 | 2019-10-29 | 平安科技(深圳)有限公司 | 终端测试方法、装置、计算机设备和存储介质 |
CN110427320A (zh) * | 2019-07-24 | 2019-11-08 | 长安大学 | 一种轻量级嵌入式程序控制流异常定位检测方法 |
CN110427320B (zh) * | 2019-07-24 | 2022-10-11 | 长安大学 | 一种轻量级嵌入式程序控制流异常定位检测方法 |
CN110765017A (zh) * | 2019-10-24 | 2020-02-07 | 上海创景信息科技有限公司 | 基于risc-v扩展指令的源码覆盖率测试方法和系统 |
WO2021077735A1 (zh) * | 2019-10-24 | 2021-04-29 | 上海创景信息科技有限公司 | 基于risc-v扩展指令的源码覆盖率测试方法和系统 |
CN111124937A (zh) * | 2020-03-31 | 2020-05-08 | 深圳开源互联网安全技术有限公司 | 基于插桩函数辅助提高生成测试用例效率的方法及系统 |
CN111913878A (zh) * | 2020-07-13 | 2020-11-10 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN111913878B (zh) * | 2020-07-13 | 2023-09-15 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN113434385A (zh) * | 2021-05-26 | 2021-09-24 | 华东师范大学 | 一种针对软件模型检查工具的测试用例自动生成方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101833500A (zh) | 一种基于Agent的嵌入式软件智能测试方法 | |
Ali et al. | Generating test data from OCL constraints with search techniques | |
US7316005B2 (en) | Data race detection using sequential program analysis | |
Jiang et al. | RULF: Rust library fuzzing via API dependency graph traversal | |
CN102567200A (zh) | 基于函数调用图的并行化安全漏洞检测方法 | |
CN101408849A (zh) | Ttcn-3语言的编译执行方法及系统 | |
CN101968766A (zh) | 计算机程序实际运行时触发软件漏洞的检测系统 | |
Ancona et al. | Towards runtime monitoring of node. js and its application to the internet of things | |
Dilley et al. | Bounded verification of message-passing concurrency in go using promela and spin | |
Sottile et al. | Semi-automatic extraction of software skeletons for benchmarking large-scale parallel applications | |
Rohatgi et al. | An approach for mapping features to code based on static and dynamic analysis | |
Zhang | SymPas: symbolic program slicing | |
CN102087629A (zh) | 一种基于Agent嵌入式软件的不变量测试方法与工具 | |
CN102521126A (zh) | 基于模块分解技术的软件缺陷检测系统的复杂性分析方法 | |
Wimmer et al. | Reviving qvt relations: Model-based debugging using colored petri nets | |
Mao et al. | FAUSTA: scaling dynamic analysis with traffic generation at whatsapp | |
EP2972880A1 (en) | Kernel functionality checker | |
Lohmann | A feature-complete Petri net semantics for WS-BPEL 2.0 and its compiler BPEL2oWFN | |
Kinneer et al. | Sofya: A flexible framework for development of dynamic program analyses for Java software | |
Romanov et al. | Representing programs with dependency and function call graphs for learning hierarchical embeddings | |
Masud et al. | Automatic inference of task parallelism in task-graph-based actor models | |
Hernandez et al. | Performance instrumentation and compiler optimizations for MPI/OpenMP applications | |
Patil | Regression Testing in Era of Internet of Things and Machine Learning | |
Huisman et al. | A research agenda for formal methods in the Netherlands | |
CN102279799B (zh) | 基于路径包含处理方法的源代码静态分析方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100915 |