Page 282 - 《软件学报》2024年第6期
P. 282
2858 软件学报 2024 年第 35 卷第 6 期
障语句块, 甚至无法检测错误的修复.
(2) 能检出故障的测试用例一定覆盖故障语句块, 但仍然无法确定故障语句块真实位置, 当 CSS 策略与
DFTS 策略结合时, 真正起作用的则是 DFTS 策略.
表 9 测试用例选择优化策略的#Validation 评估结果
DFTS CSS DFTS & CSS VFTS
Subject program Random OC DFTS OC CSS OC DFTS&CSS OC VFTS
Optimized #Validation Optimized #Validation Optimized #Validation Optimized #Validation
(%) (%) (%) (%)
CarEstimate 158.43 116.71 26.33 161.65 −2.03 115.52 27.08 116.01 26.78
LoanApproval 337.82 122.38 63.77 339.33 −0.45 124.27 63.21 134.12 60.30
QuoteProcess 172.35 74.08 57.02 173.68 −0.77 74.65 56.69 81.14 52.92
SmartShelf 720.95 355.50 50.69 728.74 −1.08 359.42 50.15 266.74 63.00
SupplyCustomer 117.61 71.46 39.24 120.53 −2.48 70.99 39.64 68.60 41.67
TravelAgency 840.16 226.74 73.01 852.92 −1.52 228.59 72.79 213.77 74.56
Average - - 51.68 - −1.39 - 51.59 - 53.21
3.4.3 BPELRepair 成功修复的代价 (RQ3)
图 5 展示了 BPELRepair 应用于不同实验对象时成功修复故障的代价, 即修复故障版本时, 检查的语句块数占
总语句块数的百分比. 其中, 盒的中间线代表了数据的中位数; 盒的上下底分别是数据的上四分位数和下四分位数;
上下边缘则代表了该组数据的最大值和最小值; 盒内点为均值; 盒外部点为数据中的“异常值”“Total”汇总了所有
实验程序的成功修复代价, 均值为 28.61%. 实验结果表明 BPELRepair 的故障修复的代价是可接受的.
100
90
80
Percentage of blocks (%) 60
70
50
40
30
20
10
0
LoanApproval
TravelAgency
CarEstimate QuoteProcess SupplyCustomer Total
SmartShelf
Subjects
图 5 BPELRepair 的故障修复代价评估结果 (盒图)
4 相关工作
本节首先介绍基于搜索的故障修复技术相关的研究工作, 然后介绍 BPEL 程序故障修复技术与定位技术的研
究工作.
4.1 故障修复技术
程序故障是指程序实际执行时产生的行为和预期行为发生了偏差. 故障修复是对程序的非预期行为进行修正
的过程 [21,22] . 现有的故障修复技术大致分为 3 类 [23] : 基于搜索的方法、基于语义的方法和其他类型的方法. 基于搜
索的故障修复技术又被称为“生成—验证”技术, 每生成一个候选补丁程序, 对其执行测试用例集以验证其是否为