Software debugging involves fault localization, bug fixing and retesting the fixed program. Fault localization is one of the most tedious, difficult and time-consuming activity during the software development process. Although statistical fault localization techniques can help developers improve their debugging efficiency, the precision of current fault localization techniques is still unsatisfactory for large application. Software testing and debugging are two interconnected and interrelated activities, the execution information of the test suite generated by testing techniques is the basis for statistical fault localization. Our preliminary study found that existing work on the integration of testing and debugging can improve only one aspect of the test suite for statistical fault localization. Comprehensive testing adequacy criteria supporting effective statistical fault localization and its supporting test case generation techniques are still lacking. Hence, in this work, we aim at finding the set of key features for a test suite supporting effective statistical fault localization through data mining techniques. Based on that, we propose a set of testing adequacy criteria supporting effective statistical fault localization. Then, we further propose directed test case generation techniques based on symbolic execution guided by the proposed adequacy criteria. The successful completion of the project will provide theoretical guideline for the effective integration of testing and statistical fault localization. Furthermore, the proposed testing adequacy criteria and test case generation techniques will significantly improve the precision, practicability and scalability of existing statistical fault localization techniques.
软件调试中的故障定位是软件开发过程中一项困难而耗时的工作。统计故障定位虽然能够帮助开发人员提高调试效率,但定位的准确度仍然不够理想。而统计故障定位的有效性不仅仅依赖于故障定位算法,也依赖于软件测试所产生的测试用例集的执行信息。我们调研发现,已有的测试和调试的集成研究工作仅能针对测试用例集的某一个特性来加强对统计故障定位的支持,仍然缺乏全面和实用的支撑统计故障定位的测试完备性准则和相应的测试生成技术。因此,本项目拟通过数据挖掘技术找出有效支撑统计故障定位的测试用例集的关键特征集,并提出相应的有效支撑统计故障定位的测试完备性准则。在此基础上,通过对基于符号执行的测试生成算法的制导和优化,构建支撑测试完备性准则的测试生成技术及工具集。本项目将对测试技术和统计故障定位技术的有效集成提供理论指导,并能通过测试完备性准则和高效的测试生成算法切实提高统计故障定位的精确度、实用性和可扩展性。
软件调试中的故障定位是软件开发过程中一项困难而耗时的工作。统计故障定位虽然能够帮助开发人员提高调试效率,但定位的准确度仍然不够理想。而统计故障定位的有效性不仅仅依赖于故障定位算法,也依赖于软件测试所产生的测试用例集的执行信息。我们调研发现,已有的测试和调试的集成研究工作仅能针对测试用例集的某一个特性来加强对统计故障定位的支持,仍然缺乏全面和实用的支撑统计故障定位的测试完备性准则和相应的测试生成技术。因此,本项目拟通过数据挖掘技术找出有效支撑统计故障定位的测试用例集的关键特征集,并提出相应的有效支撑统计故障定位的测试完备性准则。我们的工作首先系统的研究了多个回归测试技术和统计故障定位技术的集成优化问题,我们实证研究的结果表明,测试用例排序技术的策略和时间成本可能会影响统计调试技术的效果。然而,测试用例排序技术的所才用的测试覆盖粒度(语句,方法,分支等)却不是一个重要的因素。我们还发现添加更多的失败测试用例能够提高统计故障定位的有效性,然而在添加的过程中,统计调试的效果并不是单调递增的。我们尝试研究测试用例集的完善性准则、测试用例集的大小和用于故障定位的测试用例集的比例这三个因素是否对于测试和统计调试的集成优化有显著地影响。我们通过实证研究发现,更强的测试完善性准则也能够更好地支撑有效的统计故障定位。特别的,我们发现MC/DC测试完善性准侧要比分支覆盖的表现好,而分支覆盖又比语句覆盖的表现好。.此外,在课题的资助下,我们对一些相关的测试技术进行了探索,我们系统的研究了回归测试用例排序技术,这包括基于黑盒输入信息的自动化回归测试用例排序技术,面向服务程序的抢占式回归测试用例排序技术、面向基于位置应用的自动化回归测试用例排序技术。此外,我们系统的研究了针对Android应用的Dalvik字节码的符号执行技术,开发了Android应用的Dalvik符号执行引擎的原型。我们还研究了面向Android应用的自动化压力测试技术,我们通过提供高级别的测试语言接口提高Android测试脚本的可重用性,同时我们系统的控制Android的内存、CPU、存储和语音输入资源来方便对Android应用进行压力测试,并在四川长虹的Android智能电视应用上取得了很好地应用效果。
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
监管的非对称性、盈余管理模式选择与证监会执法效率?
宁南山区植被恢复模式对土壤主要酶活性、微生物多样性及土壤养分的影响
针灸治疗胃食管反流病的研究进展
卫生系统韧性研究概况及其展望
数字电路多故障测试方法与技术研究
基于演化切片的软件故障定位技术研究
基于测试信息的交互式错误定位技术研究
面向多层虚拟网络的故障探测与定位技术研究