『ゲームテスト&QA』 その4

GW最終日。しくじり先生のアンミカが面白い。

 

GWは遊んでばかりいたので、罪悪感を少し紛らわすために、勉強用のこのブログを更新してみる

ゲームテスト&QA

ゲームテスト&QA

 

 

CHAPTER 4 計画の立案:バグのカテゴリ、ツール、ドキュメント

QAにまつわる職種の紹介から始まり、バグのカテゴリの説明、バグトラッキングツールの説明、テストに関連するドキュメントの解説など、実践的な話が多い章でした。

特にバグのカテゴリの説明のところは、新人に読ませるのにちょうど良さそうだし、QAリーダとしてBTSのバグの分類を設計するときにも参考になりそうでした。

 

以下メモ

・QAマネージャは、QAにおける縁の下の力持ち、スポットライトが当たることのない魔法使いのようなもの

 

・QAマネージャの責務は、スタッフが素晴らしい仕事が出来るような環境作りをするということ

 

・ゴシップや士気の低迷は驚くべき速さでその部署をだめにしてしまう

 

・リードテスターは、歩兵の集まりをチームとしてまとめる手助けをします

 

・フロアリーダは「非公式」なリードテスター。フロアリーダにあるのは、経験と開発プロセスに関する深い知識です。有能なフロアリーダーになるためには、技術的なスキルだけではなく、ソーシャルスキルも高めなければいけません。

 

・オーディオ系のバグは、ビジュアル系のバグと比べると見つけにくい。

 

・近い将来、物理演算のバグがテストプレイにおいて占める割合は、更に大きくなるでしょう。

 

・パフォーマンスに関する深刻なバグは、開発プロセスの最後の2ヶ月で修正しようとしても複雑すぎる可能性がある。

 

・ロード時間のバグテストは、非常に退屈。ゲームの全てのレベルを何度もロードして、其の所要時間をノートに書き留める必要がある。

 

・テストをする際には、常にパフォーマンスを意識することが重要です。「完璧」なゲームであっても、パフォーマンスの低さによって、其の名を汚すことがある。

 

・安定性に優れた製品は、バグを上手く隠して見つけにくくしているだけである。

 

・テスターと開発者の間でやり取りが行われることがありますが、これは業界ではあまり良いことだとは思われていません。優れたテスターは自動追尾機能付きミサイルの打ち上げのように、目前の仕事をこなして次へ次へと切り替えていきます。

 

 

 

 

 

 

 

 

 

 

『テスト担当者を悩ませる、10の難題克服法』 その12

年度末評価の時期です。

仕事は概ね想定通りの進捗だったんですが、一点、この半年で新しい人が一人も入らなかったのが、残念でした。

まぁ、人手は足りてるんですが、それはそれとして、人の流動が無いと、チームはいつか停滞しちゃいます。変化を嫌うチームができてしまう。

この業界、変化を拒んでたら、あっというまにワープアです。来年度は、人を入れつつ、異動を推奨しつつ、変化を楽しむチーム作りを進めていきたいなぁと思ってます。

 

ということで、メモの続き(ついに1位まできた)

 

テスト担当者を悩ませる、10の難題克服法

テスト担当者を悩ませる、10の難題克服法

 

 

12章 難題第1位 「NO」と言うこと

つまり、「この品質では、市場に出せませんよ」とステークホルダに言うことです。これが上手くできないと、テストチームも、そして会社も窮地に陥ることになります。

 

つい最近、同僚がまさしくこの状況に陥っておりました。納品日が近づいても収束しない不具合。テストチームは毎日レポートを出しているが、誰もそれに目を通さず、ただただ、目の前のバグ修正に追われる開発者。レポートを見れば、リリースに値しない品質だということは、明らかなのですが、納品日はずらすことが難しいため、とりあえず、インパクトの大きな不具合だけを修正し、残りはリリース後のアップデートで対応しようという方針になりました。

しかし、リリース後、ユーザから寄せられるのは、その細かな不具合へのクレームであり、開発チームはそれらの対応に追われることになります。そして、そのストレスは、テストチームへの批判というカタチで向けられるのでありました。

 

どうすれば、「今は、出すべきではない」という事実を、ステークホルダが納得してくれるのでしょうか。この本が出している結論は、「客観的なデータを集めること」と「誠実に伝えること」の2点です。

データは重要です。テストチームが主観で意見を伝えてしまうと、それは単なるプロダクトへの悪口に聞こえてしまいます。なので、不具合の数、クローズ数、インパクトの大きな不具合の割合といったことを、データとして出す必要があります。

