2019年8月30日(金)、ソフトウェアテスト技術分野のシンポジウムであるJaSST'19 Hokkaidoが札幌市教育文化会館で開催されました。
今回で14回目を迎えたJaSST'19 Hokkaidoの今年のテーマは「マインドアップ ~テスト設計技法を知っていたら十分と思ってないかい?~」です。テスト設計技法を適用する前に行うことはなにか?を考え、技法を“知っている”から“使える”というひとつ上の段階にあがるための一助になってもらいたい、という願いを込めました。
本稿では、JaSST'19 Hokkaidoのセッションの中から、今年4月に出版された『[改訂新版]マインドマップから始めるソフトウェアテスト』の著者、池田暁氏(ASTER)による基調講演「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」および、JaSST Hokkaido実行委員によるワークショップ「体験しよう!テスト分析設計 エクササイズ」を取り上げレポートします。
基調講演:テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~
今回、基調講演でご登壇いただいた池田暁氏はASTERやNaITE、SQiP、AFFORDDといったソフトウェアテストや品質を中心にさまざまな団体やコミュニティで活動されています。実はJaSST Hokkaido(当時はJaSST Sapporo)の立ち上げにも関わっており、10年ほど前にはJaSST Sapporoにてワークショップを行っています。また、学生時代は北海道在住ということで北海道とは何かと縁があり、今回の登壇は非常に感慨深いとのことでした。
講演は今回のテーマ「マインドアップ」を受けて、「第1部 フェイスアップ」と「第2部 ビルドアップ」という二部構成で組み立てられていました。第1部はテスト設計技法を利用する前にやるべきことや考えるべきことを解説するパートです。第2部は、実際に腕を磨いていくために利用できる情報を紹介するパートです。しかし実際には「第0部 まずは足元」も設けられていました。
第0部 まずは足元
第0部では、テスト設計技法を適用する前に、テスト設計技法そのもの、つまりしっかりと足元を見ようというメッセージを伝えるものです。
「テスト設計技法をうまく使いたい」と研修を受講するものの、なかなかうまくいかない場合、おもに2つの原因があります。1つは「テスト設計技法をきちんと理解できなかった」というものです。この原因に対応するために以下のアドバイスがありました。
- 目的意識を持って受講しよう
- 自分のドメインに適合している研修を受けよう
- 前提知識を学び直そう
2つ目は「テスト設計技法は理解したが、使いどころがわからない」というものです。この原因に対応するためには、以下のアドバイスがありました。
- 技法が解決できる課題を理解しよう
- テスト対象をよく理解しよう
- テストの観点の全体像をまとめよう
まずはもう一度テスト設計技法そのものに目を向けることの重要さを説き、そのうえで「テスト設計技法は理解したが、使いどころがわからない」という点がJaSST'19 Hokkaidoのテーマである「テスト設計技法を使う前の作業」につながるものとまとめました。
第1部 Face up ~顔をあげて、その前を意識~
第1部は第0部を受けて、テストプロセス上でのテスト設計技法を利用する“以前”となる「テスト分析」と「テスト設計」の基本的考えを解説しました。ただしテストプロセスといっても体系によってはテスト分析を仕様分析と言ったり、テスト分析とテスト設計で行う活動が微妙に異なっていたりします。池田氏はもう少し噛み砕き、テスト設計技法を使う前の準備として、「情報入手」→「情報理解」→「テスト観点の全体像策定」→「テスト設計技法適用」を実施することが必要と解説しました。
こういった準備をそれぞれのプロジェクトの開発・テストプロセスに導入する必要があります。このとき、世の中の体系をそのまま持ってくるのではなく、きちんとプロセス設計することの重要さも合わせて解説されました。
さて、このテスト分析・設計をうまく行うための手法はいくつか提案されています。
本講演では、池田氏の著書『[改訂新版]マインドマップから始めるソフトウェアテスト』でも紹介されているマインドマップを使用したテスト分析設計手法が紹介されました(上記の表中ではTAMEと表されています)。
テストベースを入手したあと、まずテスト分析として、純粋理解には3色ボールペン、テストの視点での理解にマインドマップを利用します。次に、テスト設計ではマインドマップを利用してテスト観点モデルを作成します。そのうえでテスト設計技法を利用してテストケースを作成します。けっして、テストベース(テスト要求や設計仕様)から直接テストケースを作らず、テストの視点で深く理解したうえで、テストの全体像を作り、適切にテスト設計技法をアサインして、テストケースを作る必要があると解説し、合わせて適用事例も紹介されました。加えて、初級者向けのテスト観点モデル作成手順も紹介されました。
ほかにも、テスト分析や設計をうまく行うためには、品質が高いテストベースの入手が必須であること、よりよいテストベースを入手するために行わなければならないこと、テスト設計技法を活用するための前準備は開発プロジェクトが立ち上がった瞬間から取り組む必要があることを説きました。
聴講者は想像以上にやっておかなければならないことがあることに驚き、熱心にペンを走らせていました。
第2部 Buildup ~意識を高めよう、鍛錬しよう~
第2部は、「なぜテストをするのか、なぜテスト設計技法をうまく使わなければならないのか」という問いから始まりました。テスト設計技法を使う大きな理由はバグを見つけることです。そのバグがプロジェクトや社会に与える影響について向き合うことが不可欠である、と世の中の事例も紹介しながら改めて意識づけするとともに、だからテスト技術者は真剣にスキルアップをしなければならないと訴えました。
そのために利用できるものとして、SQuBOKガイドや書籍などの紹介、テストプロセス改善技術や、ベンダートレーニングの勧め、コミュニティやテスト設計コンテストの活用など、多くの情報を紹介し、会場に集まっている関係者や識者と交流してすぐにビルドアップしてほしいと述べました。また、企業がそのような技術者を支援したり企業自身がスキルアップするための仕組みを導入することはもはや責務であり、現在においては発注者側はどれだけテストや品質向上のための技術向上活動に取り組んでいるかも発注の判断材料としていると、より企業の意識を変えていく必要があると述べました。
池田氏は「顔を上げてやるべきことを見つめ、実際にテスト力を鍛えてください。その先にマインドの向上が見えてきます。一緒に頑張っていきましょう」と講演を締めくくりました。
筆者らは本基調講演で語られた内容は、日々現場で奮闘する若い世代の技術者に強く伝えたいと思いました。当日の資料は90分の持ち時間に対して200ページ弱と充実した情報で、社内での展開も進めていきたいと考えています。
ワークショップ:体験しよう! テスト分析設計エクササイズ
本ワークショップは、筆者らとTA2名(NaITEの岡野麻子氏と角田俊氏)により実施しました。テスト初級者を受講想定者とし、基調講演でも解説されたマインドマップを利用したテスト分析設計を体験いただくものです。ワークショップのゴールは次のとおりです。
- テスト分析設計の基本的な考え方を理解する
- マインドマップを使ったテスト分析設計の基本を体感する
- テスト分析設計技法の使いどころを考えられるようになる
- マインドアップする
チュートリアル
最初にゲストチュートリアル講師の池田氏から、改めて手法について解説いただきました。
テストケースを作るうえで、テスト初級者はテストケースが仕様の転記になりがちですが、テスト上級者は、仕様に対してテスト観点を発想/検討したうえで戦略的にテストケースを作成します。たとえば、「機能」「プラットホーム」「エンドユーザ」「ドメイン特性」「組織のノウハウ」や階層や関連、組み合わせを考慮し、仕様書に書いていないことも発想します。
そのため、テストケースを作るにはとても多くのことを考えることが必要です。しかし、頭の中だけで考えたり、テストケースのフォーマット(表現形式)を使って考えたりするのは、実際の作業としては難しいことです。そこで「試行錯誤できる」「構造化しやすい」「整理するための俯瞰ができる」「発想力を刺激する」という特徴を持つマインドマップを活用します。
池田氏は「“テストの思考”を実践するための道具としてマインドマップを活用し、単なる仕様チェックから卒業するための手段の一つとして持ち帰ってください」とチュートリアルを締めくくりました。
演習 マインドマップを用いたテスト分析・テスト設計を体験してみよう
演習ではいくつかのグループに別れて、テスト分析・テスト設計を行いました。下記のようなシナリオを設定して、そのシナリオの上でワークに取り組みます。
みなさんは急遽結成されたテストチームのメンバーです。顧客からは仕様書のみがテストベースとしてインプットされ、2時間でテスト設計を提案してほしいと要求されました。顧客は別の対応があるので問い合わせができません。このテストベースのみで、テスト分析設計を実施する必要があります。グループメンバーで協力してこの状況を乗り切りましょう!
(1)3色ボールペンを遣ってテスト分析しよう
テスト対象は、架空のスマートフォン向け「まりもの放置型飼育」アプリです。JaSST'19 Hokkaidoらしく、北海道ならではの題材としました。まずは、配布された仕様書を3色ボールペンで分析していきます。
- 赤:客観的に「重要」な箇所
- 青:客観的に「まあまあ重要」な箇所
- 緑:主観的に「気になる」箇所
次に行うテスト設計では、3色ボールペンでチェックしたところが手掛かりとなるため、参加者は必死にペンを走らせていました。
(2)マインドマップを遣ってテスト設計しよう
3色ボールペンを使ったテスト分析のあとは、いよいよマインドマップの作成です。チュートリアルで説明があったポイントが役に立ちます。
- 仕様書に書いていないことも意識する
- 観点を意識する
- 3色チェックしたところを手がかりに
- テストカテゴリ
- 過去の経験、など……
マインドマップ作成には参加者に持参していただいたカラーペンが威力を発揮しました。カラーペンにより多くの色を使うことで表現力や発想力が上がります。また、絵や図表もできる限り“描く”ようにしていただきました。図は文章よりも情報量が多く、より多くのことを表現できるようになります。
(3)設計結果を発表しよう
各自が作成したマインドマップによるテスト設計を、グループメンバーに発表します。一人1分で自分のマインドマップを指さしながら、特に重要だと思うポイントについて説明します。それぞれ重要だと思うことが異なり、参加者には新鮮な気づきが得られたようです。
(4)テスト設計結果を集約しよう
各自のテスト設計結果をグループで1つのマインドマップに集約します。重要だと思うポイントや、テスト観点は人それぞれです。集約時のヒントは次のとおりです。
- グループとしてのテスト設計方針を統一する
- 集約、補完できるところはないか?
- 階層関係はどうか?
- 集約過程で足りないと思ったら観点を付け加えてもOK!
大きな模造紙を使用し、個人で作ったマインドマップを見ながら、仕様書を読み返しながら一つのマインドマップにまとめていきます。このステップでは、集約のプロセスも大切になります。メンバーそれぞれのユニークな観点を探して、取り込んでみるのも良い方法でした。それぞれが思いつくことには限界があります。複数で保管し合うことでより網羅性が高く、観点漏れが少ないテスト設計ができるだけではなく、お互いの方向性を一致させることにも効果があります。
(5)グループごとに発表しよう
最後に、グループごとに作り上げたマインドマップを発表しました。
各グループそれぞれに特徴があり、どの発表も質疑が盛り上がり、熱気の中ワークは終了となりました。その様子は写真でいくつかお伝えします。
今回のワークショップは、グループでのワークをメインとしました。普段参加者が仕事をされる中で、テスト分析・テスト設計をする際は、ほとんどの場合は一人で、あるいは分担で行っていると思われます。実際の現場では、なかなかテスト設計やテスト分析を教えてもらうということは少なく、すでにあるフォーマットに沿って粛々と作っていくことが多いように感じます。
ワークショップでバックボーンの違うメンバーでチームを組み、発表を行うことで、テスト分析・設計の基本的な考えを体感しつつ、普段触れることのできない観点を体感していただけたのではないでしょうか。マインドマップを手書きで紙に色分けをして描いていくことは、先ほど挙げたような単純な整理、分類ではなく、気づきや発想を喚起するクリエイティブな作業だということも体感していただけたと思います。
おわりに
基調講演およびワークショップにてテスト設計技法の前に行うべきテスト分析・テスト設計について知識を得るとともに体感してもらうことで、明日からよりうまくテスト設計技法を活用することのヒントが得られたのではと思います。筆者らも今回基調講演を聴き、そしてワークショップを運営することで、よりその重要さを認識しました。自分自身の作業はもちろん、チームでもこれまでよりもさらに意識を高めて取り組みたいと思います。
当日のワークショップではお土産としてもう1冊仕様書を用意しました。「カントリーサインマップ」という北海道のカントリーサインを集めるGPSを使用した架空のアプリの仕様書です。参加された皆様のチーム・プロジェクト内、または一人でじっくりとマインドマップを書いてもらいたいという思いで、配布致しました。ぜひご活用いただきたいです。
ほかのセッションも含め、このJaSST'19 Hokkaidoをきっかけに、ご自身やチームのフェイスアップ、ビルドアップ、そしてマインドアップに繋がっていくことを願っています。