どしろうと製作所:WebLog

どしろうと製作所のBlogバージョンです。
「どしろうと製作所」のHPの記載内容とはあまり関係無いです。
気が向いたときのみ更新します。
テストカタマリーの紹介3:カタマリーの記法とツール(前編)
「テストカタマリー」と呼ぶ謎の記法についての紹介シリーズです。
今回は「テストカタマリー」の記法とツールについて紹介してみます。
少々長くなりましたので、前編・後編に分けて紹介します。

※注意事項
・本記事ではテストカタマリー「記法」に対する説明を優先しております
・テスト設計の手順を紹介するものではありません

関連記事のまとめはこちら

現状、テストカタマリーの記法はある程度決めておりますが、より良いアイデアがありましたらバージョンアップしていきたいと思っております。
何かありましたら、Twitterで「@NoriyukiMizuno」にコメント頂ければ改善したいとも考えております。


■具体例で使用するテスト対象

以下、記法の説明は前回紹介したiPhone「時計」アプリと、以下リンクの「カラオケシステム」のテストの具体例を用いて説明をするスタイルとなります。
まあ、前回の内容で把握された方は今回の記事は読み飛ばしても良いでしょう^^

カラオケシステム:テスト設計コンテスト->OPENクラス テストベース「カラオケシステム(ASTERオリジナル)」
 ※直リンはこちら


■テストカタマリーの記法(単体のカタマリー)

まずは単体のテストカタマリーの記法です。
テストカタマリーで表現された範囲で保証する/確認する項目を表現できるようにしております。
手元に設計用お絵かきツールとして「astah*」が有りましたので、astah*で記述できる形式にしています。
※UMLのクラス図が記述できるツールであれば活用して表現できるはずです。

テストカタマリー
単一カタマリー
こちらのボックスの1つが「テストカタマリー」となります。テストカタマリーで示された「名前」で特定される機能や画面などの範囲に対してテストケースの塊が含まれている想定です。

例としてはこのような感じです。
・iPhone「時計」アプリの「アラーム->アラーム登録・表示」の例
あいぽん例

・「カラオケシステム」における「予約をする->予約登録をする」機能に対するテストの例
カラオケ例

・「カラオケシステム」における「外部機器互換」に対するテストの例
カラオケ例2

以上のように、テストカタマリー1つの粒度(大きさ)は画面1つであったり、とある機能であったり、非機能項目、とあるテストタイプであったりと自由に出来ます。
多少大きいサイズだとしても、この後「has-a」を用いた表現で分解することも可能ですね。

個々の記述項目は以下のようにしております。
カタマリー細かく説明
※クリックで拡大

〔樵
既に記載したようなテストを実施する対象の粒度を決めるような名前を設定します。

▲タマリーに対して確認や保証を行う品質要素

「…品質要素」という名前は仮の名前で、良い名前を付けることが出来ればと考えておりますが、現状は上記のように呼ぶことにしています。
品質特性、欠陥検出のためのガイドとなりそうな用語を入れると良いと考えております。

<この項目に入りそうな内容>
感覚共有のために、品質要素の項目に入りそうな内容をいくつか挙げておきます。
・品質特性
 機能適合性、性能効率性、互換性など
 ※ここでは品質特性の説明は行いません。
・ガイドっぽいワードや重要な気がかり項目
 タイミング、レスポンス、処理重ね合せ、…

さらに、「不具合確認」なども入れる場合もあるかもしれません。

これらは、「テスト全体でこんなの確認するよ!」が共有できて「具体的にはこの部分で確認するよ!」をざっくりと決めることが出来ると良い要素ですので、多くても10〜20個までにした方が良いでしょう。

また、上記では「レスポンスと性能効率は被る」といった意見もあるでしょうが、個人的には多少被ったとしても抜けが減りやすいように言葉を用意するのが良いのかなと思います。(この辺は派閥があるかもしれません)
少々難しく言葉にすると「テストの興味事項で共有した方が良い概念」かつ「比較的抽象的な言葉」を設定すると良さそうです。

<この項目の記述方法>
現状、「テストタイプや具体的なテスト名称:品質要素」という記述をしております。
名前ムズイ品質要素
※クリックで拡大

「具体的なテスト名称」とは湯本剛氏の「ゆもつよメソッド」を知っている人には「テストカテゴリ」相当の内容です、と言っておきます。
※最後の記事で参考文献はまとめて紹介します。

