テストコード品質チェック
そのテストコード、読みにくく壊れやすくなっていませんか。
無料ベータ・面談制/正式版は有料提供予定
- 所要時間: 30分
- 進め方: 現場の状況をヒアリングし、最初に効くツールと順番を一緒に決めます
- ご準備は不要です
概要
汎用LLMに「このテスト大丈夫?」と聞くと見落としは運次第です。本ツールは構文木の規則照合で、信頼性を損なう書き方を漏れなく・再現可能に検出し、CIゲートにできるようにします。アサートの「効き」とは責務を分け、構造的な書き方の臭いだけに専念して二重検出を避けます。
効果
- フレーキー(不安定)・信頼できないテストの原因となる書き方を機械的に検出する。
- 各指摘に位置(関数名/行)・深刻度・直し方が付き、何をどう直せばよいかが分かる。
- 決定的・鍵不要で再現可能。CIのブロッキングゲート(high件数0など)に載せられる。
- アサートの効きは別ツールに委譲し、二重検出を排除した役割分担。
- 誤検出は report_outcome で報告すればallowlistに載り、以後は自動で抑制される(サーバは何も保存しないステートレス設計)。
インプット
- テストコード
汎用LLMとの違い
テストスメルのカタログ・検出規則・しきい値が bubo 独自の中核です。LLMが運次第で見落とす構造的アンチパターンを構文木の規則照合で漏れなく・再現可能に拾い、効きの評価と責務分離して二重検出を排除します。
実際の入力と、返ってきた出力
同じテストコードと問いかけを、汎用AIと test-smell-lint にそのまま渡した実際のやりとりです(要約ではありません)。
def test_checkout_completes_before_timeout():
start = datetime.now()
time.sleep(0.1)
assert start is not None
def test_checkout_handles_optional_discount():
order = {"discount": None}
if order["discount"]:
assert order["discount"] > 0
else:
assert order["discount"] is None
def test_checkout_ignores_payment_gateway_errors():
try:
raise ValueError("gateway down")
except Exception:
pass
同じ3スメルを的中させ(recall=1.0)、それぞれ「トートロジーテスト」「デッドコード分岐」「見せかけのテスト」といった説得力ある言葉で説明しました。ただしラベル外の指摘が1件混在しています(hallucinations=1)。さらに「難所」ケース(datetime.now()を2回呼んで差分を確認する、意図的に安全な書き方のテスト)では誤検出0件でした。
verdict=warn。テスト関数3件中3件にスメル。3件検出 - time_dependency(medium) — 実時間依存をやめ時間を注入/固定 - conditional_logic(medium) — テスト内条件分岐をやめケースごとに分割 - swallowed_exception(high) — 例外を握りつぶさず明示的に検証 recall=1.0。清潔版(時間注入・パラメータ化・例外を明示的にassertする形へ修正)では verdict: pass、誤検出0件です。
汎用AIの回答にはラベル外の指摘が混在します(実測・hallucinations=1)。本ツールは固定の種別・同入力同出力で返り、CIゲートにできます。
社外秘のコードを、どう守るか
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)として任意で設定いただけます。