そして、それを伝えるときは、誠実さが大事です。これは、医者が患者に症状を伝えるときのことをイメージしたら良いかもしれません。ふざけてもいけないし、過剰に不安を煽ってもいけません。

 

プロダクトにNoを言うためには、テストチームの役割とはなんなのかを、時間をかけて理解して貰う必要があります。そのためには、開発チームとしっかりコミュニケーションを取る必要があるのです。

 

あ、テストチームがリリース権限を持ってる組織もありますが、それでも結局やることは同じで、客観的なデータと、誠実なコミュニケーションが大事でしょう。合格・不合格、それぞれで、ちゃんと納得感があることが重要です。

 

以下メモ

・テスト担当者が直面する人間関係絡みの最大の難題は、ソフトウェアに問題があることを関係者に伝えることである。一般的な法則として、人は悪いニュースを聞きたがらない。

 

・テストレポートは、開発プロセスに組み込んでしまうのが、効果的である(定期的に報告をする)

 

・テスト結果を正確かつ客観的に報告することは、後で自分を守る最善の方法である。システムをリリースした後で、ソフトウェアに問題があるということで、テスト担当者が非難されることがある。そのような状況において、テスト報告は自分を守る優れた方法である。

 

・テストの評価と報告もテストプロセスの中に定義すべきである

 

・欠陥を見つけて報告することがテスト担当者の仕事であることを、関係者は理解する必要がある。実際、テスト担当者が事実上失敗する可能性があるのは、検出した欠陥を報告することに失敗した時だけである。

 

・四六時中ギシギシ行ってる車輪を人は無視するようになる(テストチームが常に否定的なニュースを伝えるようになると、開発チームはそれを無視するようになる)

 

・テスト報告書には、客観的な情報を記載すること

 

・悪いニュースだけではなく、肯定的に、正常に機能しているソフトウェアの部分を指摘することは、大いに結構である。

 

・裸の王様の新しい服の話は、ソフトウェアに問題があることを経営管理者に告げる勇気を誰も持っていない場合に、何が起こるのかの良い例えである。

・システム導入後のレビューは、非常に役に立つものである。鋭い目で過去を振り返って、プロジェクトの良かった点と悪かった点をドキュメントに記載しましょう

 

・組織が成熟する速さや深さは、上級経営管理者が成熟する速さや深さによって決まる

 

・改善の焦点を(プロダクトではなく)プロセスに合わせるだけで、殆どの組織において劇的な変化が見られる。

 

・コミュニケーションとは、自分が行っていることを聞き手に理解出来るように、他の人と情報を共有するプロセスの一部である。「話す」ことと「聞く」ことと「理解する」ことが全て、コミュニケーションのプロセスに関わる

 

 

 

 

『テスト担当者を悩ませる、10の難題克服法』 その11

年度末でございます。仕事は、半年前に立てた目標が、まぁまぁ達成され始めてて、細やかな充実感が得られたりしてます。

一方、私生活では、2017年は早寝早起きと目標を立てたのですが、一向に目標達成できる気配がありません。眠い。

 

ということで、この本のメモの続き

 

テスト担当者を悩ませる、10の難題克服法

テスト担当者を悩ませる、10の難題克服法

 

 

11章 難題第2位 どちらに転んでも損をする状況と戦うこと

品質悪くてテストが炎上して、とてもじゃないけどリリースできないが、経営層はさっさとリリースしたがっている。リリースを止めても経営層には睨まれるし、けどリリースしても品質悪くて経営層に詰められる。
という、前門の虎・後門の狼という状況のことです。

 

この状況はQAにとっては、非常に辛い状況で、モチベーションが上がりません。忙しくテストをし、QAとしての責任を果たそうとしても無視され、にもかかわらず、リリース後のサービスの評判が悪ければ、あらぬ罪を着せられるわけだし。

 

これも結局は、関連部署のQAに対する無理解から来ています。一言でいえば、コミュニケーション不足が引き起こす災害です。

この「どっちに転んでも損をする」状況に陥っている現場をたまに見かけますが、問題が起きてる現場の共通点は、QAから他部署へのコミュニケーションが控えめであること、ステークホルダが複数いること、開発現場に未熟な人が多いこと、開発のプロセスや雰囲気が固まってからQAがジョインしていること(つまりジョインが遅い)、が挙げられると思います。

解決策、というか、こういう現場に陥らないコツは、「QAの役割を正しく認識してもらうこと」、「プロダクトにとって都合の悪いことも、はっきり伝えること」に尽きるかなと思います。このとき、数値や本やネット記事なんかで、根拠も伝えられると良いかもしれません。

