システム屋にとって避けては通れない「テスト」。実はシステムを構築するスキルには「効率のよいテスト計画が立案できるスキル」も大きな部分を占めています。(もしかしたら作るスキルより重要かも?)
今回はテスト計画スキルについて私なりの考え方を記載したいと思います。
やってはいけないテストは無い
開発したアプリケーション、構築したシステムは各種テストを経ることで、その完成度を高めていきます。
いざテストとなった場合、まずはテストすべき項目を定義しますよね。実際の所ほとんどの場合でテスト項目は無限といっていいほど思いつきます。例えば・・・
・同じテスト項目でも実施する時間帯で結果が変わるかもしてない
・Webアプリケーションの場合テストに使用するブラウザ&バージョンは星の数ほどある(その全部でテストする?)
・データ入力に関するテストでは入力する文字列の組み合わせは無限に存在する
これらのテストはやってはいけないのでしょうか? そうではないですよね、困ったことにどんなテストも無価値なものはなく「やってはいけないというテスト」というものは存在しないのですよ。
テスト計画スキルは絞り込みスキル
しかし、実際のプロジェクトではテスト期間も工数も限られているので無限に存在するテスト項目をすべて実施するわけにはいきません。
そこで無限のテスト項目から実際に行うテスト項目を絞り込んでいく必要があります。
この「絞り込みを上手く行うこと」がテスト計画のスキルと言えます。
テスト項目絞り込みのポイント
・前提条件から絞り込む
例えば利用条件(例えば使用するブラウザや使用時間帯)が限られている場合は、それ以外のコンディションによるテストは省いていいことになります。
・不具合が出た時の重要度から絞り込む
万一不具合が出た場合に業務に重大は影響を及ぼす機能については重点的にテストする必要があります。逆にいえば業務への影響が小さい場合はテストの密度/優先順位を下げます。
・他システムとのインターフェースは重点的にテストする
上記重要度の話と少し被りますが、他システムと連携する機能については重点的にテストします。理由は他システムとの連携処理は経験上(認識違いによる)不具合が発生しやすい傾向にあるからです。
・代替手段のない機能は重点的にテストする
これも上記重要度の話と少し被りますが、仮にその機能に不具合が発生しても代替手段があればテストの密度/優先順位を下げます。逆にいえばテストの難易度が許容できない場合、代替手段を用意することでテストを軽減するといったアプローチも考えます。
・ホワイト/ブラックボックステスト
上記ポイント以外に絞り込みに使用できるアプローチとしては「ホワイトボックステスト」と「ブラックボックステスト」の考え方があります。この考え方も非常に有用なので是非活用してください。(「ホワイト/ブラックボックステスト」の詳細については各種Webサイトをご参照ください)
テスト計画スキルは汎用性が高いスキル
テスト計画のスキルは、システムを作るスキルに比べて環境やプログラム言語へあまり依存しません。
ですので「テスト計画スキル」をしっかりと身につれければどんなプロジェクトでも力を発揮できると思いますよ。是非トライしてみてくださーい。
コメント