システム開発における業務と言えば、要件定義やプログラミングを真っ先に思いつくのではないでしょうか。花形とも言える業務です。
その反面、テストは地味な作業となっており、開発後のテスト工程はどれも骨の折れる作業ばかりです。
しかし、テストを軽く見てはいけません。
大手小売業のアプリ不具合や大手金融機関の大規模システム障害などはニュースにもなり、記憶にも新しいことでしょう。いまやシステムの不具合は社会に大きな影響を与えます。
そのようなリスクもキチンとテストをしていれば、未然に防ぐことができます。
Contents
「テスト観点」とは「テストの着眼点」

かつてのシステムと異なり、現代のシステムは複雑なものとなっています。システム単体の機能面が充実しているため、難解度が増しています。さらにネットワークとの接続や外部システムとの連携など、さまざまな要因が絡み合うようになりました。
そのため、バグを完全になくそうとすると、途方もない時間やコストが必要になります。むしろ、バグのないシステムは不可能とも言えるでしょう。
そこで必要になってくるのが、「テスト観点」になります。バグのないシステムが不可能である以上、リスクを回避するためにはポイントを決めたテストが必要です。
そのポイントこそがテスト観点です。テスト観点は数多くあり、挙げていけばキリがありません。今回は代表的なテスト観点をピックアップして、ご紹介します。
・状態遷移:テスト対象の状態が変わった際の動作や表示を確認
例)電子レンジが稼働中/停止中に停止ボタンを押下する
・同時動作:テスト対象へ同時に命令をした際の動作や表示を確認
例)電子レンジが停止中にスタートボタンと停止ボタンを同時に押下する
・セキュリティ:ソフト・ハードの両面からシステムに脆弱性がないか確認
例)リクエスト強要やSQLインジェクションなどを実施する
・ユーザビリティ:実際に使用するユーザが使いにくくないかを確認
例)ターゲットとなるユーザを想定して、テスト対象を使う
先述のとおり、テスト観点は数多く存在します。そのため、すべてのテスト観点を適用することは不可能です。
理由は至ってシンプル。すべてのテスト観点を適用するには、時間やコストがかかりすぎるからです。
テスト観点は目的から逆算して、作成する

テストでバグを減らすことは、確かに大きな目的の一つです。ですが、システムやアプリケーションには必ずターゲットや目的があります。
そのターゲットや目標から逆算して、テストの目的を決めていきます。そして目的からテスト観点を作り上げていきます。
たとえば、子ども向けのスマートフォン・アプリケーションを製造したと仮定します。この場合もバグがないことはもちろん重要です。ですが子どもが使用する以上、異常な動作に対しての制御も大事になってきます。
このようなケースではテストの目的が「子どもが異常な操作をしても、制御が効いていることを確認する」になります。テストの目的が決まると、適用するテスト観点も自然と絞ることができます。
この目的を達成するためには「同時動作」「割り込み動作」「高頻度」「連続動作」といったテスト観点が浮かび上がってきます。
もちろん、達成したい目的は数多く存在していることでしょう。しかし、すべてを達成することができないケースがあります。その場合は優先順位を決めて、テストの目的を定めることをおすすめします。
このように何のためにテストをするのかという目的が決まっていれば、自ずとテスト観点も決まってきます。
テスト内容が一目瞭然! テスト観点のメリット

テスト観点があることのメリットは、テストの実施内容が一目瞭然となることです。
テスト観点があることで、今回どのようなテストをしたのかがすぐに分かります。
たとえば状態遷移は実施、同時動作は未実施という具合です。これはリスクを把握することでもあり、開発終了後の反省にもつながります。
ある程度の準備期間が必要! テスト観点のデメリット

テスト観点のデメリットは準備作業が増えることです。
大きなデメリットにはなりませんが、テスト観点を作るにはそれなりの時間を必要とします。
目的に対して、相応しくないテスト観点を適用すると全く効果がありません。適用するテスト観点も慎重に検討する必要があるため、やはり時間を要します。
テストは地道な作業。しかし必要不可欠な存在
テスト観点を用いることは、システムの目的・目標を達成できているかの証明になります。またテストの内容も一目瞭然となるため、未然にリスクを把握することができます。
確かにテスト観点を作成したところで、テストが骨の折れる作業であることは変わりありません。
しかし、今後はテスト観点を作成し、目的意識を持ったテストにしてみてはいかがでしょうか。少しステップアップした、一段上のテストになることは間違いありません。
[文] [編集]サムライト株式会社