Giter Site home page Giter Site logo

mutant's Introduction

mutant

Build Status Gem Version Slack Status

What is Mutant?

Mutant is a mutation testing tool for Ruby. Mutation testing is a technique to verify semantic coverage of your code.

Why do I want it?

Mutant adds to your toolbox: Detection of uncovered semantics in your code. Coverage becomes a meaningful metric!

On each detection of uncovered semantics you have the opportunity to:

  • Delete dead code, as you do not want the extra semantics not specified by the tests
  • Add (or improve a test) to cover the unwanted semantics.
  • Learn something new about the semantics of Ruby and your direct and indirect dependencies.

How Do I use it?

  • Start with reading the nomenclature documentation.
  • Then select and setup your integration, also make sure you can reproduce the examples in the integration specific documentation.
  • Identify your preferred mutation testing strategy. It is recommended to start at the commit level, to test only the code you had been touching. See the incremental mutation testing documentation.

Ruby Versions

Mutant currently only works on cRuby/MRI. Starting with version 2.5.x. It supports all syntax features upto and including Ruby 2.6.

Support for 2.7 syntax features is pending, see unparser issue: mbj/unparser#129.

Mutant will work under Ruby 2.7 just fine, unless a 2.7 syntax feature is used. This will be resolved shortly.

Licensing

Mutant was recently transitioned commercial software, with a free usage plan for opensource projects.

Commercial projects have to acquire a license per developer, with unlimited repositories per developer.

Opensource projects have to acquire their free license per repository.

The license distribution happens through the mutant-license gem in mutants dependencies. This gem is dynamically generated per licensee and comes with a unique license gem source URL.

After signup for a license the following has to be added to your Gemfile replacing ${key} with the license key and ${plan} with com for commercial or oss for opensource usage.

source 'https://${plan}:${key}@gem.mutant.dev' do
  gem 'mutant-license'
end

The mutant license gem contains metadata that allows mutant to verify licensed use.

For commercial licenses mutant checks the git commit author or the configured git email to be in the set of licensed developers.

For opensource licenses mutant checks the git remotes against the license whitelist. This allows the project maintainer to sign up and not bother collaborators with the details.

There are, apart from initial license gem installation, no remote interactions for license validation.

To inquire for license please contact Markus Schirp.

Pricing

Only relevant for commercial use.

Mutant offers a subscription model under a monthly plan. Yearly prepayments with discounts are available.

For higher volumes different arrangements can be negotiated.

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:

  • The mutant-minitest integration was sponsored by Arkency
  • Mutant's initial concurrency support was sponsored by an undisclosed company that does currently not wish to be listed here.

Legal

Contents of this repository are maintained by:

Schirp DSO LTD
Director: Markus Schirp
Email: [email protected]
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

mutant's People

Contributors

andyw8 avatar backus avatar barthez avatar chastell avatar dgollahon avatar dkubb avatar envygeeks avatar jschirp avatar kbrock avatar kevinrutherford avatar krzysiek1507 avatar kytrinyx avatar lucaspinto avatar matkoniecz avatar mbj avatar michaelherold avatar mikeweaver avatar mjago avatar mockdeep avatar mvz avatar nwjsmith avatar olivierlacan avatar olleolleolle avatar postmodern avatar ptico avatar rrrene avatar snusnu avatar solnic avatar tjchambers avatar zaidan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.