システムテストとは、ソフトウェア開発やシステムの開発などに必要なプロセスのことで、開発における最終段階で行うことが一般的です。最終的なチェックとなるため重要度が高いことが特徴です。
そのためシステムテストはより精度を上げることが重要です。この記事ではシステムテストの種類や手順について詳しく説明していきます。
システムテストとは?
システムテストとは、ソフトウェア開発やシステム開発において最初段階で行われるテストのことです。実際にソフトウェアやシステムを使う環境において行うため重要な役割を持ちます。
仕様書通りに動くかどうかを確認するようにしましょう。様々な視点でテストを行い、不具合やバグを見つけて修正することも重要です。
システムテストではソフトウェアだけでなくハードウェアも含めて想定通りに動くかどうかの確認が必要です。システムテストは結合テストや単体テストなど様々なテストが必要であることから、効率よく進めることが重要です。
システムテストの実施目的
システムテストは実際にユーザーがソフトウェアやシステムを利用し、問題なく使えるかどうかの確認を行います。全体的にテストする他システム単体ごとに確認をすることでよりシステムテストの精度をあげることが可能です。
システムテストの観点
システムテストを行う上で、要件定義書に記載されている内容通りにシステムが動作するかどうかを確認することが重要です。要件定義書がこれから利用するユーザーが求めることをまとめているため、要件定義書に記載されてる内容通りに操作すれば問題がないのです。
システムテストの主な種類は7つ
システムテストの主な種類は次の7つが挙げられます。
- 機能テスト
- 性能テスト
- 負荷テスト
- ロングランテスト
- ユーザビリティテスト
- 回帰テスト
- セキュリティテスト
1.機能テスト
機能テストとはソフトウェアやシステムを利用するユーザーが必要とする機能が、正常に動いているかどうか確認するテストです。一般的に結合テストや単体テストが終わった後に行われます。
機能テストはプログラム以外にも、機能を表現するものも含まれており機能仕様書や要件定義書も対象となります。さらにドキュメントされていないものが対象になることもあるため機能テストを行う担当者は十分な知識が求められるのです。
2.性能テスト
性能テストとはデータの処理能力やデータ容量、システムの応答速度がユーザーが利用するにおいて十分であるかどうかを判断するテストです。最終的に性能をチェックするテストであるため、機能テストと同様に最終段階で行われます。
性能テストはユーザビリティに直結するテストであり、ユーザーが使っていて不快に感じないようなシステムであるかどうかの確認を行います。ユーザーの不満度が高い場合は顧客満足度の低下につながるため、性能テストはシステム開発をする上で重要なテストなのです。
3.負荷テスト
負荷テストとは多くのユーザーが一度に利用した場合など、負荷に耐えられるかどうかの確認を行います。負荷があった場合に多くのユーザーが利用できないようであれば、大きな損害となる可能性があります。
そのため性能テストと同じように顧客満足度と大きな関連性があるため、細かくチェックすることが重要です。
4.ロングランテスト
ロングランテストとは、一定の時間続けて稼働させても不具合が出ないかどうか確認するテストです。システムは長時間継続して稼働することが基準となっており、長時間使うことによってパフォーマンスが落ちるようであればユーザーにとっての評価が落ちることなります。
5.ユーザビリティテスト
ユーザビリティテストとは実際にユーザーが使った時にスムーズに利用できるかどうかを確認するテストです。性能の良いシステムやソフトウェアにあっても、使い方が難しければ顧客満足度が低下します。
場合によっては実際にユーザーに操作してもらい、フィードバックを反映させる場合もあります。
6.回帰テスト
回帰テストとはプログラムを変更した場合に発生する可能性がある不具合を確認することです。
特に大規模なシステムの場合は、不具合やバグに対して修正を行った場合に他の部分で問題が出る可能性があります。そのため回帰テストをすることが重要なのです。
7.セキュリティテスト
近年情報漏洩をはじめ外部からの攻撃により様々な被害を受けるケースが増えています。そのためシステムテストにおいてセキュリティテストがより重要となっているのです。
セキュリティテストにおいては設計上のミスやコーディングエラー、ハードウェアとソフトウェアの脆弱性を主に確認します。 セキュリティテストを進めていく上で脆弱性のある部分が見つかる場合があり、よりセキュリティ面で強化することが可能です。
システムテストの段階でセキュリティテストを充分に行っていないと、開発後の修正がより難しくなります。
システムテストの手順は4ステップ
システムテストは一般的に次の手順で進めていきます。
- テストの計画書を作成する
- テストの仕様書を作成する
- 実施する環境を構築する
- テストを実施する
ステップ1.テストの計画書を作成する
システムテストを進めるためにはまず計画書を作成する必要があります。テストの計画書には、テストをする目的や実施方法、実施する範囲、方向性などを明確にすることが重要です。
ステップ2.テストの仕様書を作成する
テストの企画書をもとに仕様書を作成します。 テストの仕様書にはテスト作業を明確に書く事が一般的であり、テストデータやシナリオ、テストケース、合格基準などを設定します。
テストの仕様書およびテストの計画書は、システムの開発者やテスト担当者、さらにはシステムを利用するユーザーと共有をすることが重要です。
ステップ3.実施する環境を構築する
仕様書ができたら実施する環境の構築をしていきます。実際にユーザーが使う機材やハードウェアを準備し、システム全体の動作を検証していきます。
携帯以外にもトランザクションデータをはじめとしたデータもユーザーが利用するものを使うことで、予定通りに動作しているかを確認することが重要です。
ステップ4.テストを実施する
環境の構築が完了したら実際にテストを実施します。テストが終わった段階で発見された不具合は、該当の箇所を修正した段階で再度テストを行います。
テストを行い問題が無くなった状態でシステムテストが終了となるのです。
システムテストでよくある3つの質問
システムテストでよくある次の質問をまとめました。今後システムテストを導入する場合は参考にしてください。
- システムテストで不具合を検出した場合はどうすればよいですか?
- システムテストの仕様書に記載すべき項目は?
- システムテストを外注することは可能ですか?
質問1.システムテストで不具合を検出した場合はどうすればよいですか?
システムテストを行っていく上で不具合を検出した場合は、課題管理台帳などに記載をしておくことが必要です。不具合を見つけるためにテストを中断するのではなく、不具合をメモしておいて次のテストを進めることが重要です。
システムテストを効率的に行う目的の他、さらに重要な不具合を検出できる可能性もあるのです。
質問2.システムテストの仕様書に記載すべき項目は?
システムテスト仕様書には主に次の項目を記載していきます。
- テストの概要
- 性能テストやユーザビリティテストなどどのようなテストをするのかを明確にするテストケース
- テストをする環境
- テストのプロセス
- テストをする担当者
- テストの結果を確認する担当者
- テストを進める予定
質問3.システムテストを外注することは可能ですか?
システムテスト外注することはできます。システムテストを外注するメリットとして、経験やノウハウが重要なプロに任せられる他、開発担当者がテストを行うとどうしても見逃してしまうことがあるためです。
システムテストの質をより高めることで顧客満足度をあげることができるため、システムテストをアウトソーシングする需要が高まっています。
まとめ
システムテストはシステムやソフトウェアの開発において、最終段階で行うテストです。機能面やユーザビリティなど様々な項目においてテストが行われます。
システムテストが不十分なまま納品をしてしまうと、実際に運用してから不具合が見つかった場合に修正がしにくくなるほか顧客満足度が下がります。そのためシステムテストはシステム開発全体の観点から見ても重要なプロセスとなるのです。