Since software quality is an issue that concerns the national economy and people's lives and property, it is necessary to improve software quality. This project researches one of the key issues in software quality improvement, namely, software defect detection. Currently, in software defect detection, the inspect points calculated by computers are confirmed manually whether they are true defects or not with low efficiency and low accuracy, which is in bad need of automation. This project centers the research on automatic defect confirmation based on constraint solving, faces the two stages of constructing constraints and solving constraints, and proposes three methods. The main contents of this project are as follows. (1) This project constructs the theoretical constraint system for the inspect points self-adaptively, so as to obtain the constraints accurately. (2) This project introduces congruence closure to solve the constraints at the function calling points, so as to increase the solving speed. (3) This project adopts divide-and-conquer to construct a concolic theoretical model for loop structures concerning the relative location of the inspect point to the loop structure, so as to decrease the scale of the problem to be solved. The three proposed methods function for construction constructing and constraint solving separately, and are combined into an efficient constraint solving engine for automatic software defect confirmation. This projects aims to promote the accuracy and efficiency of software defect confirmation, provide support for automatic software defect confirmation based on constraint solving, enhance the reliability and security of the system, and further increase software quality.
软件质量事关国民经济及人民生命财产安全,因此必须对软件质量严格要求。本项目主要研究提高软件质量的关键工作之一,即软件缺陷检测。目前软件缺陷检测中所计算出的检查点需要人工确认其是否为真正的缺陷,效率低、精度差,对其进行自动化势在必行。本项目“围绕一个目标,面向两个阶段,提出三个方法”。即:围绕着基于约束求解进行软件缺陷自动确认的目标,面向建立约束和求解约束两个阶段,提出:(1)自适应地面向检查点构建其理论约束系统,精确求得触发约束;(2)引入一致性闭包对函数调用点处约束进行求解,提高求解速度;(3)针对检查点与循环体的位置关系,采用分治策略,对循环进行动静结合的理论建模,减少问题求解的规模。提出的三个方法被整合为一个高效的约束求解引擎用于缺陷自动确认。本项目旨在提高软件缺陷自动确认的准确性和效率,从理论上对基于约束求解的缺陷自动确认提供支持,并增加系统的可靠性和安全性,进而提高软件质量。
软件缺陷的自动确认是目前软件测试、程序分析领域的热点研究问题之一,具有广阔的应用前景和实用价值。为了完成软件缺陷的自动确认工作,需要建立高效的约束求解引擎,并从建立约束和求解约束两个方面进行研究,即不仅要求能够准确地分析程序从而保证提取约束的完整性和精确性,而且要求能够针对被测程序中影响求解效率的复杂程序结构(比如函数调用、循环结构)给出处理策略。针对上述问题,本项目提出了根据先决条件为输入生成隐性约束,同时挖掘不可达路径约束模式,并针对字符串函数提出了专门的约束提取规则;对过程间控制流和过程间数据流进行了逆向分析,采用“分段—整体”策略进行过程间路径分析;根据检查点和循环结构的位置关系,动静结合地探索复杂的循环结构以进行测试数据生成。同时,本项目也提出了一种基于集成学习的变量级别的缺陷自动确认方法,并通过迁移学习将其应用于跨项目的缺陷自动确认。本项目研究成果为软件缺陷自动确认的建模与求解提供了新思路和新方法。在项目的资助下,项目组发表SCI论文7篇,其中包括CCF B类期刊《Journal of Computer Science and Technology》2篇、CCF B类期刊《Journal of Systems and Software》1篇、CCF C类期刊《Soft Computing》1篇等,并授权了2项专利和1项软件著作权。
{{i.achievement_title}}
数据更新时间:2023-05-31
惯性约束聚变内爆中基于多块结构网格的高效辐射扩散并行算法
Himawari-8/AHI红外光谱资料降水信号识别与反演初步应用研究
业务过程成批处理配置优化方法
基于概率-区间混合模型的汽车乘员约束系统可靠性优化设计
5~7岁住院癌症患儿生活质量自我报告与父母报告的一致性研究
基于自适应约束传播的约束求解方法研究
复杂机电系统多领域约束模型耦合关系与求解算法研究
基于在线学习的约束求解方法研究
多线程程序约束构建、优化求解及其智能测试方法研究