Regression test prioritization leveraging source code similarity with tree kernels

代码库 计算机科学 源代码 回归检验 测试套件 Java 杠杆(统计) 测试用例 抽象语法树 控制流程 数据挖掘 软件进化 程序设计语言 回归分析 软件 语法 机器学习 人工智能 软件开发 软件建设
作者
Francesco Altiero,Anna Corazza,Sergio Di Martino,Adriano Peron,Luigi Libero Lucio Starace
出处
期刊:Journal of software [Wiley]
卷期号:36 (8)
标识
DOI:10.1002/smr.2653
摘要

Abstract Regression test prioritization (RTP) is an active research field, aiming at re‐ordering the tests in a test suite to maximize the rate at which faults are detected. A number of RTP strategies have been proposed, leveraging different factors to reorder tests. Some techniques include an analysis of changed source code, to assign higher priority to tests stressing modified parts of the codebase. Still, most of these change‐based solutions focus on simple text‐level comparisons among versions. We believe that measuring source code changes in a more refined way, capable of discriminating between mere textual changes (e.g., renaming of a local variable) and more structural changes (e.g., changes in the control flow), could lead to significant benefits in RTP, under the assumption that major structural changes are also more likely to introduce faults. To this end, we propose two novel RTP techniques that leverage tree kernels (TK), a class of similarity functions largely used in Natural Language Processing on tree‐structured data. In particular, we apply TKs to abstract syntax trees of source code, to more precisely quantify the extent of structural changes in the source code, and prioritize tests accordingly. We assessed the effectiveness of the proposals by conducting an empirical study on five real‐world Java projects, also used in a number of RTP‐related papers. We automatically generated, for each considered pair of software versions (i.e., old version, new version) in the evolution of the involved projects, 100 variations with artificially injected faults, leading to over 5k different software evolution scenarios overall. We compared the proposed prioritization approaches against well‐known prioritization techniques, evaluating both their effectiveness and their execution times. Our findings show that leveraging more refined code change analysis techniques to quantify the extent of changes in source code can lead to relevant improvements in prioritization effectiveness, while typically introducing negligible overheads due to their execution.

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
丰富语蕊应助可靠老头采纳,获得10
1秒前
加百莉发布了新的文献求助10
1秒前
大方怀亦完成签到,获得积分10
1秒前
2秒前
天天向上完成签到 ,获得积分10
2秒前
英俊蜜粉发布了新的文献求助10
5秒前
Li656943234完成签到,获得积分10
5秒前
飞飞完成签到,获得积分10
5秒前
Wangjingxuan完成签到,获得积分10
6秒前
huluwa发布了新的文献求助10
7秒前
就而酒完成签到,获得积分10
7秒前
吕姆克的月壤完成签到,获得积分10
8秒前
8秒前
Beverly应助顺利山灵采纳,获得20
13秒前
v0id应助英俊蜜粉采纳,获得10
15秒前
大气的山彤完成签到,获得积分10
15秒前
胖虎发布了新的文献求助10
15秒前
小古完成签到,获得积分10
18秒前
蘑菇完成签到,获得积分10
19秒前
小绵羊发布了新的文献求助10
19秒前
田様应助arniu2008采纳,获得200
19秒前
rui完成签到 ,获得积分10
22秒前
胖虎完成签到,获得积分10
25秒前
黄道婆完成签到 ,获得积分10
27秒前
明理书萱完成签到 ,获得积分10
27秒前
怕黑的寻菱完成签到,获得积分10
28秒前
zz完成签到 ,获得积分10
28秒前
28秒前
神经娃完成签到,获得积分10
28秒前
大气的尔蓝完成签到,获得积分10
31秒前
蘓蘇完成签到,获得积分10
31秒前
32秒前
自信鹭洋完成签到,获得积分10
33秒前
wen完成签到,获得积分10
33秒前
淙淙完成签到,获得积分10
33秒前
英俊蜜粉完成签到,获得积分10
34秒前
35秒前
Laphicet关注了科研通微信公众号
35秒前
激昂的大象完成签到,获得积分10
35秒前
JJ完成签到,获得积分10
36秒前
高分求助中
(应助此贴封号)【重要!!请各用户(尤其是新用户)详细阅读】【科研通的精品贴汇总】 10000
Matrix Methods in Data Mining and Pattern Recognition Second Edition 510
Handbuch Trainingswissenschaft – Trainingslehre 500
Additive Manufacturing Design and Applications (ASM Handbook, Volume 24A) 500
Variations: A More Diverse Picture of Contemporary Art 400
A Primer on Partial Least Squares Structural Equation Modeling (PLS-SEM) Fourth Edition 400
Induction Heating and Heat Treatment (ASM Handbook, Volume 4C) 300
热门求助领域 (近24小时)
化学 材料科学 医学 生物 纳米技术 工程类 有机化学 化学工程 生物化学 计算机科学 内科学 物理 复合材料 催化作用 细胞生物学 无机化学 光电子学 物理化学 电极 基因
热门帖子
关注 科研通微信公众号,转发送积分 7586509
求助须知:如何正确求助?哪些是违规求助? 9164767
关于积分的说明 19613159
捐赠科研通 7166996
什么是DOI,文献DOI怎么找? 3266670
关于科研通互助平台的介绍 2431682
邀请新用户注册赠送积分活动 2258435