第5章 アジャイル開発の各種手法の要点
XPの5つの価値、TDD、ペアプログラミング、常時結合を整理
- 第5章は、XP(エクストリームプログラミング)を中心に、開発の現場で使う手法を扱う章です。XP の5つの価値、リファクタリング、テスト駆動開発、ペアプログラミング、常時結合が出ます。
- どの手法も、変更を恐れず、問題を早く見つけるためのものです。
- 用語は「どの手法の話か」で6つに分けると、覚えやすくなります。
この章で問われること
第5章「アジャイル開発の各種手法」は、XP の価値と、リファクタリング、テスト駆動開発、ペアプログラミング、常時結合という具体的な手法を扱います。最後の章で、第1章から第4章の考え方を現場の作業に結びつけます。
本番の60問のうち、第5章からは12問前後と予想しています。もちこ道場の模擬試験(60問・60分)は、全5章から均等に出題するようにしていて、第5章からは12問を出しています。試験全体の約20%にあたります。
もちこ道場の第5章の問題は50問です。形式は次の4つです。
| 形式 | 問題数 |
|---|---|
| 穴埋め(1か所) | 20問 |
| 穴埋め(組み合わせ) | 10問 |
| 正しい記述を選ぶ | 10問 |
| 誤った記述を選ぶ | 10問 |
出てくる用語は、どの手法の話かで、次の6つのまとまりに分けると整理しやすくなります。
6つのまとまりと押さえる用語
1. XP の価値
| 用語 | ひとことで |
|---|---|
| 5つの価値 | コミュニケーション・シンプル・フィードバック・勇気・尊重。チームが行動するときの指針 |
| 勇気 | 大きな設計変更への恐れを乗り越えて、変更を実行に移す価値 |
| シンプル | 設計を単純に保ち、複雑さが生む不具合を抑える |
| フィードバック | 頻繁なテストや、優先度の高い機能から順に届けることで得る |
| 尊重 | 互いを尊重しないと対話の場が作れず、意欲や品質が下がる |
| Kent Beck | XP の提唱者。プラクティスの総数は13 |
2. リファクタリング
| 用語 | ひとことで |
|---|---|
| リファクタリング | 外部的な振る舞いを変えず、内側の構造だけを良くする |
| 自動テスト | 前後で動きが変わっていないことを保証する仕組み |
| 構成管理ツール | 失敗しても元のコードに戻せるようにしておく |
| リファクタリングカタログ | どのコードをどう直すかを整理した手引き。経験が浅いときに使う |
| メトリクス | コード行数や複雑度などを数字にして直す箇所を判断する。測定は完全ではない |
| やめ時 | 自信がなくなったとき、テストが通せなくなったとき、ペアが理解できなくなったとき |
3. テスト駆動開発
| 用語 | ひとことで |
|---|---|
| テスト駆動開発(TDD) | テスト作成、最小限の実装、リファクタリングを短い周期で繰り返す |
| 最小限の実装 | テストを通すまでは余計なコードを足さない。固定値を返すだけでもよい |
| 得られる効果 | 必ずテストが存在し、小さく疎結合なオブジェクトになる。CI も導入しやすい |
4. テストの道具
| 用語 | ひとことで |
|---|---|
| xUnit | テストコードを作って即実行し、合否を素早く返すテストフレームワーク(Javaでは jUnit) |
| DBUnit | データベースに関わるテストを楽にするテストフレームワーク |
| モックオブジェクト | 検証対象が頼っている隣のオブジェクトの代わりに置く |
5. ペアで作る
| 用語 | ひとことで |
|---|---|
| ペアプログラミング | 設計やテストにも使える。ドライバーとナビゲータを入れ替えながら進める |
| 交代の間隔 | 1時間や半日といった区切りで交代するのが一般的 |
| 属人化 | 特定の人しか内部構造を知らない状態。ペアの交代で避ける |
| 得られる効果 | 常にレビューを受けている状態になり、規範意識や教育の効果もある |
6. 常時結合
| 用語 | ひとことで |
|---|---|
| 常時結合(CI) | 自動のビルドと結合テストをこまめに行い、問題を早く見つける |
| CIサーバ | 自動化した各工程を取りまとめて制御する |
| リポジトリ | ローカルで単体テストを終えたコードを、構成管理ツールで集める場所 |
| コミットの頻度 | 1日に数回。間隔が長いと変更が増えて作業が重くなる |
| ビルド失敗 | 最優先で直す |
取り違えやすい組み合わせ
選択肢には、同じ分野の用語が並びます。次の組み合わせは、「何をするためのものか」を一言で言えるようにしておきます。
| 組み合わせ | 見分け方 |
|---|---|
| リファクタリングと機能追加 | 動きを変えず内部を整える(リファクタリング)か、動きを足すか |
| xUnit と DBUnit | 一般のテストコードの枠組みか、データベース関連のテストを楽にするものか |
| テスト駆動開発と常時結合 | テストを先に書く開発の進め方か、ビルドとテストを自動で回す仕組みか |
| 構成管理ツールと CIサーバ | コードの履歴を管理して戻せるようにするか、自動化した工程を取りまとめるか |
| ドライバーとナビゲータ | ペアの2つの役割。入れ替えながら進める |
| 勇気とフィードバック | 変更を恐れず実行する価値か、頻繁なテストなどで反応を得る価値か |
この章の勉強の進め方
- 6つのまとまりの名前を覚え、用語を見たら「どのまとまりの話か」を言えるようにします。
- 上の表の組み合わせを、何も見ずに一言で説明できるか確かめます。
- 問題を解いて、迷った用語をその日のうちに見直します。
ほかの章の要点は「記事の一覧」にまとめています。
第5章の問題を2問、解いてみる
もちこ道場の第5章の問題です。演習画面と同じ解説(図解・選択肢ごとの解説)を付けています。
問1
リファクタリングとは、プログラムの1を変えることなく、内部の構成を安全に整えて質を高めるプログラミング技術である。
答えと解説を見る
正解は 2(外部的な振る舞い)です。
【概要】
リファクタリングにおいて変更を行わずに保持すべき要素について問う問題である。リファクタリングはシステムの外部から見た動作や仕様を変更せず、プログラムの内側にある設計や構造のみを安全に良くしていく手法である。したがって、空欄(1)には外部的な振る舞いが入る。
【図解】実験的機能
図解は実験的機能です。内容を簡略化しているため、公式テキストの記載と異なることがあります。
【各選択肢の解説】
- 1.あなたの解答 内部の構造はリファクタリングを通じて安全に整理・改修していく対象そのものであり、維持して変更しない要素ではないため、本問の正解ではない。
- 2.正解あなたの解答 外部的な振る舞いはシステム利用側から見た機能を指し、リファクタリング時に保持すべき状態であるため、空欄(1)に入る語句として正しい。
- 3.あなたの解答 重複したコードはリファクタリングの過程で排除・整理されるべき対象であり、変えずに残す動作仕様ではないため、本問の正解ではない。
- 4.あなたの解答 冗長なコードは可読性向上や整理のために書き換えられる対象であり、保持すべき動作や機能ではないため、本問の正解ではない。
問2
事前に検証用のコードを作成し、それを合格する実装を行った後に構造の整理を行うという一連の工程を短い周期で巡回させる手法を1と呼ぶ。
答えと解説を見る
正解は 1(テスト駆動開発)です。
【概要】
テストコードの作成から機能実装、構造改善までのサイクルを繰り返す開発手法について問う問題である。まずテスト用コードを用意し、その通過に必要な最小限の実装をしてからリファクタリングを行う工程を短周期で循環させる手法をテスト駆動開発と呼ぶ。したがって、空欄(1)にはテスト駆動開発が入る。
【図解】実験的機能
図解は実験的機能です。内容を簡略化しているため、公式テキストの記載と異なることがあります。
【各選択肢の解説】
- 1.正解あなたの解答 テスト駆動開発はテストコード作成、実装、リファクタリングの過程を短いサイクルで反復する手法であり、空欄(1)に入る語句として正しい。
- 2.あなたの解答 ペアプログラミングは二人の開発者が役割を分担して一台の計算機で共同作業を行う手法であり、テスト先行でサイクルを回す手法ではないため、本問の正解ではない。
- 3.あなたの解答 リファクタリングはテスト通過後にプログラムの内部設計を整える単一の改善作業であり、開発サイクル全体を示す用語ではないため、本問の正解ではない。
- 4.あなたの解答 常時結合は統合されたプログラムを自動的にビルドおよびテストする仕組みであり、テストコードを起点として周期的に実装する手法ではないため、本問の正解ではない。
第5章のほかの問題は、ベーシックプランで解けます。まずは登録なしで、第1章の50問を試せます。
よくある質問
第5章はどの章とつながっていますか?
第1章で名前が出たペアプログラミング、リファクタリング、常時結合などを、手順や注意点まで詳しく扱う章です。第4章の協調や尊重は、ペアプログラミングの場面で具体的に現れます。
リファクタリングでは、何を変えて何を変えませんか?
外から見た動作(外部的な振る舞い)は変えず、内側の設計や構造だけを良くします。そのため、前後で動きが変わっていないことを自動テストで確かめます。
テスト駆動開発では、どんな順序で進めますか?
先にテスト用のコードを用意し、それを通すのに必要な最小限の実装をして、そのあとリファクタリングで整えます。この流れを短い周期で繰り返します。
もちこ道場
章ごとの問題と本番形式の模擬試験で、合格の力を確かめる
公式テキストの全5章から作ったオリジナルの予想問題を、スマホ・PC で解ける Web 演習サービスです(運営者が作っています)。
500円
31日間・買い切り・自動更新なし
- 全5章 250問○
- 選択肢ごとの解説○
- 全問の解説に図解○
- 模擬試験(60問・60分)なし
1,000円
31日間・買い切り・自動更新なし
- 全5章 250問○
- 選択肢ごとの解説○
- 全問の解説に図解○
- 模擬試験(60問・60分)○
無料体験は登録不要です。
次に読む
出題範囲は、2026年10月26日に試験の公式サイトで確認しました。用語の説明は、もちこ道場の問題と解説をもとにまとめたものです。