-
公开(公告)号:CN103744776B
公开(公告)日:2016-11-16
申请号:CN201310538362.1
申请日:2013-11-04
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于符号化函数摘要的静态分析方法,该方法包括:利用RSTVL模型,描述当前函数的控制流图的节点的变量的存储状态;确定函数的当前节点为非最后节点且当前节点存在函数调用时,将被当前函数调用的函数的函数摘要进行实例化,并更新当前函数中受函数调用影响的变量;确定函数的当前节点为最后节点且确定当前函数具有函数返回值时,获得所述函数返回值的符号表达式,查找出存储状态发生变化的变量,并获取存储状态发生变化的变量的符号表达式;将所述函数返回值的符号表达式与存储状态发生变化的变量中的外部变量的符号表达式添加到当前函数的函数摘要中;同时,本发明还公开了基于符号化函数摘要的静态分析系统。利用本发明实施例的技术方案,可有效提高静态分析的精度效率。
-
公开(公告)号:CN102999426B
公开(公告)日:2016-06-29
申请号:CN201210506230.6
申请日:2012-11-30
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供了一种基于抽象内存模型的非数值型数据的计算方法,包括:A、设计抽象内存模型用于模拟数值型变量和非数值型变量的内存结构,以及存储变量操作中包含的语义信息和约束关系;B、提取数值型变量和非数值类型变量的类型操作中包含的语义信息,并将语义信息映射到抽象内存模型中;C、提取数值型变量和非数值类型变量的类型操作中包含的变量间约束和变量内约束,并将约束关系映射到抽象内存模型;D、从抽象内存模型中提取变量的语义信息和约束关系,使用测试用例构建算法和第三方的约束求解器构建测试用例。采用本发明,可以克服现有技术无法精确支持非数值型变量程序语义的不足,实现包含非数值型的程序自动生成测试用例的目的。
-
公开(公告)号:CN104915293A
公开(公告)日:2015-09-16
申请号:CN201510325619.4
申请日:2015-06-12
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种软件测试方法及系统,该方法包括:确定被测程序的抽象语法树;遍历分析抽象语法树,获取对应的符号表和控制流图;根据符号表确定被测程序的输入变量和全局变量,并分别赋予输入变量和全局变量初始取值范围,输入变量和全局变量的取值范围以数值的区间形式表示;将输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;根据控制流图确定路径集合,并对路径集合中的每条路径进行逐节点的变量仿射形式运算,输出每条路径对应的变量以及变量取值范围;在每条路径对应的变量的取值范围中取值,生成测试用例,并根据测试用例对被测程序进行测试。本发明提供的软件测试方法及系统,提高了变量取值范围和软件测试结果的精确性。
-
公开(公告)号:CN104809067A
公开(公告)日:2015-07-29
申请号:CN201510229658.4
申请日:2015-05-07
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种面向等式约束的测试用例生成方法和装置,测试用例生成方法包括:接收测试用例生成请求,生成请求中携带待测程序;获取待测程序的预定路径、表达式列表、预定路径中的各个变量及各个变量的第一取值区间;根据表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵;判断第一系数矩阵的秩是否小于第一增广矩阵的秩;若否,则对各个变量进行回退运算,确定各个变量的第二取值区间;判断各个变量的第二取值区间的边界值是否相等;若相等,则根据各个变量的第二取值区间生成测试用例。本发明提供的面向等式约束的测试用例生成方法和装置,生成测试用例的过程无需人工干预,速度快,效率高,可对待测程序实现100%覆盖。
-
公开(公告)号:CN103176905A
公开(公告)日:2013-06-26
申请号:CN201310128097.X
申请日:2013-04-12
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种缺陷关联方法,包括:从缺陷报告中提取缺陷对应的代码块,根据所提取的代码块生成缺陷相关代码块序列信息库;获取所述缺陷相关代码块序列信息库的基本频繁子序列,并消除所述基本频繁子序列中不满足约束条件的频繁子序列;依据当前频繁子序列对应的缺陷,对缺陷报告中的缺陷进行分组;根据预设的缺陷关联模式,精化分组的缺陷。本发明同时还公开了一种缺陷关联装置。采用本发明的技术方案,可以对缺陷进行精确的分组。
-
公开(公告)号:CN102841846A
公开(公告)日:2012-12-26
申请号:CN201210309446.3
申请日:2012-08-27
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供了一种基于Hadoop的软件测试方法、装置和系统,所述方法包括:管理服务器接收用户终端发来的待测软件和测试请求,将收到的待测软件发给Hadoop分布式文件系统(HDFS),并根据收到的测试请求向一个或几个测试服务器发出测试指令;收到测试指令的测试服务器调用自身存储的相应的测试工具,以及从所述HDFS中获取相应的待测软件,控制调用的所述测试工具对获取的所述待测软件进行测试,并将测试结果发送给所述HDFS;管理服务器从所述HDFS获取测试结果,并将获取的测试结果发给用户终端。采用本发明能够使软件测试用户避免购买测试软件,节省测试成本。
-
公开(公告)号: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链,对控制流图进行遍历,计算控制流图上每个节点安全漏洞状态机的状态变迁,若安全漏洞状态机进入缺陷状态,则报告对应的检查点,测试完毕后输出安全漏洞测试报表。本发明方法具有自动化程度高、测试精度高的优点。
-
公开(公告)号:CN118153064A
公开(公告)日:2024-06-07
申请号:CN202410424638.1
申请日:2024-04-09
Applicant: 北京邮电大学
Abstract: 本发明涉及软件安全技术领域,能够解决Java软件开发过程中使用第三方和开源组件带来的安全问题。本发明旨在通过软件成分分析技术,提取Java软件包含的开源组件信息,进而对项目开源组件的漏洞信息进行分析。根据项目开源组件的不同引入方式,采取不同的组件识别策略:对于使用依赖构建工具管理项目开源组件的Java项目,分析项目的依赖文件提取和识别项目包含的开源组件信息;对于通过外部引入开源组件的Java项目,分析项目的代码特征,根据类级特征和方法级特征的相似性,给出项目依赖的第三方和开源组件信息。根据识别出的组件信息,结合构建的组件‑漏洞知识图谱,给出项目依赖第三方库和开源组件的漏洞信息。
-
-
-
-
-
-
-
-
-