Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Oonishi Keitarou
PDF, PPTX
4,194 views
ひよこテスト駆動開発(PHPカンファレンス2014)
PHPカンファレンス2014で発表させていただいた資料です。
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 34
2
/ 34
3
/ 34
4
/ 34
5
/ 34
6
/ 34
7
/ 34
8
/ 34
9
/ 34
10
/ 34
11
/ 34
12
/ 34
13
/ 34
14
/ 34
15
/ 34
16
/ 34
17
/ 34
18
/ 34
19
/ 34
20
/ 34
21
/ 34
22
/ 34
23
/ 34
24
/ 34
25
/ 34
26
/ 34
27
/ 34
28
/ 34
29
/ 34
30
/ 34
31
/ 34
32
/ 34
33
/ 34
34
/ 34
More Related Content
PDF
チラ見せ♡ナイト@20150410 LT公開用
by
Keisuke Utsumi
PDF
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
by
Yuusuke Takeuchi
PDF
開発者による現実的な自動化テスト及びRubyのテストツールについて
by
Takaaki Kasai
PDF
テストを書くのが嫌いな君へ #m3dev
by
Kazuhiro Sera
PPTX
価値あるシステムテスト自動化の実現By friendly
by
Tatsuya Ishikawa
PPTX
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
by
Kenji Fukumoto
PDF
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
by
Keisuke Utsumi
PDF
第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料
by
Yuki Naotori
チラ見せ♡ナイト@20150410 LT公開用
by
Keisuke Utsumi
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
by
Yuusuke Takeuchi
開発者による現実的な自動化テスト及びRubyのテストツールについて
by
Takaaki Kasai
テストを書くのが嫌いな君へ #m3dev
by
Kazuhiro Sera
価値あるシステムテスト自動化の実現By friendly
by
Tatsuya Ishikawa
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
by
Kenji Fukumoto
プロト〜サービスアウトまでの開発支援ツールの作り方〜CrystalFantasia〜
by
Keisuke Utsumi
第8回 Ext JS / Ext GWT 勉強会 - 小堤氏資料
by
Yuki Naotori
What's hot
PPTX
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
by
Tatsuya Ishikawa
PDF
はじめてのTypescript
by
純一 榮枝
PDF
永和コンサル式プレゼン作成法(公開用)
by
Yasui Tsutomu
PPTX
現場で役立つシステム設計の原則への感謝
by
Ishibashi Ryo
PDF
中の下のエンジニアを脱出するための目標設定
by
空宙 小笠原
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
by
Yahoo!デベロッパーネットワーク
PDF
Djangoフレームワークの紹介 OSC2015北海道
by
Shinya Okano
PDF
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
by
Yuusuke Takeuchi
PDF
中の下のエンジニアを脱出するための仕事術
by
Noriaki Kadota
PDF
エッセンシャルCore springハンズオン
by
土岐 孝平
PDF
通信対戦ゲームを作った話
by
mipsparc
PPT
大規模Perl初心者研修を支える技術
by
Daisuke Tamada
PDF
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
by
Satoshi Takami
KEY
おーいみんな、JavaやろうぜJava
by
Kazumune Katagiri
PDF
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
by
Yasuhiko Yamamoto
PPTX
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
by
civicpg
PPTX
Scala、play初心者が触った感想 share用
by
amkt922
ODP
Djangoアプリの実践的設計手法
by
Ian Lewis
PDF
iPhoneアプリを Javaで書くよ?
by
Toshio Ehara
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
by
Tatsuya Ishikawa
はじめてのTypescript
by
純一 榮枝
永和コンサル式プレゼン作成法(公開用)
by
Yasui Tsutomu
現場で役立つシステム設計の原則への感謝
by
Ishibashi Ryo
中の下のエンジニアを脱出するための目標設定
by
空宙 小笠原
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
by
Yahoo!デベロッパーネットワーク
Djangoフレームワークの紹介 OSC2015北海道
by
Shinya Okano
日曜プログラマーがHtml5とかで通信対戦ゲームを作ってます
by
Yuusuke Takeuchi
中の下のエンジニアを脱出するための仕事術
by
Noriaki Kadota
エッセンシャルCore springハンズオン
by
土岐 孝平
通信対戦ゲームを作った話
by
mipsparc
大規模Perl初心者研修を支える技術
by
Daisuke Tamada
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
by
Satoshi Takami
おーいみんな、JavaやろうぜJava
by
Kazumune Katagiri
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
by
Yasuhiko Yamamoto
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
by
civicpg
Scala、play初心者が触った感想 share用
by
amkt922
Djangoアプリの実践的設計手法
by
Ian Lewis
iPhoneアプリを Javaで書くよ?
by
Toshio Ehara
Similar to ひよこテスト駆動開発(PHPカンファレンス2014)
PDF
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PDF
PHPUnitTest勉強会スライド
by
ssuser7a9029
PDF
PHPUnitTest勉強会スライド
by
ssuser7a9029
PDF
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
PPT
PHP agile test tips
by
Tsutomu Chikuba
PDF
Php勉強会資料20090629
by
Takako Miyagawa
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
PPT
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
PPT
20120128 ci勉強会
by
m_shibuya
PDF
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
PDF
Code ignitertalk 01
by
Takako Miyagawa
PDF
テストを書くのに挫折したあとやったこと
by
Yuta Ohashi
PDF
Osaka Venture Meetup #3
by
Kiyotaka Oku
PDF
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
KEY
UnitTestのためのクラス設計
by
Takeshi Ishida
PDF
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PPT
ユニットテスト 1日目
by
Yoshiki Shibukawa
KEY
Unit testで定時帰宅!
by
Funato Takashi
PDF
自動テストへの道のり
by
Eiji Yokota
PDF
Testing PHP extension on Travis CI
by
Yoshio Hanawa
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PHPUnitTest勉強会スライド
by
ssuser7a9029
PHPUnitTest勉強会スライド
by
ssuser7a9029
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
PHP agile test tips
by
Tsutomu Chikuba
Php勉強会資料20090629
by
Takako Miyagawa
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
20120128 ci勉強会
by
m_shibuya
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
Code ignitertalk 01
by
Takako Miyagawa
テストを書くのに挫折したあとやったこと
by
Yuta Ohashi
Osaka Venture Meetup #3
by
Kiyotaka Oku
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
UnitTestのためのクラス設計
by
Takeshi Ishida
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
ユニットテスト 1日目
by
Yoshiki Shibukawa
Unit testで定時帰宅!
by
Funato Takashi
自動テストへの道のり
by
Eiji Yokota
Testing PHP extension on Travis CI
by
Yoshio Hanawa
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
PPTX
ddevについて .
by
iPride Co., Ltd.
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
Drupal Recipes 解説 .
by
iPride Co., Ltd.
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
ddevについて .
by
iPride Co., Ltd.
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
Drupal Recipes 解説 .
by
iPride Co., Ltd.
ひよこテスト駆動開発(PHPカンファレンス2014)
1.
ひよこテスト駆動開発 - PHPとユニットテストとJenkinsとGitHubの話
- 株式会社サイバード 大西啓太郎
2.
自己紹介 • 名前: 大西啓太郎
@Dollhyn_kei • 株式会社サイバード ゲーム事業本部 恋愛ゲーム技術チーム所属 • エンジニア歴: 新卒1年目、半年が過ぎました • 普段のお仕事: ・女性向け恋愛ゲームのサーバーサイド開発 ・最近はJavaScriptでクライアントも • プライベートな開発 ・Ruby > PHP ・iOS, Androidのアプリなんかもやっています
3.
実際にプロジェクトで ユニットテストをはじめて使った時 にハマったことを
簡単にまとめてみました。 PHPUnitを使っています。
4.
今日のアジェンダ • DBを使ったユニットテストとスローテス
ト問題 • Jenkins・GitHubを使ったテストの自動化 • テストコードのアンチパターン • まとめ
5.
DBを使ったユニットテ ストとスローテスト問題
6.
チームの状況 • 実DB(MYSQL)を使ってDB処理
をテストしたい! • モックは使いたくない! • 本番に近いデータでテストがしたい
7.
DBを使ったユニットテスト を実行出来る条件 •
DB/テーブルが存在する • マスタデータが存在する • 不要なレコードに干渉されない
8.
ダメだったやりかた
9.
1つのテストが走るたびに マスターデータが読み込まれる
10.
1つのテストが終了する際には すべてデータを『TRUNCATE』して掃除する
11.
流石にテストにかかる時間が 長くなってしまった。
12.
やっぱり、最初のロード処理と 最後のTRUNCATE処理がボトルネックに
13.
マスターデータの読み込みは 一番最初に実行されるテストクラス (データセットアップ用クラス)でのみロードする
テストが実行されるたびに 新しいユーザーデータを発行することで 『TRUNCATE』を不要にしました。
14.
イメージ(以前) user_id: 001_t
test_hoge() TRUNCATE LOAD ユーザー作成 user_id: 001_t test_fuga() TRUNCATE LOAD ユーザー作成 user_id: 001_t test_piyo() TRUNCATE LOAD ユーザー作成
15.
user_id: 001_t test_hoge()
TRUNCATE LOAD ユーザー作成 user_id: 002_t test_fuga() ユーザー作成 user_id: 003_t test_piyo() ユーザー作成 イメージ(いま)
16.
user_id: 001_t test_hoge()
TRUNCATE LOAD ユーザー作成 user_id: 002_t test_fuga() ここが浮きます ユーザー作成 user_id: 003_t test_piyo() ユーザー作成 イメージ(いま)
17.
Jenkins・GitHubを使った ユニットテストの自動化
18.
開発の進め方
19.
出てきた問題点 • 複数のユニットテストのジョブが回っている時に
DBの整合性を保証ができない • ジョブを複数実行できず、待ちが発生して『プル リク』→『レビュー』→『マージ』→『デプロイ』 をスムーズに行えない • マイグレーションが扱いにくい
20.
解決策 ジョブの実行毎に新しいDBを作る。
21.
ビルド時の環境変数をもとに CREATE DATABASEを発行!
CREATE DATABASE HOGE_${BUILD_NUMBER}
22.
テストコードの アンチパターン
23.
アンチパターン1 『assertXXX(expected, actual)』
の引数の順番が逆
24.
期待値に検証対象の値が・・・
25.
テストが失敗した際の メッセージの文脈が逆になってしまう
26.
アンチパターン2 1つのテストケースに 複数のアサーション
27.
なにをテストしたいかが よくわからない
28.
1テストケース 1メソッドを守ればスッキリ
29.
アンチパターン3 類似なテストケース
30.
引数が違うだけ・・・
31.
@dataProviderでスッキリ
32.
まとめ
33.
まとめ • まずは、PHPユニットのドキュメントをじっく
り目を通す! • テストで扱うデータの初期化・破棄には気をつ ける! • Jenkinsでテストする場合はビルド毎に DBを作成する!
34.
ご静聴、 ありがとうございました
Download