システムテストとは何か? なぜシステムテストが必要なのか

はじめに

ソフトウェアの開発では、完璧なプログラム・アプリケーションを完成させるために欠かせない工程が数多く存在します。そのうちの不可欠な工程のひとつとして、システムテストがあります。システムテストというのは、プログラマーまたは開発者にとってよく知られている用語ですが、IT業界とは関係ない多くの人にとってはあまり馴染みがないものです。そこで今回は、システムテストについて一緒にみていきましょう。

システムテストとは


定義

システムテスト(ST: System Testing) は、「総合テスト」または「システム試験」とも呼ばれており、全ての機能が統合した状態で、ソフトウェアまたはシステム全体の全てのコンポーネントと機能が要求と仕様書に沿って動作するかどうかを確認する工程です。そして、さまざまなハードウェアとソフトウェアに統合した場合にも仕様書どおりに安定した動作を確保することが求められます。

アプローチ方法

現在のソフトウェア開発モデルでは、高品質のソフトウェアを作成するために通常、単体テストと結合テストが完了した後にシステムテストを実施します。また、テストのアプローチ方法はブラックボックステストの技法に基づいて行われることが一般的です。すなわち、コーディング、プログラミングなどのシステムの内部動作に関する知識を必要とせずに、ソフトウェアの外部性能のみを確認する手法で実施されます。

システムテストのメリット

テクノロジー製品の開発プロセスにおいてはソフトウェア検証の工程が非常に重要です。「なぜシステムテストが必要なのか」という質問に答えるために、以下にシステムテストのメリットを簡単にまとめましたので、ご覧ください。

●国際標準(ISO/IEC)を満たした製品・アプリケーションの品質確保が可能

●顧客要求または仕様書の記載に沿ってソフトウェア製品の性能・機能の動作を確保することが可能

●ソフトウェア製品のシステム全体の検証を実施することで本番環境で発生し得るエラーと不具合を最小限に抑えることが可能

●顧客から製品・アプリケーションに対する信頼と満足を獲得することが可能

●製品に発生しているエラーと不具合を何度も繰り返して検証する必要がなくなり、作業効率の向上が可能

システムテストを活用することで解決が可能な状況例

次にシステムテストをうまく活用することで解決が可能な状況について、以下にいくつか例を挙げながら考えてみましょう。

例1. 確認ボタンを押した後、オンライントランザクションの処理に失敗した場合

例2. 大容量、高負荷時システムでの故障が発生した場合

例3.ECサイトでカート内の商品注文が許可されない場合

例4. 既存gmailのアカウントで新規作成の処理にエラーが発生した場合

例5. システムが突然にクラッシュし、期待通りデータが回復できない場合

例6. システムにソフトウェアをインストールする際、想定以上に時間がかかったり、エラーが発生したりする場合

例7. Webサイトの応答時間が予想より長く、ページの更新や予約処理などがうまくできない場合


このように、新規の製品・アプリケーションを開発・運用する際にはさまざまな問題が起こり得るほか、実際には大きな障害が発生するなど、多くの困難に直面するケースがあります。こうした状況を事前に防ぎ、製品・アプリケーションに潜む故障を最小限に抑えるためには、システムテストの実施を通じ、システム全体の機能の動作を徹底的に確認することが重要になります。

おわりに

システムテストは、ソフトウェア製品の品質や信頼を確保するために欠かせない工程です。このためソフトウェア製品の規模にかかわらず、市場に投入する前にあらゆる製品のシステムテストを開発工程にしっかり組み込むことが必要です。

なお、システムテストというのは特定の欠陥を検出する上で欠かせない工程ですが、仮に欠陥が見つからなかったとしてもシステムに不具合・エラーが存在しないというわけではありません。システムテストでは欠陥があることを示せても、欠陥が存在しないことを示せるわけではない点は、あらかじめ注意しておきましょう。