テストダブル完全分類ガイド — Mock, Stub, Spy, Fake, Dummy の違いを図解で理解する

テストダブル完全分類ガイド — Mock, Stub, Spy, Fake, Dummy の違いを図解で理解する t_wada 氏(和田卓人氏)のポストが、テストダブルの分類について「混乱しがちなテストダブルの分類については、この図がおすすめです」と NTT の解説記事を紹介しています。テストダブルという用語は現場でよく使われますが、「全部モックと呼んでしまう」「Stub と Mock の違いが曖昧」という混乱が起きがちです。この記事では、xUnit Test Patterns に基づく正確な分類を整理します。 テストダブルとは テストダブルは、映画のスタントダブル(代役)から名付けられた用語です。テスト対象のコード(SUT: System Under Test)が依存するコンポーネント(DOC: Depended-on Component)の「身代わり」として使うオブジェクトの総称です。 Gerard Meszaros が著書 xUnit Test Patterns で体系化し、Martin Fowler が “Mocks Aren’t Stubs” で広めました。 なぜテストダブルが必要か 外部依存の排除: データベース、外部 API、ファイルシステムなどの影響を受けずにテストできる 再現困難な条件のテスト: ネットワーク障害、ディスクエラーなどの例外条件を再現できる テスト速度の向上: メモリ上で動作するため高速に実行でき、並列動作も容易 決定性の確保: 外部環境に左右されない安定したテスト結果を得られる SUT と DOC の関係 テストダブルの分類を理解するには、まず情報の流れを整理する必要があります。 テスト → [直接入力] → SUT → [直接出力] → テスト ↕ [間接入力/間接出力] ↕ DOC 用語 意味 例 SUT (System Under Test) テスト対象 テストしたいクラス・関数 DOC (Depended-on Component) SUT が依存するもの DB、外部 API、時刻関数 直接入力 テストから SUT に渡す値 関数の引数 直接出力 SUT からテストに返る値 関数の戻り値 間接入力 DOC から SUT に渡される値 DB のクエリ結果、API のレスポンス 間接出力 SUT から DOC に渡す値 DB への書き込み、API へのリクエスト テストダブルは、間接入力と間接出力のどちらを制御するかで分類されます。 ...

2026年3月2日 · 3 分

リクルート新卒研修の React 資料が「無料で最高の教材」と言われる理由

リクルート新卒研修の React 資料が「無料で最高の教材」と言われる理由 sigumataityouda 氏のポストが、リクルートの新卒研修資料を「React を語る上で欠かせないもの」「完成度が非常に高い」と紹介しています。リクルートは 2017 年から毎年、新卒エンジニア向け研修資料を無料公開しており、React 研修資料は特に業界で高く評価されています。 React語る上で欠かせないものとしてリクルートの新卒研修資料というのもがある。完成度が非常に高い。 リクルートの React 研修資料とは React 研修 (2024) は、リクルートのエンジニアコース新卒研修「BootCamp」で使われている講義資料です。約 170 スライド以上で構成され、Speaker Deck で無料公開されています。 研修の位置づけ リクルートの新卒エンジニアは配属前に約 3 ヶ月間の BootCamp を受講します。2024 年度は 24 講座以上が開講されており、React 研修はフロントエンド技術スタックの中核として位置づけられています。 研修カテゴリ 主な講座 フロントエンド JavaScript、TypeScript、React、Next.js バックエンド データベース設計、API 設計 品質・テスト テスト駆動開発(講師: t_wada 氏) セキュリティ セキュリティ演習 AI テキスト生成 AI 活用 マインドセット ソフトウェアエンジニアとしての姿勢と心構え 最初の講座「ソフトウェアエンジニアとしての姿勢と心構え」は、技術顧問の t_wada 氏が担当し、「技術の学び方を学ぶ」ことに重点を置いています。 資料の構成 React 研修資料は 5 つのセクションで構成されています。 1. Web アプリ開発の変遷 React を学ぶ前に、Web アプリケーション開発がどう進化してきたかを整理します。 世代 アーキテクチャ 特徴 第 1 世代 MPA(クラシック SSR) サーバーが HTML を生成、ページ遷移ごとにリロード 第 2 世代 MPA + jQuery DOM 操作で部分的な動的 UI を実現 第 3 世代 SPA(CSR のみ) クライアントで描画、リッチな UX 第 4 世代 SPA(CSR + 事前レンダリング) SSR / SSG で初期表示を高速化 この変遷を理解することで、「なぜ React が必要になったのか」という文脈が掴めます。jQuery 時代の命令的 UI と React の宣言的 UI の違いを、歴史的な流れの中で説明しているのが特徴です。 ...

