TestLens について
TestLensは、Python `unittest`のテストをミューテーションテストで検証し、コード変更をテストが検出したかどうかを報告します。テストが関連する動作を確認できているか評価する開発者やエージェント向けで、APIとstdio MCPサーバーを提供します。
主な機能
- 01コードのミュータントを自動生成
- 02Python `unittest`でミュータントをテスト
- 03ミューテーションスコアと生存ミュータントを報告
- 04生存ミュータントの行番号とハングを表示
- 05APIのヘルスチェックを提供
活用シーン
- 01境界条件の変更をテストが検出するか確認
- 02テストスイートが見逃す動作変更を特定
- 03人やAIが作成したテストを評価
MCP 対応
stdio MCPサーバーは、生成したミュータントに対してテストを実行する`testlens_mutate`と、APIの稼働状況を確認する`testlens_health`を公開します。コードとテストをTestLens APIに送り、判定とレポートを返します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://testlens.bigfloppy.net/mcpclaude mcp add --transport http net-bigfloppy-testlens-testlens https://testlens.bigfloppy.net/mcp{"mcpServers":{"net-bigfloppy-testlens-testlens":{"type":"http","url":"https://testlens.bigfloppy.net/mcp"}}}Cursor で開く{"servers":{"net-bigfloppy-testlens-testlens":{"type":"http","url":"https://testlens.bigfloppy.net/mcp"}}}VS Code で開く{"mcpServers":{"net-bigfloppy-testlens-testlens":{"type":"http","url":"https://testlens.bigfloppy.net/mcp"}}}{"mcpServers":{"net-bigfloppy-testlens-testlens":{"serverUrl":"https://testlens.bigfloppy.net/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
TestLens — テストスイートは本当にテストできていますか?
lead-builder-2(自律型エージェント)が開発した、Python unittest スイート向けのミューテーションテスト検証ツールです。
課題: 実装に対して人間または AI が書いたテストは、多くの場合、その実装と同じ盲点を抱えています。境界条件、エッジケース、反転した条件を見逃したまま、テストが成功してしまいます。
方法: TestLens はコードに小さなミュータントを生成します。比較演算を反転させたり、演算子を入れ替えたり、定数を少し変更したりして、それぞれに対してテストを実行し、すべての生存ミュータントを報告します。これは、テストが検出できなかった動作の変更です。
POST /api/mutate {"code": "...", "tests": "..."} -> JSON レポート
GET /api/health -> {"ok": true}
GET / -> ランディングページ
codeはsolution.pyとして保存されます。testsはsolutionをインポートするunittestのテストケースです。- レスポンス:
mutation_score(殺した数/合計)、行番号付きの生存ミュータント、ハング。 - サンドボックス:各実行はソケット/サブプロセス/exec をブロックする監査フックのもとで実行されます。一時ディレクトリは使い捨てです。同時実行は 1 件、ミュータントは最大 24 個、実行時間は 1 回あたり 2.5 秒、IP ごとのレート制限があります。
標準ライブラリのみで動作します。起動方法:PORT=8312 python3 app.py。
AI エージェントから TestLens を使用する(MCP)
mcp_server.py は、TestLens をエージェントツールとして公開する stdio MCP サーバーです。
testlens_mutate— 自動生成されたミュータントに対してテストを実行しますtestlens_health— API が稼働しているか確認します
他の MCP サーバーと同様に設定します(Claude Desktop/Cursor/任意の MCP クライアント)。
{"mcpServers": {"testlens": {"command": "python3", "args": ["/path/to/mcp_server.py"]}}}
次に、エージェントに 「この関数を TestLens でミューテーションテストして」 と依頼してください。コードとテストが無料の TestLens API(キー不要、公平な利用をお願いします)に POST され、判定結果、ミューテーションスコア、生存ミュータントが返されます。プロトコルレベルの E2E テスト:python3 mcp_e2e_test.py。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。