●深く知る
ソフトウェアアプリケーションに対してテストを行う目的とは何でしょうか?ソフトウェアアプリケーションが正常に動かないことはそこまで大変なことなのでしょうか?もしも、想定通り動いていなかった場合に、どのようなことが起こりうるのかを紹介いたします。
1つ目は、システムへの不正アクセスです。ソフトウェアアプリケーションはオペレーティングシステム、ハードウェア、その他リソースに対して特別なアクセス権を持ちます。ソフトウェアアプリケーションは、オペレーティングシステム上で動作し、そこでファイルの生成機能などのオペレーティングシステムで持ちうる機能の一部の権限を得ています。これによって、ファイルの生成機能により想定しないようなファイルがソフトウェアアプリケーション経由で生成され、マルウェアの入り口となる可能性があります。融通の効いたアプリケーションは、その反面高い権限を得ているため、不正操作された場合の影響も大きくなります。
2つ目は、ソフトウェアアプリケーション経由での情報漏洩です。ソフトウェアアプリケーションは、クレジット番号や社会保険番号やビジネス資産などの重要な情報を取り扱います。サービスを拡大する際には、そのサービスが取り扱う個人データの範囲も大きくなってきます。もしも個人データをソフトウェアアプリケーション経由の操作で自由に扱えるとすれば、重要な情報の漏洩リスクを孕んでいるのです。
3つ目は、ビジネスシステムの機能の停止です。ほとんどの企業が情報システムを社内業務の一部として導入しています。企業によってはサービスを受けるお客さまが対面しているのはWebサービスだけであるということもあるでしょう。そのため、情報システムが崩壊してしまった企業は、ビジネスの継続した運用が難しく、致命的な状況に追い込まれます。
このようにソフトウェアアプリケーションの欠陥を、リリース前に消化しておく必要があります。ただしその一方で、現実的に起こりうるすべてのテストケースをテスト期間中に実施し解消するのは困難でしょう。ユーザーの利便性までを意識してテストケースを考えると、そのテスト作業は膨大になります。安全なリリースを迎えることは一つの目的ではありますが、そのためのテストが膨大になりリリースが出来なくなるというのは元も子もありません。つまり、度を越えたテストや修正というのも害になりえます。適切なテストケースの組み合わせにより重大なバグを効率的に発見し、優先順位をつけ対処していきましょう。