SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
テスト駆動ゲーム開発を
JavaScriptで実践
in JsCafe20
!
竹内 佑介
自己紹介
竹内 佑介
仕事でソフト開発やってます
趣味で通信対戦ゲームを作ってます
さっそくですが
こんなゲーム作ってます
機動倶楽部Gブレイバー
ジャンルは対戦型PRGです
詳細はこちらです

http://www.slideshare.net/
yuusuketakeuchi96/g-33989023



テスト駆動とは?
テスト失敗
テスト成功リファクタリング
Gブレイバーのテスト状況
について説明します
サーバ クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
Gブレイバーシステム構成
ゲームロジック
サーバ クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
Gブレイバーシステム構成
ゲームロジック ユニットテスト
スタブと!
半自動テスト
ユニットテスト
今日はゲーム画面

テストの話をします
テストコードの構成
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
テストコードの構成
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
JSONでダミーを作る
テストコードの構成
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
送信オブジェクトにアサーションをかける
テストコードの構成
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
ボタン押下コールバックを直接呼ぶ
テストコードの構成
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
ここは目視で確認
テストコードの構成
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
フレーム制御はtimeLineを活用
実際のテストコードはここ
https://github.com/kaidouji85/gbraver/blob/master/
publicForTest/javascripts/playerAtackTest.js
画面半自動テストのデモ
https://www.youtube.com/watch?v=NmaJuNIGKw4
Gブレイバーのコード
https://github.com/kaidouji85/gbraver
中の人のブログ
毎日プログラム
http://blog.livedoor.jp/kaidouji85/
ご清聴ありがとう
ございました
おまけ
スタブについて
Gブレイバーのスタブ
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
Gブレイバーのスタブ
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
テストコードを同じものを作る
Gブレイバーのスタブ
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
テストコードを同じものを作る
一般的なテストコードと書き方は同じ
ー>ここを作るのは楽
Gブレイバーのスタブ
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
手動で実施
Gブレイバーのスタブ
クライ

アント
コマンド入力コマンド送信
ゲーム結果送信
ゲーム結果表示
手動で実施
テストコードを作る前に

スタブを作ってます
ぶっちゃけ、スタブを

テストコードに流用してます
スタブ
スタブ コマンド入力自動
追加
テストコード
スタブ コマンド入力自動

Weitere ähnliche Inhalte

Andere mochten auch

Colorbox jscafe 20140511
Colorbox jscafe 20140511Colorbox jscafe 20140511
Colorbox jscafe 20140511Kazuyuki Ikeda
 
Gブレイバー開発計画 2スプリント目
Gブレイバー開発計画 2スプリント目Gブレイバー開発計画 2スプリント目
Gブレイバー開発計画 2スプリント目Yuusuke Takeuchi
 
Gブレイバーのことれからとこの先
Gブレイバーのことれからとこの先Gブレイバーのことれからとこの先
Gブレイバーのことれからとこの先Yuusuke Takeuchi
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20佐藤 俊太郎
 
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~Yoshinori Kobayashi
 
Passportでサクッと外部認証を組み込もう
Passportでサクッと外部認証を組み込もうPassportでサクッと外部認証を組み込もう
Passportでサクッと外部認証を組み込もうYuusuke Takeuchi
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみたYuusuke Takeuchi
 
年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会monobit
 
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れるNode.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れるYuusuke Takeuchi
 

Andere mochten auch (9)

Colorbox jscafe 20140511
Colorbox jscafe 20140511Colorbox jscafe 20140511
Colorbox jscafe 20140511
 
Gブレイバー開発計画 2スプリント目
Gブレイバー開発計画 2スプリント目Gブレイバー開発計画 2スプリント目
Gブレイバー開発計画 2スプリント目
 
Gブレイバーのことれからとこの先
Gブレイバーのことれからとこの先Gブレイバーのことれからとこの先
Gブレイバーのことれからとこの先
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20
 
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
VEGAS jQuery Plugin を使ってみた ~背景画像やスライドショーを画面いっぱいに表示~
 
Passportでサクッと外部認証を組み込もう
Passportでサクッと外部認証を組み込もうPassportでサクッと外部認証を組み込もう
Passportでサクッと外部認証を組み込もう
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
 
年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会
 
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れるNode.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
 

Ähnlich wie テスト駆動ゲーム開発をJava scriptで実践 in jscafe20

Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみたHtml5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみたYuusuke Takeuchi
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCITakafumi Ikeda
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステムSEGADevTech
 
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)PlayCanvas運営事務局
 
テスト自動化ツール[Selenium]を検討してみて
テスト自動化ツール[Selenium]を検討してみてテスト自動化ツール[Selenium]を検討してみて
テスト自動化ツール[Selenium]を検討してみて裕史 川松
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Tatsuya Ishikawa
 
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!TAKUYA OHTA
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームsairoutine
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上Tatsuya Ishikawa
 
ソシャゲーのバグ
ソシャゲーのバグソシャゲーのバグ
ソシャゲーのバグsakurasoft
 
FriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみたFriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみたNakaiYusaku
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?モノビット エンジン
 
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on20140517 knockoutjs hands-on
20140517 knockoutjs hands-onSeiji Noro
 
[120915] igda sig indie9
[120915] igda sig indie9[120915] igda sig indie9
[120915] igda sig indie9IGDA Japan
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasstkyon mm
 
Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!YujiSoftware
 

Ähnlich wie テスト駆動ゲーム開発をJava scriptで実践 in jscafe20 (20)

Html5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみたHtml5の通信対戦ゲームをテスト駆動開発で作ってみた
Html5の通信対戦ゲームをテスト駆動開発で作ってみた
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
【HTML5ゲーム開発環境勉強会 】PlayCanvasビルトインコンポーネント ディープダイブ第一弾【物理エンジン】(2018/12/11講演)
 
テスト自動化ツール[Selenium]を検討してみて
テスト自動化ツール[Selenium]を検討してみてテスト自動化ツール[Selenium]を検討してみて
テスト自動化ツール[Selenium]を検討してみて
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
 
GDC2014_QA
GDC2014_QAGDC2014_QA
GDC2014_QA
 
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
 
QA improvement
QA improvementQA improvement
QA improvement
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲーム
 
GDC2018 recap AGS JP
GDC2018 recap AGS JPGDC2018 recap AGS JP
GDC2018 recap AGS JP
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
ソシャゲーのバグ
ソシャゲーのバグソシャゲーのバグ
ソシャゲーのバグ
 
FriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみたFriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみた
 
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
【GCC2019】モノビットエンジンがついにクラウド化!しかし、インフラでまさかのAzureを利用!?本当に大丈夫なの?
 
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
 
Test like a team.
Test like a team.Test like a team.
Test like a team.
 
[120915] igda sig indie9
[120915] igda sig indie9[120915] igda sig indie9
[120915] igda sig indie9
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!
 

Mehr von Yuusuke Takeuchi

自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみたYuusuke Takeuchi
 
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10Yuusuke Takeuchi
 
ゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみたゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみたYuusuke Takeuchi
 
Node.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよNode.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよYuusuke Takeuchi
 
Gブレイバー1人用モード開発案
Gブレイバー1人用モード開発案Gブレイバー1人用モード開発案
Gブレイバー1人用モード開発案Yuusuke Takeuchi
 
東京Node学園祭2014 飛び入りLT
東京Node学園祭2014 飛び入りLT東京Node学園祭2014 飛び入りLT
東京Node学園祭2014 飛び入りLTYuusuke Takeuchi
 
2014年上期Gブレイバー振り返り
2014年上期Gブレイバー振り返り2014年上期Gブレイバー振り返り
2014年上期Gブレイバー振り返りYuusuke Takeuchi
 
Gブレイバー開発計画3スプリント目
Gブレイバー開発計画3スプリント目Gブレイバー開発計画3スプリント目
Gブレイバー開発計画3スプリント目Yuusuke Takeuchi
 
テスト駆動ゲーム開発をJava scriptで実践
テスト駆動ゲーム開発をJava scriptで実践テスト駆動ゲーム開発をJava scriptで実践
テスト駆動ゲーム開発をJava scriptで実践Yuusuke Takeuchi
 
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってますYuusuke Takeuchi
 
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生Yuusuke Takeuchi
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようYuusuke Takeuchi
 

Mehr von Yuusuke Takeuchi (15)

Reduxについて
ReduxについてReduxについて
Reduxについて
 
自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた
 
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
本職のプログラマーが趣味で対戦ゲーム作ってみた Part10
 
ゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみたゲームの自動テストを 作ってみた
ゲームの自動テストを 作ってみた
 
春のJs祭2015 lt
春のJs祭2015 lt春のJs祭2015 lt
春のJs祭2015 lt
 
Node.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよNode.jsで対戦ゲーム作ったよ
Node.jsで対戦ゲーム作ったよ
 
Gブレイバー1人用モード開発案
Gブレイバー1人用モード開発案Gブレイバー1人用モード開発案
Gブレイバー1人用モード開発案
 
東京Node学園祭2014 飛び入りLT
東京Node学園祭2014 飛び入りLT東京Node学園祭2014 飛び入りLT
東京Node学園祭2014 飛び入りLT
 
2014年上期Gブレイバー振り返り
2014年上期Gブレイバー振り返り2014年上期Gブレイバー振り返り
2014年上期Gブレイバー振り返り
 
Enchant.js入門
Enchant.js入門Enchant.js入門
Enchant.js入門
 
Gブレイバー開発計画3スプリント目
Gブレイバー開発計画3スプリント目Gブレイバー開発計画3スプリント目
Gブレイバー開発計画3スプリント目
 
テスト駆動ゲーム開発をJava scriptで実践
テスト駆動ゲーム開発をJava scriptで実践テスト駆動ゲーム開発をJava scriptで実践
テスト駆動ゲーム開発をJava scriptで実践
 
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
 
日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生日曜プログラマーとigoogle先生
日曜プログラマーとigoogle先生
 
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしようNode.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
 

テスト駆動ゲーム開発をJava scriptで実践 in jscafe20