论文部分内容阅读
软件工程的总目标是充分利用有限的人力、物力和财力,高效率、高质量地完成软件开发项目。随着软件不断产业化地发展,软件产品的复杂度不断增加,用户对软件的质量要求也越来越高,但是由于缺乏科学的软件质量管理,软件质量很难得以保障,维护起来也很麻烦,从而造成大量资源的浪费。软件测试技术作为保障软件质量最直接、最有效的手段之一,也就成为了重要的研究热点,正受到人们越来越多的关注。目前自动化测试工具已有很多,可以分为白盒测试工具和黑盒测试工具。覆盖测试是白盒测试的一种,是衡量测试质量的一个重要指标。 本文对自动化代码插桩技术的国内外现状作了详细的研究和分析,主要从代码膨胀率和插桩时间两个方面与目前整体自动化测试工具对代码的插桩方法做了分析和比较,从而研究了一种新的基于代码块的插桩方法。该研究克服了传统的按行插桩方式,降低了代码膨胀率,减少了系统开销,为嵌入式软件的插桩做了坚实的基础。 本文给出的针对覆盖测试的代码插桩器是通过代码分块技术将代码分成不同类型的逻辑块找到插桩点,并对代码块进行编码识别出代码块的类型插入不同类型的探针,运行插桩后的文件,通过不同的探针捕获程序的动态信息,完成不同的覆盖测试,最后给出了三种覆盖率用于度量不同的覆盖测试。实验表明该方法对源文件的插桩可以做到较高的准确性和针对性,并且插桩文件的运行具有很高的实时性。