「WACATE 2012 夏」参加レポート(その2)――探索的テストを探索する
こんにちは、第3バイオリンです。
「WACATE 2012 夏」参加レポート第2弾です。今回は、技法のワークショップ、イブニングセッション、そしてディナーセッションと夜の分科会の様子をお届けします。
■ワークショップ「実践!組み合わせテスト設計」
井芹さんと近江さんの講義が終わったところで、組み合わせテスト技法を使うワークショップに移りました。
まず、井芹さんから「組み合わせテストの設計には準備が大切。いきなり入力(要求仕様)からテストケースを作成しようとしてはいけない」と説明がありました。
いきなり要求仕様からテストケースを起こしても、せいぜい記述の矛盾しか検出できません。つまり、要求仕様の裏にある、隠れた意図までは取り出せないということです。また、重要な組み合わせとそうでない組み合わせの区別もできず、テスト全体の整合性を取ることが難しくなります。
テスト設計の前には、適切なテスト計画、分析、上流設計が欠かせないのです。
それでは、よいテスト設計とは、いったいどのようなものなのでしょうか。井芹さんは、以下の流れで設計を行うとテスト漏れが減る、と説明しました。
入力(要求仕様) → 発散(隠れた仕様や意図を出す) → 整理 → テスト設計(ここで技法を使って組み合わせる) → テストケース作成
ここで参加者のひとりから「発散と整理によってなぜ漏れが減るのか」という質問が挙がりました。それに対して井芹さんは「発散によって仕様の抜けや漏れをチェックすることができます。さらに、整理することによってテストの全体構造がわかるようになります」と回答しました。
発散と整理によって因子と水準を抽出したあとは、組み合わせの前に単機能テストを実施します。個々の因子や水準に問題ないことを確認したあとで、組み合わせ要因のバグに注力するのです。
組み合わせ要因のバグに注力するために、異常値の水準は除外します(異常値は何と組み合わせてもエラーが出力されるため)。また、禁則(組み合わせることができない組み合わせ)も除外します。ただし、禁則はテストしないわけではなく、「そもそも組み合わせできないこと」「組み合わせても害がない(例:メモリ破壊を起こさない)」ことを確認するためにテストを実施します。
ここで、実際にテスト設計をするためのミニワークショップに移りました。
まずはお題について個人でデシジョンテーブルを作成し、次にグループで各自の作成したデシジョンテーブルについて議論しました。
わたしのグループでは、因子の取り方について、後々の仕様変更の可能性を考慮したメンバーが何名かいました。なぜその因子と水準を抽出したか、フロー図を残すと後からレビューしやすい、という意見を出したメンバーもいました。
また、他のグループからは「デシジョンテーブルを作成することで禁則が明確になる」という意見も出ました。
久々にデシジョンテーブルを作成しましたが、各因子の関係や、今後の仕様変更の可能性を考えながらテーブルを作成するのは楽しかったです。
■イブニングセッション「良いテストをするための手法と習慣」
WACATE実行委員の加瀬 正樹さんのセッションです。
加瀬さんは「良いテストをするための手法とは、『適切なテスト技法を選んでいること』『適切なテスト条件を選んでいること』これら2つが成立していることです」と説明しました。
テスト技法だけが良くなると、効率は意識できるけど的外れなテストになりがちです。つまり、バグが残りやすくなってしまいます。また、テスト条件だけが良くなると、分析はしっかりできるものの非効率的なテストになりがちです。つまり、どこまでテストしたかを数値化できなくなります。だから、テスト技法とテスト条件、両方を良くしていくことが大切なのです。
ここで加瀬さんは、ラルフチャートという技法を例に出しつつ、その作成のコツについて説明しました。さらに、良いテストをするための習慣についても説明してくれました。良いテストをするための習慣は、次に挙げる4つです。
- テスト条件の見直し
- 要因・因子の見直し
- 粒度・水準・範囲の見直し
- テスト技法の見直し
見直しばかりじゃないかと思われるかもしれませんが、良いテストをするためには、上に挙げた項目をちょくちょく見直して、必要があればそのつど修正をすることが大切なのです。ラルフチャートは、その見直しがしやすい技法なのです。
最後に加瀬さんは「『適切』の解はひとつではない。いろいろな人と情報交換をしたり、体験談を聞いたりして探してほしい」と話して締めくくりました。
わたしは、別のワークショップでラルフチャートを一度だけ使ったことがありますが、そのときはテスト条件や因子・水準の見直しまで考えることができませんでした。そのとき以来ラルフチャートを使う機会はなかったのですが、一度勉強しなおしたほうがいいかも、と思いました。
■招待講演「ICST 2012 組み合わせテスト・ワークショップに参加して」
ASTER(ソフトウェアテスト技術振興協会)の辰巳 敬三さんのセッションです。
辰巳さんは、今年4月にカナダのモントリオールで開催された「ICST 2012」というワークショップに参加しました。そのときの経験をどうしてもWACATE参加者の皆さんに伝えたい、と、実行委員長に交渉して実現したセッションです。
「ICST 2012」とは、IEEEが主催するソフトウェアテストの国際会議です。今回が5回目の開催で、27カ国250名の参加者が集まったそうです。しかし日本からの参加者はわずか4名と、かなり少ないのが現状です。
辰巳さんは、ICST 2012に併設された組み合わせテストのワークショップに参加しました。組み合わせテストの国際ワークショップはこれが世界初だそうです。組み合わせテストへの関心は世界的にも高まっているらしく、特に2004年から研究論文が急増しているそうです。
ワークショップでは、組み合わせテストの流れ、組み合わせテストの適用性、組み合わせと補完の手法などについて議論がなされました。辰巳さんはここで組み合わせテストの最新動向について多くの研究論文に触れたのですが、日本人の論文がないことが少し残念だったそうです。しかし「裏を返せば、今から書けば日本初になれるということ」と語りました。
このワークショップで、辰巳さんはなんと飛び入りでプレゼンを行ったそうです。このときのことを辰巳さんは「実は英語はあまり得意じゃないけど、組み合わせテストの歴史について英語版の年表を作って持っていったのが役に立った」と笑って話しました。英語が苦手でも、持ちネタがあるとコミュニケーションが取りやすい、ということです。
最後に辰巳さんは、海外のテスト技術や研究動向にも目を向けようと語りました。そして、海外の人とのコミュニケーションのために、自分の創意工夫を論文やツールという形にしておくとよい、特に英語の論文にしておけば、思わぬチャンスが訪れることがある、とも語りました。実際、辰巳さんがこのワークショップに参加したきっかけも、30代のころに書いた英語の論文が注目されたことでした。
海外のワークショップのことを生き生きと話す辰巳さんを見て、「好きなことで外国人とコミュニケーションできるのが楽しい」とおっしゃる気持ちがよくわかりました。わたしも機会があれば、国際会議に一度参加してみたいです(旅費とか言葉とかどうするのかは、まあ、その……)。
■ディナーセッション
1日目のワークが終わったあとはディナーセッションです。温泉にゆっくり浸かったあとで、三浦海岸名物のマグロ料理を堪能しつつ、実行委員の楽しいトークに耳を傾けました。
途中、実行委員の皆さんがゴールデンボンバーの「女々しくて」の歌とダンスを披露する場面もありました。それにしても、実行委員の皆さんはいつも忙しそうなのにいつ練習をしているのか、謎です。
■夜の分科会
ディナーセッションのあとは、夜の分科会です。いくつかのテーマが設けられ、各自それぞれが興味のあるテーマについて議論を繰り広げます。
わたしが参加したのは以下のテーマです。
「探索的テストについて語ろう」
JaSST’11 Tokaiで登壇された都築 将夫さんがセッションオーナーとなり、探索的テストについて議論することになりました。
まず、都築さんから「探索的テストについて文献が少ない」という悩みが寄せられました。探索的テストについては専門の文献はなく、テスト技法についてまとめられた文献にも、探索的テストについてはあまり体系だった解説がなく、用語についてわずかばかりの説明があるのみというのが現状だそうです。
今回、「WACATE 2008 冬」のクロージングセッションで講師をつとめた松尾谷 徹さんがいらっしゃっていました。都築さんの悩みに対して松尾谷さんは「探索的テストはテスト対象によってアプローチが異なる。テスト対象が決まらないとテストのやり方が決まらない」と話しました。なるほど、だから文献でも体系だった解説がないのかもしれません。
さらに松尾谷さんは「テスト対象だけではなく、人の問題もある。例えば、テスト設計のスキル不足や、コミュニケーション不足といった問題がそう」とも話しました。これに対して都築さんは「人の問題には興味がある。人によるクセのようなものを見たいと思っている」と返しました。
その後は探索するポイントをどうやって決めるか、という議論になりました。怪しいところとそうでないところを区別してテストする、テスト担当者同士が連携して情報を共有しながらテストするetc.……いろいろな話が出ましたが、なかなかこれといった決定打はでないまま、時間が来てしまいました。
わたしも分科会の最後のほうで都築さんと話し合いましたが、探索的テストというのは体系だったテスト方法がまだないので、なかなか現場に取り入れるのが難しいのかもしれません。でもだからこそ、チャレンジのしがいがあるのかもしれないとも思いました。
「WACATE 2012 夏」参加レポート第2弾はここまでです。次回は、2日目のワークショップの様子をお届けする予定です。