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.
最长约 10秒,即可获得该文献文件

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
lsq108发布了新的文献求助10
3秒前
华仔应助等待的乐儿采纳,获得10
3秒前
阳光怀亦完成签到,获得积分10
5秒前
zhendou应助cgk采纳,获得10
8秒前
8秒前
aannnn发布了新的文献求助10
8秒前
10秒前
英俊的铭应助夜半微风采纳,获得10
10秒前
11秒前
11秒前
隐形曼青应助飞羽采纳,获得10
11秒前
快乐映秋完成签到,获得积分10
11秒前
余海川发布了新的文献求助10
12秒前
juejue333完成签到,获得积分10
12秒前
受伤金鑫发布了新的文献求助10
12秒前
14秒前
sunshine发布了新的文献求助10
14秒前
xumengsuo发布了新的文献求助10
14秒前
秘书发布了新的文献求助10
15秒前
BIUBIU发布了新的文献求助20
17秒前
善学以致用应助大胆浩然采纳,获得10
18秒前
小严发布了新的文献求助10
18秒前
塔塔饼完成签到,获得积分10
20秒前
Lin完成签到,获得积分10
20秒前
21秒前
真不记得用户名完成签到 ,获得积分10
21秒前
卓立0418发布了新的文献求助10
22秒前
同福发布了新的文献求助10
22秒前
李爱国应助qqa采纳,获得10
24秒前
24秒前
看你个完成签到,获得积分10
25秒前
余海川完成签到,获得积分10
25秒前
小二郎应助源源不断采纳,获得10
26秒前
27秒前
橘络发布了新的文献求助10
28秒前
29秒前
hui完成签到,获得积分10
29秒前
小严完成签到,获得积分10
31秒前
32秒前
32秒前
高分求助中
Production Logging: Theoretical and Interpretive Elements 2500
Востребованный временем 2500
Aspects of Babylonian celestial divination : the lunar eclipse tablets of enuma anu enlil 1500
Agaricales of New Zealand 1: Pluteaceae - Entolomataceae 1040
Healthcare Finance: Modern Financial Analysis for Accelerating Biomedical Innovation 1000
Classics in Total Synthesis IV: New Targets, Strategies, Methods 1000
지식생태학: 생태학, 죽은 지식을 깨우다 600
热门求助领域 (近24小时)
化学 医学 材料科学 生物 工程类 有机化学 生物化学 纳米技术 内科学 物理 化学工程 计算机科学 复合材料 基因 遗传学 物理化学 催化作用 细胞生物学 免疫学 电极
热门帖子
关注 科研通微信公众号,转发送积分 3459066
求助须知:如何正确求助?哪些是违规求助? 3053650
关于积分的说明 9037605
捐赠科研通 2742924
什么是DOI,文献DOI怎么找? 1504562
科研通“疑难数据库(出版商)”最低求助积分说明 695334
邀请新用户注册赠送积分活动 694589