【ISTQB /JSTQB FL 4.0対策】Part #16|テスト駆動開発・DevOps・システムテスト・リグレッション・静的テストの理解

JSTQB Fundation Level 4.0

今回は、ISTQB Foundation(CTFL 4.0) のサンプル問題の中から、試験によく出る5つの重要トピックを詳しく解説します。

実際の問題形式に沿って、選択肢の考え方や間違えやすいポイントを丁寧に説明します。


🧩 質問1:Test-First Approach(テストファーストアプローチ)とは?

問題文:

次のうち、「テストファーストアプローチ(Test-First Approach)」に該当する開発モデルはどれか?

選択肢:

A. Feature Driven Development(機能駆動開発)

B. Quality Driven Development(品質駆動開発)

C. Coverage Driven Development(カバレッジ駆動開発)

D. Test Driven Development(テスト駆動開発)

正解:D. Test Driven Development(TDD)

解説:

「テストファーストアプローチ」とは、開発よりも先にテストケースを設計する手法です。

代表的な例が TDD(Test Driven Development) です。

開発者はまず「テストケース(テスト仕様)」を書き、そのテストを通すための最小限のコードを書きます。

つまり、テストが先で開発が後。

これにより、バグの早期発見・コード品質の安定化が実現します。

具体例:

例えば、電卓アプリの「足し算機能」を作る場合、

まず「1+1=2になることを確認するテスト」を書き、

そのテストが通るようにコードを作成します。


⚙️ 質問2:DevOps(デブオプス)に関する正しい説明はどれか?

問題文:

次のうち、DevOpsについて正しい記述はどれか?

選択肢:

A. コンポーネントテストを行わず、すぐにコードを提出する

B. 頻繁なリリースを可能にするために、自動化された回帰テストを多く実施する

C. テスターはリリーステストに多くの時間を割く

D. テストは完全自動化され、手動テストは不要になる

正解:B. 自動化された回帰テストを多く実施する

解説:

DevOpsとは Development(開発)Operations(運用) を統合する考え方で、

開発~運用までを継続的に回すことで、より短い周期で安全にリリースすることを目的としています。

そのために重要なのが 自動化された回帰テスト(Regression Test)

頻繁なリリースを行っても、既存機能に影響が出ないようにするため、

自動テストで変更箇所を素早く検証します。

ポイント:

「DevOps=完全自動化」ではありません。

一部のテストは今でも人の目や操作が必要です。


🧠 質問3:システムテストに該当する活動はどれか?

問題文:

次のうち、システムテストとして実施されるのはどれか?

選択肢:

A. クレジット管理システムのセキュリティテストを独立したテストチームが実施

B. 通貨交換システムと外部銀行システムのインタフェーステスト

C. eラーニングシステムのベータテストを開発者が実施

D. 人事システムのUIとデータベース間の連携テスト

正解:A. クレジット管理システムのセキュリティテスト

解説:

システムテストは、全体システムが要件通り動作するかを確認する工程です。

外部システムとの接続は「統合テスト」、

実際のユーザーが行うのは「受け入れテスト」です。

よって、独立チームが行うセキュリティテストがシステムテストの代表例です。

具体例:

クレジット管理システムで「パスワードを暗号化して保存しているか」「不正ログインを防げるか」などを確認します。


🔁 質問4:リグレッションテストと確認テスト(Confirmation Test)の違い

問題文:

次のうち、リグレッションテストと確認テストに関する正しい記述はどれか?

選択肢:

A.プロジェクトが進むにつれて、リグレッションテストの数は増えるが、確認テストの数は減る。

B.リグレッションテストはテスト対象が修正されたときに作成・実行され、

確認テストはテスト対象が拡張(enhanced)されたときに実行される。

C.リグレッションテストは、運用環境(Operational Environment)が変化していないことを確認するためのテストであり、

確認テストはテスト対象に対する変更をテストするためのものである。

D.リグレッションテストは、変更されていないコードへの悪影響を確認することに焦点を当て、

確認テストは、修正されたコードを再テストすることに焦点を当てている。

正解:D. リグレッションテストは未変更コードへの副作用を確認する

解説:

バグ修正後、まず行うのが 確認テスト(再テスト)

修正した不具合が正しく直っているかを再度確認します。

一方、リグレッションテスト(回帰テスト) は、

修正によって他の部分(変更していない部分)に影響が出ていないかを確認するテストです。

具体例:

ログイン機能の不具合を修正したあと、

「ユーザー登録機能」「パスワード変更機能」などが影響を受けていないかを再確認します。


🧾 質問5:静的テストでのみ発見できる欠陥はどれか?

問題文:

次のうち、動的テストでは見つけられず、静的テストで見つかる欠陥はどれか?

選択肢:

A. 使いにくいUI

B. 到達できないコード(デッドコード)

C. 遅い応答時間

D. 実装されていない機能

正解:B. 到達できないコード

解説:

静的テストとは、プログラムを実行せずにレビューや解析を行うテスト手法です。

たとえば、コード内に「呼び出されない関数」や「条件が常にfalseの分岐」がある場合、

実行してもその部分に到達しないため、動的テストでは検出できません。

しかし、コードレビューや静的解析ツールなら発見可能です。

具体例:

if False:
print(“この部分は実行されない”)

このような「到達不能コード」は、静的解析で検出できます。


🏁 まとめ

テーマ

正解

ポイント

Test-First Approach

Test Driven Development

テストが先、開発が後

DevOps

自動化回帰テストで安全な頻繁リリース

継続的デリバリーが鍵

System Testing

セキュリティテスト(独立チーム)

全体機能の検証

Regression vs Confirmation

変更の影響を確認

回帰=未変更部分の確認

Static Testing

到達できないコードの発見

実行不要の検証手法

これらのテーマは、CTFL試験で頻出かつ実務でも非常に重要な概念です。

単に暗記するのではなく、「どんな目的で行うのか」「他のテストとどう違うのか」を理解することが合格の鍵です。

コメント

タイトルとURLをコピーしました