Page 117 - 《软件学报》2021年第9期
P. 117

陈立哲  等:基于日志挖掘的微服务测试集缩减技术                                                         2741


                   Table 12    Statistical data of defects found and missed in the second and third rounds by T 2
                               表 12   第 2 轮、第 3 轮 T 2 发现和遗漏的缺陷情况统计
                迭代   统计项                服务测试                            端到端测试
                轮次          致命   严重   一般    建议   支持度平均值     致命    严重   一般   建议   支持度平均值
                     已发现     1    45   89   16     0.583 7   1    18    27   20     0.610 8
                2
                      遗漏     1    19   37    6     0.660 8   0     9    14   9      0.615 6
                     已发现     0    21   29    9     0.551 2   0    13    10   11     0.593 6
                3
                      遗漏     0    10   17    6     0.720 1   0     5    9    4      0.576 3
             (2)  实验 2 结果与分析
             根据实验 2 的过程,挖掘出第 7 轮的 API 网关层日志,结合实验 1 中对前 6 轮日志的挖掘结果,分别用于第
         7 轮测试用例集的缩减,然后统计缩减后的测试用例数量、发现缺陷数量,进而计算 P e 和 P i ,结果见表 13.

                                    Table 13    Statistical data in the experiment 2
                                          表 13   实验 2 的相关数据
                 日志来源的      日志               服务测试                        端到端测试
                 迭代轮次       数量     测试用例数     缺陷数    P e(%)  P i(%)  测试用例数  缺陷数   P e(%)  P i(%)
                    1       46 394    487     34    58.20  27.65  132      9    52.00  30.77
                    2       91 219    434     35    62.74  25.53   84      11   69.45  15.38
                    3      148 851    446     39    61.71  17.02   83      11   69.81  15.38
                    4      234 317    439     39    62.31  17.02   78      11   71.64  15.38
                    5      419 351    414     43    64.46  8.51    69      11   74.53  15.38
                    6      912 653    632     47    45.75  0.00    63      13   77.09  0.00
                    7      1 035 519  589     47    49.44  0.00    60      13   78.18   0.00

             从表 13 中的数据可以看出:日志规模对测试用例集的规模缩减程度和缺陷发现能力都有影响,日志规模越
         大、覆盖面越全,测试用例集缩减效果就越好.这是由于从 API 网关层日志中挖掘到的频繁路径更丰富,匹配到
         的测试用例集更多,对原先支持度为 0 的测试用例也被赋予了支持度,为启发式搜索提供的信息量更大,有利于
         搜索到更优的测试用例集.
         3.4   实验结论
             综合上述两个实验结果,可得出以下结论.
             (1)  本文提出的测试用例缩减技术能够缩减测试用例规模 40%以上,且从缺陷等级上看,其缺陷发现能力
                 要好于单纯考虑测试覆盖准则的随机搜索技术;
             (2)  本文提出的测试用例缩减技术对原测试用例集缺陷发现能力的降幅不超过 10%,且遗漏的缺陷主要
                 分布在日志中未出现或很少出现的业务上;
             (3)  本文提出的测试用例缩减技术受 API 网关层日志规模的影响,日志规模越大、覆盖面越全,测试用例
                 集缩减效果就越好.
             需要说明的是:受项目素材限制,上述结论是否适用于不同领域、各种规模的微服务系统,还需要进一步开
         展工程实证.
         4    总结与下一步工作

             本文阐述了一种基于 API 网关层日志挖掘的微服务系统测试用例集缩减技术,详细描述了该技术的框架
         和每个步骤环节,并通过实验对其有效性进行了验证.该技术不要求微服务系统规约和架构描述作为输入信息,
         而是从 API 网关层日志挖掘服务及其调用关系,并作为测试用例缩减的依据,适用于微服务系统工程实践.该技
         术挖掘出的频繁路径信息真实反映了服务动态运行情况,使测试用例集侧重用户使用频次高的业务功能,避免
         测试场景偏离使用场景,一定程度上提高了测试效率.该技术包含了覆盖准则的判定要求,是“覆盖安全”的方法.
         该技术各环节均可使用程序实现,无需手工干预,能够自动化缩减测试用例集.
             从技术落地的角度考虑,下一步将开展如下 3 个方面的工作.
   112   113   114   115   116   117   118   119   120   121   122