-
公开(公告)号:CN102521126B
公开(公告)日:2015-11-25
申请号:CN201110398217.9
申请日:2011-12-05
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开一种基于模块分解技术的软件缺陷检测系统(DTS)的复杂性分析方法,包括:A,根据所述DTS缺陷检测原理,将该分析方法的流程包括由前端输入预处理模块完成的前端输入预处理步骤、由预分析模块完成预分析的步骤、由正式分析模块完成正式分析的步骤;B,对所述的前端输入预处理模块、预分析模块和正式分析模块的内部所有分析单元,按其调用顺序及依赖关系依次分析其复杂度,得到每个分析单元复杂性分布的性质和规律;C,根据步骤B的分析结果,统计得出整个DTS系统的复杂性分布情况。采用本发明,通过对每个模块内部的分析单元的复杂性分析,统计得出DTS的复杂性分布情况,克服了现有复杂性分析方法不够系统全面等的缺点。
-
公开(公告)号:CN102073588B
公开(公告)日:2013-11-20
申请号:CN201010622570.6
申请日:2010-12-28
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种基于代码静态分析的多线程死锁检测方法及系统,该方法包括:对待测软件源程序进行词法、语法及语义分析,生成抽象语法树和控制流图;通过遍历抽象语法树,生成程序的指向分析图,对程序中的线程类进行分析,生成线程类并发特征集合;通过对控制流图的遍历,对程序进行可达分析,生成线程并发特征集并进行分析,生成占有请求特征集和锁图并进行分析,检测潜在的死锁,找到锁对象的门锁集合,删除不同线程锁对象存在相同门锁情况的死锁,更新潜在死锁集合;通过并发与逃逸分析,删除不可能的死锁情况,得到最终的死锁集合。应用本发明的方法及系统能够有效检测两个或多个线程产生死锁的情况,提高测试精度和自动化程度。
-
公开(公告)号:CN102073589B
公开(公告)日:2013-07-03
申请号:CN201010622730.7
申请日:2010-12-29
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于代码静态分析的数据竞争检测方法及系统,该方法包括:读取待测软件,对待测软件源程序进行静态分析,生成待测软件的抽象语法树、控制流图、全局函数调用图;在此基础之上计算每个函数内部的别名信息、函数间出口别名信息、锁集合信息、函数内部访问可逃逸变量的访问链以及线程创建关系图;根据访问链计算每两个线程之间访问节点的初始化语句对集合;根据别名信息、锁集合信息、并发关系对该集合进行逐步删减得到最终可能发生数据竞争的语句对。本发明提供的检测方法与检测系统能对C/C++编写的多线程程序进行有效的数据竞争检测,具有测试精度高和自动化程度高的特点,适用于对两个线程或多个线程导致的数据竞争的检测。
-
公开(公告)号:CN102521126A
公开(公告)日:2012-06-27
申请号:CN201110398217.9
申请日:2011-12-05
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开一种基于模块分解技术的软件缺陷检测系统(DTS)的复杂性分析方法,包括:A,根据所述DTS缺陷检测原理,将该分析方法的流程包括由前端输入预处理模块完成的前端输入预处理步骤、由预分析模块完成预分析的步骤、由正式分析模块完成正式分析的步骤;B,对所述的前端输入预处理模块、预分析模块和正式分析模块的内部所有分析单元,按其调用顺序及依赖关系依次分析其复杂度,得到每个分析单元复杂性分布的性质和规律;C,根据步骤B的分析结果,统计得出整个DTS系统的复杂性分布情况。采用本发明,通过对每个模块内部的分析单元的复杂性分析,统计得出DTS的复杂性分布情况,克服了现有复杂性分析方法不够系统全面等的缺点。
-
公开(公告)号:CN102495800A
公开(公告)日:2012-06-13
申请号:CN201110400173.9
申请日:2011-12-05
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供了一种循环语句中变量抽象取值的迭代求精方法,所述方法包括:根据控制流图CFG进行数据流迭代,得到上次迭代区间LastDomain;根据循环头节点LoopHead的循环条件进行循环语句块的数据流迭代,得到本次迭代区间ThisDomain;将LastDomain和ThisDomain进行加宽Widening操作。采用本发明公开的技术方案能够解决循环语句中变量抽象取值迭代计算收敛速度慢或不收敛的技术问题。
-
公开(公告)号:CN101482847B
公开(公告)日:2011-06-29
申请号:CN200910003082.4
申请日:2009-01-19
Applicant: 北京邮电大学
Abstract: 本发明公开了一种基于安全漏洞缺陷模式的检测方法,包括:读取被测程序源代码文件进行预处理,解析安全漏洞模式对应的安全漏洞状态机描述文件;再对被测程序代码进行词法、语法分析,构造出被测程序的抽象语法树;根据抽象语法树构造控制流图,生成符号表;然后进行变量取值区间集的计算与更新,并根据符号表、对被测程序进行函数调用关系分析生成函数调用关系图,再建立ud/du链;通过建立安全漏洞模式状态机并调用ud/du链,对控制流图进行遍历,计算控制流图上每个节点安全漏洞状态机的状态变迁,若安全漏洞状态机进入缺陷状态,则报告对应的检查点,测试完毕后输出安全漏洞测试报表。本发明方法具有自动化程度高、测试精度高的优点。
-
公开(公告)号:CN101286132B
公开(公告)日:2010-09-08
申请号:CN200810114261.0
申请日:2008-06-02
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于软件缺陷模式的测试方法,包括:读取被测程序源代码文件及缺陷状态机SDSM描述文件,对被测程序进行预处理,解析SDSM描述文件;对被测程序进行词法分析和语法分析,构造出抽象语法树;根据抽象语法树,生成控制流图和符号表,并根据控制流图和符号表,进行变量取值区间集的计算与更新;对被测程序进行函数调用关系分析,生成函数调用关系图;根据函数调用关系图以函数为单位对控制流图进行遍历,并计算控制流图上每个节点缺陷状态机的状态变迁,缺陷状态机进入缺陷状态时报告对应的检查点。本发明还公开了一种基于软件缺陷模式的测试系统,包括:输入模块,缺陷模式统一测试框架,和用户界面模块,完成对被测程序的统一测试。
-
公开(公告)号:CN101286133B
公开(公告)日:2010-06-16
申请号:CN200810114262.5
申请日:2008-06-02
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明涉及软件测试技术领域,本发明能够在一定程度上解决在程序静态测试中对不可达路径的无效计算以及对变量取值信息未充分利用的技术问题。本发明提出区间集的概念,定义了数值型变量区间集上的集合运算及四则运算,对程序中布尔类型变量及引用类型变量及表达式定义了区间计算方法,本发明所述方法在软件测试过程的前期收集了变量及表达式的取值范围信息,并将其应用在控制流图的语句节点上,实验证明,添加了区间运算的软件测试方法较之未添加区间信息的原方法而言,测试结果的误报率降低,测试的准确率更高。
-
公开(公告)号:CN101847122B
公开(公告)日:2012-05-02
申请号:CN201010188376.1
申请日:2010-06-01
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种应用异常控制流集的软件测试方法及系统。本发明所提供的软件测试方法及系统,是通过异常模式状态机描述运行时异常行为,可以支持对控制流的扩展和故障的自动检测;通过运行时异常控制流扩展传统异常控制流,将抛出运行时异常的边加入其中,以支持对新故障的检测;结合现有静态测试技术,通过迭代方程生成运行时异常控制流集,以实现控制流扩展和新故障检测的交替迭代执行。通过以上方法扩展传统分析路径,达到提高故障报告率的目的。
-
公开(公告)号:CN101840372B
公开(公告)日:2012-03-14
申请号:CN201010185904.8
申请日:2010-05-28
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开一种应用符号分析的软件测试方法,该方法包括:A、给出一个符号运算系统,包括符号表达式的表示、化简、运算和计算符号表达式的取值区间;B、给出将程序中各变量间的具体运算映射为符号运算的方法;C、给出程序分支语句对符号取值限定区间的计算方法;D、给出符号分析在程序控制流图上的计算方法。应用本发明的应用符号分析的软件测试方法,能够处理软件静态测试中的变量相关性问题,精确地计算每个程序位置上的变量取值信息,提高软件静态测试的准确性。
-
-
-
-
-
-
-
-
-