はじめに
今回は「システムテスト(ST:System Testing) とは何でしょうか」、「システムテストにはどんな分野がありますか」、「システムテストにはどんな手法がありますか」、「テスターになるにはどんな準備が必要ですか」といった質問にそれぞれ回答していきたいと思います。では、一緒に見ていきましょう。
システムテストとは
定義
システムテスト(ST: System Testing) は、「総合テスト」又は「システム試験」とも呼ばれています。システムテストとは、顧客要求と期待に沿って統合後のソフトウェア製品の機能をすべて動作するかどうかを確認する技法です。
現在のソフトウェア検証工程によると、システムテストは単体テストと結合テストを実施した後に行うことになっています。
システムテストの主な分野
システムテストの対象となる分野は一般的には以下のとおりです。
●パフォーマンス:エラーが発生せずにシステムがユーザー要求に従って動作することを確認します。
●セキュリティー:コンピュータのデータ、アプリケーション、ネットワーク、デバイスへの不正アクセスなどのセキュリティー違反の対策を行います。
●回復性:もしシステムがクラッシュした場合、期待どおり速やかにシステムが回復できるかどうかを確認します。
●インタフェース:システムテストの工程にもソフトウェア製品のインタフェースが検証されます。インタフェースであろうと機能であろうと顧客要求通りソフトウェア製品の動作を確認します。
●可用性:システムが継続して稼働し、安定して利用できることを確認します。
●構成可能性:開発環境から本番環境に移動する際、故障が発生していないようにソフトウェア製品をインストールできるかを確認します。
●持続可能性(サステナビリティ):大容量と高負荷を処理する際にシステムが問題なく動作することを確認します。
●ドキュメント:要求資料、仕様書の内容が正しいか、実際状況に運用する時に問題ないかを確認します。
システムテストの種類
システムテストではソフトウェアテスト技法のようにソフトウェア製品の機能テストに限らず、非機能テストの検証も行われています。
次にシステムテストにおける主なテスト手法を紹介します。
●機能テスト
システムの機能要件通りにシステムが正常に動作すること、追加・修正した機能およびその他現行機能が満たされていることを確認します。
●ユーザビリティテスト
追加・修正した機能が理解しやすく、使いやすいものになっているか、視認性や操作性、統一性を確認します。
●リグレッションテスト(回帰テスト)
追加・修正したプログラムが正常に動作すること、さまざまなシステムに連携する場合にエラー、不具合などが発生せず、安定して稼働することを確認します。
●リカバリーテスト(回復テスト)
障害が発生している場合、システムが速やかに回復し(リカバリー)、正常に動作することを確認します。
●負荷テスト
システムに平時の負荷を与えた場合と高負荷を与えた場合(大容量データや多数のデータを与えた場合、一定時間内に多数の処理を行う場合など)に、正しく動作するかを確認します。
●セキュリティーテスト
ユーザ信頼や安全、保全要件を充足していることを確認します。
テスターは該当のシステムテスト種類を選択するためどんな基準が必要でしょうか?
さまざまな顧客要求に応えるために、システムテストにはどのようなテストを行うべきかに関して多くの選択基準が存在します。具体的には下記の基準になります。
●どの程度の規模の会社のシステムなのか
システムテスト手法の運用は会社の規模によって異なります。例えば、中小規模の企業と比べた場合、大規模な会社ではテスト実施の工数を節約するためにリグレッションテスト(回帰テスト)の工程に自動テストを導入するケースが多いです。
●利用可能な時間はどのぐらいか
テスト工程にかける時間は通常、適用するテスト手法によって左右されます。このため、テストに使える時間が限られる場合には、リグレッションテスト、セキュリティーテストなどの手法が選ばれることが多いと言えます。
●テスト用のリソースはどの程度か
テスト工程においては、テスターのリソース(人数)などが主要な問題になることはありません。ただ、大手のソフトウェア開発会社で働いているテスターであれば、さまざまなノウハウや自動化ツールなどを活用できるケースも多いため、より効率的なテスト実行が可能なことが多いでしょう。
●最先端のテクノロジーについてどれだけ好奇心を持っているか
また、テスト実行の工程をさらに効率化するためにはテスター自身がどれだけ最先端のテクノロジーに対して好奇心を持っているかどうかも大切なポイントになると思います。テスターは常に新しいテクノロジーを導入し、作業効率を改善し続けるためのアイデアを提案していくことが求められているからです。
おわりに
まとめると、システムテストは製品の品質管理プロセスに不可欠な手法ですが、製品の使用目標に応じて最適なテストを選択、実行することが重要です。