スキルアップ

「VSTeP」テスト技法解説

VSTePとは?

VSTeP(Viewpoint-based Software Test Engineering Process)は電気通信大学の西康晴氏が考案したソフトウェアテスト開発方法論です。 VSTePでは、テスト観点を列挙して、NGT(Notation for Generic Testing)という記法でツリー構造の図として整理します。 複数のテスト観点をグルーピングし、テストの全体像を示すテストコンテナ図を作成したり、具体的なテストケースの雛形となるテストフレームを作成することで、テストを開発していきます。

そのほかのソフトウェアテスト開発方法論として、「HAYST法」や「ゆもつよメソッド」などが知られています。
テスト設計全般についてはこちらのページもご覧ください。

https://www.veriserve.co.jp/service/detail/testdesign.html

VSTePのメリット

VSTePを用いると、テスト観点をツリー形式の図で視覚的に分かりやすく整理できるため、どんなテスト観点でどのようなテストを行うかが明らかになり、テストの抜け漏れを減らすことやテストの内容をレビューしやすくすることができます。

<VSTePの利用シーン>

ソフトウェアテストを作成する場合であれば、VSTePを利用可能です。 特に、テスト観点が明確になっておらずテストの漏れが発生している、テストが十分かどうかレビューすることが困難、といった課題がある場合に有効です。 過去バージョンのソフトウェアに対するテストケースがすでに存在する場合などは、テストケースからテスト観点を抽出して整理しなおすことで、全体としてどのようなテストを行っているかを可視化することもできます。

VSTepによるテストケースの作成手順

ここからは、以下の仕様を例として、VSTePによるテストケースの作成手順について説明します。

  • あるクラウドサービスではメールアドレスとパスワードを入力してログインできる
  • メールアドレス入力欄とパスワード入力欄には、半角英数記号のみ入力できる
  • メールアドレスは256文字以下の場合のみ有効とする
  • パスワードは8文字以上64文字以下で、英大文字・英小文字・数字をすべて含む場合のみ有効とする
  • 入力されたメールアドレス・パスワードが上記の文字数・文字種を満たさない場合は、入力欄にエラーを表示する
  • ログインするとマイページを表示し、「ログインに成功しました」というメッセージを表示する

ログイン画面のイメージ
ログイン画面のイメージ

この記事では、VSTePのやり方でテスト観点図およびテストフレームを作成し、テストケースを作成する手順について解説します。
テスト観点図の作成にはマインドマップツールが使われることもありますが、さまざまなテスト技法を手軽に利用してテスト設計に役立てられるGIHOZというツールを使えば、NGTの記法でテスト観点図を作成し、テスト観点を組み合わせてテストフレームを簡単に作成できます。

ステップ1 テスト観点を識別する

仕様書などのテストベースからテスト観点を識別します。上記の例では仕様書に記載のある「ログイン」という機能自体や、入力となる「メールアドレス」や「パスワード」、その入力の「文字数」や「文字種」、出力となる「エラー表示」や「メッセージ表示」などがテスト観点として挙げられます。上記の仕様書には記載がありませんが、「端末のOS」や「ブラウザ」といったテスト環境、「複数の端末で同時にログイン」するといったユースケース上発生しうる操作、「応答速度」などの非機能面の確認事項、「SQLインジェクション」などの起こってほしくない問題やテストで見つけたい問題もテスト観点として考えられます。そのほかにも、「機能適合性」や「互換性」や「使用性」などの品質特性もテスト観点となります。

ステップ1では、テストベースを読んだり、仕様の不明点を関係者に質問したりしながら、このような多様なテスト観点を洗い出していきます。VSTePではテスト観点は文章ではなく単語や熟語などの短い言葉で表現することが多いですが、決まった表現の形式はありません。またテスト観点の詳細度については、テストで使う具体的な値(例:6文字)よりも、抽象化したもの(例:文字数やさらに抽象度の高いもの)を、一般的にはテスト観点として扱います。

ステップ2 テスト観点を整理する