2026年3月2日 · 2 分

生成AIで情報漏えいが増える本当の理由 — 「検索者がAIになった」時代の脅威モデルと3層防御

name: security-check description: Claude Code 利用における情報漏えいリスクをチェックする。 Auto Memory や CLAUDE.md への機密混入、.env の gitignore 漏れ、機密ファイルの存在などを検査する。 Claude Code の利用に関する情報漏えいリスクをチェックしてください。 チェック対象 以下の 4 カテゴリを順番に検査する。 1. Auto Memory の機密スキャン ~/.claude/ 配下の memory ファイルを検査する: 以下のパスを Glob で列挙する: ~/.claude/projects/*/memory/*.md ~/.claude/projects/*/memory/**/*.md 各ファイルを Read で読み込み、以下のパターンを Grep で検出する: API キー・トークン: (?i)(api[_-]?key|secret[_-]?key|access[_-]?token|bearer)\s*[:=]\s*\S+ パスワード: (?i)(password|passwd|pwd)\s*[:=]\s*\S+ AWS 認証情報: (?i)(AKIA[0-9A-Z]{16}|aws[_-]?secret) 接続文字列: (?i)(mysql|postgres|redis|mongodb):\/\/\S+ 個人情報パターン: メールアドレス、電話番号、マイナンバーらしき数字列 金額・契約情報: (?i)(契約金額|単価|請求|売上)\s*[::]\s*[\d,¥¥$]+ 顧客 ID の具体値: (?i)(顧客id|customer[_-]?id|ユーザーid|user[_-]?id)\s*[:=:]\s*\d+ 検出があれば、ファイルパス・行番号・該当箇所を報告する 2. CLAUDE.md の機密スキャン プロジェクトの CLAUDE.md およびグローバルの ~/.claude/CLAUDE.md を検査する: 両ファイルを Read で読み込む チェック 1 と同じパターンで Grep 検査する 加えて、以下も確認する: URL にトークンやキーが含まれていないか(?token=, ?key=, ?secret=) 内部 IP アドレスやホスト名が含まれていないか CLAUDE.md はリポジトリにコミットされるため、検出時は即時対応を推奨として強調する 3. 機密ファイルの gitignore チェック プロジェクトルートで以下を確認する: ...

2026年3月2日 · 1 分

東京大学が無料公開した「思考の解像度を上げる」全118スライド -- 深さ・広さ・構造・時間の4軸フレームワーク

