CN104063325B - 一种针对嵌入式软件的测试用例自动化生成装置及其方法 - Google Patents

一种针对嵌入式软件的测试用例自动化生成装置及其方法 Download PDF

Info

Publication number
CN104063325B
CN104063325B CN201410329276.4A CN201410329276A CN104063325B CN 104063325 B CN104063325 B CN 104063325B CN 201410329276 A CN201410329276 A CN 201410329276A CN 104063325 B CN104063325 B CN 104063325B
Authority
CN
China
Prior art keywords
software
tested software
module
semiology analysis
nucleus module
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
CN201410329276.4A
Other languages
English (en)
Other versions
CN104063325A (zh
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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201410329276.4A priority Critical patent/CN104063325B/zh
Priority to PCT/CN2014/083338 priority patent/WO2016004657A1/zh
Priority to US15/112,689 priority patent/US10180899B2/en
Publication of CN104063325A publication Critical patent/CN104063325A/zh
Application granted granted Critical
Publication of CN104063325B publication Critical patent/CN104063325B/zh
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/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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

一种针对嵌入式软件的测试用例自动化生成装置及其方法
技术领域
本发明属于软件测试技术领域,具体一种针对嵌入式软件的测试用例自动化生成方法及其装置,其被测试的程序为嵌入式软件,可自动化的产生测试用例。
背景技术
由于搭载嵌入式软件的设备的广泛应用,嵌入式软件质量成为了关乎国民经济和个人生命财产安全的关键。软件测试是一种提高软件质量的常用方式,但传统的方法不能彻底的测试嵌入式软件,其原因在于测试用例不能覆盖所有可能的执行情况。
符号执行技术最早在1970年左右提出,并在近年成为了研究热点。动态符号执行技术是符号执行技术的变种,它将符号执行与实际执行结合起来。通俗来说,动态符号执行将被测试软件运行起来,在执行期间搜集路径条件,通过求解路径条件来产生新的测试用例。在理论上,动态符号执行技术可以彻底地测试被测软件,因为新产生的测试用例能够覆盖未执行的路径。
但由于嵌入式系统的软硬件能力,尤其是处理器的计算能力与存储器的存储空间的限制,导致现有的在通用计算平台运行良好的动态符号执行软件无法直接应用于嵌入式软件。而考虑到求解器与插桩软件等的复杂性,直接将通用平台的动态符号执行软件移植到嵌入式系统上会带来极大的开发工作量。
在文献《SCORE: a scalable concolic testing tool for reliable embeddedsoftware》中,Kim等研究者将CREST和KLEE移植到了嵌入式系统上。与之相似的方法在5篇论文中有报道《Concolic testing on embeddedsoftware - case studies on mobileplatform programs》、《Industrial application ofconcolic testing on embeddedsoftware: Case studies》、《A case study on libexif by usingCREST-BV and KLEE》、《Scalable distributed concolictesting: a case study on a flash storageplatform》、《Concolic testing of the multi-sector read operation for flashmemoryfile system》。这几篇文献提出的方式是类似的,主要为以下几点:(1) 修改现有的通用平台的动态符号执行软件CREST或KLEE;(2) 使用修改后的动态符号执行软件对被测软件的源程序插桩; (3) 在嵌入式系统上运行被插桩的被测软件;(4) 在嵌入式系统上利用修改后的求解器产生新的测试用例。这类方法主要有以下缺点:(1)需要被测软件的C/C++的源程序;(2)需要对通用动态符号执行软件和求解器进行大范围的修改,(3) 这类方法的符号执行部分运行在嵌入式系统上,导致极大的资源开销。
在文献《Structural Testing of Executables》和《OSMOSE: Automatic structural testing of executables》中,Bardin等人提出将被测软件的可执行代码翻译 为中间语言,然后在模拟器中符号执行中间语言。这类方法存在以下问题:这类方法针对不 同的嵌入式系统,需要开发相应的模拟器;(2) 被测软件在模拟器中的执行情况不一定是 真实的执行情况。
文献《Unleashing mayhem on binary code》提出将动态符号执行分为实际执行进程与符号执行进程,实际执行进程在目标系统上运行,而符号执行进程在任意平台运行。该方法存在以下缺点:(1) 该方法的实际执行部分包含污点跟踪、动态二进制插桩、虚拟机等开销很大的功能模块,不适合在嵌入式系统上运行;(2) 为了能够在嵌入式系统上运行动态污点分析,该方法需要移植污点跟踪软件、动态二进制插桩软件、虚拟机;(3) 该方法采用混合(hybrid)符号执行;(4) 该方法设计并实现了跨平台的轻量级的RPC协议,用来连接实际执行进程与符号执行进程但该方法尚未应用于嵌入式软件测试。
发明内容
针对上述现有技术问题,本发明的目的在于提供一种针对嵌入式软件的测试用例自动化生成方法及其装置,该方法能够适应嵌入式系统的软硬件能力,能最大程度地利用现有的通用计算平台上的动态符号执行软件,因此代码移植工作量低;该方法还能够获得真实的软件运行情况、避免误报,并且不需要被测软件的源代码,因而能方便地测试商用嵌入式软件。
为了达到上述目的,本发明采用如下技术方案:
一种针对嵌入式软件的测试用例自动化生成装置,其特征在于,包括以下器件:
主机系统:运行符号执行部分;
嵌入式系统:运行实际执行部分;
符号执行核心模块:标记符号源、跟踪符号传播、产生路径条件、运行时维护被测软件的执行树;
路径选择模块:运行路径选择算法;
求解器:判断路径条件是否满足,如果不满足则表示对应的路径不可行,如果满足,产生一组赋值,这组赋值被解释为新的测试用例,该测试用例能够覆盖路径条件对应的路径;
测试用例选择器:从测试用例池中选择一个测试用例,作为被测试软件的输入;
调试器:是主机系统上唯一与嵌入式系统通信的模块,负责从符号执行核心模块接收被测软件与命令,从测试用例选择器接收测试用例,发送命令、被测软件、测试用例到嵌入式系统,从嵌入式系统接收被测软件运行时信息再发送给符号执行核心模块;
中间语言翻译模块:将机器指令翻译为中间语言,根据符号执行核心模块能够处理的中间语言类型和机器指令类型来选择;
实际执行核心模块:负责实际执行部分的主要功能,包括:启动和停止被测软件、设置断点、单步调试、继续执行被测软件、获取指定寄存器和内存的值;
调试代理模块:是嵌入式系统上唯一与主机系统通信的模块,负责将命令重定向到实际执行核心模块,发送被测软件的运行时信息到主机系统;
被测试软件、测试用例通过调试器和调试代理从主机系统上传到嵌入式系统;所述实际执行核心模块启动被测软件;符号执行核心模块通过调试器获取被测软件的运行时信息,当被测软件操作符号源时,符号执行核心模块完成符号源的标记工作并跟踪符号传播,产生路径条件,再将路径条件发送到路径选择模块,路径选择模块根据路径选择算法构造一条或者多条路径条件,再将其发送给求解器;求解器将输入的路径条件求解,如果存在解,则产生相应的测试用例,并全部存放到主机系统上的用例池中。
在本发明中,所述符号源为用户可以直接操作的数据,如磁盘文件、网络数据包、键盘输入。
在本发明中,所述路径选择算法主要包括深度优先、广度优先、generational搜索、随机搜索。
基于上述测试用例自动化生成装置的测试用例自动化生成方法,其特征在于,将动态符号执行分解为实际执行与符号执行两部分,实际执行部分运行在嵌入式系统,符号执行部分运行在主机系统;该方法主要包括以下步骤:
S1:启动主机系统和嵌入式系统,被测试软件通过调试器和调试代理从主机系统上传到嵌入式系统,初始测试用例也通过调试器和调试代理从主机系统上传到嵌入式系统,初始测试用例通常随机产生;
S2:实际执行核心模块启动被测软件;
S3:符号执行核心模块通过调试器获取被测软件的运行时信息,当被测软件操作符号源时,符号执行核心模块完成符号源的标记工作;
S4:符号执行核心模块跟踪符号传播,并产生路径条件,在此过程中通过调试器获得被测软件的运行时信息;
S5:当被测软件停止即运行完正常退出或者发生异常时,符号执行核心模块将路径条件发送到路径选择模块,路径选择模块根据路径选择算法构造一条或者多条路径条件,再将其发送给求解器;
S6:求解器将输入的路径条件求解,如果存在解,则产生相应的测试用例,并全部存放到用例池中;如果不存在解,则进入步骤S7;
S7:符号执行核心模块判断是否应该结束,如果是,则停止整个系统,如果不是,测试用例选择器则选择新的测试用例,作为被测软件的输入,并返回步骤S2。
更进一步地,在步骤S7中,停止条件包括被测软件所有路径已经覆盖、达到了预先设定的代码覆盖率、发现被测软件的bug、达到了预先设定的测试预算。
本发明同现有技术相比,其有益效果表现在:
一、实际执行部分运行在嵌入式系统能够获得准确的被测软件运行信息,这种方式比运行在模拟器中更准确;只有实际执行发生在嵌入式系统上,不会给嵌入式系统带来额外的开销;
二、符号执行部分运行在主机系统,这样将开销巨大的符号执行限制在强大的主机系统上,能够避免嵌入式系统软硬件能力低下的问题;又可以在最大程度上利用现有的通用计算平台的动态符号执行软件,从而大大减少了软件开发工作;
三、本发明利用现有的中间代码翻译模块,根据需要,将机器指令翻译为中间语言形式,因此本发明不需要被测软件的源代码;
四、能够克服嵌入式系统软硬件能力低下的缺陷,可自动产生嵌入式软件的测试用例。
附图说明
图1是本发明的总体架构图;
图2为本发明实施例采用的SC-UE方法示意图。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
实施例
针对风河公司开发的版本号为6.6的嵌入式操作系统VxWorks
将前期开发的通用计算平台上的动态符号执行软件SMAFE移植到VxWorks上。 SMAFE本身是针对x86/Windows平台的,采用动态二级制插桩软件Pin,求解器采用STP,代码 量在1万行C/C++源码左右。采用本专利提出的方法,编码量为1500行C/C++代码就将其移至 到x86/VxWorks平台。关于SMAFE的详细资料,可以参考我们之前的学术论文《Design and implementation of a dynamic symbolic execution tool for windows executables》。 由于SMAFE可以直接符号执行x86机器指令,因此将其移植到x86/VxWorks平台不需要代码 翻译过程。
SMAFE中有部分代码直接调用Pin,这部分代码需要进行移植,而其他大量的代码可以不经任何修改直接采用,例如:路径选择模块、求解器、测试用例选择器、跟踪符号传播等。利用风和公司自带的WTX协议来获取被测软件运行时信息,也就是实现符号执行部分与实际执行部分的通信与同步功能。表1列出了本实施例使用到的WTX协议提供的API函数及其使用说明。
表1 本实施方式使用的WTX协议API
序号 API 说明
1 wtxObjModuleLoad 将被测软件和测试用例上载到嵌入式系统
2 wtxObjModuleInfoGet 获取被测软件在嵌入式系统上被加载的位置,位置信息用于区分被测软件的指令与系统自身的指令。
3 wtxRegsGet 获取指定寄存器的值
4 wtxMemRead 获取指定内存位置的值
5 wtxMemDisassemble 将指定指令反汇编。本API提供的信息不足,本实施方式采用开源反汇编软件获取更多的信息。
6 wtxContextResume 恢复执行被测软件。有两处地方会调用本API,第一处是启动被测软件,因为被测软件上载到嵌入式系统上是处于挂起状态的;第二处是实际运行系统自身指令。
7 wtxEventpointAdd 通过设置事件类型为TEXT_ACCESS来设置断点。
8 wtxContextCont 从断点处继续执行。
9 wtxRegisterForEvent 注册事件处理函数,本实施方式处理了两种事件:TEXT_ACCESS和CTX_EXIT。
一、系统初始化:原始的SMAFE的初始化很简单,直接调用Pin提供的相关函数,但本实施例基于WTX协议,而WTX协议没有直接提供系统初始化的功能,因此需要多个步骤对系统进行初始化,其步骤如下:
①主机端创建一个WTX会话;
②主机端连接到嵌入式系统;
③注册两个函数来处理事件,分别对应TEXT_ACCESS事件和CTX_EXIT事件;TEXT_ACCESS表示执行到了断点处,CTX_EXIT表示被测软件执行完毕,正常退出;
④将被测软件和初始测试用例上载到嵌入式系统,记录下被测软件在嵌入式系统内存中的位置,以便区分被测软件的指令和嵌入式系统自身的指令;
⑤查找被测软件的入口点,并在入口点处设置断点;当被测软件执行到入口点时,一个TEXT_ACCESS事件会被触发;
⑥在I/O函数处注册回调函数,当I/O函数执行时,相应回调函数会被执行,这些回调函数的作用是标记符号源;
⑦运行被测软件,等待事件触发。
二、事件处理流程:对两个事件进行特殊处理,分别是TEXT_ACCESS和CTX_EXIT。当TEXT_ACCESS触发时,处理步骤如下:
a、删除设置在该指令上的断点;
b、获得当前所有寄存器的实际值并将它们存储在一个数据结构中;
c、获得当前指令,并采用开源反汇编软件将其反汇编,所获得的详细信息存储在一个数据结构中以备符号执行的时候使用;
d、判断当前指令是否是某个函数的第一条指令,此函数记为f1;如果是,本实施方式查找是否有注册的回调函数应该在f1执行之前执行,这个回调函数记为f2;如果是,本实施方式先执行f2,再在f1函数执行完成后将执行的第一条指令处下一个断点;
e、判断当前指令是否是某个函数执行完后将执行的第一条指令;如果是,则查找是否有注册的回调函数是否应该在该指令执行前执行,如果是,则执行该回调函数;
f、判断当前指令是否应该符号执行;如果是,该指令被符号执行;需要说明的是,符号执行单条指令的代码是基本上从SMAFE中重用;
g、如果当前指令已经被符号执行则单步执行该指令,否则继续执行被测软件;需要注意的是,单步执行某条指令,意味着该指令的下一条被执行的指令会被设置一个断点;
h、对CTX_EXIT事件的处理流程较简单,主要负责当被测软件结束后的清理工作,包括卸载被测软件、释放符号执行占用的内存空间等。
三、标记符号源:由于符号通常通过I/O函数进入被测软件,所以本实施方式对常见的I/O函数进行了处理,下面给出对fopen和fread的处理步骤,其他I/O函数的处理流程是类似的。
a、在fopen执行前,注册的回调函数fopen_before被执行,该回调函数用来记录打开文件的文件名;
b、在fopen执行后,注册的回调函数fopen_after被执行,fopen_after首先检查该文件是否打开成功;如果是,该文件的指针与步骤a获得文件名联系起来;
c、在fread执行之前,注册的回调函数fread_open被执行;该回调函数首先根据该文件的指针获取文件名,再检查打开的文件是否是测试用例;如果是,存储文件内容的缓冲区的地址及单个元素的大小被记录下来;
d、在fread执行后,注册的回调函数fread_after被调用;fread_after首先检查测试用例是否读入成功,如果是,将真实读入的单元数量与单元大小和缓冲区地址联系起来;
f、后续的执行过程直接重用SMAFE的代码,例如:在符号存储区中创建新条目与输入对应等。
需要声明的是,何时且如何调用回调函数取决于对事件TEXT_ACCESS的处理方式。
四、系统自身指令的处理:实用的嵌入式软件会频繁调用嵌入式系统自身的指令,所以动态符号执行软件必须能够合理的处理系统自身的指令。通常有两种处理方式:SC_UE和SC_SE。SC_UE方式实际执行系统自身的指令,而不进行符号执行,而SC_SE方式不但实际执行系统自身的指令,并且进行符号执行。本实施方式采用的SC_UE方式,如图2所示。在图2中,左侧的框表示被测软件的指令,右侧的框表示系统自身的指令,每个箭头代表一个控制流转移。通常,被测软件与系统自身指令之间的控制流转移有函数调用和函数返回。所以位于对外部函数的调用指令后的指令,会在外部指令执行完后执行。
如图2,当指令1被执行时,处理TEXT_ACESS事件的回调函数被调用。该回调函数首先检查指令1是否应该符号执行。按照SC_UE方式,由于指令1属于系统自身的指令,所以不会被符号执行。随后,指令1前一条被执行的指令,即指令0被确定。随后,该回调函数查找位于指令0后的下一条指令,即指令7,并在指令7上设置一个断点。最后,恢复执行被测软件。
本实施方式提出的处理系统自身指令的方式有效且简单,能够处理现实中的复杂情况。例如,在大多数时候,外部函数的调用是嵌套的,本方法也能够处理嵌套的外部函数。这是因为本实施方式在外部代码执行完成后的,后续属于被测软件的第一条指令处下了断点。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。

Claims (5)

1.一种针对嵌入式软件的测试用例自动化生成装置,其特征在于,包括以下器件:
主机系统:运行符号执行部分;
嵌入式系统:运行实际执行部分;
符号执行核心模块:标记符号源、跟踪符号传播、产生路径条件、运行时维护被测软件的执行树;
路径选择模块:运行路径选择算法;
求解器:判断路径条件是否满足,如果不满足则表示对应的路径不可行,如果满足,产生一组赋值,这组赋值被解释为新的测试用例,该测试用例能够覆盖路径条件对应的路径;
测试用例选择器:从测试用例池中选择一个测试用例,作为被测试软件的输入;
调试器:是主机系统上唯一与嵌入式系统通信的模块,负责从符号执行核心模块接收被测软件与命令,从测试用例选择器接收测试用例,发送命令、被测软件、测试用例到嵌入式系统,从嵌入式系统接收被测软件运行时信息再发送给符号执行核心模块;
中间语言翻译模块:将机器指令翻译为中间语言,根据符号执行核心模块能够处理的中间语言类型和机器指令类型来选择;
实际执行核心模块:负责实际执行部分的主要功能,包括:启动和停止被测软件、设置断点、单步调试、继续执行被测软件、获取指定寄存器和内存的值;
调试代理模块:是嵌入式系统上唯一与主机系统通信的模块,负责将命令重定向到实际执行核心模块,发送被测软件的运行时信息到主机系统;
被测试软件、测试用例通过调试器和调试代理从主机系统上传到嵌入式系统;所述实际执行核心模块启动被测软件;符号执行核心模块通过调试器获取被测软件的运行时信息,当被测软件操作符号源时,符号执行核心模块完成符号源的标记工作并跟踪符号传播,产生路径条件,再将路径条件发送到路径选择模块,路径选择模块根据路径选择算法构造一条或者多条路径条件,再将其发送给求解器;求解器将输入的路径条件求解,如果存在解,则产生相应的测试用例,并全部存放到主机系统上的用例池中。
2.根据权利要求1所述的针对嵌入式软件的测试用例自动化生成装置,其特征在于,所述符号源为用户可以直接操作的数据。
3.根据权利要求1所述的针对嵌入式软件的测试用例自动化生成装置,其特征在于,所述路径选择算法包括深度优先、广度优先、generational搜索、随机搜索。
4.一种针对嵌入式软件的测试用例自动化生成方法,其特征在于,将动态符号执行分解为实际执行与符号执行两部分,实际执行部分运行在嵌入式系统,符号执行部分运行在主机系统;该方法主要包括以下步骤:
S1:启动主机系统和嵌入式系统,被测试软件通过调试器和调试代理从主机系统上传到嵌入式系统,初始测试用例也通过调试器和调试代理从主机系统上传到嵌入式系统,初始测试用例通常随机产生;
S2:实际执行核心模块启动被测软件;
S3:符号执行核心模块通过调试器获取被测软件的运行时信息,当被测软件操作符号源时,符号执行核心模块完成符号源的标记工作;
S4:符号执行核心模块跟踪符号传播,并产生路径条件,在此过程中通过调试器获得被测软件的运行时信息;
S5:当被测软件停止即运行完正常退出或者发生异常时,符号执行核心模块将路径条件发送到路径选择模块,路径选择模块根据路径选择算法构造一条或者多条路径条件,再将其发送给求解器;
S6:求解器将输入的路径条件求解,如果存在解,则产生相应的测试用例,并全部存放到用例池中;如果不存在解,则进入步骤S7;
S7:符号执行核心模块判断是否应该结束,如果是,则停止整个系统,如果不是,测试用例选择器则选择新的测试用例,作为被测软件的输入,并返回步骤S2。
5.根据权利要求4所述的针对嵌入式软件的测试用例自动化生成方法,其特征在于,在步骤S7中的停止条件包括被测软件所有路径已经覆盖、达到了预先设定的代码覆盖率、发现被测软件的bug、达到了预先设定的测试预算。
CN201410329276.4A 2014-07-11 2014-07-11 一种针对嵌入式软件的测试用例自动化生成装置及其方法 Active CN104063325B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410329276.4A CN104063325B (zh) 2014-07-11 2014-07-11 一种针对嵌入式软件的测试用例自动化生成装置及其方法
PCT/CN2014/083338 WO2016004657A1 (zh) 2014-07-11 2014-07-30 一种针对嵌入式软件的测试用例自动化生成装置及其方法
US15/112,689 US10180899B2 (en) 2014-07-11 2014-07-30 Device for automatically generating test cases for embedded software using symbolic and concrete execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410329276.4A CN104063325B (zh) 2014-07-11 2014-07-11 一种针对嵌入式软件的测试用例自动化生成装置及其方法

Publications (2)

Publication Number Publication Date
CN104063325A CN104063325A (zh) 2014-09-24
CN104063325B true CN104063325B (zh) 2016-10-26

Family

ID=51551047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410329276.4A Active CN104063325B (zh) 2014-07-11 2014-07-11 一种针对嵌入式软件的测试用例自动化生成装置及其方法

Country Status (3)

Country Link
US (1) US10180899B2 (zh)
CN (1) CN104063325B (zh)
WO (1) WO2016004657A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407969B (zh) * 2014-11-03 2017-04-05 东南大学 一种基于路径特征的程序执行轨迹状态自动获取方法
CN104375942B (zh) * 2014-12-11 2017-02-08 无锡江南计算技术研究所 一种面向二进制的混合模糊测试方法
CN104657263B (zh) * 2015-02-10 2017-10-24 上海创景计算机系统有限公司 基于jtag调试方式实现通用型目标码覆盖率测试系统和测试方法
CN105117341B (zh) * 2015-09-06 2017-11-17 电子科技大学 一种基于动态符号执行的分布式自动测试案例生成方法
US9811448B2 (en) * 2015-12-18 2017-11-07 Fujitsu Limited Event-driven software testing
CN106776313B (zh) * 2016-12-13 2020-06-23 广州品唯软件有限公司 一种模拟服务的方法、装置及集中管理平台
US10489287B2 (en) * 2017-05-15 2019-11-26 Bank Of America Corporation Conducting automated software testing using centralized controller and distributed test host servers
CN108959056B (zh) * 2017-05-17 2021-11-16 富士通株式会社 测试用例生成方法和测试用例生成装置
CN107562621B (zh) * 2017-08-28 2020-11-06 阿里巴巴(中国)有限公司 确定手工测试用例与被测试代码关联关系的方法和装置
US11954461B2 (en) 2018-02-26 2024-04-09 Ukg Inc. Autonomously delivering software features
US10769056B2 (en) 2018-02-26 2020-09-08 The Ultimate Software Group, Inc. System for autonomously testing a computer system
US11151018B2 (en) * 2018-04-13 2021-10-19 Baidu Usa Llc Method and apparatus for testing a code file
CN110399286B (zh) * 2018-04-24 2023-05-12 西安邮电大学 一种基于独立路径的测试数据自动生成方法
CN108595341B (zh) * 2018-05-11 2019-11-22 清华大学 测试用例自动生成方法及系统
CN108710575B (zh) * 2018-05-23 2020-11-24 华南理工大学 基于路径覆盖测试用例自动生成的单元测试方法
US11010284B1 (en) 2018-05-31 2021-05-18 The Ultimate Software Group, Inc. System for understanding navigational semantics via hypothesis generation and contextual analysis
US11113175B1 (en) 2018-05-31 2021-09-07 The Ultimate Software Group, Inc. System for discovering semantic relationships in computer programs
US10599767B1 (en) 2018-05-31 2020-03-24 The Ultimate Software Group, Inc. System for providing intelligent part of speech processing of complex natural language
US10747651B1 (en) 2018-05-31 2020-08-18 The Ultimate Software Group, Inc. System for optimizing system resources and runtime during a testing procedure
US10977155B1 (en) 2018-05-31 2021-04-13 The Ultimate Software Group, Inc. System for providing autonomous discovery of field or navigation constraints
CN109144857A (zh) * 2018-08-01 2019-01-04 武汉普利商用机器有限公司 跨平台的算法测试方法及系统
CN109086215B (zh) * 2018-10-18 2021-11-16 北京轩宇信息技术有限公司 一种嵌入式软件单元测试用例生成方法及系统
CN109710522A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 代码测试方法、装置、计算机设备和存储介质
CN110033405B (zh) * 2019-03-20 2020-11-06 上海交通大学 一种基于图像处理器加速的符号执行方法及系统
CN110213243B (zh) * 2019-05-15 2020-05-12 浙江大学 一种基于动态污点分析的工业通信协议逆向分析方法
US11218398B2 (en) * 2019-10-29 2022-01-04 Amdocs Development Limited System, method, and computer program for closed loop management of a network
CN111176994B (zh) * 2019-12-24 2023-03-31 北京轩宇信息技术有限公司 针对嵌入式软件io端口的单元测试用例生成方法及装置
CN112035346B (zh) * 2020-08-25 2023-09-12 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于嵌入式dsp操作系统的自动化测试方法、系统及介质
CN112084113B (zh) * 2020-09-16 2024-02-23 上海创景信息科技有限公司 基于嵌入式仿真验证软件的可配置自动化测试方法及系统
CN112506759B (zh) * 2020-11-23 2023-11-14 四川航天烽火伺服控制技术有限公司 伺服系统控制软件的自动化测试方法、装置及存储介质
CN112416800B (zh) * 2020-12-03 2023-09-15 网易(杭州)网络有限公司 智能合约的测试方法、装置、设备及存储介质
CN112559338B (zh) * 2020-12-11 2024-02-06 北京百度网讯科技有限公司 应用程序的校验方法、装置、设备及存储介质
CN112799936B (zh) * 2021-01-08 2024-03-12 合肥美昂兴电子技术有限公司 测试测量系统嵌入式内核引擎算法
CN113270137B (zh) * 2021-04-29 2024-06-14 北京航天飞腾装备技术有限责任公司 一种基于fpga嵌入式软核的ddr2测试方法
CN114510429B (zh) * 2022-02-28 2024-05-07 中国人民解放军国防科技大学 一种基于动态符号执行的调试方法、系统和介质
CN114546510B (zh) * 2022-04-25 2022-07-08 芯天下技术股份有限公司 一种挂起功能的验证方法、装置、电子设备及存储介质
CN115037364B (zh) * 2022-06-08 2023-08-15 上海百功半导体有限公司 一种光通信芯片的调试系统及方法
CN115017058B (zh) * 2022-08-04 2022-11-29 飞腾信息技术有限公司 一种内核模块的测试方法、装置、电子设备及存储介质
CN115629996B (zh) * 2022-12-21 2023-03-10 深圳市微克科技有限公司 一种嵌入式软件自动化测试方法
CN116451228B (zh) * 2023-04-23 2023-10-17 北京安普诺信息技术有限公司 动态污点追踪方法、装置及相关在线污点传播分析系统
CN116820992B (zh) * 2023-07-05 2024-07-19 上海灵动微电子股份有限公司 一种嵌入式软件自动化测试方法和系统
CN117194275B (zh) * 2023-11-03 2024-01-26 吉贝克信息技术(北京)有限公司 基于智能算法的软件自动化测试计划自动生成方法及系统
CN118012767B (zh) * 2024-02-27 2024-09-10 浙江大学 一种面向多覆盖率用例生成与多方法融合的软件bug定位方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1485740A (zh) * 2002-09-23 2004-03-31 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
CN101521899A (zh) * 2009-03-31 2009-09-02 大连海事大学 用于移动应用程序的机上测试系统和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581052B1 (en) * 1998-05-14 2003-06-17 Microsoft Corporation Test generator for database management systems
CN201382526Y (zh) * 2009-03-12 2010-01-13 广东美的电器股份有限公司 断冷桥防漏风的空调箱体
US8468499B2 (en) * 2009-03-16 2013-06-18 Ntt Docomo, Inc. Directed testing for property violations
US8387018B2 (en) * 2010-09-01 2013-02-26 International Business Machines Corporation Fault localization using directed test generation
US8776026B2 (en) * 2010-10-01 2014-07-08 Ecole Polytechnique Federale De Lausanne System and method for in-vivo multi-path analysis of binary software
US8645924B2 (en) * 2011-06-06 2014-02-04 Fujitsu Limited Lossless path reduction for efficient symbolic execution and automatic test generation
US9183396B2 (en) * 2012-05-21 2015-11-10 Carnegie Mellon University Detecting exploitable bugs in binary code
US9152540B2 (en) * 2012-08-31 2015-10-06 Oregon State Board Of Higher Education On Behalf Of Portland State University System and methods for generating and managing a virtual device
US8909992B2 (en) * 2012-11-27 2014-12-09 International Business Machines Corporation Dynamic concolic execution of an application
CN103064787B (zh) * 2012-12-21 2015-06-10 清华大学 一种基于扩展接口自动机模型的嵌入式组件建模与测试方法
US9360523B2 (en) * 2014-04-18 2016-06-07 Breker Verification Systems Display in a graphical format of test results generated using scenario models

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1485740A (zh) * 2002-09-23 2004-03-31 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
CN1503136A (zh) * 2002-11-21 2004-06-09 深圳市中兴通讯股份有限公司 一种嵌入式软件测试方法
CN101521899A (zh) * 2009-03-31 2009-09-02 大连海事大学 用于移动应用程序的机上测试系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
动态程序分析技术在软件安全领域的研究;陈厅;《中国博士学位论文全文数据库 信息科技辑》;20140515;全文 *

Also Published As

Publication number Publication date
US10180899B2 (en) 2019-01-15
WO2016004657A1 (zh) 2016-01-14
CN104063325A (zh) 2014-09-24
US20170010956A1 (en) 2017-01-12

Similar Documents

Publication Publication Date Title
CN104063325B (zh) 一种针对嵌入式软件的测试用例自动化生成装置及其方法
CN107562626B (zh) 一种封装Selenium和Sikuli实现Web自动化测试的方法
CN109542791B (zh) 一种基于容器技术的程序大规模并发评测方法
CN106897322B (zh) 一种数据库和文件系统的访问方法和装置
CN105589874B (zh) Etl任务依赖关系的检测方法、装置及etl工具
US20130007711A1 (en) Unified model for visual component testing
CN103984624A (zh) 一种网页自动化测试方法及系统
US20180113794A1 (en) Webgl application analyzer
CN103902456A (zh) 测试脚本处理装置、系统及方法
CN106951368A (zh) 基于uml时序图的测试用例自动生成方法
WO2023016480A1 (zh) 一种硬件内存序架构下的代码处理方法及相应装置
JP2017533491A (ja) 情報処理方法、装置及びコンピュータ記憶媒体
CN110532182A (zh) 一种虚拟化平台的自动化测试方法及装置
CN104391796A (zh) 一种测试用例解析方法
Oliveira et al. Delivering software with agility and quality in a cloud environment
CN103914379A (zh) 故障自动注入与故障检测的方法及其系统
CN105094906B (zh) 一种游戏服务器热更新方法、装置与系统
CN109491904B (zh) 一种SparkSQL应用程序的自动化测试方法和装置
EP2972880B1 (en) Kernel functionality checker
CN106919374B (zh) 一种脚本生成方法和装置
CN109885493A (zh) 一种基于Android平台和Java反射的自动化混合框架
CN117827879A (zh) 一种存储过程的转换方法、装置、设备及介质
CN106293862A (zh) 一种可扩展标记语言xml数据的解析方法和装置
Ratanotayanon et al. Cross-artifact traceability using lightweight links
CN103955424B (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
C14 Grant of patent or utility model
GR01 Patent grant