プロダクト側が聞く耳もたないなら、そうですね、転職の準備をしましょうw
そんな現場にいても、得るものは無いです。

 

以下メモ

・テスト担当者が直面した、どちらに転んでも損する状況には、下記のような影響がある
 ・組織のプロセスの成熟度を低く抑える
 ・テストプロセスをないがしろにし、其の基盤をそこなう
 ・テスト担当者のモラルを低下させる
 ・テストに関する誤った見方を助長する

 

・(テストは開発を遅らせる要因と認識されがちだが)実際には、テストが有効なプロセスとして機能していれば、最終的に開発プロセスの効率が上がり、リリースまでの時間が短縮される

 

・テスト担当者が欠陥の修正フローの制御ができなければ、テスト担当者はチェックして欠陥を見つけることに責任を負うだけで、ソフトウェアの品質の責任は負えない

 

・どちらに転んでも損をする状況では、テスト担当者は全ての欠陥を発見することを期待される

 

・実際には、プロジェクトに関与している誰もが、テストに責任がある。

 

・組織内の誰もがテストが演ずる役割を知っていることが、極めて重要である。そうでないと、テストについて、間違った安心感や責任感が持たれてしまう。

 

・テストチームの中には、苞の役割を宣伝するのに効果がある1ページのニュースレターを、四半期ごとに発行しているところがある。(他部署のテストに対する理解を深めるため)

 

・他部署の人間をテストチームで短期間仕事させることは、大きな効果がある。予め適切にテストサれていなかったソフトウェアをテストすると、どういうことになるのかについて、よく理解するようになる。

 

・品質は偶然に達成されるものではない。品質は、強い意図と、真剣な努力と、知的な方向付けと、巧みな実行の結果である。品質は多くの選択肢を賢く選択したことを表す。

 

・ソフトウェア開発の各ステップごとに、品質管理点をプロセスとして組み込むべきである。プロダクト開発の責任者が、品質管理にも責任を負うべきである。

 

『ゲームテスト&QA』 その3

いつかゲームQAの本を出したいなぁとか思う今日このごろ。

 

ゲームテスト&QA

ゲームテスト&QA

 

 

CHAPTER 3 テストの様々な性質:ゲームのライフサイクル

ゲームテストというと、世間的には、ひたすらプレイしてバグを出す、の一言で片付けられがちだけど、ゲーム開発の様々なフェーズに応じた色んなテストがあるんだよ、ということが述べられています。

そう、良いゲームQAというのは、「いま、どんなテストをするべきか」をちゃんと判断出来る人のことだと思います。

安定性とかパフォーマンスとか面白さとか(アプリQAだと)端末カバー率だとか、色んなテーマのテストがあって、それらをどのタイミングでやるべきかというのを、ちゃんとコントロールする必要があります。

プロダクト側は、その辺、意外と無頓着で、ビルドがまったく安定してないのに、「そろそろAndroidで他機種&複数OSバージョンのテストやってくれる?」とか言ってくることも、珍しくありません(そういうときは、ちゃんと、理由を述べて断りましょうね)。

 

バグの優先度の話とか、任天堂SCE,マイクロソフトのプラットフォームのコンプライアンステストの話や(これは、最近だとアップルのガイドラインを守ってるかどうかとかとも関わりますね)、バランス調整の話や、ローカライズの話や、ユーザビリティの話など、テストの種類とその目的が網羅されてるチャプターで、新規タイトルのゲームQAを任された人には、とても参考になる内容だなと思いました。

コラム欄も充実してて、トリプルAタイトルを生み出し続ける海外パブリッシャの品質へのこだわりも伝わってきます。

以下メモ

・バグとはわざと作られるものではありません

 

・バグとは、何かが誤っている状態のことです。これによって、ゲームの質が低下したり、見苦しくなったり、プレイできなくなったりします。

 

・ゲームにおいて、ゲームをより良いものにすること無く質を落とすような要素は、全てバグです

 

・テスターの目的は以下の通り
 ・バグを見つける、バグを再現する、バグを報告する
 ・副次的な目的は以下の通り
  ・バグが修正されたことを検証する
  ・ゲームが楽しいことを確認する

 

・テストは、開発のあらゆる段階において行われるべき

 

・ゲームは、生きて呼吸をするソフトウェアです

 

・アルファのフェーズでは、バグがないゲームを作ることよりも機能を確定することに重点が置かれます

 

・QAが開発プロセスの最後にあって、スケジュールを調整しやすいものであると誤解されないようにする必要がある。

 

・いくら機能が優れていても、実装が不完全であれば何の意味も無い

 

