More Related Content Similar to Gamedevenvstudy1 (20) Gamedevenvstudy124. シンプルなテスト、スケジューリング、ツール
• TeamCity
• Pulse Continuous Integration Server
http://zutubi.com/products/pulse/ , http://zutubi.com/sales/
• Hudson [forked to "Jenkins"]
• CruiseControl.NET
• Buildbot
• Bitten (automated metrics collection for Trac)
http://bitten.edgewall.org
• Cucumber (behavior-driven testing)
http://cukes.info/
• BugSplat (drop-in crash tracking)
http://www.bugsplatsoftware.com/
24
25. シンプルなテスト、スケジューリング、ツール
• BugSplat (drop-in crash tracking)
http://www.bugsplatsoftware.com/
BugSplatはあなた自身の製品のエンドユーザーがクラッシュを追跡
するためのツールの包括的なセットを提供しています。 BugSplatを
使用すると、簡単には、ユーザーがクラッシュを監視し、ライブラリ
を統合して取得します。クラッシュのイベントでは、ユーザーは、オ
ンラインサービスへのクラッシュ情報をアップロードするオプション
が与えられます。あなたのエンジニアリングチームはBugSplatの
Webサイトにあるすべてのクラッシュ情報を閲覧することができま
す象徴呼び出し、実際の問題を特定するために使用できるスタッ
クを含む貴重な情報へのアクセスを持っています。オンラインクラ
ッシュ報告はあなたの傾向を分析し、最も一般的なユーザーがク
ラッシュを分離するツールの広いセットを提供します。(Featuresを
機械翻訳)
25
32. 入力の扱い
• テスターのプレイの入力ストリームをそのまま
記録するチームもある、そしてそれを自動テ
ストで再生する、成功して完走するか失敗/ク
ラッシュするかをチェックする。
• ゲームやUIの頻繁な変更に伴いこれらの入力ストリームが
「古く」なる場合があります、そして再レコーディングするオー
バーヘッドもあります。(このタイプのテストでは整合性を保
つためのオーバーヘッドが大きすぎるという人も居ます。簡
単に言えば、プロダクトや技術者に依存します。)
• UIが安定に達するのと、入力ストリームの記録をとり再記録
がめったに起きなくなるのを競わせたゲームもあります。
32
35. 入力の扱い
• fuzz testingを主要ツールとして使っていて個
人的に推薦するという人が居た。入力の記録
やスクリプトよりも。ネットワークパケットやファ
イル(とかその他可能なもの)からファズデー
タをパース・ロードし、ハードウェアの欠陥や
ソフトウェアバグをシミュレートする。
• 彼のチームのエンジンはほとんど全てのものに対してロードができ
なかった場合の代替リソースがある、そしてその方法は対象のコ
ードパスに対する正常・異常を見つけるのが本当に早い。(PCゲー
ムのこと?)いくつものハードウェア障害に対応できる安定したエ
ンジンが何百万ものユーザを持つビッグタイトルを支えます(おそ
らく何千もの不良ユニットを持っている可能性がある)。
http://www.ibm.com/developerworks/jp/java/library/j-fuzztest.html
http://www.sophia-it.com/content/fuzz+testing
35
39. レポートと履歴
• Long soak tests:浸せき試験(1日から2週間っ
て言っていた)を行えばリークや他の問題をグ
ラフ化する事ができるよ。
http://www.c-able.ne.jp/~tips-com/00topics/01dictionary/0111sa/
(信頼性テスト)
39
41. レポートと履歴
• クラッシュ/ハングレポートにスタックトレース
を添付する:それらレポートかまるまる全部を、
例えばP4 blameで(Perforceの機能?)、自動
的にパースするかアサインするという手もあ
る。スタックとレースに「ハッシュ」を付けるの
もデータを汲むのに役立つ。["Debugging in
the (Very) Large"という論文参照]
"Debugging in the (Very) Large"→
http://research.microsoft.com/apps/pubs/default.aspx?id=81176
41
47. テスト環境
• Valgrind, Bounds Checker, Insure++ といった
ツール専用の環境はスケジューリングされた
テストに追加して走らせるのに良い場所です。
Valgrind: http://ja.wikipedia.org/wiki/Valgrind
Bounds Checker:
http://www.microfocus.co.jp/products/devpartner/devpartner_fm/devpartnervisualc/
Insure++: http://www.techmatrix.co.jp/quality/insure/index.html
47
52. アンチパターン、避けるべき事
• チューニングのために進化(改造)されたビル
ドからデータを使用する場合、何かが変わっ
た時に深刻な問題が発生する。
• [このGDC2011のAI Summit内"AI Pr0n: Maximum
Exposure of Your Debug Info!" by Michael Dawe(Big
Huge Games/38 Studios), Rez Graham (Electronic
Arts - Sims Division), and Brian Schwab (Blizzard
Entertainment) でこの事に関するすばらしい発表が
あった]
52
67. • Day 2
• 2日目のトピックはインフラです:誰がデプロイ
や自動化を保持しますか、そしてどんなツー
ルやプラクティスを使っていますか。
• この日は「一般的な質問を集めて、それらに
ついて答えていく」モデルにしました。
67
72. 内製vsサードパーティー
• サードパーティーのツールは以下のものが挙
げられました:
• Hudson (builds)
Hudson→forked to Jenkins http://jenkins-ci.org/
• TeamCity (builds)
• JIRA (issue/project tracking) [someone
mentioned integration with Hudson here]
• FishEye (VCS notification, visualization, and
search)
http://www.atlassian.com/software/fisheye/ 10 users $10
72
78. テレメトリー(遠隔測定)
• サードパーティーのツールは以下のものが挙
げられました:
• Confluence (info share)
http://www.atlassian.com/software/confluence/ $10
• SQL Server Reporting Services (analytics)
http://msdn.microsoft.com/ja-jp/library/ms159106.aspx
• Callgrind [part of Valgrind] (call graph)
http://valgrind.org/docs/manual/cl-manual.html
• Tableau (analytics) [高いと言われるけど、買う余裕があれ
ばそれだけの効果がある]
http://www.tableausoftware.com/ 日本サポート会社あり
http://www.tableausoftware.jp/
78
91. 統合/メンテナンス
• スクリーンショットを撮る。これは人によって素
早く検証できるし、ピクセル毎の比較にも使え
る(よく失敗するし、プロダクトに依存するが)、
もしくはPerceptualDiff。ボットはゲームを旋回
する中でスクリーンショットを撮るべきだ。
• PerceptualDiff http://pdiff.sourceforge.net/
91
113. プレゼンテーション
• 通知方法について
• e-mail
• yammer
https://www.yammer.com/
• tumblr
http://www.tumblr.com/
• growl
http://growl.info/ , http://ascii.jp/elem/000/000/562/562062/
• the famous GitHub traffic light =)
http://blog.littlebirdelectronics.com/git-hub-traffic-light-via-urbanhonkingcom
• 本物のサイレン
• 真ん中に置かれたTVとかモニター
113
117. 分散ビルド
• 以下のサードパーティーの商品が挙がった
• SN-DBS (Sony platforms)
http://www.snsys.jp/products/SN-DBS.asp
SN-DBS は PlayStation2、PSP (PlayStationPortable) 及
び PlayStation3 の開発者の皆様にこれより無償で、
Product Licensing System 無 しにご利用いただけま
す。
• IncrediBuild
http://www.xoreax.co.jp/
117
122. 分散ビルド
• VCS(バージョン管理システム)は何を使って
いますか?ほとんどの人はPreforce(60%くら
い)、次にSubversion(10%未満くらい)、いくつ
かのチームはGit。
• (粉川が現地で取った記録では、Perforceが50%以
上、Subversion20%、gitが1人、2人くらいに感じまし
たが。)
122
123. • Day 3
• 3日目のトピックはデータ収集、マイニング、
可視化について。
• [前日に結構うまくいったので、「一般的な質
問を集めて、それらについて答えていく」モデ
ルを続けます。
123
128. どのように自動化していますか?
/アサーションについて
• データが正しいフォーマットであるかどうかを
検証するためにアサーションを広範囲に使用
している人もいる。
128
130. どのように自動化していますか?
/アサーションについて
• 実行フローを継続させる事ができる「スキップ
できるアサート」を使っている人もいる。
• (例:モンキーテストのような)ボットにトリガーされた
全てのアサーションを記録するようにしている。
• ユーザのプレイを通してスキップされたアサーション
はサーバにレポートされる(ユーザ名と一緒に!)。
130
131. どのように自動化していますか?
/アサーションについて
• 「関数単位で全てのパラメータをテストする」
ためにアサーションを使う人もいる。
• 似たような感じで、「全ての事前、事後状態を
テストする」ためにアサーションを使う。
131
132. どのように自動化していますか?
/アサーションについて
• アサーションは「アーティスト(デザイナ)フレン
ドリー」であるべき。人間に読める記述と、修
正のための指示やリンクを含めよう。
132
133. どのように自動化していますか?
/アサーションについて
• アサートにグループによるタグ付けをする(マ
クロを使ったりして)、自動的に修正ができる
人にレポートする。
133
134. どのように自動化していますか?
/アサーションについて
• アサーションの統計をとる -- これによりバグ
の多いシステムを識別する事ができる。
134
135. どのように自動化していますか?
/アサーションについて
• できるだけ、通常のスキップ可能なアサートと
致命的なアサートを切り分ける。
135
137. どのように自動化していますか?
/アサーションについて
• アサートは「アルゴリズムのエラー用」に限定
し、全てのデータエラーのケースは別のコード
で扱う人もいる。
137
154. モバイル機器でのテスト
• 以下のサードパーティーの製品が挙がりまし
た
• Selenium (web specific)
http://seleniumhq.org/
• Sikuli (GUI testing with screen shots)
http://sikuli.org/
http://www.moongift.jp/r/2010/01/project-sikuli/
• .NET UI Automation framework
http://msdn.microsoft.com/ja-jp/library/ms747327.aspx
154
170. 可視化ツール
• [以下のほとんどは初日に挙げられた;いくつかは厳密には可視化
ツールではないが、この日挙がったリストとして]
• Hudson (builds)
• CruiseControl (builds)
• TeamCity (builds)
• NUnit (unit testing)
• VMWare (virtual machines)
• Sonar (code coverage)
http://www.sonarsource.org/
• Tableau (analytics)
• ・・・その他、内製のツール詰め合わせ
170
178. • IGDA Tools SIG: http://www.igda.org/toolssig
• tools_discuss mailing list:
http://two.pairlist.net/mailman/listinfo/tools_discuss
• wiki: http://wiki.igda.org/Tools_SIG
• IGDA QA SIG: http://www.igda.org/qa/
• wiki: http://wiki.igda.org/Quality_Assurance_SIG
• IGDA QA SIG: http://www.igda.org/qa/
• wiki: http://wiki.igda.org/Quality_Assurance_SIG
• "Six Million Dollar Tester: Making QA Better/Stronger/Faster
Through Automation"
• The GDC Vault : http://www.gdcvault.com/
178