システム開発会社を
お探しですか?

PRONIアイミツは最適な出会える
ビジネスマッチングサービス
です

システム開発発注は初めてですか?
システム開発
無料で一括見積もり
0120-917-819 平日10:00-19:00

システムテストとは?他のテストとの違いや項目・観点の洗い出し方を紹介【2024年最新版】

更新日:2024.01.24

システム開発のプロジェクトでは、プロダクトのクオリティを担保するためにさまざまなテストが実施されます。今回のテーマであるシステムテスト(総合テスト)は、システム開発において特に重要度の高いテスト工程。当記事では、システムテストの概要、他のテストとの関係性や相違点、システムテストの工程・プロセス、システムテストの種類、テスト実施時の注意点、第三者検証サービスの選定方法までを解説します。
システムテストの全体像を把握したい方や理解を深めたい方は、ぜひ参考にしてみて下さい。

【関連ページ】
システム開発にかかる費用・相場感や、あなたの目的別にシステム会社をお探しいただけます。
システム開発の平均費用と料金相場
全国のシステム開発会社一覧

システム開発会社の見積もりが
最短翌日までにそろう

マッチング実績30万件!

一括見積もりをする

(無料)

システムテスト(総合テスト)とは?

システムテスト(総合テスト)とは、完成したシステム全体に対して実施されるテストです。実際の稼働状況を想定して本稼働と同じ環境を用意してさまざまな角度からテストが行われるため、開発段階では気付くことができない不具合・バグ・ミスを発見できるのが大きな特徴。クライアントが求める機能・性能を満たしているかの確認を行い、プロダクトの品質を担保することを目的としています。システムテストは一般的に開発サイドの最終工程で実施が行われ、テストを通過したプロダクトはクライアントサイドのチェックを経てリリースとなります。

システムテストは誰がやるの?

システムテストの実施者としては、大きく分けて以下2つのケースが挙げられます。

・開発者
実際にテスト対象のシステムの開発に携わった開発者

・第三者であるテストチーム
第三者である社内で別途設けたテストチームもしくはテスト専門業者

開発者によるシステムテストは主観が入り混じる可能性があるため、客観的視点・ユーザー視点でテストを実施できるテストチームへの依頼が推奨されます。

他の開発テストとの違いや関係性

システム開発では、システムテスト(総合テスト)だけでなく、以下のようなさまざまなテストが実施されます。

・単体テスト
・結合テスト
・受入れテスト


いずれもシステム開発のプロジェクトを推進するうえで欠かせない工程であるため、概要・目的・作業内容等を把握しておくことが重要。以下にそれぞれ解説していますので、ぜひご参考下さい。

単体テスト

単体テストとは、モジュールと呼ばれるプログラムを構成する小規模な単位で実施されるテストのことです。関数・メソッド等がテストの単位となり、個々の機能が正しく動作しているかを検証する目的があります。小規模で実施するため開発の早い段階で実施できることや、問題の早期発見早期解決を行えることがメリット。モジュールの品質を確認することで、後の工程へとスムーズに繋げることができます。
一方で、モジュール単位で個別に実施されるため、テストのために別途コードを用意する必要があるなど負荷がかかるのがデメリットです。

結合テスト

結合テストとは、単体テストを通過した後に実施されるテストです。モジュール・コンポーネント等を結合させた際に、正しく動作するかを検証するために行われます。結合テストでは、どのような要素を結合させるかによって以下のような種類に分けられます。

・モジュール間結合テスト
・サブシステム内結合テスト
・サブシステム間結合テスト
・外部システム結合テスト


複数のテストケースを作成してさまざまな検証を行えるのが結合テストの特徴。その反面、プロダクトに最適なテスト対象・テスト範囲の決定が難しいことが課題となります。

受入れテスト(ユーザーテスト)

