テスト技法を使ってスマホゲーム「GROW CUBE」を攻略したついでに研修コンテンツにしてみた

テスト技法を使ってスマホゲーム「GROW CUBE」を攻略したついでに研修コンテンツにしてみた

こんにちは、セキュリティ・テスト部門のシニアマネージャー大山(忍)です。

わざわざ(忍)と書いているのは蟲柱的なアレでもなければお昼休みの毒舌司会者を意識したわけでもなく、諸星あたるの幼馴染でもなんでもないのですが、我がシステム本部にはアルファベット表記で「Oyama Shi」まで同じというビッグマウンテン界のパイセンがすでにいらっしゃいまして、基本的にはRe:フルネームからはじまるシステム本部生活なわけです。

本記事でも基本的には(忍)表記になりますのでご理解頂ければ幸いでございます。

というわけで、タイトルにもあります通り「テスト技法を使って「GROW CUBE」というスマホゲームを攻略したついでに研修コンテンツにしてみたらなんだからとってもイイ感じだった」話をしてみたいと思います。

入社の経緯を軽くご紹介

大山(忍)の事を簡単に紹介させて頂きます。

私がGMOリサーチに入社したのは2019年2月。

成長・拡大を続けるシステム本部において、品質管理の重要性が高まる中、新たにテスト・QA専門部隊を立ち上げる事を最大のミッションとして安藤取締役に声をかけて頂いたのがきっかけでした。

面接の段階から、いや最初に声をかけて頂いた段階からそういえば元後輩で某二子玉オフィスでインターネットリサーチのQAエンジニアやってる奴が居るしそいつ引き入れてしまえば勝確だなーと思っていた私は、面接でも「自分が一馬力でがんばってテストやっても意味ないのでフィットする人材を雇用して仕組みつくってテストチームを構築します」と、テストエンジニア枠の採用にも関わらず「俺は自分ではテストやりません」宣言。

その結果、2019年6月にGMOリサーチQAチームは始動を開始したのであります。

突然のシステム研修講師への抜擢

そんなこんなで2020年上期、半期に一度のシステム研修の時がやってきました。

システム研修とは──半期に一度行われるシステム本部全員参加の社外研修のことです。今後の業務に役立ちそうなスキルの習得を目的に、様々なテーマでの研修を実施して参りました。
と、本ブログ益山編集局長が言ってました。詳しくは↓↓↓↓↓コチラ↓↓↓↓↓
【イベントレポ】システム部研修を実施しました! │ GMO RESEARCH Tech Blog
※よかったらチャンネル登録と高評価、ではなくページ上部の「B!」ボタンをクリックしてください!

さーて今回のシステム研修のテーマは〜???と余裕かましていたところ発表されたテーマが

『QAの役割とテスト技法について』

あ…ありのまま今起こった事を話すぜ!

「システム研修でおれが研修プログラムを作り当日の進行も講師役もやる事になっていた」

な…何を言っているのかわからねーと思うが、おれも何をされたのかわからなかった…

※ポルナレフを使いたかっただけなのでだいぶ脚色しましたが、もちろん十分な余裕をもって事前に打診があった上で快諾しています!

講師大山(忍)に電流走る

システム研修委員会の皆様からは、「QAチーム発足したわけだしそのあたりとからめて研修で何かやってください」的な大変フリーダムなありがたいオファーを頂き、座学ならこれまでの職務経歴を活かしてなんとかなりそうだなと楽観視しておりました。

その反面、半日に及ぶ貴重な研修時間を退屈な座学で費やしてしまって良いものか?という葛藤にさいなまれる日々。

やるからには有意義なモノにしたいし、退屈なだけではなく、楽しめるものが良い!

とは思うものの、1人で準備して当日の進行までやるとなるとやれることは限られる・・・そんな時にふと思い出しました。

陽気なメキシカン、アントニオが「このゲームやってみて!できた人には賞品あげるよ!」と我々に叩きつけてきた挑戦状、そういえばそのゲームを攻略するのにテスト技法を応用したなーという事を。

−−−−−−−−−−−−大山(忍)に電流走る

これだーーー!のるしかねぇこのビッグウェーブに!

システム研修本番@トスラブ市ヶ谷

そして2020年1月9日、システム本部のグレートメンター福原さん(※)が作ってくれたステキなしおりを携えて、研修会場のトスラブ市ヶ谷へ。

※海外籍の新入社員が、英語が堪能かつ面倒見の良い福原さんの事を「He is Great Mentor」と言っていたのが由来でたまにそう呼ばれる

システム研修のしおり made by 福原さん

研修の冒頭でソフトウェアテストの目的、品質保証とテストに関してのお勉強をしてからテスト技法を学んでいきます。

座学資料をチラ見せ。

「デシジョンテーブル」というテスト技法

当日の研修では以下2つのテスト技法を取り上げましたが──

  • デシジョンテーブル
  • 境界値分析/同値クラス分析

本記事のタイトルにもある「スマホゲームの攻略に使ったテスト技法」は、前者のデシジョンテーブルになります(や、やっと本題に入った)。

デシジョンテーブルは、ソフトウェアの動作に関する複数の条件について、どのような条件のときにどのような結果が得られるかを、表形式で書き表す手法です。

デシジョンテーブルには決められたフォーマットがあり、下表のように条件を表す部分と動作を表す部分で構成されています。

—————————————————————–

①条件記述部

