【ISTQB /JSTQB FL 4.0解説】静的テスト(Static Testing)とは?レビューと静的解析の基本をわかりやすく解説

JSTQB Fundation Level 4.0

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つです。

  1. 品質向上(Quality Improvement)

     作業成果物を早期に確認することで、後工程に欠陥を持ち込まない。

  2. 欠陥の早期検出(Early Defect Detection)

     設計段階で誤りを見つければ、修正コストは格段に安くなります。

     これは**「早期テストは時間とコストを節約する」**という原則に直結します。

  3. コミュニケーションの改善(Improved Collaboration)

     レビューにはテスター、開発者、ビジネス担当者など複数の関係者が参加するため、

     共通理解が深まり、誤解による手戻りが減ります。


静的テストがもたらす具体的な価値

1. 早期に欠陥を発見できる

設計や要件段階で誤りを見つけることで、後の修正工数を大幅に削減できます。

2. 動的テストでは見つからない問題も検出

たとえば、実行しなくてもわかる以下のような問題に対応できます。

  • 到達不能コード

  • 曖昧な要件定義

  • 不完全なテストケース

  • 設計パターンの未実装

3. チーム間の共通理解を促進

レビューを通じて、開発者とテスター、ビジネス担当者の間で共通認識が生まれ、

「要求の誤解」や「認識のズレ」を防げます。

4. プロジェクト全体のコスト削減

レビューには時間がかかるように見えますが、結果的には後工程のバグ修正コストを削減します。


静的解析ツールの例

静的解析にはさまざまなツールが使われます。以下は代表的な例です。

  • Lint / ESLint(コード品質チェック)

  • SonarQube(コード品質とセキュリティ分析)

  • FindBugs / SpotBugs(Java用静的解析ツール)

  • Spell Checker / Readability Tools(可読性・表記チェック)

これらをCI/CDパイプラインに組み込むことで、

継続的に品質を監視し、欠陥を未然に防ぐことが可能です。


静的テストの対象となる成果物の例

分類

成果物の例

ビジネス文書

要件定義書、契約書、プロジェクト計画書

開発文書

ソースコード、設計書、アーキテクチャ図

テスト文書

テスト計画書、テストケース、テストチャーター

アジャイル関連

ユーザーストーリー、バックログ項目

まとめ:静的テストは「予防のテスト」

静的テストは「バグを探す」前に、「バグを生まない」ための活動です。

レビューや静的解析をうまく活用することで、

品質を高め、チームの生産性を上げ、プロジェクト全体のコストを下げることができます。

ISTQBではこれを「予防的テスト(Preventive Testing)」と呼び、

“Shift Left(テストの前倒し)”の実践にも直結しています。


💡ポイントまとめ

  • 静的テスト=実行しないテスト(レビュー+静的解析)

  • 動的テストよりも早期に欠陥を発見できる

  • コスト削減・品質向上・チーム間の理解促進に効果的

  • すべての成果物(文書・コード・テストケース)がレビュー対象

コメント

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