受入れテストとは、開発されたプロダクトが発注者の要望通りの仕様となっているか、意図した通りに動作するかを確認するためのテストです。テストで実施される内容はシステムテストとほぼ同じですが、前者では不具合の検出・要件の充足よりもユーザーニーズを満たしているかに重きが置かれているのが特徴。一般的にはプロダクトをリリースする直前の最終チェックとして実施されるテストとなります。受け入れテストは、開発者側ではなく発注者側によって実施されるテストであるため、ユーザーテストとも呼ばれています。

「自社にあった会社が見つからない」「会社選びに時間が割けない」とお悩みの方は、お気軽に「アイミツ」にお問い合わせください。数あるシステム開発会社からあなたの要望にあった会社をピックアップして無料でご紹介いたします。

システム開発会社の見積もりが
最短翌日までにそろう

マッチング実績30万件!

一括見積もりをする

(無料)

システムテストの工程・流れ

ここでは、システムテストの工程・流れについて解説します。

1.計画を立てる
要件定義書をもとに、テスト全体の要件・方針をまとめたテスト計画書を作成

2.テスト仕様を検討
上記のシステムテスト計画書をもとに、テストの具体的な内容・担当者・評価基準等を決定

3.環境構築
上記で設定したテスト内容を実施するための環境を用意

4.テストの実施
システムテスト仕様書に基づき、システムテストを実施。不具合・バグを検出した際には修正を行い、再度テストを実施

5.テスト結果の分析・検証
テスト結果について分析・検証を行い、問題が無ければテストは完了

スムーズにテストを実施するためにも、基本的な工程・流れについて把握しておきましょう。

テスト観点の洗い出し方

テスト観点とは、テスト実施にあたっての視点・切り口をまとめたものです。システムテストを正しく実施するためには、テスト観点をどのように設定するかが重要となります。テスト観点には、以下のようにさまざまなタイプがあります。

・ISO/IEC9126の6つの品質特性
・Ostrandの4つのビュー
・Myersの14のシステムテスト・カテゴリ


どのようなタイプのテスト観点にも、網羅性の欠如・偏りが生じる可能性があるため、プロダクトに適したテスト観点を選択することが重要。ここでは、テスト観点のモデルケースとして、網羅性・品質に優れたIPAのテスト観点の洗い出し方について解説します。

テスト対象の発見・決定

テスト観点を洗い出すには、まずはテスト対象の発見・決定から始めていきます。テスト対象は、以下のような3つの軸に当てはめることで、効率的に抽出していくことができます。

■規模

■時間

■テストアーキテクチャ

テストアーキテクチャ・規模を組み合わせて、できるだけ網羅性・品質を重視してテスト対象を発見していきます。必要十分なテスト対象を抽出したら、以降のステップに従います。

動詞を用いて基本構造を構築

上記のステップで洗い出したテスト観点を「~する」という動詞で表現することで、機能や入力を網羅したテストの基本構造を構築することができます。例えば、以下のようなイメージです。

■機能網羅テスト
テスト対象に(動詞)させる
例)
・検索する
・紹介する
・更新する
・登録する

■入力網羅テスト
テスト対象に(動詞)させる

■状態網羅テスト
~の状態にあるテスト対象に~を(動詞)させる

■操作網羅テスト
~状態にあるテスト対象に~することで~を(動詞)させる

こちらのステップで洗い出されるテスト観点は、システム・ソフトウェアが持つ機能自体を網羅したものとなります。

基本構造に形容詞・副詞を追加

記で設定した基本構造に形容詞・副詞を加え、基本構造から派生構造を構築していきます。例えば、基本構造の入力網羅テストに対して形容詞を追加することで、以下のような派生構造を構築することが可能です。

■入力網羅テスト
テスト対象に
(目的語)~に対して
(形容詞)~の
(目的語)~を
(動詞)~させる


追加する形容詞の部分には、例えば以下のようなワードが挙げられます。

強度:強い・弱い
数量:多い・少ない
速度:早い・遅い
負荷:高い・低い


形容詞としてこのようなさまざまな要素を追加することによって、テストタイプの網羅性・具体性を更に高めていくことができます。

基本構造と派生構造を組み合わせる

