Releases: eigerco/move-mutation-tools
Move Mutation Tools v2.1.0
Installation Options
Via Aptos CLI (Recommended for most users)
aptos update move-mutation-testThis 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 suitemove-mutator- Core mutation engine for advanced usersmove-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
--modeand--operatorsflags 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
Installation Options
Via Aptos CLI (Recommended for most users)
aptos update move-mutation-testThis 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 suitemove-mutator- Core mutation engine for advanced usersmove-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
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:
- Runs tests on the original source code to ensure the original tests are valid.
- Internally runs the
move-mutatortool to generate mutants. - 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:
- Runs the Move Prover on the original source code to ensure the original specification is valid.
- Internally runs the
move-mutatortool to generate mutants. - 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.