一句话:提出 Marv 交互式工具,统一可视化与评审多语言变异分析结果。
变异分析可用于评估测试套件强度,但现有变异分析工具多绑定特定语言或框架(如 Java 的 PIT、JavaScript 的 Stryker),缺乏能跨工具、跨语言统一查看和评审变异体的公开工具;开发者常被迫使用代码编辑器或 diff 工具,效率不高。本文提出 Marv(Mutations Analysis, Review and Visualisation),在代码中可视化变异体并同时聚合来自多个变异分析工具的信息,支持用户对每个变异体进行正式文本评审,并能将各支持框架的结果导出为标准化 JSON。Marv 目前支持 13 个变异分析框架,覆盖 12 种编程语言,并以截屏视频演示。
Mutation analysis is a useful technique for both practitioners and researchers in examining the strength of a test suite. If the change introduced by a mutant cannot be detected, it may represent a "blind spot" that the test suite failed to consider. However, there are currently no publicly available tools that developers and researchers can use to examine mutants produced by the plethora of existing mutation analysis tools that currently exist for a variety of programming languages (e.g., PIT for Java and Stryker for JavaScript). This is increasingly important given the fact that nowadays, systems are composed of code written in multiple languages. Instead, code editors and diff analysers are used, which are not well optimised for this particular activity. Where tools do exist, they are focused on specific mutation tools/programming languages only. In this paper, we introduce the Marv tool (Mutations Analysis, Review and Visualisation) to specifically address this problem. Marv provides in-code visualisations of mutants and information about them from multiple mutation analysis tools simultaneously. The tool allows users to complete formal textual reviews of each mutant and can export results from all of its supported frameworks in a standardised JSON format. Marv currently includes support for 13 different mutation analysis frameworks that collectively span 12 different programming languages. A screencast demonstrating Marv is available at https://youtu.be/qMjVgXmWrnk.