例としては「操作レスポンス:性能効率性」といった書き方です。他の例は以下。
・各機能確認  :機能適合性
・同時入力・処理:信頼性
・機器互換   :互換性

この辺は、厳密に出来なくもないですが、比較的ゆるく使ってもらうくらいで良いです。


テストケースとなる項目

具体的にテストケースとなる項目を記載します。
こちらも良い名前があると良いのですが、現状は上記のように呼びます。

<この項目に入りそうな内容>
感覚共有のために、「テストケースとなる項目」に入りそうな内容をいくつか挙げておきます。
・アラーム編集
・データ登録最大確認
・外部機器組合せ

<この項目の記述方法>
前回の例では「テストケースまで落としこめるサイズ」と紹介しておりますが、デシジョンテーブル1つか2つ程度に対応するくらいの粒度の項目が並ぶと良いでしょう。推奨は1つのデシジョンテーブルに対応するサイズです。
DTは1つと対応がベスト
※クリックで拡大

なお、このテストケースとなる項目をさらに詳細検討すること(テスト詳細設計)でテストケースに落とし込まれます。こちらは前回の記事を参照ください。

テストカタマリー上では以下のような記述方法を行っています。
長かったですね
※クリックで拡大

具体例としては以下のようになります。
・アラーム編集(結果網羅):各機器確認
・データ登録最大確認(性能評価):登録データ数
・外部機器組合せ(2因子網羅):機器組合せ確認

ただ、こちらもそれ程厳密でなくても良いでしょう。

なお、△鉢の項目に関しては以下のように可視性を適用していますが、殆ど気にする必要はありません。
簡単な可視性
※クリックで拡大

可視性を活用して分類も出来なくないですが、効果感が薄い気もしますので適当でも問題なさそうです。
折角使えるので、好きに定義して使うのも良いでしょう^^


■テストカタマリーの記法(詳細カタマリー図)

テストカタマリーで表現した1つのボックスですが,テストで考えるときにはもっと複数に分割して考えるべき…ということは多いです。逆に、全体図としてはシンプルなボックスが並んでいる表現の方が見やすいですし、全体を共有しやすいです。
そのため、テストカタマリーを階層構造的に表現できるようにしています。

また、共通する/繰り返し出てくるテストに関しては「パターン」としてまとめることも可能としております。
以下の、「全体図で表現される1つのテストカタマリーの構成を示す図」を「詳細カタマリー図」と呼ぶことにしています。
例は、既に何回も出ておりますが、iPhone「時計」アプリの「アラーム」に関するものです。
何度か出た例
※クリックで拡大

has-a関係

テストカタマリー単位で考えるとしても、さらに分解が必要な場合にはhas-a関係を用いて分割を行います。
前回の例で紹介した以下の図となります。
はずあ
※クリックで拡大

つまり、階層構造を作ることが出来るということです。例えば、DFDに対応したテストを考える場合には、DFDにおける階層構造と対応できる形式でテストカタマリーの関係に当てはめることも可能です。
DFDとの比較
※クリックで拡大

▲僖拭璽鷏兢

テストカタマリーの一部に繰り返し要素がある場合、もしくは機能やテストケースの特徴などで典型的なパターンがある場合にはパターン継承が役立ちます。
パターン継承
※クリックで拡大

「単なる共通部分」に加えて、より抽象化して「機能の特徴をパターン化」することも可能となります。

なお、パターンはアブストラクトやステレオタイプでパターンのテストカタマリーと分かるようにしております。
パターンを継承したテストカタマリーもステレオタイプなどで分かるようにすると、全体カタマリー上でのパターン適用状況を俯瞰できるようにできます。
※パターンに関しては、後ほどの記事でも紹介します。

4慙

上手く使用する方法は現状検討中でもありますが、とあるテスト(テストカタマリー)を使用してテストするような場合に関連線を引くことも出来ると共通活用出来そうです。
関連〜
※クリックで拡大

パターンで表現しても良いのでは?と思われるかもしれませんが、以下のように分けてます。
・パターン:「品質要素」を継承する
・関連  :他テストカタマリーの「テストケースとなる項目」を使用する


少々長くなってしまいましたので、後編に続きます。
後編では、テストカタマリー全体を示す「全体カタマリー図」の表現方法とツールの紹介を行います。
| 技術 | 22:18 | comments(0) | - |









     12
3456789
10111213141516
17181920212223
24252627282930
<< September 2017 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ CATEGORIES
+ ARCHIVES
+ LINKS
+ PROFILE
+ OTHERS
このページの先頭へ