コンテンツへスキップ
ホーム » 記事一覧 » システムテストとは?単体テスト・結合テストとの違いを初心者向けに解説

システムテストとは?単体テスト・結合テストとの違いを初心者向けに解説

システムテストで検索から注文までのシステム全体を確認するイメージ

「単体テストと結合テストが終わったので、次はシステムテストです」と言われても、何が変わるのか分かりにくいですよね。

システムテストでは、個々のプログラムや機能のつながりではなく、システム全体が必要な働きと品質を備えているかを確認します。

この記事では、ネットショップを例に、システムテストの意味、確認内容、実施する時期を解説します。
単体テスト・結合テストとの違いも、確認する範囲と目的から整理しましょう。

💡 このページでわかること

  • システムテストの意味と目的
  • ネットショップを例にした確認内容
  • 単体テスト・結合テストとの違い
  • システムテストを行う時期と環境

システムテストとは?システム全体を確認するテスト

システムテストとは、システム全体の動きや能力が、決められた条件を満たしているか確認するテストです。

開発現場では、英語の頭文字を取って「ST」と呼ばれることもあります。

たとえば、ネットショップには、商品検索、カート、支払い、注文、メール送信などの機能があります。システムテストでは、これらを含む全体を動かし、「商品を探して注文を完了できるか」といった最初から最後までの流れを確かめます。

確認するのは、機能の動きだけではありません。プロジェクトで定めた範囲に応じて、表示の速さ、使いやすさ、情報の守られ方なども対象になります。

判断の基準になるのは、「この機能が必要」「この時間内に画面を表示する」といった、システムが満たすべき条件です。こうした条件は、要件定義書や仕様書などに記載されています。テストでは、担当者の感覚ではなく、決められた条件と実際の結果を比べます。

具体例|ネットショップの購入で考えよう

ネットショップを使う人の買い物を想定すると、システムテストの範囲をイメージしやすくなります。

ネットショップで商品を探してから注文完了メールを受け取るまでの流れ

商品を選んで購入を完了できるか

たとえば、次の流れを確認します。

  1. 商品名で検索する
  2. 検索結果から商品を選ぶ
  3. 商品をカートに入れる
  4. 配送先と支払い方法を入力する
  5. 注文を確定する
  6. 注文完了画面とメールを確認する

最後の画面まで進めるだけでは、十分とは限りません。商品と数量、割引・送料・合計金額、注文後の在庫数、完了メールの内容まで正しいかを確かめます。

正常に注文できる場合だけでなく、売り切れた商品を選んだ場合や、支払いに失敗した場合も確認します。利用者に分かる案内が表示され、途中のデータが不自然な状態で残らないことが大切です。

使いやすさや速さなども確認する

必要に応じて「何ができるか」だけでなく、「どのくらい安全・快適に使えるか」も確かめます。

  • 多くの人が同時に注文しても、決められた時間内に画面が表示されるか
  • 初めて使う人にも、ボタンやエラーの内容が分かりやすいか
  • 権限のない人が、ほかの利用者の注文情報を見られないか
  • 問題が起きたあと、決められた手順で利用を再開できるか

これらは、性能、使いやすさ、セキュリティ、信頼性などの確認です。まとめて「非機能テスト」と呼ばれることがあります。

ただし、すべてを必ずシステムテストで確認するわけではありません。また、非機能テストはより前の段階で行うこともあります。何を、いつ、どの基準で確認するかは、システムの目的や問題が起きたときの影響を考えて決めます。

単体テスト・結合テスト・システムテストの違い

3つの大きな違いは、主に何を対象にし、何を確かめるかです。

単体・結合・システムテストで確認する範囲を入れ子で示した図
テスト主な確認対象主な目的ネットショップでの例
単体テスト個々のプログラムや部品部品を単独で動かし、決められた結果になるか確かめる商品の金額と個数から、小計を正しく計算できるか
結合テスト部品や機能の間のつながりデータの受け渡しや処理の連携が正しいか確かめるカートの商品情報が、注文を保存する処理へ正しく渡るか
システムテストシステム全体全体の動きや能力が、求められた条件を満たすか確かめる商品検索から注文完了までの流れと、必要な速さや安全性を確認する

同じ画面を操作していても、注目する対象によってテストの種類は変わります。注文画面から操作していても、カートから注文処理へ商品情報が正しく渡るかに注目するなら、結合テストとして行う場合があります。

