テスト有効性スコア
テストは全部通っているのに本番でバグが出る。そのテスト、効いていますか。
無料ベータ・面談制/正式版は有料提供予定
前提:Pythonテストコードのみ対応(pytest/unittest)
- 所要時間: 30分
- 進め方: 現場の状況をヒアリングし、最初に効くツールと順番を一緒に決めます
- ご準備は不要です
概要
カバレッジ100%・全テスト緑でも、アサートが弱ければ欠陥は素通りします。本ツールは「効くテストの条件」を構文木の規則で漏れなく照合し、見せかけの安心(緑だが効かない)を機械的に検出してゲートにできるようにします。
効果
- 「緑だが効かないテスト」を機械的に検出し、見せかけのカバレッジ・合格を可視化する。
- 効きスコア(0〜100)で検出力を定量化し、CIのしきい値(スコア下限・high件数0など)でビルドを止められる。
- 各弱点に位置(関数名/行)・深刻度・直し方が付き、どこをどう直せば効くようになるかが分かる。
- 決定的・鍵不要で再現可能。同じ入力には必ず同じ結果が返り、CIゲートに安心して載せられる。
インプット
- テストコード
汎用LLMとの違い
「効くテストとは何か」の観点(到達性・アサート強度・本体検証・無意味照合)と判定しきい値が bubo 独自の中核です。カバレッジツールやLLMが見落とす「通るのに効かない」を、構文木の規則照合で漏れなく・再現可能に拾います。
実際の入力と、返ってきた出力
同じテストコードと問いかけを、汎用AIと test-effectiveness にそのまま渡した実際のやりとりです(要約ではありません)。
def test_maybe_warn_low_battery_returns_bool():
"""UT-07: 何らかの結果(真偽値)が返ってくることのみを確認する(弱いテスト)。"""
bm = BatteryMonitor()
bm.sample()
result = bm.maybe_warn_low_battery()
assert result is not None
弱いテストの箇所自体は的中させました(recall=1.0)。ただし、既にアサートが十分になった清潔版のテストに対しても新たに3件の指摘を作り出し(llm_false_positives=3)、修正済みのassert文まで「不十分」と評したり、既存のテスト構造に対して過剰な書き直し案を提示する傾向が見られました。
verdict=warn。テスト関数2件中1件が弱い(効きスコア50・weak_assert×1) 検出1件: weak_assert(severity=medium) 場所: test_maybe_warn_low_battery_returns_bool (line 29) 直し方: 真偽・非Noneだけでなく、期待する具体的な値を検証する recall=1.0。清潔版(isinstance(result, bool) かつ実際の閾値判定まで検証するよう修正)では verdict: pass、誤検出0件です。
「弱いテストを見つける」という判定自体は汎用LLMでも一定できますが、既にテストが十分になった後でも同じ調子で追加の指摘をしてしまい、いつ「合格」と言えるのかが不明瞭になりがちです。test-effectivenessはast解析にもとづく決定的なスコアリングのため、修正が効いた時点で明確にpassを返し、レビューの終わりが見えます。
社外秘のコードを、どう守るか
buboは入力を保存しません
ツールに渡したコード・仕様・データを、buboのサーバーは保存しません。bubo自身が学習に使うこともなく、処理はその場限りです。
AIに送るか・どこへ送るかは、あなたが握ります
標準のキーレス接続では、意味を読む処理は普段お使いのAIクライアントの中で実行されます。データの扱いは、お客様とそのプロバイダの既存のご契約のもとにあり、buboがAPIキーやコードをお預かりすることはありません。ご自身の契約するプロバイダを直接指定したい場合は、BYOK(Bring Your Own Key)として任意で設定できます。
AIに送らず動くツールも多くあります
多くのツールは決定的な静的解析だけで完結し、LLMに渡すのは必要な場面に限られます。AIに送る範囲を、あなた自身で絞り込めます。
ワンタイムコードは単回使用・有効期限7日・サーバーに平文保存はしません。発行したトークンは設定ファイルに直書きせず環境変数で参照します。既存のMCP設定がある場合も、壊さず冪等にマージします。
どう申し込み、どうつなぐのか
1. 面談を予約する
予約フォームから面談をお申し込みください。現在のQAの困りごとと、試したいツールをお聞かせいただきます。
2. 面談で適用先を一緒に決める
そろえたツールのうち、貴社の工程で効く順番をご一緒に見立てます。ワンタイムコードと接続コマンドは、面談後にあわせてお渡しします。
3. コード1つ、コマンド1行で接続
お受け取りしたワンタイムコードで、コマンドを1行実行(Windows / mac / Linux 各1行)。有効化・MCP設定(.mcp.json)生成・環境変数設定まで自動で完了します。あとはAIクライアント(Claude Code / Gemini CLI)を再起動するだけで、そのままQA方法論を呼び出せます。APIキーのご用意は不要です。ご自身の契約するLLMを使いたい場合は、BYOK(Bring Your Own Key)として任意で設定いただけます。