続いて、基本構造と派生構造を組み合わせることで、テストタイプの網羅性をさらに高めていきます。例えば以下のようなイメージです。

■組み合わせ構造
A.テスト対象に~を~させる
B.テスト対象に~を~させる


AとBを~の方法で組み合わせて実施する

組み合わせ方法に適用される要素としては、例えば以下のようなものが挙げられます。

・同時に組み合わせる
・エンド・ツー・エンド型で組み合わせる


このようにさまざまな組み合わせを行うことで、モジュール連携テスト・モジュール連動テスト・運用機能連結テストといった複雑な構造のテストタイプを作り出すことができます。

テストで得られる結果を網羅する

基本構造・派生構造・組み合わせ構造といったそれぞれのテストタイプに対して、テストを実施した結果得られる期待結果を検討していきます。テスト観点の設計にあたっては、期待結果の網羅が最終的な目標であり、上記のステップは具体的な期待結果を導き出すための下準備であるとも言えます。
例えば以下のように要素を追加することで、期待結果を網羅していくことができます。

■入力網羅テスト
テスト対象に~を~させる

テスト対象に~を~させると(期待結果)となる

全てのテストタイプに期待結果を付与することで、網羅性の高いテスト観点を洗い出すステップは完了となります。

システムテストの種類

システムテストは、以下のように複数の種類に分類されます。システムの品質を担保するには、各種テストを実施して多角的なチェックを行うことが重要。

・機能テスト
・性能テスト
・負荷テスト
・ユーザビリティテスト
・回帰テスト
・ロングランテスト
・セキュリティテスト


以下に、各システムテストの概要についてそれぞれ解説します。

機能テスト

機能テストとは、開発したプロダクトがユーザーが求める機能を満たしているかを検証するためのテストです。あらゆる機能について検証を行うため、システム・サブシステム・各プログラムなどさまざまなテストレベルにて実施が行われます。仕様・要件の確認が目的であるため、内部構造は考慮せず外部の入出力に関して検証を行うブラックボックステストにて実施されます。

性能テスト

性能テストとは、プロダクトが意図した要件通りの性能を発揮できるかを確認するためのテストです。本稼働に近い状態でシステムを稼働させ、データ処理量・応答時間・待ち時間・リソース等の確認を行います。性能不足の検出やそれに伴うトラブルの防止を目的としており、一般的にはプロジェクトの終盤にかけて実施されます。

負荷テスト

負荷テストとは、システムの稼働時やピーク時を想定した負荷をかけ、負荷がかかった状態の性能・動作や負荷の限界値・耐久力の確認を行うためのテストです。実務で想定される負荷に対してシステムの安定稼働を担保することを目的としています。負荷テストには、主に性能テスト・限界テスト・ボリュームテスト・耐久テストの4種類が実施されます。

ユーザビリティテスト

ユーザビリティテストとは、ユーザーに開発中のプロダクトを利用してもらい、その様子を観察することで使用感・操作感に関する課題を発見するテスト手法です。ユーザビリティはシステムの有用性・利便性を大きく左右する要素。誰もが扱いやすいUIを設計するためにも重要なテストとなります。テスト手法には、会議室等にユーザーを集めて対面で行う方法、リモートで意見を集める方法があります。

回帰テスト

回帰テストとは、機能の追加・変更・不具合の改修等に伴うプログラム変更により、該当プログラムやその他プログラムに想定外の影響が現れないかを確認するテストです。全てのテストレベルに対して変更前に実施したテストを再度実行することで不具合の検出を行います。後から不具合が検出されると修正工数・コストが嵩む場合があるため、プログラム変更時には必ず実施しておく必要があります。

ロングランテスト

ロングランテストとは、プロダクトを長時間連続で稼働させることで、短時間稼働では発生しないエラー・バグ・不具合の有無を検証するためのテスト。実際の使用状況を想定して行われるテストとなります。
ロングランテストでは、メモリリークによるリソース逼迫など、長時間稼働による処理能力・性能・稼働率の低下等のチェックが行われます。

