Page 277 - 《软件学报》2024年第6期
P. 277
孙昌爱 等: 基于模板匹配的 BPEL 程序故障修复及优化技术 2853
步骤 6. 逐一执行步骤 5 中生成的补丁程序, 执行该程序实例所有的测试用例, 直到存在补丁程序通过了所有
的测试用例. 本例中, ERR 修复操作将条件表达式中“!=”修改为“=”从而得到了正确的程序 p. 返回修复成功的程
序 p.
3 实验评估
通过经验研究评估 BPELRepair 及优化策略的有效性.
3.1 实验问题与对象
实验致力于回答以下 3 个研究问题.
(1) RQ1: BPELRepair 的故障修复有效性如何?
采用 6 个 BPEL 程序的多个故障版本, 通过故障修复率评估 BPELRepair 的有效性.
(2) RQ2: 所提的优化策略能否有效降低 BPELRepair 的故障修复开销?
针对不同的优化策略, 采用正交试验方式比较应用优化策略前后的故障修复的计算开销, 通过变异算子搜索
匹配优化率、补丁程序验证优化率、测试用例执行优化率等指标评估各项优化策略的有效性.
(3) RQ3: BPELRepair 成功修复故障的代价如何?
通过分析故障修复成功时所需检查的语句块的占比, 评估 BPELRepair 的故障修复代价.
为了评估 BPELRepair 及其优化策略的有效性, 本文使用 6 个不同应用领域的 BPEL 程序作为实验对象. 表 4
总结了每个 BPEL 程序的相关信息, 包括代码行数 (lines of code)、语句块数 (blocks of code)、测试用例数 (number
of test cases)、故障数量 (faults). 这些程序覆盖了伙伴链接、变量、错误处理等常见的 BPEL 组件, 具有较好的代
表性. 实验程序介绍如下.
表 4 程序实例详细信息
Subject program Lines of code Blocks of code Number of test cases Faults
CarEstimate 300 9 31 23
8
28
64
LoanApproval 256 Web
QuoteProcess 482 21 19 78
SmartShelf 705 31 144 78
SupplyCustomer 330 13 16 50
TravelAgency 407 23 69 110
● CarEstimate 是一个汽车修复评估系统, 共涉及 5 个 Web 服务. 用户提出评估请求, 输入车辆的基本信息后,
首先进行初步评估, 然后根据车辆的外观、内部以及发动机使用情况对车辆进行详细评估, 最后汇总评估结果并
将其返回给用户.
● LoanApproval 是一个贷款审批系统, 共涉及 3 个 Web 服务. 输入个人信息和贷款数目后, 根据个人情况查
询是否支持贷款并查询个人最大贷款金额数. 如果贷款数在允许范围内, 结果返回贷款成功信息; 否则, 返回贷款
失败信息.
● QuoteProcess 是一个报价系统, 共涉及 8 个 服务. 输入个人信息以及报价后, 根据该用户是否为会员选
择不同的处理流程. 如果用户不是会员, 选择一般的报价评估系统; 否则, 对内部和外部做精准报价评估.
● SmartShelf 是一个智能货架管理系统, 共涉及 13 个 Web 服务. 用户输入商品的名称和数量后, 查询该产品
信息, 返回当前的库存量和日期信息. 接下来, 读取相关的货架信息以及是否过期状态. 如果库存正常, 则直接返回;
如果没有库存, 则需要通知管理人员和运输人员上架产品, 并检测商品所在的货架位置是否正确. 此外, 同步检查
商品保质期状态, 过期产品需及时撤出货架. 最后返回各个处理流程的执行信息.
● SupplyCustomer 是一个商家订单管理系统, 共涉及 5 个 Web 服务. 用户输入商品信息和地址并选择不同的
处理方式, 当地址合法并且商品有库存时, 系统进行扣款业务和商品邮递业务. 其中, 扣款服务和商品邮寄服务并