Page 90 - 《软件学报》2025年第12期
P. 90

虞圣呈 等: 基于大模型语义匹配的跨平台移动应用测试脚本录制回放                                                5471


                 行回放. MAPIT  的基本思路是在一个平台上通过规范的语言编写对应的测试脚本, 然后利用它提供的工具, 在源平
                 台上运行一遍脚本, 在运行的过程中, 生成中间测试文件, 主要存储操作的组件相关信息以及屏幕内其他组件的信息.
                 所生成的中间测试文件与平台无关, 所以通过              MAPIT  和中间测试文件, 可以在任意平台上进行回放, 达到跨平台回
                 放的目的. AppTestMigrator 是一种具有典型代表意义的跨应用测试迁移工具, 其可在相似应用中迁移面向待测应用
                 共享功能的测试脚本. 实验中所涉及           4  种方法均运行于同样的脚本数据集中, 以保证实验结果的可比较性. 因本方法
                 考虑到跨平台脚本回放步骤的不一致性, 所涉及实验脚本与                   LIRAT、MAPIT  及  AppTestMigrator 方法中评估数据
                 集不相同; 由于上述     3  种基线方法未考虑跨平台回放不一致性, 实验结果所展示的回放成功率也与原论文存在波动.

                                                     表 2 实验评估应用

                             序号          名称          类别         序号          名称           类别
                              1         AdGuard      系统          11        Linphone      通信
                              2        BingSearch    工具          12       MatomoMob      开发
                              3         Booking      购物          13        McDonald      购物
                              4         Evernote     工具          14        Monkey        开发
                              5         Investing    财务          15        OpenHAB       网络
                              6         Jamendo      媒体          16        OsmAnd        地图
                              7          Keep        运动          17        QQ Music      媒体
                              8          KFC         购物          18         Taobao       购物
                              9          Kindle      工具          19         VLC          媒体
                              10         Kiwix       网络          20        WikiPedia     网络

                    对于实验过程中所使用的大模型, 我们采用了               GPT-4o  模型, 并将参数   temperature 设置为  0, 以保证大模型产
                 生确定且一致的输出. 在实验中, 我们也统计了大模型                 Token  开销. 对于方法   LLMRR  而言, 平均回放一个脚本
                 Token  的开销为  39 154  个. 我们也将使用的提示词模版公开在         GitLink  的在线仓库中, 以供后续研究参考         (https://
                 gitlink.org.cn/yusc/LLMRR). 为保障在实验过程中顺利调用大模型能力, 我们遵循            OpenAI 所设置的调用限制, 利
                 用多账号协作完成了本实验.
                  5.2   整体结果与分析
                    在实验结果中, 表     3  展示了  LLMRR、LIRAT、 MAPIT   和  AppTestMigrator 这  4  种方法在不同平台间录制回
                 放的成功和失败情况. 注意在本文后续的表格中, I 表示              iOS, A  表示安卓, H  表示鸿蒙, 例如   I2A  表示从  iOS  系统迁
                 移至安卓系统.


                                                 表 3 整体录制回放实验结果

                      评估指标             对比方法           I2A      A2I      I2H     H2I      A2H      H2A
                                       LLMRR          65       68       62       61       65       56
                                        LIRAT          5        6       1        6        8        11
                     成功脚本数
                                        MAPIT          3        5       1        1        5        7
                                     AppTestMigrator  18       19       18       14       16       18
                                       LLMRR          35       32       38       39       35       44
                                        LIRAT         95       94       99       94       92       89
                     失败脚本数
                                        MAPIT         97       95       99       99       95       93
                                     AppTestMigrator  82       81       82       86       84       82
                                       LLMRR          65.0     68.0    62.0     61.0     65.0     56.0
                                        LIRAT         5.0      6.0      1.0      6.0      8.0     11.0
                    回放成功率 (%)
                                        MAPIT         3.0      5.0      1.0      1.0      5.0      7.0
                                     AppTestMigrator  18.0     19.0    18.0     14.0     16.0     18.0

                    从表  3  中可以看出, LLMRR    方法在所有跨平台迁移路径中均表现出明显优势. 例如, 在                  iOS  到安卓  (I2A) 的
                 迁移中, LLMRR  成功完整回放了      65 个脚本, 而  LIRAT  和  MAPIT  分别仅成功回放  5 个和  3 个脚本, AppTestMigrator
   85   86   87   88   89   90   91   92   93   94   95