WRブログ

テストケース作成のポイント

テストケース作成のポイント

多くのソフトウェアが消費者の手によって使われている近年。ますます便利になる一方で、その品質に向けられる目も厳しくなってきました。品質向上のために不可欠なテストケース作成のポイントを理解し、効率的なバグ発見に役立てましょう。

■テストケースが重要になってきた背景

ソフトウェアに重大な欠陥が見つかることは珍しいにしても、ECサイトやSNSでは簡単に商品のレビューを投稿できるようになりました。少しでもバグがあると「使えない」「全然ダメ」といったネガティブな口コミがすぐに広まってしまい、メーカーにとってはシビアな世の中になってきたようにも感じます。

それがソフトウェアだろうと生活雑貨だろうと、商品試験や商品テストは、あらかじめ予想される欠陥やバグを発見し、その発生を防ぐための重要な工程です。
特にソフトウェアに関しては、テストの重要性はより高くなる傾向があります。身近な生活雑貨とは違い、特に最新のソフトウェアではユーザーが使い方に慣れていないことが多い上、想定外の使われ方をされる可能性があるからです。

こうしたソフトウェアならではの特徴を踏まえ、市場評価の高い商品を実現するために必要なものこそが「テストケース」です。

■テストケースとは

「テストケース」の国際的な標準規格を定めているIEEE Standard 829-1983では、「(テストケースとは、)各テストアイテムに対して入力、予想される結果、実行状態を文章化したもの」とされています。想定されるユーザーの使い方から必要なテストの要件や、手順、具体的な方法などを文章化したものです。「この入力を行って、この結果が出力されれば、そのソフトウェアは正しい動作をしている」ということを記録として残し、他の担当者や開発者などが確認できるようにしておくためのものと言えるでしょう。

では、なぜテストを担当者の頭の中の作業で完結させず、わざわざテストケースとして文章化する必要があるのでしょうか。

■テストケースはなぜ必要なのか

テストケースを作成する目的は、「テスト漏れの防止」と「テストの透明化」です。

冒頭に書いたように、ソフトウェアはユーザーによって想像を超える様々な使い方や入力の仕方が想定されます。テスト担当個人の判断でテスト内容を決めてしまうと、テスト項目のもれが発生し、重大なバグ発生の要因となります。

また、リリース後にバグが見つかった場合、開発工程でどのようなテストを行ったかが把握できなければ、また一から考えられるテストを繰り返し実施するという無駄な工程が発生することになります。効率的なテストを行うためには、第三者が見てもわかる透明化された状態でテストケースを残しておく必要があります。

では、テストケースを書くにあたってまず押さえるべきポイントは何でしょうか。

■テストケースを書くにあたって

テストケースを書くためには、まずテストの種類を知っておく必要があります。一般的には次のようなものが挙げられます。

機能テスト 要求されている仕様(目的)を満たしているかどうかを検証するテスト
ドメインテスト 境界値分析など、関係性がある複数の変数を同時に検証するテスト
スペックベーステスト 設計書や仕様書、マニュアルなど、ドキュメントの記述に対して、ソフトウェアが同等の機能を有しているかを確認するテスト
ストレステスト 最大設計負荷およびそれ以上の負荷の下で検証するテスト
回帰テスト プログラムに変更を加えた際、それによって新たな不具合が起きていないかを検証するテスト
ユーザーテスト ユーザーに実際に使用してもらうテスト手法
シナリオテスト 想定される一般的な使い方を検証するテスト手法
状態遷移テスト 画面や設定の遷移が正しい条件で分岐・変化するかを検証するテスト
自動化によるボリュームテスト テストケースの作成から結果チェックまでを自動化し、多量に実施するテスト手法
探索的テスト 事前に作成したテストケースに従うのではなく、直前のテスト結果に応じて、次のテストを施していく手法

それぞれによって書き方は異なりますが、文章によるもの、箇条書きによるもの、マニュアル形式などが考えられます。これだけのテスト領域をカバーしていれば理想的ではありますが、その書き方にも工夫が必要です。

■良いテストケースの書き方

テストケースの前提として、「何度も、また何人もが利用する」ということがあります。つまり、そのテストケースに従ってテストすれば、誰もが同じ工程を踏み、同じ結果が得られるものでなければ、文章として残す意味がありません。「曖昧なところがない」ことが、いいテストケースのポイントです。

例えば、「求人情報を検索する」というテストケースを作成する場合、以下の2つの事例を比べてみるとその差は一目瞭然です。

テストケース作成例

■効率的にテストケースを書くためのポイント

一般に、一つのソフトウェアで発生する全てのバグを100とした場合には、75が発見されればそのテストは成功だと言われています。限られた時間で全てのバグを発見することは不可能で、テストケースの作成においては、手当たり次第にひたすら実行するようなテストでは極めて非効率であり、また精度も怪しいものとなります。テストケースは、効率的にバグを発見することを踏まえて作成される必要があります。

そのためにできる方法の一つが、「不具合分析」です。「80%のバグは、20%のコードに含まれている」とも言われており、バグには一定の規則性が見られることがあります。この際、テストチームだけではなく、開発チームと一緒に分析を行うことが重要で、効率的にバグを防止することに繋がります。

また、発見したバグやエラーの規則性から推測して、テストケースを作成することも重要なポイントです。

■まとめ


・テストケースとは、各テスト対象に対して入力、予想される結果、実行状態を文章化したもの

・良いテストケースは「曖昧さ」がなく、誰がやっても同じ結果が得られる

・開発チームとともにバグを分析し、効率的なバグ発見を進める

ここまでテストケースと、その作成のポイントを解説してきました。効率的、効果的なテスト実施に向け、改めてテストケースの作成方法の見直しを図っていきましょう。

【参考文献】
現場の仕事がバリバリ進む ソフトウェア テスト手法(初版)、(株)技術評論社
【参考URL】
http://www.itmedia.co.jp/im/articles/1111/07/news173.html
https://inforium.nttdata.com/trend_keyword/227.html