この記事は1月9日(土)および10日(日)に神奈川県三浦海岸(マホロバ・マインズ三浦・別館)において開催されたWACATEの参加レポートです。
WACATEは2007年から年2回のおおよそボーナスの出る頃、つまり夏(6月または7月) 、冬(12月)に合宿形式で開催されるソフトウェアテストと品質に関する勉強会です。17回目となった今回は例年より遅い時期、1月の開催となりました。1月ということで、WACATE2015冬~2016年テスト始め~という年始らしいタイトルがつきました。
WACATEには夏は1つのテーマを深く掘り下げる、冬はテストに関するトピックを出来るだけ広く浅く、というように別のコンセプトがあります。今回は冬なので広く浅く、です。2日間にみっちりと詰め込まれたソフトウェアテストに関するテーマに取り組んだワークショップの様子について参加者を代表して私、ちかみがレポートします。
当日は朝9:30から会場となるマホロバ・マインズ三浦・別館の玄関を入ってすぐの所に受付が開設されました。実行委員に氏名を告げて、参加費を支払い、資料やネームカードを受け取ります。その後、ワークショップ会場のある10Fまでエレベータで上がります。会場はエレベータを出てすぐの会議室です。
会場にはテーブルでいくつかの島が作られていて、テーブル番号が①~⑪のように振られているので、朝もらった資料から自分の名前を探して、指定のテーブルへ着席します。そうこうしているうちに、他の参加者も続々と集合してくるので同じテーブルに着席した参加者や実行委員の方に挨拶したり、ネームカードに名前を記入したりしながら開始時間を待ちます。今回は満員御礼の参加者59名ということで座席はすべて埋まり、会場には早くも参加者の期待(一部不安?)と熱気が満ちていました。
いよいよ始まる―ようこそWACATE2015 冬へ!
開始時刻の10:00を回り、いよいよ2日間のワークショップが始まります。オープニングでは実行委員の並木氏よりそもそもWACATEとは?の説明や諸注意の説明がありました。また配布されたネームカードの色についても説明がありました。ネームカードは参加者の参加回数により色分けされていて、初参加の方が黄色、2回以上WACATEに参加された方が緑色、そして一定回数以上参加している常連の方は青色、実行員が赤色となっています。
WACATEは若手向け(おおむね経験10年未満)のソフトウェアテストのワークショップではありますが、参加者は必ずしもテスト技術者・テスト専任担当者ばかりではなく、開発者もマネージャーの方も参加しており、年齢や経験も社会人1年目からこの道ウン十年のベテランの方までさまざま。他ではありえない多様な参加者とテストについて2日間じっくり議論できるのはWACATEの大きな魅力だと感じました。
ちなみに私は常連枠(青色)&おっさん枠での参加でしたが、常連参加者としてWACATEというコミュニティに貢献したいという思いを満たす他にも、週末をつぶしてでも勉強にくる熱心な参加者から刺激を得たり、会社では指導者的な立場を期待される者(まぁ、そういうお年頃)として、演習や議論が豊富で概念解説もよくまとまっているWACATEのコンテンツや講師のプレゼンは「明日からマネしたい」と思うほど参考になり、とても価値を感じます。そんなWACATEの価値に気付いているのでしょうか、同じ会社から何人もの参加者がきているケースもありましたが、安心してください。ちゃんと別々な班にバラバラにされますから。
参加者は皆、この2日間でしっかり知り合い増やして人脈を広げることになります。
WACATE最初のお約束―恒例のポジションペーパーセッション
オープニングが終わると次は毎回恒例、WACATE名物のポジションペーパーセッションです。ポジションペーパーは参加者全員(実行委員も含む)が参加にあたり、あらかじめ提出する” 立場表明書” で、参加にあたっての意気込みや持って帰りたい事、議論したいこと、自己紹介などなどを記入しています。ポジションペーパーセッションでは持ち時間一人3分で、このポジションペーパーを使いながら同じテーブルについた参加者どうしで自己紹介をしていきます。自己紹介が一巡したら、こんどは席替えをして再度同じテーブルについて参加者どうしで自己紹介をします。今回も実行委員の苦労の班分けで、さまざまなコンテキストの人が1つのテーブルにつきます。半分以上が初対面です。このときのメンバーが以降のグループ演習をするときの” 班” となります。
ところで、自己紹介で使ったポジションペーパーですが、せっかく個性豊かなさまざまなコンテキストをもった参加者同士が知り合うためのツールですから、参加同じ班になった方の分だけ見るのではもったいないのです。そこで、残り約50人分も目を通し2日目のお昼休みまでにもっとも「加速している」と感じるポジションペーパーを選んで投票するとい課題が与えられます。WACATE(ワカテ / Workshop for Accelerating CApable Testing Engineers)のAはAccelerating、つまり「加速」です。参加者どうしが、勢いのありそう、加速していそう、情熱を感じるなどの視点で1つポジションペーパーを選びます。全参加者分に目を通すのは大変なのですが、ここにも折角の機会を生かして人脈を広げてもらおうという仕掛けがあります。参加者の投票に結果から2日目の最後にBest Position Paperとして選出されます。
BPPセッション:私の「テスト」、あなたの「テスト」
午前中2つ目のセッションは、浦山氏によるBPPセッション『私の「テスト」 、あなたの「テスト」 』です。
BPPセッションもWACATEではすっかり恒例となったセッションです。BPPセッションでは前回のWACATEでBPPに選出された方から参加者へ自分の加速体験や、テスト愛など熱いメッセージを語ってもらいます。が、基本的に内容はBPPセッション担当者に任せられているようです。
今回、浦山氏はセッションの時間をプレゼンテーションで使うのではく、参加者の個人ワークとその結果をもとにした議論という形式にしていました。まず「テストとは何か?あなたはどう捉えているのか?」という事を配布したA3の紙にマインドマップで書いてもらい、それを同じ班の参加者どうしで見せ合って議論するというものです。いろいろな背景をもつ参加者とあってできあがったマインドマップはまさに十人十色。マインドマップの書き方も微妙に異なり、テストとの関わり方の多様性を実感できました。また絵に描いて語り合う体験は、短い時間でありながらチームビルディングにとても役に立つと感じました。
昼食はお楽しみの海鮮丼、そして食べたら午後のセッションへ突入
午前中2つのセッションをこなした後は、お楽しみのお昼ご飯です。会場となった三浦海岸を含む地域はマグロが有名。お昼は海鮮づけ丼でした。期待を裏切らないおいしさで毎回参加者の楽しみの一つです。ちなみにお魚苦手な方も安心してください。ちゃんと毎回肉系どんぶりも用意されていますから。
午後は3つのセッションが用意されています。内容も、「 テスト計画」「 同値分割や境界値分析」「 テストプロセス改善モデルであるTPI NEXT」と、広く浅くの「WACATE冬」らしく、バリエーション豊かです。
セッション1:突撃となりのテスト計画 ~こんなときお隣さんはどうしてる?~
午後最初のセッションは実行委員の福良氏によるテスト計画についての議論をするワークです。簡単な説明のあと、参加者は配布された付箋にテスト計画についての悩みを書き出していきます。書き出した悩みは特定の観点で層別し、いくつかピックアップして班の中で議論していきます。テスト計画に記載すべき内容はいろいろあり得るのですが、今回はテスト技術者にはおなじみの書籍「ソフトウェアテスト293の鉄則」から「鉄則278:テスト計画は戦略、段取り、成果物の三位一体と心得よ」を参照し、「 戦略」「 段取り」「 成果物」のうちの何がはっきりしなかった(または記載がなかった)から問題がおきたのか?という観点で悩みを層別していきました。
解決すべき悩み(問題)がはっきりすれば解決のアイディアが浮かびだすものです。WACATEはさまざまなコンテキストや経験をもった参加者が集まります。ある現場での悩みは他の現場では起きなかったり、既に解決済みのことがあります。解決案はコンテキストが違えば、動かし難い制約のためにそのままでは使えないこともあり精査が必要ではありますが、短い時間で解決のための経験談やアドバイス、アイディアが集まり、この方法の可能性を感じました。
セッション2:わりとディープ?同値分割⇔境界値分析
午後2つ目のセッションは実行委員の山口氏によるテスト技法の基礎中の基礎、同値分割と境界値分析、ドメイン分析のワークです。基礎は簡単という意味ではありません。全てのテスト設計技法の基盤となる大切な考え方なので、ここをしっかり理解することは非常に重要です。90分のセッション時間中にお題が4つ、小問設定が8つ。問題を解いては解説、解いては解説を繰り返します。
今回のWACATEではもう一歩進んでドメイン分析技法についても取り上げられました。ドメイン分析は境界値分析を2次元以上に拡張したようなもので、次元が増えた分、境界の数も増え一見面倒に見えます。そんな時でも段取りよくテスト条件を導出するためにBinderのドメインテストマトリクスを使います。解説はスライドをつかって1ステップずつ進んでいくので、わかりやすかったと思います。参加者の中には初めてドメイン分析を体験したという方もいて、かなり興味を引いたようでした。セッション後も他の参加者と質問や議論をしていました。
セッション3:TPI NEXTで自分たちのテストを評価しよう
1日目の夕方、本日最後のセッションは実行員の井芹氏によるTPI NEXTに関するワークです。TPI NEXTはプロセスモデルをベースにしたテストの改善手法です。前身のTPI(Test Process Improvement=テストプロセス改善)モデルは1997年に発表され、2002年には「テストプロセス改善―CMM流実務モデル―」という日本語書籍でも紹介されたのでご存知の方も多いと思います。昨年秋に改良版であるTPI NEXTについても日本語版が出版され、勉強会等も開かれる状況になり再び注目を集めています。今回セッション時間が30分という制約からキーエリア:欠陥管理に絞って自己評定の体験ワークが行われました。
講師の井芹氏は、プロセスモデル/改善モデルのような体系や標準の価値を「コミュニケーション基盤」と言っています。これは全く同感です。改善のためには、なぜ悪い、どうすればよいといった内容を関係者間で合意する必要があります。あるべき姿はどこからか降ってくるのではなく、本来は自分たちで決める必要があると考えます。関係者で合意のためにまったくのゼロから議論を始めるより、体系や標準から始めるのが便利です。これを機会に、現場に本当に役に立つプロセスモデル/改善モデルの活用が広がれば良いと思いました。
温泉と宴会とお楽しみ抽選会
夕方のセッションが終わったら、今夜の宿泊場所となる本館に移動となります。部屋は4名程度の相部屋ですが、同じ班、同じ会社の人が同じ部屋にならないよう部屋割りが工夫されています。なので、初対面どうし部屋に移動して最初にやることがポジションペーパーをつかった自己紹介です。ポシジョンペーパー大活躍です。本館には大浴場があり期待通り温泉です。とても温まります。
そして一風呂浴びた後はこれもWACATEのお楽しみディナーセッション。要は宴会です。宴会では参加申し込み時にアンケートに書いた「一言」が紹介されたり、勉強会やイベントの告知があったりと、ここでも情報満載です。この宴会には、毎回ソフトウェアテストやソフトウェア品質の業界で活躍されているセンパイ方も駆けつけます。こういう場は多少図々しくなった方が勝ちです。お酒の力も借りつつ、センパイ方にあれこれ質問をぶつけたり、普段なかなか聞けない経験談に熱心に耳を傾ける参加者もいました。またディナーセッションの最後は技術書などがあたる抽選会もあり盛り上がりました。( 私は残念ながら何も当たりませんでした。残念。筆者のサイン入りTPI NEXT本欲しかったなぁ…
)
夜更けと共に議論も深まり…
宴会のあとは2次会代わりの「夜の分科会」があります。合宿形式のWACATEならではの企画ですが、この時間は参加者がいくつかのグループに分かれ議論を行います。自分の興味のあるどの分科会に参加しても良いですし、とっとと寝るのも自由です。今回のWACATEでは、「 テスト初心者」「 勉強会初心者」「 テストプロセス」「 バグ票を使ったテスト担当と開発担当とのコミュニケーション」の4つのテーマがありました。
実は最後の「バグ票~」のテーマは私と、同じく参加者のすずきしょうご氏の提案です。このテーマには10名ほどの参加者が集まったのですが、最初にやることはまたまたポシジョンペーパーをつかった自己紹介です。( ほんと大活躍)その後、参加者から「腹のたったバグ票」の経験談を披露してもらい、それをネタになぜそんな腹の立つ事態になるのか、どうしたら回避できるのか、など議論を深めました。明日もあるので夜の分科会は23時で強制解散です(中には議論し足りなくて、部屋に集合して深夜の分科会突入…の猛者もいたようですが) 。
翌朝
2日目は朝9時からの開始です。遅刻厳禁です。参加者はそれまでに朝食と身支度を済ませ。荷物もまとめて会場に集合します。2日目も「英語」「 テストに関する国際標準であるISO29119」「 探索的テスト」「 資料作成のコツ」招待講演と盛りだくさんです。
セッション4:英語なんてこわくない~英語ドキュメントを読んでみよう
2日目最初のセッション(別名モーニングセッション)は、朝一からいきなり英語のお勉強です。担当は実行委員の竹花氏。いきなりハイテンションかつ英語のあいさつから入りびっくりしましたが、それ以降は日本語でした。ここではテスト技術者認定資格としておなじみのISTQBの学習要項(←英語)から素材を得て読解の練習がありました。
ポイントは完璧を目指さないこと。業務では英語の論文や技術文書、マニュアルを読む機会もあるかと思います。その場合完璧な訳をつくろうと思ったら読む前に嫌になるし、その必要もない。コツは動詞と主語となる名詞を見つけること。それから目的語となる名詞を見つけること。これだけ。単語の意味は検索エンジンを使えばなんとかなる。このように講師から「英語はこわくない」とうメッセージが伝わってくるセッションでした。
セッション5:60分でわかった気になるISO29119
午前中2つ目のセッションは、実行委員の朱峰氏と藤原氏によるISO/IEC/IEEE29119の解説です。29119はソフトウェアテストについての標準なのですが、ISO/IEC/IEEEの3つの国際的な標準化団体の共同作成によるものです。Part1-5の5部構成で、内容もソフトウェアテストの体系理解のための概要解説に始まり、プロセスモデルやテストドキュメント、技法からキーワード駆動テストに必要な標準まで、内容盛りだくさんすぎる巨大な規格です。
さすがに60分で全て解説というのは無理なので、今回は「60分で分かった気になる」ことを目的に、朱峰氏からそもそも標準って何なの?という概説が、藤原氏からはISO/IEC/IEEE29119の内容紹介がありました。
セッション6:探索的テストはじめの一歩
午前中3つ目のセッションは、実行委員の川西氏による探索的テストのワークです。テスト自体が状況に合わせて設計されるべき活動なのですが、探索的テストは特にその傾向が強く、探索的テストへの取り組みは開発現場によって大きく異なると思います。なので、他の現場が探索的テストにどう取り組んでいるのか非常に興味があり、またこれを講師がどう料理するのか、個人的に今回一番興味を引いたセッションでした。
ワークでは講師の川西氏がテスト用のWebシステムを用意しており、それを対象に実際に探索的テストを体験することができました。同じ班の中で2人1組になり、時間枠を区切ってテストを実施します(いわゆるセッションベース) 。またテスト実施結果は、ログと発見したインシデント、その他気づいたことの3つの情報としてメモを残し、班の他のペアと共有しました。講師のガイドに従い、次に共有した情報を元にテストチャーター(活動憲章、テストの関心事と方針をリスト化したもの)をまとめ、今度はテストチャーターから何を探索すべきかを選んでテストを実施しました。
やってみて一番感じたのは「探索的テストは楽しい」ということです。理由を考えてみたのですが、自分の試行錯誤とその結果がすぐに見えるということかと思います。ゲームでもコミュニケーションでもプログラミングでもそうですが、もし自分の働きかけの結果が分かるのが、1年先だったらやり方や感じ方は違うものになると思います。それからもう1つ。ペアを組んだ参加者を観察して確信しましたが探索的テストの実施の際には、かなり自分が過去に遭遇したバグの知識を使っています。探索的テストで効果を上げるには経験が必要と良く聞きますが、経験の中身がバグの検出経験なら、既知バグの再現試験や修正後の確認テストを繰り返すことが良いトレーニングになるかもしれないと思いました。
セッション7:質問されない資料にするための4ステップ
この日のお昼ご飯、おいしいカレーを食べたあとの午後1つ目のセッションは、実行委員の上條氏による「質問されない資料にするための4ステップ」です。個人的にここで一番頭を使った気がします。
内容はまず、先ほどの探索的テストのセッションで題材となったWebシステムの仕様メモから一文を抜きだし、これを改善せよというお題を与えられます。改善のためのフレームワークとして4つのルールが紹介され、参加者はそれに照らして、あとどんな情報を追加したら仕様文書として誤解やあいまいさを低減できるのか?を考えます。4つのルールは以下のようなものでした。
その文章はその場に居る全員が同じ意味として認識できるだろうか?
その文章は如何なる場合に於いても成り立つだろうか?
その文章はある仮定の基に因果関係を構築していないか?
その文章は他に条件がなくても常に成り立つか?
実際は、上記ルールをすべて満たそうと思うと文章が長くなります。文章はそもそも論理的に正しいことと共に論理の正当性を支えるための「論拠」となる事実情報を並べる必要があるからです。なので、実運用では常識として共有している事実や自明なことは書かないのだと思いました。
そして最後に、いま自分の抱える課題に対して「役に立つ質問」を考えるという課題が与えられました。これがかなり難しい。不足していると思われる「論拠」を聞き出す質問をすればよいのですが、何でもかんでも聞き出し情報を追加すれば良いというものでもなさそうです。できるだけシンプルでかつ、質問を受けた相手が、これでは読み手に通じない。この情報を足せばよいと気が付かせる質問が、「 目指すべきところ」のようです。なかなか言語化できませんでしたが、感覚をつかむためにも練習が必要なのでしょう。
クロージングセッション:ソフトウェアテストの最新動向の学び方
最後のセッションは、毎回、ソフトウェアテストやソフトウェア品質業界で活躍されている大センパイをお招きしての招待講演枠となっています。今回のWACATEでは富士通、NPO法人ソフトウェアテスト技術振興協会(ASTER)で活躍されている辰巳氏から、「 ソフトウェアテストの最新動向の学び方」と題しご講演いただいきました。このセッションはさまざまなテスト技法の歴史的背景や最新動向、最近実施された国際的なアンケート調査結果から海外のテスターの動向、テストに関するWebマガジンなどのメディアや情報源、そして国際学会の情報まで、幅広い学びのヒントを頂きました。
WACATEのWebページには以下のよう記述があります。
「WACATE (ワカテ / Workshop for Accelerating CApable Testing Engineers) とは:テスト技術を基軸とした「品質を高める契機」を創出する、若手IT技術者が世界に羽ばたく為の加速装置です。」
辰巳氏の講演はまさにWACATEのコンセプトぴったりで、参加者へ向けて「世界に羽ばたけ!」とエールを送っていただきました。
おわりに
以上、2日間でセッション9つ、夜の宴会&夜の分科会、他、延べ30時間半の様子を見て頂きました。今回冬のWACATEに興味があったけど参加できなかった方、次回夏のWACATEの参加を検討されている方、自分のところの若手を参加させたいと考えているマネージャーや教育担当の方、などなど、この記事がWACATEに興味のある全ての方の参考になれば幸いです。
あらためて振り返ってWACATEの魅力はなんだろうと考えると、コンテンツの良さはもちろんですが、実行委員や参加者の情熱なのだと思います。週末をつぶしてはるばる三浦海岸までいってソフトウェアテストの勉強をするのは、費用も時間も家族の理解も必要で、やさしいことでは無いでしょう。しかし多様なコンテキストをもつ参加者との真剣な議論をしてこそ得られる経験は他の機会にはない魅力となっています。最後まで読んで頂きありがとうございます。次回WACATEは2016年6月18日~19日。魅力あふれるソフトウェアテストの勉強会であなたもぜひ加速体験をしてください。