-
公开(公告)号:CN102023923A
公开(公告)日:2011-04-20
申请号:CN201010622568.9
申请日:2010-12-28
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开一种基于别名分析技术的软件测试方法,通过在控制流上对一些涉及别名关系的语句进行特殊分析,利用空间抽象三元模型将变量声明、值和内存空间进行关联,这个过程迭代到控制流不再扩展为止;并通过定义别名分析的三元模型,区别于传统的二元变量-值模型,增加了内存空间抽象;该方法在软件静态测试过程的前期收集了同一抽象内存空间中所有互为别名的变量,将其值进行有效的关联,并将其应用在控制流图的语句节点上。通过实验证明,本发明的软件测试方法相比未应用别名分析技术的现有测试方法,具有有效解决由别名关系造成变量值不同步所产生的漏报问题,能在一定程度上提高静态测试的精度。
-
公开(公告)号:CN105224455B
公开(公告)日:2018-01-09
申请号:CN201510628462.2
申请日:2015-09-28
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种自动生成字符串类型测试用例的方法,首先,使用一个字符数组和一个长度属性作为字符串类型的数据模型,定义了三个原子函数,使用三个原子函数的组合表示C语言标准库中的字符串函数,然后,利用符号执行技术得到一条程序路径的约束提取过程中,对于字符串和字符串函数进行约束提取,得到包含原子函数表示的字符串约束;最后,针对源程序的执行路径,对每条路径的字符串约束进行约束求解,约束求解过程中,根据原子函数的参数的确定值,对于原子函数进行解释得到字符串的结构和取值,直到得到满足路径所有约束的测试用例。优点在于,应用于处理各种字符串函数,减少人工测试耗费的代价,提高软件测试的自动化程度。
-
公开(公告)号:CN106020913A
公开(公告)日:2016-10-12
申请号:CN201610390646.4
申请日:2016-06-06
Applicant: 北京邮电大学
IPC: G06F9/445
CPC classification number: G06F8/65
Abstract: 本发明实施例公开了一种缺陷检测工具更新方法及装置,方法包括:根据待测试工程中异常出现的位置和时机,将异常划分为至少一种异常类型;针对每一种异常类型的异常,确定所述异常类型对应的异常解决方案;根据每一种异常解决方案,更新所述缺陷检测工具中的语言分析器,其中所述语言分析器至少包括词法分析器和语法分析器。应用本发明实施例,能规避缺陷检测工具因待检测工程的开发环境及编译器的多样性带来的非预期语法和/或词法的影响而产生的异常,使得后续分析工作顺利进行。
-
公开(公告)号:CN103593291B
公开(公告)日:2016-03-09
申请号:CN201310581759.9
申请日:2013-11-18
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种用于包括多个函数测试模块的单元测试方法及装置,为解决现有的单元测试中无法实现函数调用语句中函数错误的测试而设计。所述方法包括构建测试模块,所述测试模块包括两个以上有调用关系的函数;根据测试模块内程序的逻辑关系及函数间的调用关系形成若干条函数间路径;为每一条所述函数间路径选择测试用例进行测试。所述方法及装置在单元测试阶段即可及时的发现函数调用中的错误,避免了将函数调用的错误延迟到集成测试中,进而及时的对软件中函数调用的错误进行修正,达到了降低测试成本的目的。
-
公开(公告)号:CN104035864A
公开(公告)日:2014-09-10
申请号:CN201310693444.3
申请日:2013-12-17
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于矛盾片段模式的路径生成方法,包括:A、从控制流图中选择本次路径生成的起点作为当前点,然后执行步骤B;B、选择后继点,然后执行步骤C;C、如果成功选到后继点,则执行步骤G;否则执行步骤D;D、查看是否还有前一个点,有则执行步骤E;否则执行步骤F;E、将前一个点设为当前点,然后执行步骤B;F、由于已经回退到起点,所以生成路径失败;G、查看后继点是否是路径的终点,是则成功生成路径;否则执行步骤H;H、将后一个点设置为当前点,然后执行步骤B。采用本发明方法,能够在路径生成过程中快速检测当前路径片段已经是不可达路径,从而大大提高判定不可达路径的效率。
-
公开(公告)号:CN103914301A
公开(公告)日:2014-07-09
申请号:CN201410119795.8
申请日:2014-03-27
Applicant: 北京邮电大学
IPC: G06F9/44
Abstract: 本发明涉及一种复杂符号运算的等价变换方法,包括:S1:定义简单运算和复杂运算,其中,简单运算为+、-、×,复杂运算为除去简单运算以外的所有其他运算;S2:依据预设变换原则进行变换及处理。本发明能处理符号表达式中的复杂运算,由于复杂的运算在逻辑上可以转化为简单运算,因此,提出等价变换的方法,将复杂运算转化为逻辑等价的简单运算。即只要能处理简单运算,就能处理复杂运算,从而大大降低了符号表达式的处理难度,然后进一步进行简单符号运算的处理方法,具有处理的简易型。本发明还提出了一种复杂符号运算的等价变换装置。
-
公开(公告)号:CN103593291A
公开(公告)日:2014-02-19
申请号:CN201310581759.9
申请日:2013-11-18
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种用于包括多个函数测试模块的单元测试方法及装置,为解决现有的单元测试中无法实现函数调用语句中函数错误的测试而设计。所述方法包括构建测试模块,所述测试模块包括两个以上有调用关系的函数;根据测试模块内程序的逻辑关系及函数间的调用关系形成若干条函数间路径;为每一条所述函数间路径选择测试用例进行测试。所述方法及装置在单元测试阶段即可及时的发现函数调用中的错误,避免了将函数调用的错误延迟到集成测试中,进而及时的对软件中函数调用的错误进行修正,达到了降低测试成本的目的。
-
公开(公告)号:CN103218296A
公开(公告)日:2013-07-24
申请号:CN201310141769.0
申请日:2013-04-22
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种充分检测空指针引用缺陷的方法,包括:基于抽象语法树识别出被测应用的全部可寻址表达式;根据控制流图对被测应用进行保守的区间运算与指针分析并根据区间运算与指针分析的结果,生成函数摘要;根据所述函数摘要以及抽象语法树识别出全部的指针引用以及被引用的指针,并对每个被引用的指针创建空指针引用缺陷状态机实例;基于控制流图运行空指针引用缺陷状态机实例,在控制流图的每个节点上,根据区间运算、指针分析的结果对每个缺陷状态机实例进行状态迁移,进行空指针引用检测。采用本发明,能有效解决空指针引用缺陷的漏报问题,实现空指针引用缺陷检测零漏报及低误报。
-
公开(公告)号:CN103207833A
公开(公告)日:2013-07-17
申请号:CN201310113328.X
申请日:2013-04-02
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种软件测试中循环代码的处理方法,先依据程序控制流图,查找被测代码的循环体,确定当前循环体的循环体前子路径,再确定当前循环体的所有单条子路径,组合所述单条子路径为组合子路径,所述循环体前子路径与所述组合子路径的集合路径为可达时,确定所述组合子路径为当前循环体的确定子路径,确定所述循环体前子路径与所述确定子路径的集合路径为可达时,生成测试用例,并依据所述测试用例,执行被测代码,捕获所述当前循环体的实际执行路径,重复上述步骤,直至处理完被测代码的所有循环体。同时本发明还公开了一种软件测试中循环代码的处理系统。本发明灵活性高、能够节省人力成本、避免路径爆炸。
-
公开(公告)号:CN102073589B
公开(公告)日:2013-07-03
申请号:CN201010622730.7
申请日:2010-12-29
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于代码静态分析的数据竞争检测方法及系统,该方法包括:读取待测软件,对待测软件源程序进行静态分析,生成待测软件的抽象语法树、控制流图、全局函数调用图;在此基础之上计算每个函数内部的别名信息、函数间出口别名信息、锁集合信息、函数内部访问可逃逸变量的访问链以及线程创建关系图;根据访问链计算每两个线程之间访问节点的初始化语句对集合;根据别名信息、锁集合信息、并发关系对该集合进行逐步删减得到最终可能发生数据竞争的语句对。本发明提供的检测方法与检测系统能对C/C++编写的多线程程序进行有效的数据竞争检测,具有测试精度高和自动化程度高的特点,适用于对两个线程或多个线程导致的数据竞争的检测。
-
-
-
-
-
-
-
-
-