AP23 — テスト、品質、開発手法
応用情報技術者試験の科目Aに向けて、テストレベル、同値分割と境界値、短絡評価を含む判定・条件網羅の計算、欠陥密度と品質特性、ウォーターフォール・アジャイル・TDD・CI/CDを、例題とオリジナル問題5問で学びます。
AP科目A・第23回 · 2026年度・シラバスVer.7.2に基づく独立した学習資料です。IPAとの提携はなく、合格を保証しません。 シリーズ一覧を見る
- 改訂日/出典確認日:2026-10-21
- 試験基準:2026年のIPA応用情報技術者試験シラバスVer.7.2。後年の試験制度に関する提案・検討資料を、2026年の試験範囲の代わりに使用しません。
学習インデックス
PDFページと印刷フッターページは異なる番号体系です。
| PDF/印刷 | シラバス位置 | 本稿の範囲 |
|---|---|---|
| 67/63 | 大分類4 > 中分類12 > 2. 設計 | ユニット・統合テスト設計、ソフトウェア品質 |
| 71/67 | 同中分類 > 3. 実装・構築 > (8) | ユニットテスト、ブラック/ホワイトボックス、網羅、同値・境界値 |
| 72/68 | 同中分類 > 4. 統合・テスト | ソフトウェア統合・検証、ドライバ・スタブ、回帰など |
| 73/69 | 同節の続き | システム統合、システム検証テスト |
| 75/71 | 同中分類 > 5. 導入・受入れ支援 > (5) | 受入れレビュー・テスト、基準、文書 |
| 78/74 | 大分類4 > 中分類13 > 1. 開発プロセス・手法 | 開発モデル、Agile、XP、Scrum、TDD、CI、CD |
| 79/75 | 同節 > (3) DevOps | 開発・運用連携、CI/CD、Four Keys、オブザーバビリティ、DevSecOps |
共通用語表
次の表は三つの言語版でバイト単位に同一である。
| English | 한국어 | 日本語 |
|---|---|---|
| test level | 테스트 레벨 | テストレベル |
| unit test | 단위 테스트 | ユニットテスト |
| integration test | 통합 테스트 | 統合テスト |
| system test | 시스템 테스트 | システムテスト |
| acceptance test | 인수 테스트 | 受入れテスト |
| black-box test | 블랙박스 테스트 | ブラックボックステスト |
| white-box test | 화이트박스 테스트 | ホワイトボックステスト |
| equivalence partitioning (equivalence analysis) | 동치 분할(동치 분석법) | 同値分割(同値分析法) |
| boundary-value analysis (limit-value analysis) | 경계값 분석(한계값 분석법) | 境界値分析(限界値分析法) |
| statement coverage | 구문 커버리지 | 命令網羅 |
| decision/branch coverage | 결정/분기 커버리지 | 判定条件網羅 |
| condition coverage | 조건 커버리지 | 条件網羅 |
| defect density | 결함 밀도 | 欠陥密度 |
| quality characteristic | 품질 특성 | 品質特性 |
| waterfall | 폭포수 | ウォーターフォール |
| Agile | 애자일 | アジャイル |
| test-driven development | 테스트 주도 개발 | テスト駆動開発 |
| continuous integration | 지속적 통합 | 継続的インテグレーション |
1. テストをレベルと目的で読む
図書貸出システムの要件R-F01を「貸出資格のある会員が、利用可能な図書個体を借りられる」とする。
| 学習用の一般的レベル | R-F01の追跡例 |
|---|---|
| ユニット | Copy.checkoutの状態遷移と規則を分離して確認 |
| 統合 | LoanService + Copy + LoanRepositoryの連携とインタフェースを確認 |
| システム検証 | システム要件に対するエンドツーエンドの貸出を確認 |
| 受入れ | 購入者・利用者が受入れ基準と業務適合性を評価 |
IPAはライフサイクル上のテスト作業を示す。この四レベルは有用な学習上の対応付けであり、全組織が同じ名称・境界を使うという主張ではない。**検証(verification)**は成果物が仕様どおりか、**妥当性確認(validation)**は意図した利用と利用者ニーズに適するかを問う。両観点は重なり得る。
ブラックボックステストは仕様と観測可能な振る舞いから設計し、ホワイトボックステストは内部の制御フローやデータ構造を利用する。どちらか一方でも欠陥の不在は証明できない。統合ではボトムアップのドライバ、トップダウンのスタブなどを使える。システムでは機能、非機能、性能、負荷、セキュリティ、回帰テストなどをリスクに応じて組み合わせる。
2. 同値分割と境界値 — 例題1
有効な貸出期間が整数 1..14日なら、同値クラスは<=0無効、1..14有効、>=15無効である。代表値は0, 7, 15。両境界の直外と境界上を選ぶ簡潔で価値の高い集合は {0, 1, 14, 15}。これはこの仕様に対する実用的集合で、網羅的な普遍集合ではない。
3. 構造網羅 — 例題2
短絡評価する判定D = eligible && availableを考える。
- T1:
eligible=true, available=true→ Dは真。両条件を真として評価。 - T2:
eligible=false, available=trueを与える → Dは偽。短絡によりavailableは評価されない。 - T1,T2では判定結果2個中2個で、判定条件網羅は
2/2=100%。観測した条件真理値はeligibleのT/FとavailableのTだけなので、条件網羅は3/4=75%。 - T3:
eligible=true, available=false→ Dは偽、availableの偽も観測。条件網羅は4/4=100%、判定条件網羅は100%のまま。
命令網羅=実行した対象命令数/全対象命令数×100、判定条件(分岐)網羅=実行した判定結果数/可能な全判定結果数×100、条件網羅=観測した原子条件の真理結果数/全真理結果数×100。高い網羅率は構造を実行した証拠であり、正しさや要件網羅の証明ではない。
4. 品質と測定
確認済み欠陥18件、コード6 KLOCなら、欠陥密度は18/6 = 3 defects/KLOC。分母と単位を明記する。言語、複雑度、測定工程、計数方針の文脈なしに製品間比較するのは危険である。一つの尺度が品質全体を表すわけではない。
Ver.7.2/JIS X 25010の範囲にある八つの製品品質特性は、機能適合性、性能効率性、互換性、使用性、信頼性、セキュリティ、保守性、移植性。後年のモデルを2026年範囲に混ぜない。目的とリスクを特性・基準・測定値に結び付ける。
5. 開発手法
- ウォーターフォールは段階と成果物を順次計画・管理しやすいが、変更コストを考慮する。プロトタイピングは不確実な要件やUIの早期フィードバックに有効。インクリメンタル・進化的モデルは機能と設計を反復的に拡張する。
- アジャイルは短いフィードバックと変化への対応を重視する。Scrumは反復的・漸進的で経験主義に基づく。規制、不確実性、フィードバック需要、リスクに応じて手法と統制を選ぶ。
- テスト駆動開発(TDD)は **失敗するテスト(red)→通る最小コード(green)→リファクタリング(refactor)**という開発プラクティスで、テストレベルではない。
- 継続的インテグレーション(CI)は頻繁な統合と自動チェックによる迅速なフィードバックであり、本番への自動配備ではない。継続的デリバリは配備可能状態を保つが本番承認を残し得る。継続的デプロイメントは合格した変更を本番へ自動配備する。
- DevOpsは開発と運用の連携、フィードバック、自動化を改善する。オブザーバビリティ、Four Keys、セキュリティを流れに含むDevSecOpsも範囲である。一つのツールだけでDevOpsが完成するわけではない。
6. オリジナル四肢択一問題
Q1
LoanServiceとLoanRepositoryインタフェースの連携を最も直接確認するテストレベルはどれか。
- ア ユニットテスト
- イ 統合テスト
- ウ システムテスト
- エ 受入れテスト
正解:イ (2)。 アは一単位の規則を分離する。イは構成要素間の連携・インタフェースを確認するので正しい。ウは完成システムをシステム要件に照らす。エは購入者・利用者の受入れ基準と業務適合性を見る。
Q2
整数1..14日が有効な貸出期間のとき、簡潔で価値の高い境界値集合はどれか。
- ア
{1, 7, 14} - イ
{0, 7, 15} - ウ
{1, 2, 13, 14} - エ
{0, 1, 14, 15}
正解:エ (4)。 アは外側値がない。イは同値代表にはよいが各境界内側の値を欠く。ウは有効域だけである。エは各境界の直外と境界上を含む。
Q3
上のT1とT2だけを実行したとき正しい組合せはどれか。
- ア 判定50%、条件50%
- イ 判定75%、条件100%
- ウ 判定100%、条件75%
- エ 判定100%、条件100%
正解:ウ (3)。 アは判定の真偽が共に出たことを見落とす。イは分母を混同する。ウは判定2/2、条件結果3/4で正しい。エは短絡によりavailable=falseを観測していない点を見落とす。
Q4
確認済み欠陥18件、コード6 KLOCの最も適切な解釈はどれか。
- ア
3 defects/KLOCであり、製品間比較には言語・複雑度・工程・計数方針の文脈が必要。 - イ
0.33 KLOC/defectだけが許される品質尺度。 - ウ
108 defects/KLOCで、品質全体を証明する。 - エ 欠陥密度に分母は不要。
正解:ア (1)。 アは計算と注意点が正しい。イは逆数で、唯一という主張も誤り。ウは除算せず乗算し、過大な結論を出す。エは密度の分母を欠く。
Q5
TDDの正しい順序はどれか。
- ア 最小コード → リファクタリング → 失敗テスト
- イ 失敗テスト → 通る最小コード → リファクタリング
- ウ リファクタリング → 本番配備 → テスト
- エ 要件削除 → テスト省略 → 統合
正解:イ (2)。 アは失敗テストから始まらない。イはred→green→refactor。ウはTDDサイクルでなく、本番配備は別事項。エは要件とテストを除くためTDDではない。
全問が独自作成であり、IPA過去問を使用・翻案していない。
クイックシート
- 仕様・外部動作→ブラックボックス、内部構造→ホワイトボックス。相互補完する。
1..14:同値代表0,7,15、主要境界0,1,14,15。- 網羅率の分子・分母と短絡評価を確認。高率≠無欠陥。
- 欠陥密度=欠陥数/規模。単位と比較文脈を記録。
- ユニット→統合→システム→受入れの目的をR-F01につなぐ。
- TDDはred→green→refactor。CI≠本番自動配備。delivery≠deployment。
セルフチェックと1/3/7日復習
見ずに、(1) R-F01を四テストレベルへ対応、(2) 1..14の同値・境界値を記述、(3) T1〜T3の網羅率を計算、(4) 八品質特性を列挙、(5) TDDとCI/CDの違いを説明する。
- 1日目:用語とクイックシートを想起しQ1〜Q5を再解答。
- 3日目:数値・条件を変えて境界、網羅率、欠陥密度を再計算。
- 7日目:R-F01をテストレベルから開発手法まで一枚に接続し、誤答だけ再試験。
公式出典と注意事項
- IPA、応用情報技術者試験(レベル3)シラバス Ver.7.2 — 2026-10-21確認
- IPA、試験シラバス・概要 — 2026-10-21確認
- Manifesto for Agile Software Development — 2026-10-21確認
- The 2020 Scrum Guide — 2026-10-21確認
本資料はIPAその他の出典組織と提携せず、承認も受けていない。学習、合格、試験結果を保証しない。