mbj / mutant

Automated code reviews via mutation testing - semantic code coverage.
Other
1.93k stars 151 forks source link
code-quality-analyzer code-review coverage dynamic-analysis minitest mutant mutation-testing rspec ruby static-analysis static-anaysis uncovered-semantics

mutant

Build Status Gem Version Discord

What is Mutant?

An automated code review tool, with a side effect of producing semantic code coverage metrics.

Think of mutant as an expert developer that simplifies your code while making sure that all tests pass.

That developer never has a bad day and is always ready to jump on your PR.

Each reported simplification signifies either:

A) A piece of code that does more than the tests ask for. You can probably use the simplified version of the code. OR:

B) If you have a reason to not take the simplified version as it violates a requirement: There was no test that proves the extra requirement. Likely you are missing an important test for that requirement.

On extensive mutant use A) happens more often than B), which leads to overall less code enter your repository at higher confidence for both the author and the reviewer.

BTW: Mutant is a mutation testing tool, which is a form of code coverage. But each reported uncovered mutation is actually a call to action, just like a flag in a code review would be.

Getting started:

Operating Systems

Mutant is supported and tested under Linux and Mac OS X.

Ruby Versions

Mutant supports multiple ruby versions at different levels:

Supported indicates if a specific Ruby version / Implementation is actively supported. Which means:

Implementation Version Runtime Syntax Mutations Supported
cRUBY/MRI 3.1 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
cRUBY/MRI 3.2 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
cRUBY/MRI 3.3 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
jruby TBD :email: :email: :email: :email:
mruby TBD :email: :email: :email: :email:
cRUBY/MRI < 3.1 :no_entry: :no_entry: :no_entry: :no_entry:

Labels:

Licensing

Mutant is commercial software, with a free usage option for opensource projects. Opensource projects have to be on a public repository.

Commercial projects have to pay a monthly or annual subscription fee.

Opensource usage

Usage is free and does not require a signup. But it requires the code is under an opensource license and public. Specify --usage opensource on the CLI or usage: opensource in the config file.

Commercial usage

Commercial use requires payment via a subscription and requires a signup. See pricing for available plans.

After payment specify --usage commercial on the CLI or usage: commercial in the config file.

Pricing

Mutant is free for opensource use!

For commercial use mutants pricing is subscription based.

Currency Duration Cost Payment Methods
USD 1 month 90$ Credit Card
USD 1 year 900$ Credit Card, ACH transfer
EUR 1 month 90€ Credit Card, SEPA Direct Debit
EUR 1 year 900€ Credit Card, SEPA Direct Debit, SEPA Transfer

Costs are per developer using mutant on any number of repositories.

Volume subscriptions with custom plans are available on request.

Should you want to procure a commercial mutant subscription please mail me to start the payment process.

Please include the following information:

Also feel free to ask any other question I forgot to proactively answer here.

Also checkout the commercial FAQ.

Topics

Communication

Try the following:

Sponsoring

Mutant, as published in the opensource version, would not exist without the help of contributors spending lots of their private time.

Additionally, the following features where sponsored by organizations:

Legal

Contents of this repository are maintained by:

Schirp DSO LTD
Director: Markus Schirp
Email: info@schirp-dso.com
Vat-ID: MT24186727
Registration: C80467

Office address:
2, Carob Lane,
Sir Harry Luke Street
Naxxar NXR 2209,
Malta

Registred Address
Phoenix Business Centre,
The Penthouse,
Old Railway Track,
Santa Venera SVR9022,
Malta