-
公开(公告)号:CN102073589A
公开(公告)日:2011-05-25
申请号:CN201010622730.7
申请日:2010-12-29
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于代码静态分析的数据竞争检测方法及系统,该方法包括:读取待测软件,对待测软件源程序进行静态分析,生成待测软件的抽象语法树、控制流图、全局函数调用图;在此基础之上计算每个函数内部的别名信息、函数间出口别名信息、锁集合信息、函数内部访问可逃逸变量的访问链以及线程创建关系图;根据访问链计算每两个线程之间访问节点的初始化语句对集合;根据别名信息、锁集合信息、并发关系对该集合进行逐步删减得到最终可能发生数据竞争的语句对。本发明提供的检测方法与检测系统能对C/C++编写的多线程程序进行有效的数据竞争检测,具有测试精度高和自动化程度高的特点,适用于对两个线程或多个线程导致的数据竞争的检测。
-
公开(公告)号:CN102023923A
公开(公告)日:2011-04-20
申请号:CN201010622568.9
申请日:2010-12-28
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开一种基于别名分析技术的软件测试方法,通过在控制流上对一些涉及别名关系的语句进行特殊分析,利用空间抽象三元模型将变量声明、值和内存空间进行关联,这个过程迭代到控制流不再扩展为止;并通过定义别名分析的三元模型,区别于传统的二元变量-值模型,增加了内存空间抽象;该方法在软件静态测试过程的前期收集了同一抽象内存空间中所有互为别名的变量,将其值进行有效的关联,并将其应用在控制流图的语句节点上。通过实验证明,本发明的软件测试方法相比未应用别名分析技术的现有测试方法,具有有效解决由别名关系造成变量值不同步所产生的漏报问题,能在一定程度上提高静态测试的精度。
-
公开(公告)号:CN101894064A
公开(公告)日:2010-11-24
申请号:CN200910084547.3
申请日:2009-05-21
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明公开了一种应用跨函数分析的软件测试方法,解决软件静态测试中函数调用对区间精度的影响、对环境约束信息未充分利用以及由异常处理导致的控制流变更等问题。通过定义函数摘要信息及其前置信息、后置信息、约束信息和特征信息,对程序中不同类型的缺陷检测相应地规定了判定方法;而且在软件测试过程中通过收集函数摘要信息,并将其应用在控制流图的语句节点上和缺陷模式的判定过程中,在测试完成后输出被测程序中所有函数的摘要信息。通过实验证明,应用本发明方法的测试软件比现有测试软件的测试结果相比,具有更高的函数间分析准确度和更低的测试结果误报率和漏报率。
-
公开(公告)号:CN118132436A
公开(公告)日:2024-06-04
申请号:CN202410338497.1
申请日:2024-03-22
Applicant: 北京邮电大学
IPC: G06F11/36 , G06F18/213 , G06F18/214 , G06F18/2415 , G06N3/0464 , G06N3/047 , G06N3/045 , G06N3/084
Abstract: 本发明涉及软件缺陷预测领域,能够实现对软件缺陷预测结果的不确定性量化。本发明包含源代码特征提取和缺陷预测两大阶段,输入为源项目和目标项目,输出为针对目标项目的缺陷预测结果,即目标项目中的每个文件是否有缺陷。在源代码特征提取阶段中,需要提取出源项目和目标项目代码的静态特征和语义特征,将二者拼接形成联合特征。在缺陷预测阶段中,需要把前一阶段得到的特征数据输入给贝叶斯神经网络进行学习,利用贝叶斯估计原理来量化不确定性,最后将目标项目输入到带有参数的贝叶斯神经网络模型中,该模型能够判定目标项目中的每一个文件是否有缺陷,并且能同时给出对每一个文件判定结果的不确定性量化指标,该指标能够衡量结果的可信程度。
-
公开(公告)号:CN108664391A
公开(公告)日:2018-10-16
申请号:CN201810204976.9
申请日:2018-03-13
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种面向程序状态的故障分类方法、变异测试方法及设备。所述方法包括:基于待测源程序的语法对应的变异算子,为所述待测源程序的每条语句构造故障节点集和状态变异点集;基于所述故障节点集、所述状态变异点集、所述每条语句的状态变异之间的触发关系和传播关系,构造所述待测源程序的变异流图;根据所述变异流图的直接后向支配关系,构造故障类支配树,以对所述待测源程序进行故障分类。本发明从一般性的故障测试原理出发,对故障程序进行分类排序,同时支持多种类型的变异算子,具有较好的可扩展性,进而减少测试次数、优化故障集、简化故障分析成本,可以提升变异测试效率。
-
公开(公告)号:CN108563561A
公开(公告)日:2018-09-21
申请号:CN201810215371.X
申请日:2018-03-15
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种程序隐性约束提取方法及系统,包括:对于待测程序中的任一函数,将任一路径上的入口节点作为当前节点;获取当前节点与任一函数对应的抽象语法树上对应的当前语法节点,若当前语法节点包含目标变量,获取目标变量类型,根据目标变量类型和作用于目标变量的运算符类型匹配隐性约束规则,提取目标变量的隐性约束;否则,将当前节点的下一个节点重新作为当前节点,重复上述步骤,直到任一路径的出口节点为当前节点。本发明提出一种程序隐性约束提取方法及系统,可以实现隐性约束的提取,可以在一定程度上减小目标变量的搜索空间,保证生成测试数据的正确性,进而确保后续测试数据顺利执行。
-
公开(公告)号:CN104809067B
公开(公告)日:2017-11-17
申请号:CN201510229658.4
申请日:2015-05-07
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种面向等式约束的测试用例生成方法和装置,测试用例生成方法包括:接收测试用例生成请求,生成请求中携带待测程序;获取待测程序的预定路径、表达式列表、预定路径中的各个变量及各个变量的第一取值区间;根据表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵;判断第一系数矩阵的秩是否小于第一增广矩阵的秩;若否,则对各个变量进行回退运算,确定各个变量的第二取值区间;判断各个变量的第二取值区间的边界值是否相等;若相等,则根据各个变量的第二取值区间生成测试用例。本发明提供的面向等式约束的测试用例生成方法和装置,生成测试用例的过程无需人工干预,速度快,效率高,可对待测程序实现100%覆盖。
-
公开(公告)号:CN104915293B
公开(公告)日:2017-10-20
申请号:CN201510325619.4
申请日:2015-06-12
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供一种基于仿射运算的软件测试方法及系统,该方法包括:确定被测程序的抽象语法树;遍历分析抽象语法树,获取对应的符号表和控制流图;根据符号表确定被测程序的输入变量和全局变量,并分别赋予输入变量和全局变量初始取值范围,输入变量和全局变量的取值范围以数值的区间形式表示;将输入变量和全局变量取值范围的区间表示形式转换为仿射表示形式;根据控制流图确定路径集合,并对路径集合中的每条路径进行逐节点的变量仿射形式运算,输出每条路径对应的变量以及变量取值范围;在每条路径对应的变量的取值范围中取值,生成测试用例,并根据测试用例对被测程序进行测试。提高了变量取值范围和软件测试结果的精确性。
-
公开(公告)号:CN104360938B
公开(公告)日:2017-10-20
申请号:CN201410564479.1
申请日:2014-10-21
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明涉及一种故障确认方法及其系统,所述方法包括:S1、利用预设故障模式,在静态分析过程中匹配出疑似故障点,对所述疑似故障点进行筛选后标注在被测程序的控制流图中;S2、在所述疑似故障点添加故障触发条件,形成故障节点,构造故障路径,并将新生成的故障节点添加到所述控制流图中,并作标记;S3、通过预设的路径选择策略,计算每个疑似故障点分别在每个节点的权重;S4、遍历控制流图,根据每个故障点在当前节点的权重选择故障路径,并对选择的路径的每个节点提取约束来指导动态执行的取值,对每个疑似故障点进行确认。该方法在执行过程中利用选路策略和动态符号执行技术相结合,指导程序高效的覆盖故障条件节点,从而提高确认故障效率。
-
公开(公告)号:CN102708052B
公开(公告)日:2017-10-20
申请号:CN201210127772.2
申请日:2012-04-27
Applicant: 北京邮电大学
IPC: G06F11/36
Abstract: 本发明提供了一种单元测试中软件故障自动定位方法,包括:A、采用一组满足覆盖需求的测试用例,执行被测程序,判断测试用例的执行结果是否和预期结果一致;B、根据各测试用例对应的执行路径,分析路径上的边信息,确定由路径上的边组成的可疑空间;C、统计可疑空间中每条边被通过和未通过的测试用例覆盖的次数,计算指定执行模式下,每条边的可疑度;D、由边的可疑度计算其相邻语句节点的可疑度;E、按照可疑度的大小对故障节点进行排序,并依次映射到被测程序中生成故障定位报告,辅助用户检查故障。采用本方法,能够降低语句分析的计算工作量,并且考虑到语句节点之间的逻辑关系,提高故障定位的效率。
-
-
-
-
-
-
-
-
-