「WACATE 2013 夏」参加レポート(その3)――テストエンジニアもビジネスのことを考えてみようか
こんにちは、第3バイオリンです。
「WACATE 2013 夏」レポート第3弾です。今回は、2日目の様子をお届けします。
■テスト分析発表
今回の「WACATE 2013 夏」から実行委員に加わった藤原 洋平さんのセッションです。
1日目のワークショップ「みんなのテスト分析」の成果発表です。1グループ7分で、前日に作成した成果物について発表しました。
わたしたちのグループは、前日に考えたテストの「顧客」、テストの優先度についてまとめた資料の内容を発表しました。
発表が終わったところで、細川さんから質問が出ました。
「昨日、成果物を見たときから突っ込んでみたかったことですが、これはテストをすることで『儲かる』システムになるのでしょうか。テストをすることによって、システムを使うことで発生する損失を減らしたり、利益をもっと上げたりできるようになるのでしょうか。そういうテストが、この成果物の内容で実現できるのでしょうか」
その言葉に、グループのメンバー全員が顔を見合わせて固まってしまいました。テストの「顧客」を想定して、限られた時間とリソースで何を優先してテストするかまでは考えていましたが、そのテストをすることによって顧客にどのような利益をもたらすのか、というビジネスの視点については考えられていませんでした。
細川さんからは「テストエンジニアも、テスト技法とかテクニカルな部分だけでなく、ぜひビジネスの視点も持って、テストに取り組んでみてほしい」というご講評もいただきました。
これまで、テスト技法とか技術のほうの勉強を中心にやってきましたが、ここにきてそれだけではうまくいかないかも、と行き詰まりを感じていました。今回の成果発表と細川さんのご講評から、ビジネスの視点を持つことを目指してみようと思いました。
■分けてみよう 悩んでみよう 同値分割・境界値分析
WACATE実行委員の近江 久美子さんのセッションです。
まず、最初に「これからワークのお題を出します。それについて3分間考えてください。ちなみに質問は禁止です」と説明がありました。
そして配布されたプリントには同値分割、境界値分析のお題が3つ載っていました。しかし、よく見ると上限値の記載が抜けていたり、条件の組み合わせの考察が不十分だったりして、一体どこまでテストすればいいのかわからないものばかりです。しかし、質問禁止なので仕方ありません。疑問はまとめておいて、わかるところだけテストケースを考えてみました。
3分経過したところで、近江さんは言いました。
「このお題には、条件が不明確なところがあったと思います。皆さん迷っていたようですが、実はそれが狙いでした。このような場合にどういう条件を考えるか、またその理由は何か、皆さんに考えてほしかったのです」
そして近江さんは、「このセッションの本題は『同値分割、境界値分析と仲良くなるには』です。同値分割、境界値分析の良い面だけでなく、悪い面も学びましょう」と語りました。
まずは同値分割、境界値分析の解説です。同値分割は、「必要なテストを確保しつつ、テストの数を減らす」ことが目的です。まず、入力条件を同値クラスに分割します。そして、その同値クラスごとにテストデータを出していきます。一方、境界値分析は「境界値に潜みやすいバグを発見する」ことが目的です。ふたつの同値クラスの境界にあるデータをテストします。このとき、テストするデータがどちらの同値クラスに属するものかを明確にしておくのがポイントです。
同値分割と境界値分析の基本をおさらいしたところで近江さんから解説がありました。
「情報不足や曖昧なところがあると、同値クラスに分割するための粒度や、境界値がわかりづらいことがあります。そうなると同値分割、境界値分析はあっという間に行き詰まります。曖昧なところがあればすぐに確認しましょう。これは、テストが始まる前に曖昧な部分をはっきりさせるためのチャンスでもあります。とはいえ、やりすぎるとキリがなくなることもあるので、目的やコスト意識を忘れてはいけません」
その後、お昼をはさんでグループワークにとりかかりました。1日目の「みんなのテスト分析」で使用した「勉強カイザー」の仕様書をもとに、同値分割、境界値分析ができる機能を選択して、それぞれのテストケースを挙げていきました。
グループワークの発表のあとで、近江さんはこのセッションのまとめとして「同値分割も境界値分析も、知っている人は多い技法です。しかし、使いこなしている人は意外と少ない技法でもあります。基本的な技法ですが、現場の作業に落とし込むとなると案外難しい、という一面があります。使いこなせるようになる最良の方法は、使ったときの素敵な面と、困った面を両方知る必要があります。実際にそういう場面をたくさん経験すること、またテストの目的をふまえて、その目的によって活用することが肝心です。身近な技法を、よりよく使えるように考えてみましょう」と語って締めくくりました。
同値分割、境界値分析は、テストの本では最初のほうに記述されている、まさに「基本中の基本」の技法です。しかし、ちゃんと目的によって使いこなせているのかと聞かれると正直いってあまり自信がない状態でした。このセッションが、テストの基本をあらためて見直すことができる良い機会となりました。
■そのテスト、再考
WACATE実行委員の中野さやかさんのセッションです。
この2日間のグループワークの成果物、作りっぱなしではもったいないから振り返りをしましょう、成果物の再考、いつやるの? 今でしょう! というわけで、各グループで作成した成果物を振り返ることになりました。
わたしのグループでも、1日目の「テストクエスト」「みんなのテスト分析」そして2日目の「同値分割・境界値分析」のグループワークの成果物を順番に見ていきました。
最初の「テストクエスト」で「理想のテストとは?」という問いに対して、わたしのグループでは「お客様に自信をもって出せること」という回答を用意しました。その次の「みんなのテスト分析」ではお客様を想定し、テストの優先度を考えて出してみましたが、「これって本当にお客様のこと考えられているのかな? 単なる自己満足になっていないかな?」という意見が出ました。テストに優先度をつけること自体は大事なことですが、それをお客様に説明して納得いただけるものになっているだろうか、単に自分たちが作業しやすいからそうしているだけではないのか。そう言われてみると「いや、ちゃんとお客様のこと考えています」と自信をもって答えられなくなってしまいました。
こうして振り返りをしてみると、せっかく「テストクエスト」で考えたことがそれ以降のワークに反映されていないことがわかります。これには思わず、グループ全員で頭を抱えてしまいました。なかなか、お客様の視点を想像する、そのために自分の視点をずらしてみることは難しいなあと実感しました。
WACATEのプログラムで成果物の振り返りを実施したのは今回が初めてでしたが、一緒に成果物を作ったグループのメンバーと振り返りができる場を後日作るというのは難しいことなので(参加者の皆さんは日本各地から集まってきているので)、この場でそれができたのは良かったと思いました。
「WACATE 2013 夏」参加レポート第3弾はここまでです。次回は最終回、クロージングセッションの様子をお届けします。