東京大学が無料公開した「思考の解像度を上げる」全118スライド – 深さ・広さ・構造・時間の4軸フレームワーク @MacopeninSUTABA(かずなり|生成AI×ビジネスハック)氏のポストが話題です。 東京大学が無料公開した「思考の解像度を上げる全ノウハウ」が凝縮された資料が有益。「解像度が低い=深さ・広さ・構造・時間の不足」という定義から、分析を劇的に深めるテクニック、そして「実装可能」なレベルまで鮮明にする方法まで、余すことなく学べる。 東京大学 FoundX ディレクター・馬田隆明氏が SpeakerDeck で公開しているスライド「解像度を上げる」は、累計 570 万回以上閲覧された「神スライド」として知られています。本記事では、このスライドの核心である「4つの視点」と「48の実践パターン」を掘り下げます。 「解像度」とは何か ビジネスの現場で「あの人は解像度が高い」という表現を耳にすることが増えました。馬田氏はこの「解像度」を次のように定義しています。 顧客の状況や課題、次に取るべきアクションが鮮明に見えている状態 逆に、解像度が低いとは「思考や事実認識が粗い」状態です。つまり、課題を構成要素に分解できておらず、各要素の理解が浅い状態を指します。 重要なのは、解像度は単に「知識量が多い」ことではないという点です。情報を持っていても、それを構造化し、深く掘り下げ、時間軸で捉えられなければ、解像度は低いままです。 4つの視点 スライドの中核をなすのが、解像度を構成する 4 つの視点です。 視点 問い 低い状態 高い状態 深さ なぜそうなるのか? 表面的な症状だけを見ている 根本原因まで掘り下げている 広さ 他にどんな可能性があるか? 1つのアプローチしか検討していない 複数の視点・手法を比較している 構造 要素間の関係はどうか? 情報がバラバラで整理されていない 因果関係と優先順位が明確 時間 過去から未来へどう変化するか? 現在のスナップショットだけ 経時変化とプロセスを捉えている 馬田氏が繰り返し強調するのは、4 つの視点のうち最も不足しがちなのは「深さ」であるという点です。多くの人は課題を広く浅く捉えることはできても、1 つの課題を徹底的に掘り下げることが不十分だと指摘しています。 問題と解決策の両面で解像度を上げる このフレームワークのもう一つの特徴は、解像度を問題側と解決策側の 2 軸で捉える点です。 問題の解像度 解決策の解像度 深さ 根本原因の特定 実装の具体性 広さ 顧客セグメントの網羅 代替手段の検討 構造 課題間の因果関係 アーキテクチャ設計 時間 課題の変遷 ロードマップ ビジネスで価値を生むには、「顧客の課題」と「それに対応する解決策」の両方の解像度を上げる必要があります。どちらか一方だけでは不十分です。 48 の実践パターン 書籍版では、4 つの視点ごとに具体的なアクションが「型」として整理されています。「情報 × 思考 × 行動」を組み合わせた 48 のパターンです。代表的なものを紹介します。 ...

2026年3月2日 · 2 分

# 組織の課題管理から個人のタスク整理と優先度づけへ — Claude Code によるタスクトリアージ

組織の課題管理から個人のタスク整理と優先度づけへ — Claude Code によるタスクトリアージ 各システムの役割と利用者 システム 主な利用者 目的 Backlog 利用者側の責任者・管理部門 利用者が課題を把握・確認するため Asana 開発会社の PM・経営者 開発会社の責任者が状況を把握するため GitHub 開発担当者 作業担当者が実装・コード変更を管理するため 3層の責任構造 利用者(顧客) 開発会社(経営・PM) 開発会社(作業担当) │ │ │ Backlog Asana GitHub 課題確認会で 経営判断・ Issue/PR で 進捗レビュー リソース配分 実装を管理 各システムは異なるステークホルダーが、それぞれの責任範囲で状況を把握するために存在する。 これは冗長ではなく、報告先ごとに適切な粒度・視点で情報を提供するための構造。 担当者の課題: 「今何をすべきか」の判断 3システムはどれも他者への報告用であって、担当者が「自分が次に何をやるか」を整理する場所ではない。 システム 読者 自分の優先度確認に使えるか Backlog 利用者の責任者 △ 顧客視点の優先度であって自分の作業順ではない Asana 開発会社の経営・PM △ 経営視点のフィルタがかかっている GitHub (epm-server) 作業担当者 △ Issue は技術タスク単位で、全体俯瞰しにくい 解決策: Claude Code でタスクトリアージ → プライベートリポジトリの Issue に記録 タスクトリアージ(状況分析と優先度づけ)は Claude Code セッションで行い、結論の記録先は社内プライベートリポジトリの GitHub Issue に置く。 ...

2026年3月1日 · 2 分

AI エージェント入門 — 元 Meta エンジニアが説く「オートメーションとエージェントの決定的な違い」

