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
珠江口生物中多氯萘、六氯丁二烯和五氯苯酚的含量水平和分布特征
向日葵种质资源苗期抗旱性鉴定及抗旱指标筛选
复杂系统科学研究进展
基于MCPF算法的列车组合定位应用研究
长链基因间非编码RNA 00681竞争性结合miR-16促进黑素瘤细胞侵袭和迁移
数字电路多故障测试方法与技术研究
基于演化切片的软件故障定位技术研究
基于测试信息的交互式错误定位技术研究
面向多层虚拟网络的故障探测与定位技术研究