论文部分内容阅读
随着社会的发展,软件已应用到社会的各个领域,软件测试是提高软件可靠性的重要手段。许多软件测试问题都可以归结为面向路径测试数据生成的问题,而不可达路径的存在是路径测试中的一个难题,没有输入数据能经过这些不可达路径,它会导致测试数据生成阶段大量人力和资源的浪费,同时也给测试带来很大的困难。路径的可达性直接影响着路径测试的效率和充分性,有效地检测程序中的不可达路径有助于节约测试资源、提高测试效率。许多学者提出了各种不同的不可达路径检测方法,但是目前这些方法在实际应用中尚不成熟。在分析研究已有方法和技术的基础之上,为了弥补现存技术的缺陷,本文提出了一种新的基于关联分析的不可达路径检测方法,以及一种有效的基本路径集自动生成算法。首先,本文提出了一种利用关联分析和数据流分析确定分支相关性的方法,进而实现不可达路径的自动检测。首先,该方法结合静态分析和动态分析,构建反映程序中各分支判断语句静态依赖关系和动态执行信息的数据集;然后,利用关联分析和数据流分析技术确定分支的相关性;最后,根据分支相关性信息检测不可达路径。基于一组基准程序和开源程序,开展不可达路径检测实验。实验结果表明,本文的方法能够准确地检测出程序中的不可达路径,可以有效地提高软件测试的效率。其次,在对不可达路径检测方法研究的基础上,本文提出了一种有效、自动的基本路径集的生成方法。该方法首先设计搜索算法生成基本路径集;再利用基于关联分析的不可达路径检测方法来检测程序中的不可达基路径并将其删除;然后向路径集中添加未覆盖边所在的可达独立路径;最后向路径集中添加未找到可达路径的未覆盖边所在的不可达独立路径,及线性运算所需的不可达独立路径。通过实验验证算法的有效性。然后,基于提出的不可达路径检测方法和基本路径集生成方法,本文实现了一个用于Java程序的不可达基路径检测工具,该工具主要包括不可达路径检测模块和基本路径集生成模块。