AI エージェント入門 — 元 Meta エンジニアが説く「オートメーションとエージェントの決定的な違い」 AI エージェント入門 — 元 Meta エンジニアが説く「オートメーションとエージェントの決定的な違い」 「AI エージェント」という言葉が溢れる2026年。しかし、本当に「エージェント」と呼べるものはどれだけあるのでしょうか。 @kgsi(こぎそ)さんのポストで紹介されていた、元 Meta ソフトウェアエンジニア Vasuman Moza 氏の「AI Agents 101」は、コードを書く前に理解すべきエージェントの本質を明快に整理しています。 “If you want to learn how to build AI Agents, read this before you write a single line of code.” (AI エージェントの構築を学びたいなら、コードを1行書く前にこれを読め) この記事では、Vasuman 氏のガイドの要点と、エンジニアが押さえるべきポイントを解説します。 オートメーション vs エージェント — 根本的な違い 最も重要な区別は、指示(instructions) と 目標(goals) の違いです。 オートメーション エージェント 入力 事前に決められた手順(指示) 達成すべきゴール(目標) 動作 ルール通りに実行 状況を観察しながら自律的に判断・行動 例外処理 ルール外は停止 or エラー 文脈を理解して適応 代表例 RPA、cron ジョブ、IFTTT Claude Code、Devin、カスタム AI エージェント 一言で言えば: ...

2026年3月1日 · 2 分

AIチャットボットのプライバシー問題 — スタンフォード大学の研究が暴いた6社の構造的欠陥

AIチャットボットにあなたのプライバシーは存在しない — スタンフォード大学が暴いた構造的欠陥 スタンフォード大学の研究チームが、米国の主要AIチャットボット6社のプライバシーポリシーを体系的に分析した論文 “User Privacy and Large Language Models” を発表しました。その結論は明確です——全6社がユーザーの会話データをデフォルトでモデル学習に利用しており、実効的な保護は極めて限定的です。 論文概要 項目 内容 タイトル User Privacy and Large Language Models: An Analysis of Frontier Developers’ Privacy Policies 著者 Jennifer King, Kevin Klyman, Fotis Gaspelos, Tiffany Saade, Victoria Bhatt 所属 Stanford University 発表 2025年10月(AAAI AIES 掲載) 論文 arXiv:2509.05382 対象6社 企業 チャットボット Amazon Nova Anthropic Claude Google Gemini Meta Meta AI Microsoft Copilot OpenAI ChatGPT 1. データの「統合」—— 会話が資産として再利用される構造 全6社がデフォルトでモデル学習に利用 Anthropic は長らく「消費者の会話データを学習に使わない」と差別化していましたが、2025年9月にオプトイン → オプトアウトへ転換。これにより全6社がデフォルト学習利用に揃いました。 ...

2026年3月1日 · 2 分

Anthropic Wealth Management AI ツール(Claude CoWork)記事要約・考察

Anthropic が Wealth Management 向け AI ツール「Claude CoWork」を発表 — Agentic AI 時代の幕開け 元記事: Agentic AI 101 for Advisors as Anthropic Launches Wealth Management Tools 記事概要 Anthropic が、ウェルスマネジメント(資産管理)業界向けの Claude CoWork プラグイン を発表した。これは金融アドバイザー向けに設計された AI ツールで、ポートフォリオ分析や税務分析、リバランス推奨など、従来人手で行っていた業務を自動化する。 Anthropic は設立5年で従業員約3,000名、シリーズGラウンドで300億ドルを調達し、評価額は3,800億ドルに達している。LPL Financial との関係拡大も発表されており、金融業界への本格参入が明確になった。 Agentic AI の定義 — 4つの要素 Vestmark CTO の Freedom Dumlao 氏は、真の「エージェント」を構成する4つの継続的機能を定義している: 要素 説明 認識(Sense) 環境のコンテキストを認識する — 利用可能なツール、現在のシステム状態 思考(Think) 目標と現在の理解に基づいて、次のステップを独立して推論する 行動(Act) ツールの使用、データの変更、ワークフローのトリガーなど、観察可能な効果を実行する 記憶(Remember) インタラクション間で情報を保持し、将来の行動を改善する 「システムが4つ全てを行うなら、それはエージェントです。2つか3つなら、便利なツールかもしれませんが、エージェントと呼ぶのは満たせない期待を設定することになります」 — Freedom Dumlao, Vestmark CTO この定義は、単なるチャットボットや RAG システムと真のエージェントを区別する明確な基準として有用だ。 Claude CoWork の主要機能 ポートフォリオ分析の自動化 顧客のポートフォリオを自動で分析し、リスク配分やパフォーマンスの洞察を提供する。 ...

