映画ジュラシックワールドで学ぼう!QualityAssuarance(品質保証)
こんにちは!QAエンジニアの入間川です。
株式会社COMPASSという小中学生向けAI型教材「Qubena(キュビナ)」を開発・提供する会社でプロダクトの品質保証を担当しています。
QAって何?
あまり聞き慣れていない方もいらっしゃると思いますが、ソフトウェアの開発現場には、「QA(QualityAssuarance)」と呼ばれるプロダクトの品質保証を行う役割が存在します。
世に出る前の開発途中のプロダクトを様々な方法でテストして不具合を発見し、品質を高めることが主な業務となります。直接プロダクトの開発は行わず、第3者の視点で想定外の挙動やユーザーの操作、外部からの悪意のある攻撃に備えます。
サービス提供企業にとってプロダクトの品質はブランドイメージを左右する重要な要素の1つです。よりよいプロダクトを安定して市場へ供給することで、顧客満足・企業の発展を目指す事が品質保証の目的となります。
品質=テスト?
QAはテストを行い品質を高めるのが主な業務と書きましたが、一口に「品質保証」と言っても「ソフトウェアの品質」の定義は企業や組織、プロダクトによって大きく異なるため、QAが担う業務はそれに伴い大きく変わります。そのため「QAはこの業務を行う人」というまとまった定義が難しい役割でもあるのです。1つのサービス・プロダクトで保証するべき品質は実に多岐に渡ります。
上記の図は、ソフトウェアの品質モデル ISO/IEC 25010:2011 (JIS X 25010:2013)というソフトウェア製品の品質に関する国際規格で定義された品質特性です。
あるプロダクトの品質について考える際、画面を操作して不具合が出ないか?は1つの面から見た観点でしかありません。セキュリティ面で問題がないか?使い勝手は良いか?修正がしやすいシステムのつくりになっているか?開発プロセスは問題なく回っているか?といった様々な切り口で品質を見ていく必要があります。品質とプロダクト開発で行われる様々な活動は表裏の関係となっているのです。
本記事の趣旨
本記事では、QAが行う業務の一部と持つべきマインドセットについて親しみやすい形でイメージを掴んで頂くために、映画ジュラシック・ワールドをテーマに、QA業務の一部をご紹介していきたいと思います。
深刻なインシデントが発生してしまったパークの物語を通じて、「どうすればこの大惨事を防げたのか?」ということをQA視点で一緒に考えていきましょう!
大まかなあらすじについてはこちらの動画もご参考にしてみて下さい! (出典:映画『ジュラシック・ワールド』予告編)
※本記事はストーリーのネタバレ要素を多く含みます。まだ映画をご覧になっていない方はご注意下さい。
※本記事の内容は、一回以上映画ジュラシック・ワールドをご覧になってからですとより「あの場面か!」とイメージして頂きやすいかと思います!
大惨事になるまでの3つの分岐点
映画の中では最終的にパークスタッフ&来場者2万人への被害、賠償額8億ドルという大惨事に発展してしまうのですが、ここまでの被害拡大が起きてしまうまでには、少なくとも3つの大きな分岐点があったのではと考えています。
システム開発のチーム内での振り返りで「ポストモーテム」と呼ばれる手法があるのですが、ポストモーテムで使用される原因深堀りの3つのルートからこれらの分岐点を見ていきましょう。
①〜③はそれぞれこの様な原因に行き着くのではと考えました。(皆さんも一緒に考えてみて下さい!)
この3つの分岐点にもし現実の開発現場で差し掛かった時、我々QAはどの様に考え、動くべきかを皆さんと一緒に映画のストーリーに沿って考えて行きたいと思います!QAってテスト以外にこんな事もやっているんだ、というイメージを掴んで頂くヒントになれば幸いです!
①DNA設計がブラックボックスになっていた
まず1つ目の欠陥(インシデントの種)を仕込んでしまった原因、という所で「インドミナス・レックスのDNA設計がブラックボックスになってしまっていた」というのが1つ大きな原因として挙げられると考えています。
パークの集客のため、よりインパクトのある恐ろしい恐竜をより速いスパンでリリースしていきたいビジネスサイド、最先端技術を駆使してあらゆる能力を新種の恐竜に組み込んだ研究開発サイド。
■その結果。。。
・アマガエルの赤外線反射特性
→ 監視の赤外線センサーを抜けてしまう
・ラプトルの高い知能
→ わざと爪痕を残し、脱走したと見せかける罠を人間相手に仕掛ける
・コウイカの体色を変える特性
→ 擬態を使い森の中に隠れて特殊部隊を奇襲する
ハイブリッド恐竜のインドミナス・レックスはこの様な想定外の能力を持つことになってしまい、飼育エリアからの脱走・特殊部隊からの脱走を成功させてしまいます。
■これを防ぐ為にQAができることは?
このような事態を防ぐため、インドミナス・レックスのDNA設計段階で我々QAにはどの様な活動が求められるでしょうか。大まかに下記の活動を挙げてみました。(皆さんもぜひ考えてみて下さい!)
ジュラシック・パーク(1〜3作)でも、両生類であるカエルのDNAを欠損箇所に組み込んだ影響で、すべてメスであるはずの恐竜達の予期せぬ繁殖がパーク内で進んでいます。未知のハイブリッド恐竜のDNA設計を行う際、過去パークで発生した重大インシデントの原因等は振り返って今後の注意事項として活かすべきでした。そして新たに開発の計画時点でリスク分析を行うことで、想定されうるリスクを洗い出し事前に対策を検討することが可能になります。重大なリスクが開発段階で潰せるか、リスクが発生しないことをテストで保証できるか、といった計画を行うこともQAの業務の1つです。
また、ビジネスサイドと研究開発サイドでの要求事項と設計に落とし込む際の齟齬も発生しています。こういった齟齬は開発後期に進むにつれ大きな手戻りが発生する不具合の元となります。ドキュメンテーションやレビューを行うことでステークホルダー間の認識を早期に合わせていくのも重要な業務となります。
■QAが持つべきマインドセット
欠陥が仕込まれてしまうことを防ぐため、我々QAは下記のようなマインドセットを持ち、現場への啓蒙を行っていきましょう。
②インシデントの予兆を無視してしまっていた
続いて2つ目の「欠陥を流出させてしまった原因」として「インシデントの予兆を無視してしまっていた」というのが1つ挙げられると考えています。
一緒に誕生した妹を共食い、飼育エリアのガラスを割ろうとした、飼育係の腕を食いちぎろうとした、想定以上に大きく成長している。。等インドミナス・レックスの凶暴性や危険性は育成段階で把握できているはずでしたが、関係者全員がそのリスクを重要視せず、飼育係の入れ替えや施設の増強で暫定対応を続けてしまいます。
■その結果。。。
・施設を破壊して逃亡
→施設の耐久性が、想定以上に成長したインドラプトルの暴走に耐えられなかった
・脱走直後から殺戮を繰り返す
→ 外の世界を知らず、ラプトル4姉妹達の様に社会性を持たないため、見えるものすべてが敵
■これを防ぐ為にQAができることは?
このような事態を防ぐため、インドミナス・レックスの育成段階で我々QAにはどの様な活動が求められるでしょうか。大まかに下記の活動を挙げてみました。(ここも皆さんぜひ考えてみて下さい!)
開発(インドミナス・レックスの育成)が少しずつ進んでいく中で、当初の想定と外れた様子が観測される可能性は大いにありえます。その場合に適切な現場へのフィードバックと新たに浮上してきたリスクへの対応を繰り返し行っていくことが重要となります。そしてその度にリスクベースでのテストを行い、繰り返し品質を担保していくのです。また、品質が保証できるまでは当初予定していたリリースを見送るといった判断も時には必要です。
■QAが持つべきマインドセット
仕込んでしまった欠陥の流出を防ぐため、我々QAは下記のようなマインドセットを持ち、現場への啓蒙を行っていきましょう。
③インシデント対応時の判断で被害を拡大させてしまった
最後に「終息が遅れた原因」として「インシデント対応時の判断で被害を拡大させてしまった」というのが1つ挙げられると考えています。
ここでは大きく4つの判断ポイントで被害者数が大きく拡大していってしまったと考えています。赤外線センサーの他、インドミナス・レックスの体内に埋め込まれたGPSでも位置情報を確認する必要がありましたが、赤外線センサーに反応しない段階で不用意に主人公のオーウェン含めたスタッフが飼育エリアに調査に入ってしまいます。(第1の判断ポイント)、次に緊急時であるにも関わらず、パーク内に警報を出さずインドミナス・レックスを生かして捉える為に武器の不使用を指示します(第2の判断ポイント)、脱走を続けるインドミナス・レックスをヘリコプターで仕留めようと狙撃し(第3の判断ポイント)、ラプトルの嗅覚と知性を利用してインドミナス・レックスを追跡を行います(第4の判断ポイント)。
■その結果。。。
・GPSの位置確認が終わる前に、飼育エリアに人間が入ってしまう(第1の判断ポイント)
→ 意図せずインドミナスレックス脱走の手助けをしてしまう(2名が被害)
・開発費用の回収のため、特殊部隊は麻酔銃や電気ショック、網のみで生かしたまま捕獲しようとする(第2の判断ポイント)
→ 特殊部隊が大量に犠牲になる(10数名が被害)
・ヘリコプターでインドミナス・レックスを狙撃して仕留めようとする(第3の判断ポイント)
→ 狙撃から逃れようとしたインドミナスが翼竜園の壁を破壊して侵入。大量の翼竜が外に逃げ出し、来場者が集中するエリアに向かってしまう(来場者2万人に被害)
・インドミナス・レックスをラプトル4姉妹に追跡させる(第4の判断ポイント)
→ インドミナス・レックスにはラプトルのDNAが組み込まれていた為ラプトルと会話が出来てしまい、結果ラプトルを自分の仲間に引き入れてしまう(特殊部隊、インジェン社社員10数名が被害)
■これを防ぐ為にQAができることは?
インシデントを早期に終息させるため、我々QAには平時からどの様な活動が求められるでしょうか。大まかに下記の活動を挙げてみました。(ここも皆さんぜひ考えてみて下さい!)
インシデント発生時には対応プロセスに厳格に状況判断をしていく必要があります。状況のエスカレーション先、現場判断を行う担当へ有事の際は完全に権限移譲を行うなど平時から仕組みを作っておき訓練を行っていきましょう。そして、判断を行う際の優先度の基準(何が発生したらこのプロダクトにとって一番まずいのか?)を定義しておくことで、スムーズな判断が可能となります。(これは通常の不具合発生時でも有効な基準になります。)
■QAが持つべきマインドセット
終息に向けた迅速な対応のため、我々QAは下記のようなマインドセットを持ち、現場への啓蒙を行っていきましょう。
まとめ 〜生命は新たな道を見つける〜
出典:ジュラシック・ワールド 炎の王国 : ポスター画像 (C)Universal Pictures
さて、いかがだったでしょうか。
今回「ジュラシックワールド」という作品をテーマにインシデントの発生原因や、この場面でQAであればどの様に対応するか?という例を出しながらお話しましたが、QAの業務をほんの少しでもイメージして頂くことが出来たでしょうか?
ジュラシックパークシリーズ第1作目から一貫して受け継がれる「生命は新たな道を見つける」というこの大きなテーマ。こちらを引用して本記事を締めくくりたいと思います。
ソフトウェアの現場・チームの成熟度・プロダクトの特性はそれぞれ。
そして求められる品質もまたそれぞれ。
「テスト」は品質の維持・向上の為に必要なあくまで1つの手段であり、
本記事でご紹介したような「プロセス改善」や「リスク分析」等、QAの活動内容は実に多岐に渡ります。
恐竜が中生代の地球環境に最適化された進化を遂げ、現在の鳥類に連綿と続く繁栄を遂げたように、我々QAも保証対象のサービス・プロダクトの置かれた環境に最適な品質保証の形を求めて、姿を変え進化を続けていくのです。。
引き続き、noteではQAが行う様々な業務や現場で実践した内容などを投稿していきます。本記事内でご紹介した「プロセス改善」や「リスク分析」、「ポストモーテム」などもジュラシック・パークシリーズを舞台に掘り下げて記事を書いて行けたらと思います!
この記事が気に入ったらサポートをしてみませんか?