テスト観点とは:品質担保に欠かせない視点

テスト観点とは:品質担保に欠かせない視点

ソフトウェアテストは、ソフトウェア製品の品質や信頼を担保するためには欠かせない工程であり、開発プロジェクトを成功に導くカギを握っていると言っても過言ではありません。製品の品質を支えるためにはテストを正しく実行する必要がありますが、そこで重要な要素となるのが「テスト観点」です。

執筆者:LEUNG

テスト観点の必要性

例えば、ある日、上司から「それをテストしてください」と言われたとします。その場合、どのようなテストを思いつくでしょうか。具体的な指示がこれだけでは確認すべきことが漠然としすぎていて途方に暮れてしまうでしょう。ある人は自分の思いつきに任せてテストを始めるかもしれません。別の人は目の前の機能ばかりをテストするかもしれません。また別の人は取扱説明書に書かれている操作を順番にテストするかもしれません。このほか、ソフトウェアテストの本に書かれているテスト技法を試す人もいるかもしれません。

このように「テストしてください」という指示だけでは、適切なテスト行うことはできません。正しくテストを実行するためには、テストの方向性が明らかになるような具体的な指示、つまりテスト観点が必要になるのです。

テスト観点の捉え方

テスト観点についてGoogleで検索してみると、さまざまな解説を確認することができますが、その多くは以下のように内容になっています。

「ソフトウェアが正しく動作するかを確認するための項目、着眼点、発想の仕方といった、いわばテストを行う上での「切り口」のようなもの」

このほか、以下の資料では「テスト観点」について次のような捉え方を紹介しています。

テスト観点をうまく議論し使い回すためにできることを考える(長崎QDGセッション資料)


● 製品のリリース前に、その故障を取り除くためにテストすべき項目を「テスト観点」と呼ぶ

● テストの「観点」とは何だろう?
    ・ テスト対象の持つ、テストすべき側面
    ・ テスト対象が達成すべき性質
    ・ テスト対象(及び含む世界)を、テストの立場からモデリングしたもの
       ≫ テストする必要がない側面は、モデリングする必要がない
       ≫ 達成する必要がない性質は、モデリングする必要がない
    ・ 抽象的で、階層構造を持つ


西 康晴(2006), テスト設計におけるモデリングのための記法の提案, JaSST, '06 in Tokyo

例えば、以下のようなログイン画面を例に考えてみた場合、GUI(グラフィカル・ユーザー・インターフェース)や入力チェック、画面遷移などがテスト観点に該当します。

拡大画像はこちら

実際、テスト計画書やテスト戦略書ではテスト観点も構成要素の1つであり、テストの目的に則したテストをするためには、適切なテスト観点を抽出する必要があります。

テスト観点リストの作成方法

一方で、そうしたテスト観点をまとめた「テスト観点リスト」が形骸化し、実務で使われないという問題が発生しているケースもあります。上記に紹介した定義ではテスト観点とは「テストを行う上での切り口のようなもの」とありますが、実際の切り口には色々なものがあります。しかし、具体的にどのような切り口があるのかが曖昧であるために、テスト観点リストをうまく整理できず、結果的に実務で役に立つリストになっていないというケースも少なくありません。

このため、本記事ではどのようにテスト観点を決めていけばよいのかを考える上で、テスト観点モデリング方法をご紹介します。実際、テスト観点リストを作成する場合、最初にテスト観点をいくつかの段階に分類し、大きな観点から小さな観点へと分類を進めていく方法が有効です。

以下ではソフトウェア品質の評価に関する国際規格であるISO/IEC 9126の指標とテストタイプを併せて紹介しながら、テスト観点リストの一例として解説したいと思います。まず指標としては下記の図表に記載された項目について検討することが可能です。

表1 分類の基準として利用できる指標の一例

拡大画像はこちら

次にテストタイプについては以下の図表に記載したテスト観点をもとに検討することができます。

表2 ISO/IEC9126の指標に基づいたテストタイプと観点リストの一例

拡大画像はこちら

上記のテスト観点リストはあくまでも一例ですが、こうして出来上がったテスト観点リストを見ると、これまで開発やテストを経験した人であれば、他にも数多くのテスト観点を思いつくことができるのではないかと思います。それらを共通の認識として洗い出し、プロジェクト内で整理しながら、最新のテスト観点リストとして更新していくことが重要です。

仮にみなさんが関わる開発現場にテスト観点リストが存在していないようであれば、まずは上記の説明を参考にリストを作成し、更新していく作業をお勧めします。また、既にリストが存在しているのであれば、それを参照するだけでなく、より充実した内容へと更新していくことが重要です。こうした取り組みを推進し、新機能が追加されるたびに、あるいは新たな欠陥が発見されるたびに継続的にリストを更新することができれば、将来のテストをよりレベルの高いものへと進化させることが可能になります。

参考文献:
【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践:石原 一宏, 田中 英和, 田中 真史( SBクリエイティブ)
テスト観点に基づくテスト開発方法論VSTEPの概要:西 康晴
テスト観点をうまく議論し使い回すためにできることを考える:KUMIKO ISERI