A systematic review on regression test selection techniques

本文综述了27篇论文中的36个实证研究,涉及28种回归测试用例选择技术。通过实证评估这些技术,并根据输入类型、语言类型及选择方法的安全性进行了分类。研究结果显示,技术的选择依赖于具体的场景。

摘要

本文是一篇综述,总结了27篇paper中36个empirical studies,21个实验和15个case studies。
评价了共28个RTS技术

1. 绪论

回归测试用例选择需要权衡重跑测试的开销和遗漏变更导致的风险
已有的研究主要包括基于代码变更和规范变更的测试用例选择方法,评价选择技术,变更影响分析和不同应用中的回归测试(数据库应用,GUI应用),测试自动化和测试流程增强
回归测试分为四个领域:

  • 测试用例选择
  • 修改识别
  • 测试执行
  • 测试套件维护
    本文主要集中于测试用例选择技术

2. 研究方法

2.1 研究问题

  • 哪些回归测试用例选择技术被实证评估了
  • 这些技术如何分类
  • 使用实证证据能否得出这些技术间的显著差异
  • 能否基于实证证据证明技术A优于技术B

2.2 研究对象(具体技术的论文)信息

从7个数据库中找

2.3 研究指标

关键字包括regressiontesttestingsoftware,发文时间段为1969-2006。最后找到2923篇论文。

2.4 研究对象选择

QQ截图20190407124217.png
分三阶段筛选,最后挑选出符合研究特征的27篇paper

2.5 数据提取和生成

2.6 实证结果的定性分析

不同研究的结果使用为4个主要指标:

  • 测试执行时间的约减
  • 测试用例选择的开销
  • 总开销
  • bug检测能力

2.7 效度威胁

3. 结果

3.1 已有研究

3.2 已有研究分析

3.3 实证评价技术(RQ1)

3.4 技术分类(RQ2)

QQ截图20190407140021.png

  • 根据输入的类型分类:
  1. 源代码文本
  2. 虚拟机上生成的中间代码
  3. 机器码
  • 根据分析语言的类型分类:
  1. Java
  2. c++
  • 根据编程范式分类:
  1. 面向过程
  2. 面向对象
  3. 独立于特定语言
  • 根据依赖关系粒度分类:
  1. 语句级别
  2. 方法/函数级别
  3. 类/模块级别
  4. 组件级别

最常见的分类方法是测试用例选择技术是safe还是unsafesafe的技术能覆盖到所有能发现缺陷的测试用例。RetestAll是一种最简单的safe技术。Random selection是一种unsafe的技术。

3.5 实证结果分析(RQ3)

3.5.2 评价指标

QQ截图20190407141545.png

  • 开销约减
  1. 测试用例约减
  2. 测试执行时间约减
  3. 测试用例选择时间
  4. 总时间(end-to-end time)
  5. 精度

其中测试用例约减这个指标用的最为频繁,为76%。

  • 错误检测效果
  1. 测试用例相关的检测效果
  2. 错误相关的检测效果

错误检测效果包括:

  1. 能检测到错误的测试用例能检测出多少(对应上面的1)
  2. 选择的测试用例能检测出多少已知的错误
  • Baseline选择
  1. Retest all

只有30%的研究同时评估了开销约减和错误检测能力。

3.6 技术对比(RQ4)

4. 讨论

5. 总结和未来工作

对于研究问题进行回答:
RQ1:本文评估了28个回归测试用例选择技术
RO2:这些技术可以根据以下标准分类:应用软件的类型和语言的类型;有关方法的细节,比如输入要求,选择的方法,变更的粒度等;还有选择方法是safe还是unsafe
RQ3:这些技术间实证结论各不相同,有时候是相反的
RQ4:hence there is no basis for selecting one superior technique.(不知怎么理解)技术选择依赖于特定的场景
【未来的工作】

  1. 专注于更一般化的回归测试概念而不是特定技术的变体
  2. 鼓励研究在不同上下文中系统化地复现
  3. 确定回归测试用例选择的实证评估应该如何报告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值