Enviar pesquisa
Carregar
ゲームの自動テストを 作ってみた
•
2 gostaram
•
1,000 visualizações
Yuusuke Takeuchi
Seguir
このイベントでの資料です。 http://eventdots.jp/event/565755
Leia menos
Leia mais
Software
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Baixar agora
Baixar para ler offline
Recomendados
ブラウザでの自動テスト
ブラウザでの自動テスト
hashedrock
Test Plugins
Test Plugins
ykhr
第2回nseg slideshare
第2回nseg slideshare
ko ty
apasec001-kawai
apasec001-kawai
Hidemi Kawai
a-blog cms ver2.5 概要
a-blog cms ver2.5 概要
Atsushi Ito
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Hisateru Tanaka
第2回関西ソーシャルゲーム勉強会
第2回関西ソーシャルゲーム勉強会
ha1t
Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718
エンジニア勉強会 エスキュービズム
Recomendados
ブラウザでの自動テスト
ブラウザでの自動テスト
hashedrock
Test Plugins
Test Plugins
ykhr
第2回nseg slideshare
第2回nseg slideshare
ko ty
apasec001-kawai
apasec001-kawai
Hidemi Kawai
a-blog cms ver2.5 概要
a-blog cms ver2.5 概要
Atsushi Ito
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Hisateru Tanaka
第2回関西ソーシャルゲーム勉強会
第2回関西ソーシャルゲーム勉強会
ha1t
Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718
エンジニア勉強会 エスキュービズム
CnPack の紹介
CnPack の紹介
Jun Hosokawa
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
Yasumasa Suenaga
Flash Playerの作り方
Flash Playerの作り方
Yu Kobayashi
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
UnitTestのためのクラス設計
UnitTestのためのクラス設計
Takeshi Ishida
CgiSecure
CgiSecure
Net Kanayan
やってよかったOS作り
やってよかったOS作り
Hidemi Kawai
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
Hiroshi Yamato
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
Masahiro Sano
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
Apache Archiva を試す
Apache Archiva を試す
bouzuya
PHPべんちまーく
PHPべんちまーく
chichi1091
HighBatch
HighBatch
Nobuhito Sato
Power shellmemo
Power shellmemo
ytanno
2021 01-25 lt sho kato
2021 01-25 lt sho kato
katosho1
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
hnisiji
自動テストのすすめ
自動テストのすすめ
Katsunori Kanda
Pythonを使った簡易診断スクリプトの作り方
Pythonを使った簡易診断スクリプトの作り方
Yuichi Hattori
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて
Takaaki Kasai
Gamedevenvstudy1
Gamedevenvstudy1
Takashi Kokawa
Mais conteúdo relacionado
Mais procurados
CnPack の紹介
CnPack の紹介
Jun Hosokawa
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
Yasumasa Suenaga
Flash Playerの作り方
Flash Playerの作り方
Yu Kobayashi
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
UnitTestのためのクラス設計
UnitTestのためのクラス設計
Takeshi Ishida
CgiSecure
CgiSecure
Net Kanayan
やってよかったOS作り
やってよかったOS作り
Hidemi Kawai
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
Hiroshi Yamato
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
Nobuhiko Futagami
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
Masahiro Sano
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
Apache Archiva を試す
Apache Archiva を試す
bouzuya
PHPべんちまーく
PHPべんちまーく
chichi1091
HighBatch
HighBatch
Nobuhito Sato
Power shellmemo
Power shellmemo
ytanno
2021 01-25 lt sho kato
2021 01-25 lt sho kato
katosho1
Mais procurados
(17)
CnPack の紹介
CnPack の紹介
HeapStats(Java解析ツールバトル)
HeapStats(Java解析ツールバトル)
Flash Playerの作り方
Flash Playerの作り方
PHP agile test tips
PHP agile test tips
UnitTestのためのクラス設計
UnitTestのためのクラス設計
CgiSecure
CgiSecure
やってよかったOS作り
やってよかったOS作り
誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
WEB開発動作テストの自動化 を行うSeleniumの紹介
WEB開発動作テストの自動化 を行うSeleniumの紹介
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Apache Archiva を試す
Apache Archiva を試す
PHPべんちまーく
PHPべんちまーく
HighBatch
HighBatch
Power shellmemo
Power shellmemo
2021 01-25 lt sho kato
2021 01-25 lt sho kato
Semelhante a ゲームの自動テストを 作ってみた
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
hnisiji
自動テストのすすめ
自動テストのすすめ
Katsunori Kanda
Pythonを使った簡易診断スクリプトの作り方
Pythonを使った簡易診断スクリプトの作り方
Yuichi Hattori
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて
Takaaki Kasai
Gamedevenvstudy1
Gamedevenvstudy1
Takashi Kokawa
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
KinebuchiTomo
FriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみた
NakaiYusaku
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Behat Driven Development
Behat Driven Development
Ryo Tomidokoro
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
com044
採用LT「まだお祈りデプロイで消耗してるの?」
採用LT「まだお祈りデプロイで消耗してるの?」
Takayuki Fukumoto
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Study Group by SciencePark Corp.
Acceptance testは開発者がつくるべき(公開版)
Acceptance testは開発者がつくるべき(公開版)
Ken Muryoi
Vagrant chef
Vagrant chef
Masahiro Iitsuka
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
Yuta Matsumura
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Hiroyuki Tanaka
Semelhante a ゲームの自動テストを 作ってみた
(20)
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
ブラウザ自動化ツール カオスマップ風 - STAC2018 LT
自動テストのすすめ
自動テストのすすめ
Pythonを使った簡易診断スクリプトの作り方
Pythonを使った簡易診断スクリプトの作り方
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて
Gamedevenvstudy1
Gamedevenvstudy1
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
ゆるかわPhp
ゆるかわPhp
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
FriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみた
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
Behat Driven Development
Behat Driven Development
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
採用LT「まだお祈りデプロイで消耗してるの?」
採用LT「まだお祈りデプロイで消耗してるの?」
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Azure VMを検証に使う - 便利なHyper-Vスナップショットを使う方法
Acceptance testは開発者がつくるべき(公開版)
Acceptance testは開発者がつくるべき(公開版)
Vagrant chef
Vagrant chef
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Mais de Yuusuke Takeuchi
Reduxについて
Reduxについて
Yuusuke Takeuchi
自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた
Yuusuke Takeuchi
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
Yuusuke Takeuchi
Passportでサクッと外部認証を組み込もう
Passportでサクッと外部認証を組み込もう
Yuusuke Takeuchi
春のJs祭2015 lt
春のJs祭2015 lt
Yuusuke Takeuchi
Node.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよ
Yuusuke Takeuchi
Gブレイバー1人用モード開発案
Gブレイバー1人用モード開発案
Yuusuke Takeuchi
東京Node学園祭2014 飛び入りLT
東京Node学園祭2014 飛び入りLT
Yuusuke Takeuchi
2014年上期Gブレイバー振り返り
2014年上期Gブレイバー振り返り
Yuusuke Takeuchi
Enchant.js入門
Enchant.js入門
Yuusuke Takeuchi
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Yuusuke Takeuchi
Gブレイバー開発計画3スプリント目
Gブレイバー開発計画3スプリント目
Yuusuke Takeuchi
Gブレイバー開発計画 2スプリント目
Gブレイバー開発計画 2スプリント目
Yuusuke Takeuchi
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
Yuusuke Takeuchi
テスト駆動ゲーム開発をJava scriptで実践
テスト駆動ゲーム開発をJava scriptで実践
Yuusuke Takeuchi
Gブレイバーのことれからとこの先
Gブレイバーのことれからとこの先
Yuusuke Takeuchi
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
Yuusuke Takeuchi
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生
Yuusuke Takeuchi
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
Mais de Yuusuke Takeuchi
(20)
Reduxについて
Reduxについて
自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
Passportでサクッと外部認証を組み込もう
Passportでサクッと外部認証を組み込もう
春のJs祭2015 lt
春のJs祭2015 lt
Node.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよ
Gブレイバー1人用モード開発案
Gブレイバー1人用モード開発案
東京Node学園祭2014 飛び入りLT
東京Node学園祭2014 飛び入りLT
2014年上期Gブレイバー振り返り
2014年上期Gブレイバー振り返り
Enchant.js入門
Enchant.js入門
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Gブレイバー開発計画3スプリント目
Gブレイバー開発計画3スプリント目
Gブレイバー開発計画 2スプリント目
Gブレイバー開発計画 2スプリント目
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
テスト駆動ゲーム開発をJava scriptで実践 in jscafe20
テスト駆動ゲーム開発をJava scriptで実践
テスト駆動ゲーム開発をJava scriptで実践
Gブレイバーのことれからとこの先
Gブレイバーのことれからとこの先
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
ゲームの自動テストを 作ってみた
1.
ゲーム の 自
動 テス ト を 作 って み た 竹 内 佑 介 2 0 1 5 / 0 8 / 2 3
2.
ゲーム 画 面
の テス ト コ ー ド を 書くの難しいと思っていませんか?
3.
ち ょ っ
と 工 夫 す れ ば 案 外 簡 単 に で き る んで す
4.
今 日 はそ
の 方 法 を 皆 さ ん と 共 有 し た い と 思 い ま す
5.
ゲーム 画 面
の 自 動 テス ト を 実現するには何が必要でしょうか?
6.
こ ん な
ん が 必 要 だ と 思 い ま す • テスト対象だけ切り出せる • 自動的に操作ができる • 自動的に検証ができる(いわゆるアサーション) • 好きなテストコードをいつでも実行できる • テストコード一覧を1コマンドで実行できる
7.
テス ト 対
象 だ け 切 り 出 す に は ? • ゲームライブラリの基本機能を使えばOK • 最近のは大体スプライト、シーン、グループとかある のでそれを使えばいいでしょう • スプライトについて https://ja.wikipedia.org/wiki/ %E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E 3%83%88_(%E6%98%A0%E5%83%8F%E6%8A %80%E8%A1%93)
8.
自 動 的
に 操 作 す る に は そ の 1 • タイムラインとイベント発火を組み合わせれば、大体 のことはできるはず • タイムラインの詳細、要はフレーム補間 http://wise9.github.io/enchant.js/doc/core/ja/symbols/ enchant.Timeline.html
9.
自 動 的
に 操 作 す る に は そ の 2 • enchant.jsでの実装例は以下の通り https://github.com/kaidouji85/gbraver/blob/ d276ebce9ac570d9528efc2106a1467d5cdc7f36/ publicForTest/javascripts/testlib/testUtil.js • 実際に動いてるイメージはこんな感じです http://gbraver-beta.herokuapp.com/testClient?code=/ javascripts/changeSceneTest/ selectArmdozerToTopForPrevButtonTest.js
10.
自 動 的
に 検 証 す る に は ? そ の 1 • どこを検証するのか • 前提としてゲーム画面すべてを自動検証するのは無理 • 演出、操作感とかは人間が直接みた方が早い • 論理的には画像比較、操作履歴の比較をすれば上記項 目もテストはできるけど、どう考えても労力に見合わ ない
11.
自 動 的
に 検 証 す る に は ? そ の 2 • 人間の目では確認しずらいところを検証する • 例えば・・・・・・、 • 何かした時に、意図したイベントが発火されるか • サーバへの送信データは正しいか • ボタン押下->API実行、という流れは正しいのか
12.
自 動 的
に 検 証 す る に は ? そ の 3 • これらを検証するにはenchant.jsというかjavaScriptの 場合は、以下を検証することになる • 意図したコールバック関数が、意図したパラメータと 共に呼ばれるか • これなら、javaScriptにあるアサーションライブラリで いくらでも検証できる
13.
自 動 的
に 検 証 す る に は ? そ の 4 • 私はアサーションライブラリとしてchaiを使っていま す http://chaijs.com/api/assert/ • アサーションしているコードの例(53行目あたり) https://github.com/kaidouji85/gbraver/blob/ d276ebce9ac570d9528efc2106a1467d5cdc7f36/ publicForTest/javascripts/battleEndTest/ battleEndForWinTest.js#L53
14.
テス ト コ
ー ド を い つ で も 実 行 す る は ? そ の 1 • ここはゲームの作りに依存するので、一概にこれとい う方法がない • 自分の場合はテストコードをリクエストパラメータに 渡したら、それを実行してくれるサイトを作った
15.
• 例えばこんな感じ http://<ゲームのドメイン>/testClient?code=<テスト コード名> • 公開しているテスト環境ではこんな感じで実行できま す http://gbraver-beta.herokuapp.com/testClient?code=/ javascripts/changeSceneTest/battleToNextStoryTest.js テス
ト コ ー ド を い つ で も 実 行 す る は ? そ の 2
16.
• テストコード一覧を表示するサイトも作った http://gbraver-beta.herokuapp.com/testList テス ト
コ ー ド を い つ で も 実 行 す る は ? そ の 3
17.
テス ト 一
覧 を 実 行 す る に は ? そ の 1 • これもゲームの作りに依存するので、これを使うとい う方法はない • 自分の場合はさっきのテスト一覧表示サイトと seleniumを組み合わせて、なんとか実現した
18.
自 分 で
作 って み た コ ー ド は こ こ に あ り ま す https://github.com/kaidouji85/gbraver
19.
作 って み
た コ ー ド に つ いて • テストコードやプロダクトコードはここにあります https://github.com/kaidouji85/gbraver • テストコード一覧はここで見れます http://gbraver-beta.herokuapp.com/testList • ゲームはここで遊べます http://gbraver.herokuapp.com/
20.
ご 静 聴
あ り が と う ご ざ い ま し た
Baixar agora