2026年3月1日 · 1 分

Claude Code が汎用AIエージェント基盤へ進化 — Auto Memory・Remote Control・Scheduled Tasks の全貌

Claude Code が「汎用AIエージェント基盤」へ進化 — Auto Memory・Remote Control・Scheduled Tasks の全貌 2026年2月、Anthropic は Claude Code に3つの重要なアップデートを投入しました。これらを組み合わせると、オープンソースの自律AIエージェント OpenClaw に近い体験が、公式機能だけで実現できる可能性が見えてきます。 参考ツイート: @Fujin_Metaverse 3つのアップデート概要 機能 概要 リリース Auto Memory AIが自分で学習内容を記憶・蓄積する 2026年2月 Remote Control スマホからPCのClaude Codeを操作 2026年2月25日 Cowork Scheduled Tasks 指定時間に自動でタスクを実行 2026年2月24日 1. Auto Memory — AIが自分でメモを取り、セッションを超えて記憶する 仕組み Claude Code がプロジェクトごとに MEMORY.md ファイルを自動作成し、以下のような情報を蓄積していきます。 プロジェクトのビルドコマンド、コードスタイル アーキテクチャの決定事項 デバッグで解決したトリッキーなバグ ユーザーのワークフローやコミュニケーションスタイル 技術的な詳細 項目 内容 保存場所 ~/.claude/projects/<encoded-path>/memory/MEMORY.md 読み込み セッション開始時に最初の200行をシステムプロンプトに自動注入 Git ローカル保存のみ。Git にはコミットされない 管理 /memory コマンドで確認・編集 無効化 設定ファイルまたは環境変数でオフ可能 CLAUDE.md との違い CLAUDE.md → ユーザーが手動で書くルール・指示書(チーム共有可能) MEMORY.md → AIが自動で書く学習メモ(ローカル個人用) 両方を併用するのがベスト。CLAUDE.md でプロジェクトのルールを明示し、MEMORY.md でAIの学習知見を蓄積します。 ...

2026年3月1日 · 2 分

MCP のトークン消費問題 — スキーマ注入で 55,000 トークン、CLI は 35 倍効率的

MCP のトークン消費問題 — スキーマ注入で 55,000 トークン、CLI は 35 倍効率的 Claude Code や OpenClaw で MCP(Model Context Protocol)を使っている方に知ってほしい事実があります。MCP はスキーマ注入だけで数万トークンを消費しており、同じタスクを CLI 経由で実行すると 35 倍効率的 になるケースがあるのです。 @SuguruKun_ai さんのポスト と @shinzizm2 さんのポスト でこの問題が指摘され、大きな反響を呼びました。 MCP のトークン消費問題とは スキーマ注入の仕組み MCP サーバーを接続すると、ツール定義(スキーマ)がシステムプロンプトに注入されます。これは AI が「どんなツールを使えるか」を理解するために必要な情報ですが、この定義自体が大量のトークンを消費します。 MCP サーバー接続時の処理: 1. tools/list でツール一覧を取得 2. 各ツールの名前、説明、パラメータ定義を取得 3. 全てのスキーマをプロンプトに注入 ← ここで大量消費 4. ユーザーの質問に回答 あなたが何も入力する前に、スキーマだけでトークンが消費されているのです。 具体的な数値 MCP サーバー ツール数 トークン消費量 GitHub MCP サーバー 93 ツール 約 55,000 トークン Notion サーバー 15+ ツール 約 8,000 トークン ファイルシステム 10 ツール 約 4,000 トークン 平均的なツール定義 1 ツール 300〜600 トークン GitHub MCP サーバーの場合、93 ツール分のスキーマには owner、repo、title 等のプロパティ定義、required フィールド、入出力スキーマが全て含まれます。 ...

2026年3月1日 · 4 分