メインコンテンツへスキップ
TOP/ サービス/ MCPツール/ 不安定テスト検出
BETA / QA向けMCP / flake-forecastテスト

不安定テスト検出

たまに落ちて、また通る。あの不安定なテストに悩まされていませんか。

無料ベータ・面談制/正式版は有料提供予定

Python・JavaScript・TypeScript・TSX 決定的+AIレンズ(任意)
  • 所要時間: 30分
  • 進め方: 現場の状況をヒアリングし、最初に効くツールと順番を一緒に決めます
  • ご準備は不要です

概要

flaky(不安定)テストは CI を不安定にし、本物の不具合を「また誤検知だろう」と見逃させる温床になります。しかも実行時にしか現れないため、発生してからの再現・特定が困難です。コードを書いた時点で非決定の起点を機械的に潰し、安定して信頼できるテストスイートを保てるようにします。

効果

  • flaky の典型原因を実行前に列挙し、CI が赤くなってから再現に追われる時間を減らす。
  • 各検出に「なぜ不安定か」と「どう直すか」が付き、修正まで最短で導く。
  • 決定的層は鍵不要・同入力同出力なので、CIで非決定の混入を機械的に止められる。

インプット

  • 対象実装コード
  • テストコード

汎用LLMとの違い

どの構文・属性・モジュールを非決定とみなし、どの場合に対策済み(seed/mock)として抑制するかの検出カタログ・しきい値が bubo 独自の中核です。汎用LLMに「これ不安定?」と聞くと運次第なのに対し、構文木の規則照合で漏れなく拾い、保守的な抑制で誤検出を抑えます。

EXAMPLE

実際の入力と、返ってきた出力

同じコードを flake-forecast にそのまま渡した実際の出力です(要約ではありません)。

入力したコード(実物)
def compute_settlement_batch_id():
    return datetime.now().strftime("%Y%m%d")

def pick_retry_delay():
    return random.random() * 5

def fetch_exchange_rate(currency):
    resp = requests.get(f"https://rates.example.com/{currency}")
    return resp.json()["rate"]

def is_fee_waived(fee):
    return fee == 0.1
flake-forecast の回答(実測そのまま)
verdict=warn。4件の非決定リスクを検出
- time_dependency(medium) — compute_settlement_batch_id の時刻依存
- uncontrolled_randomness(high) — pick_retry_delay のseed未固定
- external_io(high) — fetch_exchange_rate のmock無し外部HTTP呼び出し
- float_equality(medium) — is_fee_waived の浮動小数点等値比較

recall=1.0(4件すべて的中)。清潔版(時刻/乱数/HTTPクライアントを注入可能にし、浮動小数を許容誤差比較に変更)では verdict: pass、誤検出0件です。

flake-forecastは、時刻・乱数・外部I/O・浮動小数比較といった4種の非決定性を、毎回同じ観点・同じ深刻度で機械的に検出し、CIのゲート条件(例: high以上0件)にできます。

社外秘のコードを、どう守るか

buboは入力を保存しません

ツールに渡したコード・仕様・データを、buboのサーバーは保存しません。bubo自身が学習に使うこともなく、処理はその場限りです。

AIに送るか・どこへ送るかは、あなたが握ります

標準のキーレス接続では、意味を読む処理は普段お使いのAIクライアントの中で実行されます。データの扱いは、お客様とそのプロバイダの既存のご契約のもとにあり、buboがAPIキーやコードをお預かりすることはありません。ご自身の契約するプロバイダを直接指定したい場合は、BYOK(Bring Your Own Key)として任意で設定できます。

AIに送らず動くツールも多くあります

多くのツールは決定的な静的解析だけで完結し、LLMに渡すのは必要な場面に限られます。AIに送る範囲を、あなた自身で絞り込めます。

ワンタイムコードは単回使用・有効期限7日・サーバーに平文保存はしません。発行したトークンは設定ファイルに直書きせず環境変数で参照します。既存のMCP設定がある場合も、壊さず冪等にマージします。

どう申し込み、どうつなぐのか

STEP 1

1. 面談を予約する

予約フォームから面談をお申し込みください。現在のQAの困りごとと、試したいツールをお聞かせいただきます。

STEP 2

2. 面談で適用先を一緒に決める

そろえたツールのうち、貴社の工程で効く順番をご一緒に見立てます。ワンタイムコードと接続コマンドは、面談後にあわせてお渡しします。

STEP 3

3. コード1つ、コマンド1行で接続

お受け取りしたワンタイムコードで、コマンドを1行実行(Windows / mac / Linux 各1行)。有効化・MCP設定(.mcp.json)生成・環境変数設定まで自動で完了します。あとはAIクライアント(Claude Code / Gemini CLI)を再起動するだけで、そのままQA方法論を呼び出せます。APIキーのご用意は不要です。ご自身の契約するLLMを使いたい場合は、BYOK(Bring Your Own Key)として任意で設定いただけます。

← QA向けMCPツール一覧へ戻る

AIの番人になる道具「Nioh」を、まず試す

貴社のQA工程に合わせて、Niohのどのツールから始めるかをご一緒に見立てます。無料ベータの枠には限りがあります。まずは面談からお気軽にどうぞ。