・テスターはローテーションするべき。慣れてしまうとバグに無感覚になってしまうので。

 

・ビルドが壊れていると、お金は無駄になり、テスターたちは時間を潰すことになる

 

・QA部門は有益なフィードバックを提供するという点で非常に重要

 

・QAチームは協力者であって、敵ではないということを開発者が忘れずにいることも、とても重要

 

・協力は必ずより良い製品につながる

 

・バランステストのやり方は、ざっくりいうと、テスターを同じくらいのスキルレベルになるようにチーム分けして、スコアを測り、結果に極端な偏りが無いかどうかをチェックする

 

・互換性テストは、バランステストよりも遥かに技術的要件が厳しいテストである。

 

・ゲームを数日間動かしっぱなしにするテストのことを「ソーキング」(浸す、の意)と呼ぶ。これによりメモリリーク丸め誤差といった、通常のテストでは検出できないバグを検出することができる。

 

・楽しさには決まったルールはなく、その要因を確認する方法はテストプレイしかない

 

任天堂のゲームにはちょうどよいゲームプレイバランス、つまり「楽しさの要因」が常に備わっている

 

ユーザビリティとは、「簡単さ」ではなく「使いやすさ」

 

・プレイヤーの関心は、コントロールの仕組みではなくゲームをクリアすることにあります。それ以外にエネルギーを使うことになれば、本来得られるはずの面白さが損なわれてしまいます。

 

・ゲームのテストは簡単に学べるスキルですが、ゲーム業界や、業界と様々なテストとの関係を理解することは、かなり困難です。

『テスト担当者を悩ませる、10の難題克服法』 その10

完走まであと少し!

 

テスト担当者を悩ませる、10の難題克服法

テスト担当者を悩ませる、10の難題克服法

 

 

10章 難題第3位 動いている的を射ること

僕が日々携わっているゲームのQAは、まさに、動いている的を射る仕事である。

テスト期間に入っても仕様が固まらないなど、日常茶飯事だ。外部要因だと、プラットフォームのOSのバージョンが変わったり、新しいハードが出たり、ガイドラインの変更があったり、ミドルウェアのアップデートがあったりと、変化の要素には事欠かない。

 

まずゲームなので、仕様変更はしょうがない。「最初の案より、こっちのほうが面白い」と判断したなら、そうした方がきっと良いゲームになる。そして、仕様を変更が入った場合は、ちゃんとそのリスクを伝えるのがQAの仕事である。ここで何も発言せずにいると、無茶なスケジュール組まれて残業地獄となるか、不十分なテストでリリースせざるを得ない状況となり、障害のリスク(と責任)を負わされるかもしれない。

 

外部要因への対処は、回帰テストが中心となる。ただ、回帰テストはテスターにとっては退屈な仕事の一つなので、ただ、テストケースを消化するだけではなく、なにかしらのゲーム要素を取り入れたほうが、テストの質は上がる気がしてます(消化速度だとテストがおざなりになるので、見つけた不具合数とかの方が効果的)。

あとは、なるべく無駄な項目を削るために(ボリュームの多い回帰テストほど、テスターのやる気を削ぐものはない…)、回帰テストのテスト項目には優先度をつけたり、影響範囲を把握するためにコンポーネントの関連図を用意しておくのも効果的。

 

ゲームのQAをやるならば、変化に文句を言ってはいけません。変化を許容し、変化によるリスクを正確に伝えるように心がけたいものです。

 

以下メモ

・過去においては、「要求の変化をいかにして抑えるか」が問題であったが、今となっては、「変化する要求に如何に対処するか」が問題である。

 

・変更には、回避不可避なものと回避可能なものが混在している

 

・変化は避けられないのであるから、変化に驚くよりも、むしろ変化を計算に入れるべきである

 

・テストの目的は一連の固定的な基準に基づいて、何かを評価することである。

 

・変更を許容するのでも記録するのでもなく、管理すべし

 

回帰テストを実行するには、正確性が求められる(なので、自動化が望ましい)

 

今週気づいたこと

ソフトウェア開発会社の専門職には、出世コースに、マネジメントコースとプロフェッショナルコースの2つ用意されていることが珍しくない。

 

最近、思ったんだけど、QAでずっとメシを食っていこうと思ったら、プロフェッショナルコースを意識した方が良いような気がした。まぁ、マネージャ目指してもいいけどマネジメントコースは、大抵の場合、有限な椅子の椅子取りゲームなので、自分だけではどうにもならんことがある。

一方、プロフェッショナルコースは、椅子は自分で作ればいい。実力を見せつけて、会社に認めさせればいいのだ(ただ、その道はマネージャルートよりもよっぽど過酷だと思う)。

 