セキュリティテスト

セキュリティテストとは、プロダクトのセキュリティ要件の対策漏れや脆弱性の検知を行うためのテストです。設計工程へ素早くフィードバックを行い、プロダクトのセキュリティ品質を担保することを目的としています。セキュリティテストでは、システム要件やソースコードのチェック・リスクの検出・攻撃への耐性などさまざまな角度からテストが実施されます。

システムテストの注意点

システムテストを実施する際には、テスト品質を担保するためにテスト項目の網羅性やテスト実施のプロセスに気を配ることが重要。しかし、テスト要件ばかりが重視されてしまうと、エンドユーザーの視点が抜け落ちて開発者側の視点に偏りがちとなる点には注意が必要です。
このような状況への対策としては、客観性・ユーザー視点を持つことができる第三者のテストチームへテストの実施を依頼するのがおすすめ。専門業者が実施するソフトウェア検証サービスであれば、品質と信頼性に優れたテストの実施が可能です。

ソフトウェア検証サービスの選び方

第三者によるシステムテストを実施するには、ソフトウェア検証サービスを利用するという方法もあります。テスト専門業者が提供しているサービスであるため、テスト品質・信頼性に優れているのが大きな特徴。高精度・高効率なシステムテストを実施することができます。
ソフトウェア検証サービスを利用する際には、以下の点に留意して発注先を選ぶのがポイント。

・専門分野
・過去の実績
・所要期間・納期

依頼したいプロダクトを得意分野としており、かつ実績も豊富な発注先を選ぶようにしましょう。

システム開発会社の見積もりが
最短翌日までにそろう

マッチング実績30万件!

一括見積もりをする

(無料)

システム開発の費用相場

つづいては、システム開発を外注した際にかかる費用相場をご紹介します。

システム開発の平均相場
システム開発の平均相場 233万円~
システム開発の種類別平均相場
【システム開発の種類】 費用相場
簡易顧客システム 20万円~
Webシステム 130万円~
業務システム 400万円~

システム開発の費用相場をご紹介しました。より正確な費用を知りたい方は料金シミュレーターをご利用ください。

【まとめ】システム開発会社選びで迷ったらアイミツへ

プロダクトの総合的な確認を行うシステムテストは、システム開発プロジェクトの締めくくりであり、品質の担保・引渡し後のリスク低減を図るための重要なテストです。客観的な視点で精度の高いテストを実施するためにも、開発チームではなく第三者であるテストチームを別途用意するのが推奨されます。
外部の専門企業のソフトウェア検証サービスを利用するのであれば、技術力・信頼性に優れた発注先を選ぶことが非常に重要。アイミツでは、システムテストの詳細についてヒアリングを行い、最適な業者とのマッチングを支援していますので、お気軽にご相談下さい。

【相談前にまずは会社一覧を見たいという方はこちら】
全国のシステム開発会社一覧

【費用感を知りたいという方はこちら】
システム開発の平均費用と料金相場

システム開発会社の見積もりが
最短翌日までにそろう

マッチング実績30万件!

一括見積もりをする

(無料)

システム開発会社探しで、こんなお悩みありませんか?

  • 一括見積もりサイトだと多数の会社から電話が・・・

    一括見積もりサイトだと
    多数の会社から電話が・・・

  • 相場がわからないから見積もりを取っても不安・・・

    相場がわからないから
    見積もりを取っても不安・・・

  • どの企業が優れているのか判断できない・・・

    どの企業が優れているのか
    判断できない・・・

PRONIアイミツなら

発注先決定まで最短翌日

発注先決定まで
最短翌日

  1. 専門コンシェルジュが
    あなたの要件をヒアリング!
  2. 10万件の利用実績から
    業界・相場情報をご提供!
  3. あなたの要件にマッチした
    優良企業のみご紹介!
マッチング実績30万件!

一括見積もりをする

(無料)

この記事に関連するシステム開発会社一覧

戦略立案に人気の条件を追加して企業を探す