関連の方向性について

 2012/4/3に行われたWARAI(関西テスト勉強会)の受講者の方から頂いた質問です。

NGTはUMLのクラス図によく似た記述形式ですが、UML同様、関連に方向性があったりするのでしょうか?それともテスト観点に、依存関係の方向などなく、すべてフラットに抽出すべきでしょうか?(あるテスト観点と「その前提となるテスト観点」などは依存関係が存在しそうにも思えます。。。)

 ご質問ありがとうございます。まずお答えを先に申し上げてしまうと、関連に方向性をつけるかどうかはモデリングを行うテスト設計者が決めて構いません。

 ちょっと分かりにくいですね。NGTという記法としては、順序依存性を持つ関連に対して開き矢印で方向性を表します。一方、組み合わせテストの必要性のように方向性を持たない関連に対しては、矢印の無い直線で表します。また、関連の表す意味についてはステレオタイプで表します。WARAIではその辺りを詳しく説明する時間がありませんでしたね。申し訳ありませんでした。

 ところで、ご質問で気になるのが「前提となるテスト観点」という言い回しです。この「前提」とは、どういう意味でしょうか。もしこれが、回帰テストのように、Aというテスト観点から導出されるテストスクリプトを実施した後でBというテスト観点から導出されるテストスクリプトを実施する、という実施順序しか意味していないのであれば、その関連Xをテスト要求モデルに記述すべきではありません。その関連Xはテスト要求を満たすことに何も寄与しないからです。例えば、Bのテスト観点の必要性がAのテスト結果によって変化する(Aのテスト結果によってはBのテストをしなくてもよくなる、など)のであれば、テスト要求モデルに記述すべきです。もし、実施順序をそう定めることで実施効率を向上したいという意図があるのであれば、テストアーキテクチャ設計モデルに記述すべきです。これは記法の問題ではなく、モデリング技術の問題ですね。

 NGTの説明を聞くと記法に気を取られてしまいがちですが、モデリング技術も重要です。NGTはステレオタイプなど自由度の高い記法を指向していますので、皆さんがモデリングしたい構造を把握していればきちんと記述できます。ですので記法の限界を気にするよりも、記述しようとしている構造はどういう意味でどういう位置づけなのか、を考えることに時間を割くようにして下さい。そうすれば実り多いテスト開発が可能になると思います。頑張ってくださいね。