ナレッジ

テストスイートとは。役割や具体例を分かりやすく解説

テストスイートとは。役割や具体例を分かりやすく解説

“テストスイート”はJSTQBに登場する用語の一つです。

用語としては知っているけれど、現場で利用する機会がないという方もいるでしょう。抽象的で説明が難しい用語の一つのため、テストスイートに関するこの記事の説明を通して理解を深めてください。

テストスイートとは

テストスイートは、『ソフトウェアの教科書 JSTQB Foundation 第4版』において、下記のように説明されています。

特定のテストサイクルで実行されるテストケースやテスト手順のセット

それだけでは、とっつきにくいでしょうから、まずは、「テストスイート」という言葉自体を深堀します。

テストスイートの意味

“テスト”の意味は、皆さんご存じという前提で、“スイート”に注目して、スイート(suite)を含む単語/言葉の例を見てみましょう。

まずは、「スイートルーム(suite room)」です。

「suite」はもともと フランス語の「suite(スイット)」が語源となり、意味は「続き、連なり、続いているもの」です。ホテルでの「suite」は、複数の部屋が続く構造を表します。例えば、寝室、リビング、ダイニング、書斎、バスルームなどが続き部屋としてセットになった客室を指します。

続いて、ソフトウェアスイート(software suite)です。

ソフトウェアスイートは、関連する複数のソフトウェアをまとめてパッケージ化した製品を表します。

例えば、以下のように使います。

  • Microsoft Office Suite(Microsoft Word、Excel、PowerPointなどのセット)
  • Adobe Creative Suite(Photoshop、Illustrator、Premiere Proなどのセット)
  • Oracle E-Business Suite(会計、人事、在庫管理、購買、製造、CRMなどのセット)

最後に組曲(suite)です。

音楽の分野では、幾つかの短い曲を集めて、ひとまとまりにした作品を組曲と呼びます。組曲の英語つづりは、テストスイートのスイートと同じ”suite”になります。

代表的な組曲は以下のとおりです。

  • 展覧会の絵(Pictures at an Exhibition)— モデスト・ムソルグスキー
  • 惑星(The Planets)— ホルスト

    ※[参考]過去、ニコニコ動画で、複数の動画をつなぎ合わせて作成されたニコニコ組曲の英語表記は「Niconico Suite」になります。

テストスイートの意味を直感的に理解できるようになったでしょうか?

続いて、JSTQBに登場する代表的な単語、テストケース、テストプロシージャ、テストハーネスとテストスイートとの違い、関係を見てみましょう。

テストケースとテストスイートの違い

JSTQBの中でも混乱しやすい、テストケースとテストスイートですが、その定義を例えると以下のように表せます(図表1)。

  • テストケース = 音符
  • テストスイート = 楽譜
図表1:テストケースとテストスイートの関係(イメージ)
図表1:テストケースとテストスイートの関係(イメージ)

定義の意味として、テストケースは、テストスイートに包含されます。しかし、現場では「テストケース = テストの実行単位」として扱われることが多いでしょう。

例えば、リグレッションテストが必要な場合において、「必要なテストケースは?」という会話がなされることが多いと感じています。

JSTQB準拠の用語を正しく使用すると、「必要なテストケースのまとまりは?」「必要なテストスイートは?」といった使い方になりますが、現状は、それぞれの現場で効率的な単語を用いてコミュニケーションが取られています。

テストプロシージャとテストスイートの関係

テストプロシージャとは、テスト手順書、テスト前提の準備内容、操作手順、確認内容などのことを指します。

テストプロシージャはテストスイートに包含されるもので、主にテストケースをどの順番で、どのように実行するかを定めた手順の情報です。

テストハーネスとテストスイートの関係

テストハーネスとは、テストを実行するためのライブラリのことです。テストドライバー、スタブ、ログ機能などを含みます。

テストハーネスはテストスイートを動かすための仕組み、環境であり、テストケースや手順書を含まず、テストスイートに含まれません。

テストスイート、テストプロシージャ、テストハーネスの関係をオーケストラに例えると、図表2のようになります。

図表2:テストスイート、テストプロシージャ、テストハーネスの関係(イメージ)
図表2:テストスイート、テストプロシージャ、テストハーネスの関係(イメージ)

テストスイートの役割

テストスイートは、テストを実行する際に必要となるテストケースと手順などをまとめた情報です。その主な役割は、テストの実行手順を整理し確認すべき内容(期待値等)を明確にすることです。

そして、テストスイートは、テスト実施の目的、効率に大きな影響を与えるため、基本的にテスト実施に責任を持つ技術者自身がテストスイートを作成する必要があります。