洗い出したテスト観点を、NGTの記法でツリー構造の図として整理します。このステップは、ステップ1と合わせて実施することが多いです。ステップ1とステップ2を合わせて実施することで、ツリーの同じ階層に存在する類似のテスト観点に気付いたり、親子関係がMECE(Mutually Exclusive, Collectively Exhaustive:漏れなく、ダブりなく)であるかを確認することでテスト観点の漏れに気付くことができます。

NGTでは、ツリーの親子関係以外にもテスト観点の関係性を自由に表現するために、関連線とステレオタイプいう記法が存在します。何かしらの関係性があるテスト観点同士を関連線で結び、関連線に対してステレオタイプと呼ばれる文字列を記載することで、テスト観点同士の関係性の具体的な内容を指定します。ステレオタイプは <<関係性の名称>> といった形式で、左右に括弧を付けて記載します。

GIHOZでは、専用のエディタを使ってNGTの記法でテスト観点図を容易に作成することができます。

テスト観点図の例
テスト観点図の例

ステップ3 テストフレームを作成する

テスト観点を整理したら、いくつかのテスト観点を組み合わせてテストフレームを作成します。 テスト観点は上記の例のように、機能・入力・出力などのさまざまな要素に分けて整理することがあるため、「ある機能に対して、ある入力を与えて、ある出力を確認する」といったテストを表現するために、テストフレームを作成する必要があります。 テストフレームを作成するには、テスト観点図からいくつかのテスト観点を取り出して、関連線でつなぎます。GIHOZでは、ドラッグアンドドロップなどの操作で、簡単にテストフレームを作成することができます。

GIHOZではテストフレームに具体的な内容を表す名前を付けることができます。テストフレームに適切な名前を付けることで、成果物を他の人に共有する際やレビューする際などにテストフレームの内容についての認識違いが起こるのを防ぐことができます。

テストフレームの例
テストフレームの例

ステップ4 テストケースを作成する

テストフレームを作成したら、テストフレームからテストケースを作成します。テストケースを作成するには、テスト技法を活用するのが有効です。例えば、上記の「テストフレーム2 文字数の境界値でメールアドレスの入力チェックのエラー表示を確認する」というテストフレームに対して、「境界値分析」というテスト技法を適用してテストケースを作成すると、下図のようになります。テストケースにはテストの入力条件となる値(今回の例ではメールアドレスの文字数)と、その値でテストした際の期待する動作を記述します。これ以外に、テストの実施手順も別途用意すると良いでしょう。

input(メールアドレスの文字数)

有効/無効

テストケースの意図

期待結果

1

0

有効

有効の下限値

エラーが表示されない

2

256

有効

有効の上限値

エラーが表示されない

3

257

無効

エラーの下限値

エラーが表示される

テストケースを作成する際は、「どのテスト技法を利用するか」「どの程度の詳細な条件や組み合わせまでテストするか」といった、テストケースを作成するための方針を、テストフレームごとに事前に検討すると良いでしょう。

GIHOZを用いると、テスト観点図とテストフレームの作成だけでなく、さまざまなテスト技法を利用してテストケースを効率よく作成することができます。

VSTePの注意点

VSTePを使ったからといって、必ず漏れのないテストを作ることができるというわけではありません。テスト観点を洗い出すだけではなく、整理する中で新たなテスト観点に気付いたり、関係者と共有しレビューを行うことで漏れを減らすことができます。

テスト対象のソフトウェアのテスト観点すべてを1つのテスト観点図に記載すると、ソフトウェアの規模によっては図が巨大になり、内容の把握やレビューが困難になります。その場合は、ソフトウェアの機能ごとやテストタイプごとなど、いくつかの範囲ごとにテスト観点図を分けて作成すると良いでしょう。

まとめ

ソフトウェアテストを開発する方法論の一つである、VSTePについてご紹介しました。VSTePを活用すると、どんなテスト観点でどのようなテストを行うかが明らかになり、テストの抜け漏れを減らすことやテストの内容をレビューしやすくすることができます。
GIHOZを使うと、テスト観点図やテストフレームの作成を直観的に行うことができます。効率よくテストを作るために、VSTePやGIHOZをぜひご活用ください。

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Ranking

ランキング

もっと見る