条件の一覧を書く部分です。テスト対象の入力条件や、実際の入力データが入ります。

②動作記述部

結果の一覧を書く部分です。条件に合わせて、実際の動作や処理の内容が入ります。

③条件指定部

条件の組合せを書く部分です。条件の判定結果の組み合わせが入ります。

④動作指定部

条件の組み合わせに対する動作結果が入ります。

—————————————————————–

デシジョンテーブルに書き表し、さまざまな条件を整理することで、条件に応じたプログラムの動作を視覚的にわかりやすく伝える事が可能です。

また、GMOリサーチのQAでは、デシジョンテーブルにテスト結果を記入する欄を設け、テストの現場でそのままテストケースとして運用しています。

GROW CUBEを攻略しよう!

(や、やっと本題の本題に入った)

研修のワークショップでは、デシジョンテーブルの技法を使ってスマホ・ブラウザゲームGROW CUBEを攻略してみました。

GROW CUBEの画面

「GROW CUBE」は、10種のアイテム全てを正しい順番に選択する事でゲームクリアとなりますが、その組み合わせは単純に計算すると──

10×9×8×7×6×5×4×3×2×1=36,288,000

約3600万通りのパターンが存在する事になり、とても総当りではやってられません。(※)

※実際にはアイテムを正しい順番で選択するとレベルアップする(見た目が変化する)ので、それをヒントにしながら正解に近づいていける事と、正解は数パターン存在するので総当りでなくともゲームクリアは可能です。

デシジョンテーブルを作ってみる①

まずは、最初に選択するアイテムと、次に選択するアイテムでデシジョンテーブルを作成し、アイテムの変化を確認します。

先述した通り、正しい順番で選択したアイテムはレベルアップして見た目が変化するため、正解に近づくためのヒントを得る事が出来ます。

【条件記述部】には選択対象のアイテム名を記載します

【動作記述部】にはアイテムの状態(レベルアップor反応なし)を記載します

【条件指定部】には1回目、2回目に選択するアイテムを記載します

【動作指定部】にはアイテムを選択した結果を記載します

このデシジョンテーブルを完成させる事で、正解へ近づくための以下の情報を得る事が出来ました。

  • 骨皿壺筒は、その後に何を置いてもだいたいレベルアップする
  • 水玉種人火バネは、その後に何を置いてもほぼレベルアップしない
  • 水は人の後に置いたときだけレベルアップする
  • 人はどのアイテムの後に置いてもレベルアップしない
  • 筒は種の後に置くとレベルアップしない
  • 人は水を置いた後なら他に何を置いても何かしら反応がある

デシジョンテーブルを作ってみる②

最初に作ったデシジョンテーブルから、一定の法則を導き出す事ができました。

次は、その法則から以下の推測を元にして2つめのデシジョンテーブルを作ってみます。

  • だいたいレベルアップするグループは順番が多少前後しても大丈夫そう
  • レベルアップしないグループは順番がとても重要
  • 人と水は最初に置いておく必要がある

以上の推測から、次のデシジョンテーブルは「人+水+レベルアップしないグループ」でデシジョンテーブルを作ってみる事にします。

ワークショップでは、研修時間の都合により「動作部」の記述を省略してデシジョンテーブルを作成しましたが、この2つめのデシジョンテーブルを作成する事で、正解に近づくための以下の情報を得る事が出来ました。

  • 種は順番次第で最終到達レベルが大きく変わる=早めに置く必要がある
  • バネはどの順番で置いても変わらない=後回しで良さそう
  • 玉はどの順番で置いてもかわらない=後回しで良さそう
  • 火は玉バネよりは先に置く必要がある

研修で行ったワークショップはここまでです。

テスト技法を使ってスマホゲームやってみてどうだった?

結論を言うと、デシジョンテーブルだけでGROW CUBEを攻略するのは困難です。

ゲームを攻略する事だけを考えれば、置いたアイテムの変化(とても面白い変化をするので、ぜひ実際に遊んでみてください!)から先の展開を想像しながらやった方が早いかもしれないし、何よりゲームとして楽しいです。

ですが、私は実際にデシジョンテーブルを作ってみる事でこのゲームのおおまかな流れを把握する事、そして3600万通りものパターンを総当りで試そうとする事もなく、一定の法則を導き出す事が出来ました。

先述の通り、ゲームを攻略するためにはデシジョンテーブルのテスト技法を用いるだけでは不十分ですが、デシジョンテーブルを活用する事でゲームの仕様を把握し、攻略手順や法則性を理解する事が出来ました。

まとめ

ソフトウェアテストの現場においても、対象となるシステム・プログラムの仕様を把握し、テスト手順や法則・パターンを整理する事は必要不可欠なプロセスであり、そのための手法としてデシジョンテーブルは非常に有効です。

また、今回の研修ではスマホゲームの攻略にテスト技法を活用する事で、楽しみながらテスト技法を学ぶ事が出来たのではないかという手応えも感じていて、研修コンテンツの一つとしてはアリよりの大アリだと思いました。次は、また別のテスト手法を「楽しく」学べるような研修コンテンツを考えてみたいと思います。

最後までお読み頂きありがとうございました!

GMOリサーチでは、WEBエンジニア(サーバーサイド、インフラ、フロントエンド)を随時募集しております。

興味のある方は、ぜひこちらからご応募ください!
詳しい募集要項など採用情報はこちら

前の記事
«
次の記事
»

技術カテゴリの最新記事