测试是提高软件可靠性的重要方法.消息传递并行程序中存在的不确定通信语句,使得进程执行顺序具有不确定性,这增加了测试该类程序的难度.鉴于进程执行顺序对目标路径覆盖难易程度的影响,本文研究消息传递并行程序多路径覆盖调度序列排...测试是提高软件可靠性的重要方法.消息传递并行程序中存在的不确定通信语句,使得进程执行顺序具有不确定性,这增加了测试该类程序的难度.鉴于进程执行顺序对目标路径覆盖难易程度的影响,本文研究消息传递并行程序多路径覆盖调度序列排序方法,以提高多路径覆盖测试数据生成的效率.首先,在每个调度序列下,以每个采样的程序输入执行程序,生成路径覆盖矩阵;然后,针对每条目标路径,分别计算与路径覆盖矩阵中每条路径的相似度,生成多个路径相似度矩阵;接着,基于这些路径相似度矩阵的特征量,评价调度序列的性能,并依此对调度序列排序;最后,基于调度序列排序集,使用随机采样法,生成覆盖所有目标路径的测试数据,并使用缺陷检测平均百分比(average percentage of faults detected,APFD)指标评估调度序列排序集.将所提方法应用于9个基准并行程序中,并与随机方法和传统方法进行比较.实验结果表明,所提方法对路径覆盖率没有影响,但显著减少了被测程序执行次数和运行时间.展开更多
文摘测试是提高软件可靠性的重要方法.消息传递并行程序中存在的不确定通信语句,使得进程执行顺序具有不确定性,这增加了测试该类程序的难度.鉴于进程执行顺序对目标路径覆盖难易程度的影响,本文研究消息传递并行程序多路径覆盖调度序列排序方法,以提高多路径覆盖测试数据生成的效率.首先,在每个调度序列下,以每个采样的程序输入执行程序,生成路径覆盖矩阵;然后,针对每条目标路径,分别计算与路径覆盖矩阵中每条路径的相似度,生成多个路径相似度矩阵;接着,基于这些路径相似度矩阵的特征量,评价调度序列的性能,并依此对调度序列排序;最后,基于调度序列排序集,使用随机采样法,生成覆盖所有目标路径的测试数据,并使用缺陷检测平均百分比(average percentage of faults detected,APFD)指标评估调度序列排序集.将所提方法应用于9个基准并行程序中,并与随机方法和传统方法进行比较.实验结果表明,所提方法对路径覆盖率没有影响,但显著减少了被测程序执行次数和运行时间.