A test amplification bot for Pharo/Smalltalk

IF 1.7 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Mehrdad Abdi , Henrique Rocha , Alexandre Bergel , Serge Demeyer
{"title":"A test amplification bot for Pharo/Smalltalk","authors":"Mehrdad Abdi ,&nbsp;Henrique Rocha ,&nbsp;Alexandre Bergel ,&nbsp;Serge Demeyer","doi":"10.1016/j.cola.2023.101255","DOIUrl":null,"url":null,"abstract":"<div><p>Test amplification exploits the knowledge embedded in an existing test suite to strengthen it. A typical test amplification technique transforms the initial tests into additional test methods that increase the mutation coverage. Although past research demonstrated the benefits, additional steps need to be taken to incorporate test amplifiers in the everyday workflow of developers. This paper describes a proof-of-concept bot integrating <span>Small-Amp</span> with <span>GitHub-Actions</span>. The bot decides for itself which tests to amplify and does so within a limited time budget. To integrate the bot into the <span>GitHub-Actions</span> workflow, we incorporate three special-purpose features: (i) prioritization (to fit the process within a given time budget), (ii) sharding (to split lengthy tests into smaller chunks), and (iii) sandboxing (to make the amplifier crash-resilient). We evaluate our approach by installing the proof-of-concept extension of <span>Small-Amp</span> on five open-source projects deployed on GitHub. Our results show that a test amplification bot is feasible at a project level by integrating it into the build system. Moreover, we quantify the impact of prioritization, sharding, and sandboxing so that other test amplifiers may benefit from these special-purpose features. Our proof-of-concept demonstrates that the entry barrier for adopting test amplification can be significantly lowered.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"78 ","pages":"Article 101255"},"PeriodicalIF":1.7000,"publicationDate":"2023-12-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Computer Languages","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2590118423000655","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Test amplification exploits the knowledge embedded in an existing test suite to strengthen it. A typical test amplification technique transforms the initial tests into additional test methods that increase the mutation coverage. Although past research demonstrated the benefits, additional steps need to be taken to incorporate test amplifiers in the everyday workflow of developers. This paper describes a proof-of-concept bot integrating Small-Amp with GitHub-Actions. The bot decides for itself which tests to amplify and does so within a limited time budget. To integrate the bot into the GitHub-Actions workflow, we incorporate three special-purpose features: (i) prioritization (to fit the process within a given time budget), (ii) sharding (to split lengthy tests into smaller chunks), and (iii) sandboxing (to make the amplifier crash-resilient). We evaluate our approach by installing the proof-of-concept extension of Small-Amp on five open-source projects deployed on GitHub. Our results show that a test amplification bot is feasible at a project level by integrating it into the build system. Moreover, we quantify the impact of prioritization, sharding, and sandboxing so that other test amplifiers may benefit from these special-purpose features. Our proof-of-concept demonstrates that the entry barrier for adopting test amplification can be significantly lowered.

用于 Pharo/Smalltalk 的测试放大机器人
测试放大技术利用现有测试套件中蕴含的知识来加强测试套件。典型的测试放大技术将初始测试转化为额外的测试方法,从而提高突变覆盖率。尽管过去的研究证明了这种技术的好处,但要将测试放大技术融入开发人员的日常工作流程中,还需要采取更多的措施。本文介绍了一个与 GitHub-Actions 集成的概念验证机器人。该机器人自行决定放大哪些测试,并在有限的时间预算内完成。为了将机器人集成到 GitHub-Actions 工作流中,我们加入了三个特殊用途功能:(i) 优先级排序(在给定的时间预算内完成流程),(ii) 分片(将冗长的测试分割成较小的块状),(iii) 沙箱(使放大器具有抗崩溃能力)。我们在 GitHub 上部署的五个开源项目上安装了概念验证扩展 ofamp,对我们的方法进行了评估。我们的结果表明,通过将测试放大机器人集成到构建系统中,它在项目层面上是可行的。此外,我们还量化了优先级、分片和沙箱的影响,以便其他测试放大机器人能从这些特殊用途功能中受益。我们的概念验证表明,采用测试放大工具的入门门槛可以大大降低。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Journal of Computer Languages
Journal of Computer Languages Computer Science-Computer Networks and Communications
CiteScore
5.00
自引率
13.60%
发文量
36
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信