Skip to content

Releases: eigerco/move-mutation-tools

Move Mutation Tools v2.1.0

27 Oct 17:15
Immutable release. Only release title and notes can be modified.
46f8fb5

Choose a tag to compare

Installation Options

Via Aptos CLI (Recommended for most users)

aptos update move-mutation-test

This installs move-mutation-test which is the main tool most users need.

Direct Download (All tools)

Download the appropriate archive for your platform below. Each archive contains:

  • move-mutation-test - Tests the quality of your unit test suite
  • move-mutator - Core mutation engine for advanced users
  • move-spec-test - Tests the quality of your formal specifications

Platform Support

Platform Architecture File
Linux x86_64 mutation-tools-x86_64-unknown-linux-gnu.zip
Linux ARM64/aarch64 mutation-tools-aarch64-unknown-linux-gnu.zip
macOS x86_64 (Intel) mutation-tools-x86_64-apple-darwin.zip
macOS ARM64 (Apple Silicon) mutation-tools-aarch64-apple-darwin.zip
Windows x86_64 mutation-tools-x86_64-windows.zip

Documentation

For usage instructions and examples, visit: https://github.com/eigerco/move-mutation-tools

What's Changed

  • fix: is_commutative returned TRUE for non-commutative operators by @joske in #120
  • feat: add --mode and --operators flags to mutator and testing tool by @ctoyan in #116
  • chore: bump crate versions to v2.1.0 by @ctoyan in #122

Full Changelog: v2.0.0...v2.1.0

Move Mutation Tools v2.0.0

22 Oct 08:45
Immutable release. Only release title and notes can be modified.
0334123

Choose a tag to compare

Installation Options

Via Aptos CLI (Recommended for most users)

aptos update move-mutation-test

This installs move-mutation-test which is the main tool most users need.

Direct Download (All tools)

Download the appropriate archive for your platform below. Each archive contains:

  • move-mutation-test - Tests the quality of your unit test suite
  • move-mutator - Core mutation engine for advanced users
  • move-spec-test - Tests the quality of your formal specifications

Platform Support

Platform Architecture File
Linux x86_64 mutation-tools-x86_64-unknown-linux-gnu.zip
Linux ARM64/aarch64 mutation-tools-aarch64-unknown-linux-gnu.zip
macOS x86_64 (Intel) mutation-tools-x86_64-apple-darwin.zip
macOS ARM64 (Apple Silicon) mutation-tools-aarch64-apple-darwin.zip
Windows x86_64 mutation-tools-x86_64-windows.zip

Documentation

For usage instructions and examples, visit: https://github.com/eigerco/move-mutation-tools

What's Changed

  • Milestone 1: Language compatibility update & automation by @ctoyan in #102
  • fix: workaround compiler span mismatch in compound assignments by @ctoyan in #114
  • fix: failing aarch-release-ci by @ctoyan in #119
  • chore: bump all crates to v2.0.0 by @ctoyan in #121

Full Changelog: v1.0.0...v2.0.0

v1.0.0

18 Mar 17:21
v1.0.0
4108fb7

Choose a tag to compare

Mutation testing with Move offers a glimpse into how we can bolster the robustness of smart contract specifications, increasing overall assurance for developers working on the Aptos blockchain. Mutation testing introduces deliberate faults (mutants) to source code to test the quality of existing tests. It's a robust method to identify blind spots that traditional coverage tools might miss. To address this, in this repo we are providing three tools, to help developers identify and eliminate potential weak spots in their tests and code's specifications.

move-mutation-test is a tool used to test the quality of the test suite and the source code.
How it works:

  1. Runs tests on the original source code to ensure the original tests are valid.
  2. Internally runs the move-mutator tool to generate mutants.
  3. Runs the tests for all mutants to check if the mutants are killed by the original test suite.

If the mutants are not killed, it might indicate the quality of the test suite could be improved, or in some rare cases, it might indicate an error in the original source code.

move-spec-test is a tool used to test the quality of the Move specifications.
How it works:

  1. Runs the Move Prover on the original source code to ensure the original specification is valid.
  2. Internally runs the move-mutator tool to generate mutants.
  3. Runs the Move Prover tool on all mutants to check if the mutants are killed (so Prover will catch an error) by the original specifications.

If some mutants are not killed, it means that the specification has issues and is incorrect or not tight enough to catch such cases, so it should be improved.

move-mutator is a helper tool that mutates Move source code. Every modification / mutation is called a mutant. Note that the tool mutates only the source code; tests and spec blocks are unaffected and are not mutated by this tool.