マネジメントコースとプロフェッショナルコースの大きな違いは、社内価値を意識するのか、市場価値を意識するのかの差だと思う。重なってる部分ももちろん多いけど、マネジメントは市場価値が考慮されない場合がある。例えば、長く会社に在籍してるだけでもなれる場合があるし、逆のパターンだと、実力があっても一部の人に嫌われてたらなれないことだってある。なので、「頑張るのが馬鹿らしい」という瞬間が来ないとも限らない。社内価値を意識することは、このリスクがある。

 

 

他の職種と比較すると、残念ながら、QAを専門職と認識している会社は、それほど多くない。だからこそ、それを証明し、プロフェッショナルとして会社に認めさせていくプロセスは、出世を目指すのとは異なるベクトルの、持続可能なモチベーションが得られそうだなと思った次第なのでした。

 

 

『テスト担当者を悩ませる、10の難題克服法』 その9

 

 

テスト担当者を悩ませる、10の難題克服法

テスト担当者を悩ませる、10の難題克服法

 

 

 

9章 難題第4位 投げ渡されたソフトウェアをテストすること

テスターからの不満第一位だと思う。

テストチームにとって、テスト対象のソフトウェアの質が悪く、仕様も固まっていない状態でテストすることほど、ストレスの貯まることはありません。しょうもないバグの報告書作成や、しょうもない仕様質問にひたすら時間が消費されていき、大事なところのテストができない。

にも関わらず、スケジュールが遅れたり、リリース後にインシデントが発生すると、まずテストチームに責任の矢が向けられることは珍しくありません。

したがって、この問題は、テストチームの生産性を高め、かつ社内的な立場を守るために、速やかに解決しなくてはならない問題の一つだと思います。

 

この章でも明記されていますが、必要なことは、関係各所とのコミュニケーションです。ソフトウェアテストというものの性質を良く知ってもらわなくてはならない。まずはそこからです。

 

僕の知り合いのテスト技術者は、プロダクト側に最低限クリアしなくてはならないチェックリストを渡し、それをすべてクリアしないとテストはしないようにしてるそうです。チェックリストの中身は「起動すること」とか「今回追加した機能が正常に利用できること」とかそれくらいレベルの低い内容だったそうですが、効果はかなりあったそうで、「しょうもないバグ」の数が劇的に減り、複雑な条件のテストに費やす時間が確保できるようになったそうです。

まぁ、上記のことをやるためにも必要なことは正確なコミュニケーションということになるのでしょうけど。「しょうもないバグや俺らのミスを見つけるのがテストチームの仕事だろ?」と思ってる開発者は、残念ながら居ますから。

 

以下メモ

・開発者はプロダクトを突然にテスト担当者に送りつけることがある。そのような振る舞いを「投げ渡す」ということがある。

 

・開発者側では、最終的にテスト担当者が全ての欠陥を見つけてくれるだろう、と想定している。そのため開発者は、たとえ(自身で)テストを行ったとしても、不十分になりがちである。その結果、単体テストの段階で開発者に酔って検出されるべきであったシステム中の欠陥が、テスト担当者によって数多く発見される傾向が強くなる。

 

・「ソフトウェアを投げ渡す」ような行動の根本原因の主たるものは、コミュニケーションの欠如である。

 

・(投げ渡されたソフトウェアのテストは)多くは表面的になり、その結果として、重大性の高い欠陥を発見する有効性が下がっていった。

 

・(投げ渡されたテストで思い通りの結果が出ないのは)人数ではなくプロセスの問題である。

 

・ソフトウェアがテスト担当者に投げ渡される場合、開発者側には、「自分はテストしている時間が無いから、テストを本業にする人たちに任せておけば良い」、という態度が産まれる。

 

・テストのコストを論点にしてみると、コミュニケーションがうまくいくかもしれない。開発者がソフトウェアをテスト担当者に投げ渡すようなやり方だと、テストや再作業の回数が増えるため、コストが高くなることを示してみる。

 

・開発者が実施すべきテストと、テスト担当者が実施すべきテストとを指定した、プロセスを定めることである。

 

・欠陥除去有効性=テスト中に発見された欠陥の数 / プロダクトの寿命期間中に発見された欠陥の合計数

 

・品質の高いソフトウェアはひとりでにできるものではない

 

・仕事に幸福感を感じるためには、3つの事柄が必要である。具体的には、該当の仕事に向いていること、仕事をしすぎないこと、仕事に成功感を感じることである(ジョン・ラスキン -イギリスの作家-)