システムテストでは、個々の受け渡しだけでなく、利用者が注文を完了でき、システム全体が求められた条件を満たすかに注目します。そのため、操作した画面だけで判断せず、何を対象に、何を確かめるテストなのかを見ることが大切です。

なお、名前や範囲は、会社やプロジェクトによって異なる場合があります。実務では、テスト計画書や担当者への確認を優先してください。

システムテストでは何を確認する?

確認内容は、大きく「必要な機能」と「機能以外の品質」に分けると理解しやすくなります。

必要な機能が正しく動くか

まず、システムに必要な機能がそろい、決められたとおりに動くかを確認します。

  • 条件を指定して商品を検索できるか
  • 在庫のある商品を注文できるか
  • 割引や送料を含む金額が正しいか
  • 注文した内容をあとから確認できるか
  • 入力を間違えたときに、適切な案内が出るか

よく使う操作だけでなく、入力ミスや処理の失敗が起きた場合も対象にします。

安心して使える品質になっているか

たとえば、「注文確認画面を3秒以内に表示する」という条件があれば、実際の時間を測ります。「同時に100人が注文しても利用できる」という条件があれば、その状況に近い負荷をかけます。

数字はシステムごとに異なります。「速そう」「使いやすそう」と感覚だけで判断せず、決められた基準と結果を比べます。

システムテストはいつ、どこで行う?

システムテストは、一般に、必要な機能を組み合わせ、システム全体を動かせる状態で行います。順番を単純化すると、次のようになります。

  1. 単体テストで、個々の部品を確認する
  2. 結合テストで、部品同士のつながりを確認する
  3. システムテストで、システム全体を確認する

ただし、これは理解しやすくした基本形です。開発の進め方によっては各テストを繰り返したり、時期が重なったりします。「すべての単体テストと結合テストが終わったあと、システムテストを一度だけ行う」とは限りません。

確認には、本番に近いテスト環境を使うことがあります。本番環境とは、実際の利用者が使う環境です。テスト環境は、公開中のサービスや実際のデータへ影響を与えずに確認するため、通常は本番環境と分けて用意します。

特に表示速度や外部サービスとの接続を確認するときは、環境の違いが結果に影響します。担当するときは、使用する環境、テスト用データ、接続先を先に確認しましょう。

システムテストのよくある疑問

システムテストと総合テストは同じ?

職場によっては、システムテストに近い意味で「総合テスト」という名前を使います。ただし、用語の使い方は統一されておらず、対象範囲が異なる場合もあります。

名前だけで同じテストだと判断せず、テスト計画書などで「何を対象に、何を確認するのか」を確かめるのが安全です。

システムテストとシステム結合テストは同じ?

同じではありません。システムテストは、1つのシステムや製品全体の動きと能力に注目します。システム結合テストは、確認対象のシステムと、別のシステムや外部サービスとの接続に注目します。

ネットショップ全体で注文を完了できるかを見るのがシステムテストの例です。ネットショップと外部の決済サービスの間で、支払い情報や結果が正しくやり取りされるかを見るのは、システム結合テストの例です。

システムテストが終われば公開できる?

必ずしも公開できるとは限りません。システムテストのあとに、利用者や発注者が業務上の目的を満たせるか確認する「受け入れテスト」を行う場合があります。不具合を直したあとの再確認や、公開してよいかの判定も必要です。

受け入れテストは、システム全体が仕様どおりかだけでなく、利用者の業務上の要望を満たし、公開できる状態かを確かめることに重点があります。

すべての操作を確認するの?

考えられる入力や操作の組み合わせを、すべて試すことは現実的ではありません。そこで、よく使う操作、問題が起きたときの影響が大きい機能、入力できる値の境目、成功する場合と失敗する場合などから、確認する内容を選びます。

初めて担当するときは、自分の判断だけで確認項目を減らさず、用意されたテスト計画やテストケースに従いましょう。抜けに気づいた場合は、担当者へ相談します。

まとめ|部品ではなく、システム全体を見る

システムテストは、システム全体の動きや能力が、決められた条件を満たしているか確認するテストです。

  • 単体テストは、個々のプログラムや部品に注目する
  • 結合テストは、部品や機能の間のつながりに注目する
  • システムテストは、システム全体の動きや能力に注目する
  • 機能だけでなく、速さ、使いやすさ、安全性なども対象になり得る
  • テストの名前や範囲は、会社やプロジェクトによって異なる場合がある

違いに迷ったら、操作した画面ではなく、何を対象に、何を確かめたいのかを確認してみてください。

関連記事

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です