※通常、テストケースのまとまりをテスト仕様書(または、そのままテストケース)という単語で表現する場合もありますが、JSTQBではテストケースのまとまりを「テストスイート」と表現しています。

テストスイートは、テストの実行をはじめ、結果集計、リグレッションテスト、テスト自動化、カバレッジ(網羅率)分析などにおいて、 作業や管理の単位として用いられるケースが増えています。

特に、リグレッションテストの実行やテスト自動化をテストスイート単位で行う運用が多くなってきており、 テスト設計や実装においても、テストスイートを意識する重要性が高まりつつあります。

テストスイート設計におけるテストケースのまとめ方

テストスイートとしてテストケースをまとめる方法は幾つかあります。代表的なまとめ方を以下に示します。

  • 顧客情報管理モジュールに関するテストケースなど、モジュールに対する網羅的な検証を行うため、モジュール別にまとめる
  • ログイン機能に関するテストケースなど、共通機能別にまとめる
  • 業務システムのワークフローのテストなど、ビジネスシナリオ単位別にまとめる
  • 以前バグがあった箇所のテスト、修正影響範囲の確認用テストなど、回帰テスト用にまとめる
  • 認証、認可、XSS、SQLインジェクションなど、セキュリティテスト用にまとめる
  • UI、API、バッチなど構成要素ごとのテストとして、コンポーネント単位でまとめる

テストスイートの具体例

実際にテストスイートの例を見てみましょう。サンプルは全会社員に関わりがある年末調整のシステムです。

※年末調整の計算方法をご存じない方は、国税庁の公式ページで計算方法が公開されていますので、参照してください。

参照:令和6年分 年末調整のしかた|国税庁
 

年末調整および関連の各システムの関係を簡単にすると図表3のようになります。

図表3:年末調整および関連システムの関係
図表3:年末調整および関連システムの関係
  1. WEBサービスで扶養控除申告書等の申請を行う
  2. 年間の給与/賞与計算結果を集計する
  3. 団体保険料データを取り込む
  4. 所得税の税額を計算する
  5. 還付徴収金額を含め給与計算システムで再計算する
  6. WEBサービスで年末調整結果を参照する
  7. 税務署/市区町村向けの提出データを作成する

一例として、業務機能単位でまとめ、テスト実行、リグレッションテスト、テスト自動化を考慮した場合、テストスイートのサンプルは図表4のようになります。

図表4:テストスイートサンプル(年末調整および関連システム)
図表4:テストスイートサンプル(年末調整および関連システム)
  1. 年末調整申告テスト
  2. 申告データ連携テスト
  3. 給与賞与集計テスト
  4. 団体保険料取込テスト
  5. 所得税額計算テスト
  6. 給与計算テスト
  7. 給与明細照会テスト
  8. 源泉データ連携テスト
  9. 源泉徴収票照会テスト
  10. 提出データテスト

このように、業務システムは、一般的に、業務フローに沿った機能構成となるため、ビジネスシナリオおよびモジュール構成を考慮してテストスイートを割り当てることにより、テスト実行を効率的に進められます。

また、テストスイートを割り当てることで初期リリースのみならず、その後の機能修正時でも効率的にテストを行えるようになります。

例として、”年収の壁”で話題となった令和7年度の所得税法改正により「基礎控除」、「給与所得控除」に関する見直しおよび「特定親族特別控除」の創設が行われましたが、これにより年末調整システムでは、「WEBサービスの申告書の控除判定」および「所得税額計算処理」の修正が必要になっています。

参考:令和7年度税制改正による所得税の基礎控除の見直し等について|国税庁

通常、これらの機能修正や単体テストは開発部門で行いますが、その後のリグレッションテストはQA部門においてテストスイート単位でテスト実行が行えます。

今回の例では、①年末調整申告テスト、⑤所得税額計算テストをリグレッションテストとしてテスト実行し、デグレードがないことが確認できます。

このような方法でテストスイートを割り当てることで、効率的にテストを実行し、より品質を高めることが可能になります。

テストスイートはJSTQB理解の序曲

JSTQBではテストスイートを用いた説明が数多くされています。テストスイートをより正しく理解することで、JSTQBの考え方に基づいたテスト設計や実行を行うことが可能になります。

ぜひこの機会にテストスイートを理解していただけると幸いです。

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Search Articles By The Cast出演者/執筆者から記事を探す

Search Articless By The Categoryカテゴリから記事を探す

Ranking

ランキング

もっと見る