システムテストとは?3つの種類から実施の流れまで
COLUMN
最終更新日:2023年09月20日 / 投稿日:2022年07月21日
システムがうまく動作するかという観点から、システムテストはソフトウェア開発で欠かせない工程です。今回はシステムテストの概要に関して、3つの種類や実施の流れなどを解説するので、システムテストの詳細を知りたい人は参考にしてください。
目次
現代では、日々の生活やビジネスなど、さまざまな場面でソフトウェアを使用する機会が増えています。ソフトウェアに不具合が発生すると、不特定多数のユーザーに影響を及ぼす恐れがあるので、リリース前にバグが起きないよう十分に対策しておくことが重要です。
当記事では、システムテストの概要や目的、種類に加え、テストを実施する際の具体的な手順について詳しく解説します。システムエンジニアを目指している人やシステムテストについて知りたい人は、ぜひ参考にしてください。
1 システムテストとは?目的と観点
システムテストとは、システムの動作確認や不具合発見のために行われるテストです。システムテストは開発における最終工程として実施され、ソフトウェアそのものはもちろん、ハードウェアの環境や通信回線の状況も含めたチェックが可能です。
システム会社は、クライアントからの要望を受けてシステム開発を行い、システムテストを経て納品を完了させます。納品前の最終確認としてシステムテストを行い、クライアントの要求した内容を満たしているかどうか、不備がないかどうかを確認します。
システムテストにおける機能性以外の実施観点は、下記の6つです。
可用性 | ユーザーがシステムを継続的に利用できるかどうかの確認、メンテナンスや障害復旧にかかる時間の把握 |
---|---|
性能・拡張性 | データ容量や処理速度、アップデート対応における柔軟性の確認 |
運用・保守性 | バッチ処理やバックアップにかかる所要時間の確認 |
移行性 | 現行システムからの移行方法や移行期間、データの種類などの確認 |
セキュリティ | 不正アクセスへのセキュリティ診断、認証・利用制限の確認 |
システム環境 | システムの設置スペースの広さや温度、湿度、電圧などの環境確認 |
テスト自動化ツールならATgo
1か月トライアル無料:詳細はこちら
2 システムテストの種類
システムテストを大きく分けると、「確認テスト」「評価テスト」「負荷テスト」の3種類です。3種類のテストはさらに細かな項目に分類され、それぞれでテストの目的や確認できることが異なります。
ここでは、システムテストの3種類のテスト内容について解説します。
2-1 確認テスト
確認テストの種類は以下の2つです。
- リグレッションテスト
システム修正によって他の箇所に問題が発生していないかを確認するテストであり、「回帰テスト」とも呼ばれます。リグレッションテストは、システム修正を行う度に必ず実施します。ただし、工数が増えすぎることがないよう、修正箇所に関連する部分のみを対象とするといった工夫が必要です。
- デグレードチェックテスト
システムに修正を加えた際に、再度バグが発生していないか、前のバージョンに戻っていないかなどを確認します。リグレッションテスト同様、修正を行う度に実行します。
2-2 評価テスト
評価テストの種類は以下の3つです。
- セキュリティテスト
情報漏洩や不正アクセスを防ぐためのセキュリティ機能が正しく動作しているかを確認します。不特定多数のユーザーが利用するシステムのテストでは、セキュリティテストの重要度が高くなります。
- ユーザビリティテスト
ユーザーにシステムを利用してもらい、システムの使いやすさや満足度についてヒアリングするテストです。報告された問題点の改善がユーザー満足度の向上に直結するので、システム開発会社にとってメリットの大きなテストとなります。
- 障害許容性テスト
障害発生時の機能維持や障害原因の早期発見、解決にかかる時間などを確認するテストです。障害発生後にデータの回復をスムーズに行えるかどうか、機能の再確立が可能かどうかについてもチェックします。
2-3 負荷テスト
負荷テストの種類は以下の5つです。
- 性能テスト
システムの性能に関して、要求される処理を問題なく実行できているかどうかを確認します。処理や応答にかかるスピード、処理可能なデータ容量などもチェックして、ユーザーがストレスを感じずにシステムを利用できるよう最適化を行います。
- ロングランテスト
システムを長期間連続して稼働させた際に、パフォーマンスの低下や不具合が発生しないかを確認するテストです。システムの安定した稼働は、ユーザーの定着率を左右する重要な要素になります。
- ストレステスト
システムへ同時に大量アクセスを行い、どの程度の負荷に耐えられるかを確認するテストです。競合条件や排他制御などを検出して、過負荷をかけた場合の動作を検証します。
- ロードテスト
通常の負荷をかけた場合と過負荷をかけた場合とを比較して、システムのパフォーマンスや耐久性を確認するテストです。負荷のピーク時に正常な動作ができるかどうかをチェックします。
- キャパシティテスト
パフォーマンスの質を維持できるトランザクションの最大数を知るためのテストです。キャパシティテストによって、データ量やユーザー数が増加した場合のシステムの挙動を確認し、その結果をもとに増強方法を検討します。
3 【STEP別】システムテストの流れ
システムテストの流れには、主に4つのステップがあります。一般的なシステムテストの流れは下記の通りです。
- テスト計画・テスト項目を作成する
- テスト計画を実施する環境を構築する
- テストを実施してバグの有無を確認する
- テスト結果を報告する
ここではシステムテストの流れについて、4つのステップの詳細を解説します。
3-1 【STEP1】テスト計画・テスト項目を作成する
テスト計画では、システムテストの目的や対象範囲、具体的な実施方法やスケジュールなど、テストの全体像や方向性を定めた計画書を作成します。テスト対象となるのは、基本的には開発したすべての機能です。
テスト計画を立てたら次にテスト項目を決定し、仕様書を作成します。システムテストでは、すべてのパターンを漏れなくチェックすることが重要です。ホワイトボックステスト、ブラックボックステストなどの手法を用いて、網羅的にテストを行うことを徹底しましょう。
3-2 【STEP2】テストを実施する環境を構築する
システムテストの具体的な内容が決まったら、次はテスト環境の構築です。テスト本番で使用するマシンやハードフェアと同じものを用意して、正常に動作するかを確認します。
また、マスターデータやトランザクションデータなども、利用するのは原則として本番と同じデータです。本番と同じデータを使用しなければ、想定外の不具合などを確認することができません。
3-3 【STEP3】テストを実施してバグの有無を確認する
作成した仕様書通りにテストを実施し、エビデンスを取得します。バグを発見した場合は原因を究明し、対象箇所を修正します。プログラムの修正が完了したら再度テストを実施して、バグの解消を確認することが必要です。
すべてのテスト項目で想定通りに動作することを確認できたら、システムテストは終了となります。
3-4 【STEP4】テスト結果を報告する
テスト実行後の結果の報告は、信頼度成長曲線などのグラフを用いて行われます。
信頼度成長曲線とは、テストの進捗に応じたバグ発生数の変化を表すグラフです。一般的に、テスト開始時には多くのバグが発生し、修正を重ねるごとに減少する傾向が見られます。
テスト終盤になってもバグ件数に変化が見られない場合、システム内にバグが残っているケースもあります。結果報告の内容によっては、再度システムテストを行うことも考えられるでしょう。
4 システムテストで不具合が見つかったときは?
システムテストにおける不具合は、テストケースの把握漏れや、テスト自体の質の悪さなどが原因となって起こります。
テスト中に不具合が見つかった場合でも、まずはすべての項目についてシステムテストを終わらせましょう。他のテスト工程で不具合が発生する可能性もあるので、まとめて修正作業に取りかかるほうが効率的です。また、納品時期が差し迫っている場合などは、一部の機能でシステムテストを実施しながら、別の箇所の修正を並行して行うケースもあります。
まとめ
システムテストとは、システム開発の最終段階で行われる動作確認テストです。システムテストの役割は、クライアントからの要求が不備なくシステムに反映されているかどうかを確認することです。
システムテストの種類は「確認テスト」「評価テスト」「負荷テスト」の3つに分けられます。それぞれの分類の中にさらに細かく複数のテスト項目が定められており、どのテストもシステムの品質管理には欠かせない内容です。テスト中に不具合が見つかってもテストを中断せず、すべての不具合を確認してから修正に取りかかるのがよいでしょう。
システムテストについてはこちらも参考にしてみてください。
エンジニアリングを進化させる品質メディア「Sqripts」