WRブログ

経験ベースのテスト技法

経験ベースのテスト技法

ソフトウェア開発では、多くのテストが考えられてきました。
それと同じようにテスト技法もまた、さまざまな種類があります。
今回は、その中の「経験ベースのテスト技法」について解説していきます。
■経験ベースのテスト技法
経験ベースのテスト技法とは、その名の通りテスト担当者の知識・経験・勘をベースにおこなうテスト技法のことで、
仕様ベースのテスト技法、構造ベースのテスト技法とは全く異なります。

「テスト担当者の知識・経験・勘をベースにおこなうテスト技法」と聞くと、かなり曖昧なテストに感じられるが、
過去の同じようなシステムで見つかった欠陥や、過去の事例をテストに反映することは、一般的に見てもよくあることです。

経験ベースのテスト技法は、論理的でもなく、決まった形式もないため、深く議論されることはないが、当てずっぽうでおこなうテストではありません。

■経験ベースのテスト技法のメリット・デメリット
メリット:
ソフトウェア開発では、しばしば仕様には書かれていない暗黙の仕様があります。
しかし、そのような仕様は、機能に落とし込むのも、それをテストすることも困難です。
また、どこにも記載されていないため、後々になって欠陥として出てくる場合もあります。
そのような欠陥を未然に検出するために、経験ベースのテスト技法は役立ちます。

しかし、経験ベースのテストだけでは、テスト担当者にかかる負担が大きすぎて、人的ミスの原因になりかねません。
そのため、仕様ベース・構造ベースの体系的なテスト技法でテストケースを設計したあとで、それを補うために経験ベースのテスト技法を用いるのが非常に有効です。


image_02301

デメリット:
経験ベーステストの一番のデメリットは、テストの効果がテスト担当者のスキルや経験に大きく依存してしまうことです。
また、これらのノウハウには、具体的な手順や論理性がない場合が多く、共有や引継ぎが難しいことも問題です。

■エラー推測
テスト担当者は、自身の経験や直感に基づいて、欠陥がありそうな箇所を予測していることがあります。
例として、以下のようなものがあげられます。

入力する数値に0を入れる:
計算の過程で割り算があると、0で割ることができずエラーが起きます。

nullの参照:
nullとは何のデータもない「空」の状態を表すもので、空文字とも呼ばれます。
システムから値を参照してくる際に、nullを参照してエラーが起きます。

空白のリスト、要素数が1のリスト:
リストとは本来、複数の項目を見やすくまとめることが目的であるため、大抵がデータは複数あることを前提に作られています。
そのため、リストに表示する内容が、データ的に空白であったり、1つしかなかったりすると、表示が崩れるなどのエラーが起こる場合があります。

うるう年:
4年に一度、366日あるため、1年を365日と決めているシステムや、年中稼働しているシステムなどでは注意が必要です。

経験ベーステストのテスト担当者は、上記のような数値や入力によって、エラーが起こりやすいことを経験的にわかっています。
そのため、優れたエラー推測ができるテスト担当者は、同値分割や境界値分析、原因結果グラフ技法などでは検出できないような欠陥も見つけることができます。

■フォールト攻撃
フォールト攻撃とは、欠陥や故障によって、内部の情報を不正に抜き取ることを言います。
ICカードなどのハードウェアを使ったものが多く、磁気や電磁波などを用いて物理的な操作をすることで、システムに意図的なエラーを発生させます。
故障利用攻撃ともいいます。
これらの対策やテストは普通のテストでは難しく、有識者や過去の事例をもとに、経験ベースのテストを実施します。
■探索的テスト
探索的テストでは、テストの目的が記録されたテスト計画をもとに、テストの設計→実行→記録までを、同時に実施していくテストです。
直前のテスト結果に応じて、次のテストを設定する臨機応変なテストが求められます。
一見、場当たりなテストに思われがちですが、誰でもできるテストとは違い、高いテストスキルを持ったテスト担当者が、
自身の経験と多くの情報をもとにおこなう、非常にレベルの高いテストです。
■まとめ
●経験ベーステストは高いテストスキルと経験があって、はじめて成り立つ
●経験ベーステストでよく用いられる、エラー推測の例
●探索的テストは、システムの動作をみて、臨機応変にテストをおこなう高レベルなテスト

ここまでで、経験ベースのテスト技法について詳しく解説してきました。
一見すると、とても難しいテストのように思われがちですが、私たちが普段、過去の経験からなんとなく予測して行動していることも、経験ベースの行動といえます。
経験ベースのテストもそれと同じで、きちんとテストの記録を残すことで、その後のプロジェクトでも活かせるかもしれません。


【参考文献】:
『ソフトウェアテスト教科書 JSTQB Foundation 第3版』

【参考URL】:
https://appkitbox.com/knowledge/test/20130115-17,(参照 2016年7月30日)
http://www.itmedia.co.jp/im/articles/1111/07/news188.html,(参照 2016年7月30日)
http://akademeia.info/index.php?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8#he5c89c5,(参照 2016年7月30日)
http://ameblo.jp/pictmaster/entry-11915099523.html,(参照 2016年7月30日)
http://ameblo.jp/pictmaster/entry-10110434070.html,(参照 2016年7月30日)