システムテストとは? テストの流れや検証の観点、作業手順について分かりやすく解説
【監修】株式会社ジオコード マーケティング責任者
渡辺 友馬
IT技術が日々進化し、生活のあらゆる場面でさまざまなシステムが活用されています。次々と新しい製品が生まれていますが、システムを開発したら必ず行わなくてはならないのがシステムテストです。システムテストとはどのような種類があり、どのような流れで行えば良いのでしょうか。
本記事ではシステムテストの概要やシステム開発におけるテストの流れ、システムテストの主な種類、システムテストの作業手順を解説します。システムのスムーズなリリースに向けて、システムテストへの理解を深めましょう。
おすすめのシステムテスト企業一覧
scroll →
会社名 | 特徴 | 得意分野 | 品質 | 費用 |
---|---|---|---|---|
株式会社AGEST |
|
・テスト設計/実施のアウトソース ・多端末テスト ・脆弱性診断 ・アジャイルテスト ・テスト自動化導入支援 |
ISTQBのパートナープログラムにおいて最上位となるGlobal Partnerを取得 | 要問い合わせ |
SOLIZE株式会社 |
|
ソフトウェア開発サービス、第三者検証サービス、国際規格コンサルティングサービス | ISTQBパートナープログラムGold Partnerの認定 ソフトウェア品質知識体系(SQuBOK)に沿った開発 |
要問い合わせ |
バルテス・モバイルテクノロジー株式会社 |
|
Web・モバイルアプリ開発、モバイルアプリのテスト・保守 | 要問い合わせ | 要問い合わせ |
株式会社メリテック |
|
業務システム、WEBシステム、組み込みシステム開発 | ISO9001、ISO/IEC 27001、ISO 13485:2016、ISO 22301:2019を取得 | 要問い合わせ |
株式会社ユー・アイ・エス |
|
Webシステム、業務システム、モバイルアプリ | 要問い合わせ | 要問い合わせ |
Bee Tech Asia株式会社 |
|
システム開発、WEB開発、アプリ開発、ベトナム進出支援 | 要問い合わせ | 要問い合わせ |
株式会社ブレーンネット |
|
システム開発、インフラサービス、移動体通信、エンジニア派遣・人材紹介、技術研修 | 要問い合わせ | 要問い合わせ |
株式会社SHIFT |
|
ソフトウェアテスト・品質保証、セキュリティ、DX、UI/UX、カスタマーサクセス | SHIFT独自の品質保証標準(SQF) | 要問い合わせ |
バルテス株式会社 |
|
Webサイト、モバイルアプリ、業務システム、家電・AV機器・OA機器、デジタル放送、金融・保険、開発SIer、アジャイル開発など | ISO/IEC 27001認証、JSTQB取得率が92%(入社2年目以降) | 要問い合わせ |
株式会社システナ |
|
移動体無線通信・基地局及びコアネットワーク検証、決済端末品質検証、フィールド試験、IoTデバイス検証、スマートデバイス・アプリケーション検証、Webアプリケーション検証、品質管理コンサルティング | 要問い合わせ | 要問い合わせ |
株式会社デジタルハーツ |
|
ゲームデバック | 要問い合わせ | 要問い合わせ |
テクバン株式会社 |
|
システムインテグレーション、ITプラットフォーム、セキュリティ、ビジネスアプリケーション、ビジネスアウトソーシング、ソフトウェアテスト | 要問い合わせ | 要問い合わせ |
株式会社ヴェス |
|
ソフトウェア・Web検証、組込み検証、その他検証・教育サービス | IVEC最高位のプラチナパートナー、ISTQBのゴールドパートナーに認定 | 要問い合わせ |
Sky株式会社 |
|
自社パッケージ商品開発・販売、ソフトウェア開発・評価・検証 | JSTQB保有者470名以上 | 要問い合わせ |
株式会社ベリサーブ |
|
品質向上、効率化、検証支援、セキュリティ対策、分野特化型サービス、テスト支援ツール | 要問い合わせ | 要問い合わせ |
株式会社プラスナレッジ |
|
ソフトウェア開発、Web・モバイル・アプリケーション評価、車載系ソフトウェア評価、品質コンサルティング、ニアショア事業 | 要問い合わせ | 要問い合わせ |
株式会社ウェブレッジ |
|
サービス品質検証・システム品質検証 | 標準テストプロセス(ISO-29119)を採用 ISTQB Platinum Partner・IVEC Silver Partner認定 |
要問い合わせ |
この記事の目次はこちら
システムテストとは?
システムテストとは、システムやソフトウェアを開発した際に行われるテストのことです。総合テストとも呼ばれ、一般的に開発の最終段階で行われます。
システムを構築し、全ての機能を整えたとしても、実際に使用すると不具合が発生することは珍しくありません。システムテストは実際の使用状況を想定してさまざまなテストを行い、開発段階では発見できなかった不具合の有無を確かめて、問題なく使用できるかチェックします。またシステム全体を包括的に見てテストを行うため、ハードウェアの不具合も見つかる可能性が高いです。
システムテストを行う主な目的は、クライアントが求めた仕様や要件を実装できているかどうかを確認することです。クライアントの依頼で制作するシステムは、当然求められた仕様や要件を全て満たしていなくてはなりません。システムテストは開発者側の最終的な確認として、システムが仕様や要件に準じた上で正確に動作するかを確かめます。
システムテストが十分に行われず、リリース後に不具合が発生すると、クライアントはもちろんエンドユーザーからの信頼も失ってしまいます。自社の信頼を確保するためにも、システムテストは重要です。
システム開発における4つのテストの流れ
システム開発では、各段階でさまざまなテストが行われます。システム開発における4つのテストの流れを把握しておきましょう。
単体テスト
単体テストとは、システムのモジュール単位・コンポーネント単位などでテストを実施し、それぞれの機能が問題なく動作するかを確かめるテストです。コンポーネントテストやユニットテスト、ユニット工程とも呼ばれます。
システムのプログラムは、通常多数の画面・機能で構成されています。この画面・機能の動作に不具合がないかを一つずつ確かめた上でシステムを構築することで、その後の開発をスムーズに進めることが可能です。
結合テスト
結合テストとは、単体テストを終えたモジュールを組み合わせて構築し、問題なく動作するかを確かめるテストです。統合テストとも呼ばれます。
単体テストで問題がなかったとしても、組み合わせると不具合が起こるケースは少なくありません。画面や機能をさまざまなパターンで組み合わせてテストを繰り返すことで、その後の開発やシステムテストがスムーズに進められます。
結合テストはシステム開発の中盤から終盤にかけて行われ、小規模の組み合わせから少しずつ範囲を拡大して段階的に行われるテストです。画面・機能間を組み合わせて問題なく動作するかを確認するテストを「内部結合テスト」、外部システムなどと連携して問題なく動作するかを確認するテストを「外部結合テスト」と呼びます。
システムテスト
システムテストは全てのプログラムを構築し、機能を整えた上で実施するテストです。
前述した通り、システムが問題なく動作するかだけでなく、ハードウェアや通信回線などの状況も含めてテストを実施し、クライアントが要求する仕様や要件を満たしているかも確認します。
システムテストは開発者側で行う最終的なテストです。テストを実施して不具合などの問題がなければ、クライアントに引き渡します。
受入れテスト
受入れテストとは、クライアント側で行われるテストのことです。承認テスト・ユーザーテスト・検収試験とも呼ばれます。
受入れテストではクライアントが実際の状況を想定してシステムを試験的に使用し、依頼した仕様や要件を満たしているか、問題なく使用できるかを確かめます。システム全体に対するテストという意味ではシステムテストと似た部分がありますが、より本番を想定した環境で行われるのが特徴です。また操作性も確認し、運用後の使いづらさのリスクを軽減することも受入れテストの目的です。
基本的にはテストの計画から実施までクライアントが進めるのが理想とされていますが、外部に委託するケースもあります。受入れテストは納品直前に行われるのが一般的です。
システムテストの観点
システムテストは大きく分けて「機能要件」と「非機能要件」の2つの観点で実施されます。それぞれどのようなものなのかを見ていきましょう。
機能要件
機能要件とは文字通り、機能に関する要件です。この場合の機能とは、クライアントが求める機能を意味します。
開発現場によっても異なりますが、一般的に機能要件は「仕様書」や「要件定義書」に記されていることが多いです。システムテストの機能要件に関するテストでは、これらの文書に準じて検証を行います。
非機能要件
非機能要件とは、機能以外の要件のことです。クライアントから明確な要望がある機能用件と異なり、非機能要件は開発者がクライアントやエンドユーザーの立場に立って、システムの質を考慮して考える必要があります。
非機能要件の例は、以下の通りです。
- 可用性
- 性能
- 拡張性
- 運用性
- 保守性
- 移行性
- セキュリティ
- システム環境
- 機能性
- 信頼性
- 使用性 など
いくら機能要件を満たしていても、非機能要件が十分でなければ使い勝手の悪いシステムになってしまいます。非機能要件の質が高ければ、クライアントやエンドユーザーのシステムに対する評価が高くなり、満足度も向上するでしょう。
システムテストの主な種類
一口にシステムテストといってもさまざまな種類があります。主なシステムテストの種類を見ていきましょう。
機能テスト
機能テストは、機能要件が仕様や要件に準じているかを確認するテストです。
クライアントの求める機能が漏れなく搭載されていることおよび、全ての機能が正常に動作するかを確認します。システムテストで実施するテストはいずれも重要ですが、機能テストは特に重要な工程です。ここで不具合の見落としがあるとクライアントやエンドユーザーのニーズを満たせなくなるため、品質を担保するためにも細心の注意を払って実施しなければなりません。
性能テスト
性能テストはデータ処理能力や応答速度、時間効率、データ容量などの性能を確かめるテストです。
性能テストの合格基準が甘いとシステムがスムーズに動作せず、エンドユーザーが不満を感じてしまう可能性が高いです。実際の使用環境を想定してシビアに合格基準を設定し、ストレスなく使用できるシステムに仕上がっているかを確認しましょう。性能テストは、ストレステストの中でも比較的終盤で行われることが多いです。
構成テスト
構成テストはシステムに推奨される環境設定で問題なく画面が表示され、基本動作が行えるかを検証するテストです。環境設定はLAN環境、サーバー環境、パソコンのOS、ブラウザ、スマートフォン・タブレットといったデバイスを指します。
ストレステスト
ストレステストはシステムに要求以上の負荷がかかった際に、システムがどのように動作するかを確かめるテストです。負荷テストの一つで、限界負荷テストとも呼ばれます。
想定を超えるアクセスを発生させたり容量の大きなデータを与えたりして、システムが耐えられるか、また処理の限界が来た段階で、適切な誘導を行うかを検証します。適切な誘導とは、アクセスが集中した際に順番待ちの画面が表示されるといった状態のことです。高負荷がかかった状況で適切な誘導ができれば、システムダウンを避けられます。
ロングランテスト
ロングランテストはシステムを長時間連続して稼働させた場合に、不具合が起こるかどうかを確かめるテストです。これも負荷テストの一つで、連続負荷テストとも呼ばれます。
短時間の稼働では問題がなかったとしても、長時間稼働させると不具合やシステムダウンといったトラブルが起きてしまう恐れがあります。エンドユーザーが長時間でも安定してシステムを利用できるように、ロングランテストは欠かせません。
ロードテスト
ロードテストとは要求の範囲内で最大負荷がかかった際に、システムが耐えられるかを確認するテストです。これも負荷テストの一つで、指定負荷テストとも呼ばれます。
ロードテストで要求の範囲内の最大負荷をかけた状態でも、負荷が大きくない平時と同じ処理能力を維持できれば、要求を満たした処理能力を持っているということです。
キャパシティテスト
キャパシティテストとは、システムが処理能力を落とさずに動作できる限界値を調べるテストです。これも負荷テストの一つに該当します。
キャパシティテストを実施することで、システムが耐えられるアクセス数やデータ量、トランザクション数などを把握でき、システムの最大負荷を明確にできます。
ユーザビリティテスト
ユーザビリティテストは、システムの操作性やUI・UXなどに問題点がないかを確かめるテストです。
実際にエンドユーザーにシステムを使用してもらって、エンドユーザー目線の問題点を把握して改善することで、より満足度の高いシステムをリリースできます。満足度の高い製品を生み出せば、自社の競争力向上やビジネスの成功にもつながるでしょう。
かつては会場を用意して対面型でユーザビリティテストが行われるのが一般的でしたが、近年はリモートで実施するケースが増えてきています。
セキュリティテスト
セキュリティテストは、要求されたセキュリティに関する機能が正常に動作するかどうかを確認することに加え、システムの脆弱性を見つけるためのテストです。
情報漏えいや不正アクセスを防ぐセキュリティ対策を行うことは、システム開発において欠かせないものです。セキュリティテストではクロスサイト・スクリプティングやSQLインジェクションといった手法で、万が一サイバー攻撃を受けた場合に機能が正常に働くか、どこにどのような脆弱性があるかを確かめます。
またユーザーのアクセス権限機能が正常に働くか、失効したパスワードが正しく無効になるかなどのテストも行われます。
障害許容性テスト
障害許容性テストは万が一障害が発生した際に、システムが最低限の機能を維持して動作するかを確かめるテストのことです。
障害が起きないように対策していても、不測の事態でサーバーダウンやハードウェアの故障などが起こってしまう可能性があります。障害許容性テストでは、起こり得る可能性がある障害を擬似的に起こして、その際のシステムの動きを確認し、復旧手順や適切な対応を確認します。
回帰テスト
ここまでご紹介したテストを実施して不具合が見つかった場合、システムを修正・変更しなければなりません。回帰テストはシステムを修正・変更した際、手を加えていない部分に新たな不具合や影響が出ていないかを確認するテストです。リグレッションテストや退行テストとも呼ばれます。
ただし修正・変更を加えるたびにあらゆるテストを繰り返していては、かなり効率が悪くなってしまいます。そのため実施する範囲・優先度をある程度限定して、回帰テストが行われることが多いです。
デグレードチェックテスト
デグレードチェックテストは、システムに修正・変更を加えた際に、以前のバージョンに戻っていないか、修正した不具合が再度発生していないかを確認するテストです。
回帰テストでは、修正・変更によって別の箇所に新たな不具合や影響が出ていないかを確認しますが、デグレードチェックテストでは以前の状態に戻っていないかを確認します。ただし回帰テストとデグレードチェックテストは、「修正・変更によって起こるさまざまな不具合をチェックするテスト」という意味で区別しないケースもあるようです。
システムテストの作業手順
システムテストはどのような手順で行えば良いのでしょうか。システムテストを実施する際の4つのステップと実施のポイントをご紹介します。
1.テスト計画
システムテストを実施する際はまずテスト計画を立て、システムテスト計画書を作成します。
クライアントからの仕様書や要件定義書を元に、テストの実施目的や対象範囲、実施方法、テスト環境、スケジュールなど、システムテスト全体の方針と方向性を決め、システムテスト計画書に盛り込みましょう。システムテストはこの計画書に沿って実施することになるので、明確に計画を立てることが大切です。
2.テスト準備
テストの方針と方向性が定まったら、テスト準備を始めていきましょう。
テスト準備では前段階で作成したシステムテスト計画書を元にして、システムテスト仕様書を作成します。実際にどのようなテストを行い、誰が担当するのか、どの程度の合格基準にするのか、どのようなツールを使用するのかなどを具体的に決めて、システムテスト仕様書にまとめます。作成したシステムテスト仕様書は、テストに関わる全ての担当者とクライアントに共有しましょう。
その後、システムテスト仕様書を元にして、テスト実施環境を構築します。システムテストは実際の使用状況を想定して行うため、使用する機器やサーバー、ハードウェア、OS、ミドルウェア、データなども全て本番と同じものを用意するのが原則です。
3.テスト実行
テスト準備が完了したら、いよいよテストを実行します。
システムテスト仕様書に沿って、各テストを正確に実施しましょう。テストで不具合を発見した場合は原因を解明します。同時に進捗状況や発見した不具合、修正内容、変更点などを管理して関係者に共有し、修正の方向性やリリースの可否などを検討します。
修正を加えた場合は適切なタイミングで回帰テストを実施して、問題がないかを確認してください。
4.テスト完了
システムテスト仕様書で定めた全てのテストを実行し、システムが正常に動作する場合は、システムテスト終了です。仕様書や要件定義書と照らし合わせて、問題がなければクライアントに引き渡します。
また今後のシステム開発や品質向上に活かすために、テスト結果や修正点を分析した内容をまとめたテスト終了報告書を作成し、関係者に共有しましょう。
システムテストは専門会社に外注して効率化しよう
システムテストは開発したシステムがクライアントが求めた仕様や要件を満たしており、一定の品質を保っているかを確かめるために欠かせないテストです。適切にシステムテストが行われないとリリース後に不具合が生じ、クライアントやエンドユーザーの信頼を失ってしまうため、念入りにシステムテストを実施することが大切です。
とはいえ、専門的な知識が求められるシステムテストを自社で行うとなると、人材を確保しなければならず、工数もかかってしまいます。担当者が開発に集中できる環境を整えるには、専門会社への外注も検討してみると良いでしょう。
システムテストを行っているおすすめの専門会社はこちらの記事で詳しくご紹介しているので、ぜひ参考にしてください。
おすすめのシステムテスト企業一覧
scroll →
会社名 | 特徴 | 得意分野 | 品質 | 費用 |
---|---|---|---|---|
株式会社AGEST |
|
・テスト設計/実施のアウトソース ・多端末テスト ・脆弱性診断 ・アジャイルテスト ・テスト自動化導入支援 |
ISTQBのパートナープログラムにおいて最上位となるGlobal Partnerを取得 | 要問い合わせ |
SOLIZE株式会社 |
|
ソフトウェア開発サービス、第三者検証サービス、国際規格コンサルティングサービス | ISTQBパートナープログラムGold Partnerの認定 ソフトウェア品質知識体系(SQuBOK)に沿った開発 |
要問い合わせ |
バルテス・モバイルテクノロジー株式会社 |
|
Web・モバイルアプリ開発、モバイルアプリのテスト・保守 | 要問い合わせ | 要問い合わせ |
株式会社メリテック |
|
業務システム、WEBシステム、組み込みシステム開発 | ISO9001、ISO/IEC 27001、ISO 13485:2016、ISO 22301:2019を取得 | 要問い合わせ |
株式会社ユー・アイ・エス |
|
Webシステム、業務システム、モバイルアプリ | 要問い合わせ | 要問い合わせ |
Bee Tech Asia株式会社 |
|
システム開発、WEB開発、アプリ開発、ベトナム進出支援 | 要問い合わせ | 要問い合わせ |
株式会社ブレーンネット |
|
システム開発、インフラサービス、移動体通信、エンジニア派遣・人材紹介、技術研修 | 要問い合わせ | 要問い合わせ |
株式会社SHIFT |
|
ソフトウェアテスト・品質保証、セキュリティ、DX、UI/UX、カスタマーサクセス | SHIFT独自の品質保証標準(SQF) | 要問い合わせ |
バルテス株式会社 |
|
Webサイト、モバイルアプリ、業務システム、家電・AV機器・OA機器、デジタル放送、金融・保険、開発SIer、アジャイル開発など | ISO/IEC 27001認証、JSTQB取得率が92%(入社2年目以降) | 要問い合わせ |
株式会社システナ |
|
移動体無線通信・基地局及びコアネットワーク検証、決済端末品質検証、フィールド試験、IoTデバイス検証、スマートデバイス・アプリケーション検証、Webアプリケーション検証、品質管理コンサルティング | 要問い合わせ | 要問い合わせ |
株式会社デジタルハーツ |
|
ゲームデバック | 要問い合わせ | 要問い合わせ |
テクバン株式会社 |
|
システムインテグレーション、ITプラットフォーム、セキュリティ、ビジネスアプリケーション、ビジネスアウトソーシング、ソフトウェアテスト | 要問い合わせ | 要問い合わせ |
株式会社ヴェス |
|
ソフトウェア・Web検証、組込み検証、その他検証・教育サービス | IVEC最高位のプラチナパートナー、ISTQBのゴールドパートナーに認定 | 要問い合わせ |
Sky株式会社 |
|
自社パッケージ商品開発・販売、ソフトウェア開発・評価・検証 | JSTQB保有者470名以上 | 要問い合わせ |
株式会社ベリサーブ |
|
品質向上、効率化、検証支援、セキュリティ対策、分野特化型サービス、テスト支援ツール | 要問い合わせ | 要問い合わせ |
株式会社プラスナレッジ |
|
ソフトウェア開発、Web・モバイル・アプリケーション評価、車載系ソフトウェア評価、品質コンサルティング、ニアショア事業 | 要問い合わせ | 要問い合わせ |
株式会社ウェブレッジ |
|
サービス品質検証・システム品質検証 | 標準テストプロセス(ISO-29119)を採用 ISTQB Platinum Partner・IVEC Silver Partner認定 |
要問い合わせ |