ISTQB Foundation Level(CTFL)シラバスの**第3章「静的テスト(Static Testing)」**では、テストを「実行せずに品質を高める方法」について学びます。
本記事では、「3.1 静的テストの基本(Static Testing Basics)」から、以下の2つのトピックを中心に解説します。
-
3.1.1 静的テストで確認する成果物
-
3.1.2 静的テストの価値
静的テストとは?動的テストとの違い
まず、静的テスト(Static Testing)とは、ソフトウェアを実行せずに成果物をレビュー・解析する活動のことです。
これに対して、実際にソフトウェアを動かして確認するのが「動的テスト(Dynamic Testing)」です。
静的テストでは、以下のような**作業成果物(Work Products)**を対象にします。
-
要件定義書
-
設計書(システム設計、アーキテクチャ)
-
ソースコード
-
テスト計画書、テストケース
-
ユーザーストーリー、プロジェクト計画書 など
これらの文書やコードをレビューすることで、
不具合(欠陥)や矛盾、曖昧な表現を早期に発見することが目的です。
静的テストの2つの方法:「レビュー」と「静的解析」
静的テストには大きく分けて次の2種類の手法があります。
① レビュー(Review)
-
人間が目視で文書や成果物を確認し、欠陥を見つける方法
-
例:要件定義書、テストケース、ユーザーストーリーなどのレビュー
-
チーム全員で確認することで、誤解や曖昧さを防止できます。
② 静的解析(Static Analysis)
-
ツールを使ってソースコードなどを自動的にチェックする方法
-
例:未使用変数、到達不能コード、無限ループ、命名規則違反などを検出
-
継続的インテグレーション(CI)に組み込み、自動的に品質を監視することも可能です。
つまり、
人の目で行うのが「レビュー」、
**ツールで自動的に行うのが「静的解析」**です。
静的テストの目的と利点
静的テストの主な目的は以下の3つです。
-
品質向上(Quality Improvement)
作業成果物を早期に確認することで、後工程に欠陥を持ち込まない。
-
欠陥の早期検出(Early Defect Detection)
設計段階で誤りを見つければ、修正コストは格段に安くなります。
これは**「早期テストは時間とコストを節約する」**という原則に直結します。
-
コミュニケーションの改善(Improved Collaboration)
レビューにはテスター、開発者、ビジネス担当者など複数の関係者が参加するため、
共通理解が深まり、誤解による手戻りが減ります。
静的テストがもたらす具体的な価値
1. 早期に欠陥を発見できる
設計や要件段階で誤りを見つけることで、後の修正工数を大幅に削減できます。
2. 動的テストでは見つからない問題も検出
たとえば、実行しなくてもわかる以下のような問題に対応できます。
-
到達不能コード
-
曖昧な要件定義
-
不完全なテストケース
-
設計パターンの未実装
3. チーム間の共通理解を促進
レビューを通じて、開発者とテスター、ビジネス担当者の間で共通認識が生まれ、
「要求の誤解」や「認識のズレ」を防げます。
4. プロジェクト全体のコスト削減
レビューには時間がかかるように見えますが、結果的には後工程のバグ修正コストを削減します。
静的解析ツールの例
静的解析にはさまざまなツールが使われます。以下は代表的な例です。
-
Lint / ESLint(コード品質チェック)
-
SonarQube(コード品質とセキュリティ分析)
-
FindBugs / SpotBugs(Java用静的解析ツール)
-
Spell Checker / Readability Tools(可読性・表記チェック)
これらをCI/CDパイプラインに組み込むことで、
継続的に品質を監視し、欠陥を未然に防ぐことが可能です。
静的テストの対象となる成果物の例
|
分類 |
成果物の例 |
|---|---|
|
ビジネス文書 |
要件定義書、契約書、プロジェクト計画書 |
|
開発文書 |
ソースコード、設計書、アーキテクチャ図 |
|
テスト文書 |
テスト計画書、テストケース、テストチャーター |
|
アジャイル関連 |
ユーザーストーリー、バックログ項目 |
まとめ:静的テストは「予防のテスト」
静的テストは「バグを探す」前に、「バグを生まない」ための活動です。
レビューや静的解析をうまく活用することで、
品質を高め、チームの生産性を上げ、プロジェクト全体のコストを下げることができます。
ISTQBではこれを「予防的テスト(Preventive Testing)」と呼び、
“Shift Left(テストの前倒し)”の実践にも直結しています。
💡ポイントまとめ
-
静的テスト=実行しないテスト(レビュー+静的解析)
-
動的テストよりも早期に欠陥を発見できる
-
コスト削減・品質向上・チーム間の理解促進に効果的
-
すべての成果物(文書・コード・テストケース)がレビュー対象



コメント