并发与分布式软件已经在越多越多关系国计民生的重要领域中使用,其软件质量保证的重要性不言而喻。本课题拟建立一个并发与分布式程序的调试模型,将错误发现、定位和修正作为一个有机的整体进行研究,综合程序分析与软件测试技术,将静态与动态技术有机结合,为高可信软件的质量保证提供理论基础和技术支持。课题研究并发与分布式软件的错误定位技术,关注同步错误和数据交互错误的定位技术,并探讨一种综合的错误定位策略;研究面向调试的测试用例优化技术,从测试输入和测试执行两个角度分别考虑测试优化,以使测试既能有效发现错误,又能为错误定位提供线索;研究自动错误修正技术,探索并发与分布式软件自动修正技术的整体策略,分析不同演化策略和变异算子对错误修正的影响,并重点关注消息同步类错误的自动修正。
Concurrent programs;Program analysis;Program debugging;Software testing;Fault localization
本课题拟建立一个并发与分布式程序的调试模型,将错误发现、定位和修正作为一个有机的整体进行研究,综合程序分析与软件测试技术,将静态与动态技术有机结合,为高可信软件的质量保证提供理论基础和技术支持。在课题执行期间,我们重点研究了面向调试的测试用例生成、基于执行频谱和程序分析的自动缺陷定位以及基于缺陷位置预测信息的代码质量增强等技术。其中,在面向调试的测试用例生成技术方面,我们在待测模块优先级、测试难度预测和测试用例自动生成三个方面取得了重要进展;在基于执行频谱和程序分析的自动缺陷定位方面,我们在缺陷定位方法中风险评估公式优劣的理论分析上取得了重要进展;在基于缺陷位置预测信息的代码质量增强方面,我们在C++并发设施的真实使用分析上取得了重要进展。在四年的研究过程中,经过全体课题组成员的共同努力,我们完成了课题的研究内容,总共发表和录用论文28篇。其中,在国外著名期刊上3篇(包括在国际一流期刊《ACM Transactions on Software Engineering and Methodology》上2篇),在国内著名期刊《中国科学信息科学》上论文4篇。与此同时,获得授权发明专利2项,新申请发明专利4项。在该课题的支持下,已经有多名博士/硕士研究生以课题的研究内容为毕业论文的内容,顺利获得了学位。