テスト計画を先に立て、検証を徹底し、証拠レポートでコードの正しさを示すコーディングエージェント向けスキル。
mbj/mutant
Ruby向けのミューテーションテストツール。コードに変更を加え、テストスイートが見逃す変更を報告します。
- スター
- 2,212
- フォーク
- 163
- 未解決の Issue
- 127
- 最終コミット
- 昨日
これは何?
MutantはRuby向けのミューテーションテストツールです。演算子の入れ替え、文の削除、戻り値の変更など、コードに小さな変更を体系的に加え、それぞれの変更に対してテストを実行します。どのテストにも失敗しないミューテーションは「生存」として報告され、テストが実際には検証していない振る舞いを示します。
生存したミューテーションごとに、テストで正しい振る舞いがすでに固定されているためコードを簡素化するか、不足しているテストを追加するかを判断します。テストがパスするだけでは、そのテストが意味のある内容を検証しているとは限らないため、AIツールがコードやテストを生成した場合に役立ちます。
MutantはRSpec、Minitest、Test::Unitと連携し、ワーカーごとにデータベースを分離してRailsアプリケーションでも実行できます。CI向けの増分実行に対応し、後から確認できるようセッション結果を記録します。オープンソースでの利用は無料で、商用利用には有料ライセンスが必要です。
主な機能
- 01Rubyコードに演算子、文、戻り値のミューテーションを適用し、それぞれに対してテストを実行します。
- 02テストされていない振る舞いを示す、生存したミューテーションを報告します。
- 03RSpec、Minitest、Test::Unitと連携します。
- 04PostgreSQLとSQLiteでワーカーごとのデータベース分離を行い、Railsに対応します。
- 05CIでの実行に使える増分モードを備え、過去の結果を確認できるようセッション履歴を保存します。
ユースケース
- AIアシスタントが作成したテストが、コードの振る舞いを実際に検証しているか確認する。
- リファクタリングの前に、既存のRubyテストスイートの弱点を見つける。
- 変更されたコードだけを対象に、CIで増分ミューテーションテストを実行する。
クイックスタート
- 1
RSpec連携gemをインストールする
gem install mutant-rspec - 2
コード内の対象に対してmutantを実行する
mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'
使う前に知っておきたいこと
- LinuxとmacOSでのみサポートされています。
- オープンソースの場合のみ無料です。商用利用には有料サブスクリプションが必要です。
- READMEには明確なオープンソースライセンスが記載されていません(メタデータはNOASSERTIONです)。
収録されている特集
トピック
よくある質問
- mutant とは?
- Ruby向けのミューテーションテストツール。コードに変更を加え、テストスイートが見逃す変更を報告します。 MutantはRuby向けのミューテーションテストツールです。演算子の入れ替え、文の削除、戻り値の変更など、コードに小さな変更を体系的に加え、それぞれの変更に対してテストを実行します。どのテストにも失敗しないミューテーションは「生存」として報告され、テストが実際には検証していない振る舞いを示します。
- mutant は無料で使えますか?ライセンスは?
- mutant は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- mutant は今もメンテナンスされていますか?
- 活発にメンテナンス中。mutant の最終コミットは 2026年11月6日 です。
- mutant は何に使えますか?
- AIアシスタントが作成したテストが、コードの振る舞いを実際に検証しているか確認する。 リファクタリングの前に、既存のRubyテストスイートの弱点を見つける。 変更されたコードだけを対象に、CIで増分ミューテーションテストを実行する。
- mutant のインストール方法は?
- RSpec連携gemをインストールする: gem install mutant-rspec コード内の対象に対してmutantを実行する: mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'
- mutant はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/mbj/mutant
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
すぐに実行できるリンターとフォーマッターのコレクション。GitHub Actionまたは単体のコンテナとして動作し、ソースコードのチェックと修正を行います。
コードベース内の関数、クラス、メソッド、モジュールのdocstring記述率を測定し、CI向けの合否しきい値を設定できるPython CLI。
テストで実行されたJavaバイトコードの範囲を測定する、無料のJavaコードカバレッジライブラリです。
coverage.pyの結果をcoveralls.ioにアップロードし、カバレッジ統計をオンラインで公開するPythonパッケージ。
セルフホスト型のGitLab Community Edition。Gitリポジトリ、コードレビュー、CI/CD、課題管理を行うRuby on Rails製Webアプリケーション。