Page 281 - 《软件学报》2024年第6期
P. 281
孙昌爱 等: 基于模板匹配的 BPEL 程序故障修复及优化技术 2857
3.4.2 故障修复优化策略的效果 (RQ2)
表 8 和表 9 总结了运用正交实验与留一法得到优化策略应用前后的实验结果均值. 其中, #Match、#Patch、
#Validation 分别表示变异算子搜索匹配次数、验证的候选补丁数、测试用例执行数等计算开销; original、optimized
分别表示原始 BPELRepair 与优化后的 BPELRepair 的计算开销; OC 表示使用某个策略后 BPELRepair 的优化率,
average 表示 6 个实验程序的平均优化率, 反映了优化策略的有效性. 由表 8 可知如下.
表 8 补丁生成优化策略的有效性评估结果
Computation Optimization Optimization Car- Loan- Quote- Smart- Supply- Travel-
Average
cost strategy effectiveness Estimate Approval Process Shelf Customer Agency
Original 136.67 92.09 123.98 261.54 75.12 244.94 -
TMS Optimized 29.00 32.08 28.96 49.92 20.97 63.42 -
OC TMS 78.78 65.16 76.61 80.91 72.09 74.11 74.61
#Match (%)
#Match
Original 119.30 83.13 108.90 227.39 66.67 216.41 -
OPSS Optimized 98.47 67.92 89.31 186.51 50.78 177.55 -
例执行优化率分别为
#Match (%)
OC OPSS 17.46 18.29 17.98 17.97 23.83 17.95 18.91
Original 83.64 75.57 43.96 103.74 45.91 127.45 -
OPSS Optimized 79.47 64.52 35.81 84.18 41.92 106.36 -
OC OPSS 4.99 14.62 18.53 18.85 8.69 16.54 13.70
#Patch (%)
#Patch
Original 81.50 69.53 38.34 87.28 43.51 112.86 -
HOPS Optimized 65.35 66.34 29.38 80.29 38.18 107.69 -
#Patch (%)
OC HOPS 19.81 4.59 23.35 8.01 12.26 4.58 12.10
Original 133.30 218.58 115.03 491.37 90.42 474.07 -
OPSS Optimized 130.37 184.87 102.46 446.69 82.62 453.66 -
#Validation (%)
OC OPSS 2.20 15.42 10.92 9.09 8.63 4.31 8.43
#Validation
Original 114.07 117.06 68.64 323.78 67.81 210.37 -
HOPS Optimized 108.10 110.79 60.56 313.13 59.18 195.06 -
OC HOPS 5.23 5.36 11.76 3.29 12.72 7.28 7.61
#Validation (%)
● 模板匹配优化策略 TMS 有效减少变异算子搜索匹配开销. 6 个实验程序的平均变异算子搜索匹配优化率
为 74.61%; 其中 SmartShelf 程序的优化率为 80.91%, 意味着极大地减少了搜索匹配次数.
● 修复操作子集优化策略 OPSS 减少了变异算子搜索匹配次数、验证的候选补丁数与测试用例执行数, 平均
优化率分别为 18.91%、13.70% 与 8.43%.
● 历史修复操作优化策略 HOPS 减少了验证的候选补丁数与测试用例执行开销. 具体说来, 平均减少 12.10%
候选补丁验证开销、7.61% 的验证候选程序测试用例执行开销. 实验结果验证了历史故障类型可能再次发生的假
设合理性, 优先检查历史修复操作生成的候选程序可以更快地找到正确修复程序.
表 9 总结了所提测试用例选择优化策略的评估结果. 具体说来:
● 测试用例选择策略 DFTS 与 VFTS 可以减少测试用例执行开销: 相对于随机策略 random 而言, 平均测试用
51.68% 和 53.21%. 上述结果表明: 在故障定位阶段能够检出 BPEL 程序故障的测试用例有
较强的无效修复检测能力; 在验证阶段能够检测错误修复的测试用例有较强的检测其他故障修复的能力.
● 测试用例选择策略 CSS 的优化效果不明显: 测试用例执行开销略高于 random; 且策略 DFTS 和 CSS 合并
后的优化效果略低于策略 DFTS. 进一步分析发现:
(1) 如果当前语句块是故障语句块, 那么优先选择覆盖故障语句块的测试用例一定能够覆盖当前语句块, 相比
未覆盖该语句块的测试用例而言, 有更强检测错误修复的能力. 由于无法确定故障语句块的真实位置, 从而无法保
证测试用例执行覆盖真实故障语句块. 如果当前语句块不是故障语句块, 那么 CSS 策略将无法保证覆盖真实的故