paperbot · PL 论文追踪

全部论文 待读 收藏

P2 𝜇Akka: Mutation Testing for Actor Concurrency in Akka using Real-World Bugs

μAkka:利用真实缺陷对 Akka Actor 并发进行变异测试
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 2/10 · 该论文研究 Akka actor 并发的变异测试,基于真实缺陷设计变异算子并评估测试有效性,属于软件测试与并发缺陷领域;与用户关注的静态分析、浮点程序分析、贝叶斯程序分析以及 LLM/Agent 与程序分析的交叉均无直接关系。虽涉及工业级 Akka 与工程实现,但不在核心研究方向内。引用 3 inbox
Mohsen Moradi Moghadam, Mehdi Bagherzadeh, Raffi Khatchadourian, Hamid Bagheri
crossref: 2026-09-12

AI 速览

一句话:提出 μAkka,基于真实 Akka 缺陷设计变异算子,用于评估 Actor 并发测试有效性。

论文针对 Actor 并发缺乏基于真实缺陷的变异测试问题,提出 μAkka。作者首先人工分析 Stack Overflow 与 GitHub 上 186 个真实 Akka 缺陷的成因,据此设计 32 个变异算子(含 138 处 Akka API 源码变更),并在 Eclipse 插件中实现,面向 Java Akka。评估中,插件为 10 个真实 GitHub 应用(44.64 万行代码、7.9k 测试)生成 1.17 万变异体;运行测试衡量变异体质量与测试有效性;再用 PIT 生成 2.62 万变异体进行对比,并人工分析缺陷覆盖与重叠。结果表明 μAkka 变异体质量更高、覆盖更多真实缺陷,且现有测试更难检测。

问题
Actor 并发在关键软件中日益重要,但现有变异测试缺少基于真实 Actor 缺陷的算子,难以评估测试对 Actor 缺陷的有效性。
方法
人工分析 186 个真实 Akka 缺陷,设计 32 个变异算子并在 Eclipse 插件中实现,然后为 10 个 GitHub 应用生成变异体并与 PIT 比较。
评估
通过 7.9k 测试在 1.17 万变异体上运行,比较变异体质量、缺陷覆盖和测试有效性,并与 PIT 的 2.62 万变异体及前人 actor 算子人工对比。
原文摘要(Abstract)

Actor concurrency is becoming increasingly important in the real world and mission-critical software. This requires these applications to be free from actor bugs, that occur in the real world, and have tests that are effective in finding these bugs. Mutation testing is a well-established technique that transforms an application to induce its likely bugs and evaluate the effectiveness of its tests in finding these bugs. Mutation testing is available for a broad spectrum of applications and their bugs, ranging from web to mobile to machine learning, and is used at scale in companies like Google and Facebook. However, there still is no mutation testing for actor concurrency that uses real-world actor bugs. In this paper, we propose 𝜇Akka, a framework for mutation testing of Akka actor concurrency using real actor bugs. Akka is a popular industrial-strength implementation of actor concurrency. To design, implement, and evaluate 𝜇Akka, we take the following major steps: (1) manually analyze a recent set of 186 real Akka bugs from Stack Overflow and GitHub to understand their causes; (2) design a set of 32 mutation operators, with 138 source code changes in Akka API, to emulate these causes and induce their bugs; (3) implement these operators in an Eclipse plugin for Java Akka; (4) use the plugin to generate 11.7k mutants of 10 real GitHub applications, with 446.4k lines of code and 7.9k tests; (5) run these tests on these mutants to measure the quality of mutants and effectiveness of tests; (6) use PIT to generate 26.2k mutants to compare 𝜇Akka and PIT mutant quality and test effectiveness. PIT is a popular mutation testing tool with traditional operators; (7) manually analyze the bug coverage and overlap of 𝜇Akka, PIT, and actor operators in a previous work; and (8) discuss a few implications of our findings. Among others, we find that 𝜇Akka mutants are higher quality, cover more bugs, and tests are less effective in detecting them.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot7689,
  title = {𝜇Akka: Mutation Testing for Actor Concurrency in Akka using Real-World Bugs},
  author = {Mohsen Moradi Moghadam and Mehdi Bagherzadeh and Raffi Khatchadourian and Hamid Bagheri},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3616362}
}