SlideShare a Scribd company logo
1 of 26
2014-12-24 GMOリサーチ 寺田 渉
Facebook: 寺田渉 Twitter: @wa_terada
ボードゲーム翻訳
CakePHP Cookbook翻訳
TED 字幕 翻訳
開発 (PHP/JavaScript/Java/Perl)
自動テストで開発効率アップ!
バグが許されないから。
我々のクライアント様は
バグを許してくれません。
戦略としては、
リリース速度を優先してまずは世に出して、
その後バグ修正/改善を高速で行って
信頼をつかむ方法もありえるでしょうが、
我々は違います。
我々が作っているのは
プラットフォームであり、クライアント様
の基幹となりうるシステムです。
バグが見つかるものなら、
そもそも採択されません。
その上で高頻度で改善リリースを
出していくためには、
デグレを防ぐ仕組みが不可欠です。
それが自動テストなのです。
1) テストはデグレを見張る門番。
『こういう仕様である』 ということを
門番として配置することが重要。
将来の誰かによって、うっかり
その仕様が無視されたらalertがあがる
ように仕込む。
2) 無駄と思えるなら書く前に話しあおう。
無駄と思っている以上、
絶対にクリエイティブなコードにはならない。
無駄じゃないと腹落ちするまで
メンバーと話しあおう。
3) テスト書くのが大変だと感じたら
メンバーと相談して、
実装に立ち返って修正しよう。
頑張り過ぎたテストコードは
メンテナンスにも頑張りが必要になる。
大抵はテストしやすい実装方法があるもの。
そういう実装に近づけることで
改変に強い実装になっていく。
3-1) テストから意図が汲み取れるか。
3-2) 網羅しているか。
3-3) 膨大すぎないか。
a) 将来、そのテストが落ちたことを想像してみる。
正しく直せるだけの意図が汲み取れない。
→ コメントの追加や命名の改善を促す。
b) コードをただ舐めているだけに見えるものや、
12などの謎の数値が登場しているものや、
ファイル/データを他テストと共有しているものは
要注意。
テストが落ちた場合に
初見で修正の方法が判るか。
→ コメントの追加や命名の改善を促す。
※カバレッジレポート100%が
網羅している証明にはならないので、
指摘が必要。
a) 元のコードの一部を変えたり消したりした場合
を想像してみる。
動きを変えたのに、
テストが落ちないのなら網羅していない。
→ テストケースの追加を促す。
b) if や for が入れ子になっているなら、
掛け算でケースが必要。
その数だけケースがなければ
網羅できていない。
→ テストケースの追加や、
メソッド切り出しを促す。
c) @codeCoverageIgnore 指定されているコードに
if や for や(それ相当)が含まれていたら
網羅できていない。
→ テストケースの追加や、
メソッド切り出しを促す。
d) if の中に && や || が含まれていたり
in_array 等の関数が使われているが、それらの
真偽組み合わせケースが見当たらない。
または、if (...) {...} の場合に偽のケースが無い
なら、網羅できていない。
→ テストケースの追加を促す。
e) foreach でなく for が使われているが、
0/単数/複数パターンが無いなら
網羅できていない。
→ テストケースの追加を促すか、
foreach への置き換えを促す。
※ for は foreach に比べて
間違えやすい要素が多い。
f) (テストが無い) view に複雑なロジックが入って
いたら網羅できていない。
→単体テスト可能なクラスに移譲を促す。
※膨大すぎるとメンテできない。
メンテしていくのが辛くなる。
無駄な感覚がある。
a) 毎回膨大なテストデータ(XML等)を
用意するコードが、何度も何度も登場する。
→ データ読込ロジックと、
その後のロジックへの分割を促す。
(分割されていれば、
膨大なデータを読むテストと、
個々の細かい部分のテストに分割できるはず)
b) 同じようなモックを作成しているテストが、
何度も何度も登場する。
→ 外部依存を利用するメソッド、
ロジックを担当するメソッド、
それらを繋ぎ合わせるメソッドへの分割を促す。
(分割されていれば、
テストがシンプルになるはず。)
c) 毎回同じような重要でない手続き的な記述が、
何度も何度も登場する。
→ setup や private メソッドに移すか、
@dataProvider を使うように促す。
d) 毎回DBやCSVの全列を定義してデータを作っ
ており、どの列のテストなのか解りづらい。
→ Fabricate や FileFabricate を使うように促す。
※参考:
https://github.com/sizuhiko/Fabricate
https://github.com/waterada/FileFabricate
ぜひ Facebook 等で
寺田渉 まで
ご連絡ください!!
ご清聴ありがとうございました!

More Related Content

What's hot

テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストOhishi Mikage
 
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようNaoya Kojima
 
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...智治 長沢
 
WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法Tsuyoshi.
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮するWataru Terada
 
JaSST16tokyo tm_koyama
JaSST16tokyo tm_koyamaJaSST16tokyo tm_koyama
JaSST16tokyo tm_koyamaryuji koyama
 
Selenium boot campの紹介
Selenium boot campの紹介Selenium boot campの紹介
Selenium boot campの紹介Nozomi Ito
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Tatsuya Ishikawa
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界Nozomi Ito
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineKazushi Kamegawa
 
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜Akihiro Kuwano
 
テスト自動化の様々な道具を使ってみた四方山話
テスト自動化の様々な道具を使ってみた四方山話テスト自動化の様々な道具を使ってみた四方山話
テスト自動化の様々な道具を使ってみた四方山話haljik Seiji
 
Bat vb script_power_shellの単体テスト自動化
Bat vb script_power_shellの単体テスト自動化Bat vb script_power_shellの単体テスト自動化
Bat vb script_power_shellの単体テスト自動化Naoyuki Sano
 
はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話Kazushi Kamegawa
 

What's hot (16)

テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
 
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
【Embedded Technology 2010 ( #ET2010 )】 マイクロソフトブース| 開発チームをシンプルにコラボレーションする Team...
 
WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法WordPressのテストとデバッグ方法
WordPressのテストとデバッグ方法
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮する
 
JaSST16tokyo tm_koyama
JaSST16tokyo tm_koyamaJaSST16tokyo tm_koyama
JaSST16tokyo tm_koyama
 
10分でわかるDevOps
10分でわかるDevOps10分でわかるDevOps
10分でわかるDevOps
 
Selenium boot campの紹介
Selenium boot campの紹介Selenium boot campの紹介
Selenium boot campの紹介
 
本当に怖いパフォーマンスが悪い実装 #phpcon2013
本当に怖いパフォーマンスが悪い実装 #phpcon2013本当に怖いパフォーマンスが悪い実装 #phpcon2013
本当に怖いパフォーマンスが悪い実装 #phpcon2013
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
 
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
 
テスト自動化の様々な道具を使ってみた四方山話
テスト自動化の様々な道具を使ってみた四方山話テスト自動化の様々な道具を使ってみた四方山話
テスト自動化の様々な道具を使ってみた四方山話
 
Bat vb script_power_shellの単体テスト自動化
Bat vb script_power_shellの単体テスト自動化Bat vb script_power_shellの単体テスト自動化
Bat vb script_power_shellの単体テスト自動化
 
はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話
 

Similar to 自動テストで開発効率を上げるには

8人の匠によるテスト戦略20080918
8人の匠によるテスト戦略200809188人の匠によるテスト戦略20080918
8人の匠によるテスト戦略20080918ssugiya
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナーTomoyuki Sato
 
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2Tomoyuki Sato
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous TestingAtsuhiro Kubo
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployRyutaro YOSHIBA
 
ゲームテストへの新しいアプローチ
 ゲームテストへの新しいアプローチ ゲームテストへの新しいアプローチ
ゲームテストへの新しいアプローチTakashi Imagire
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステムSEGADevTech
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発Takashi Watanabe
 
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSSTKotaro Ogino
 
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese TranslationEric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese TranslationKenji Hiranabe
 
20140605_じどうかの窓口_負荷チェッカーサービス
20140605_じどうかの窓口_負荷チェッカーサービス20140605_じどうかの窓口_負荷チェッカーサービス
20140605_じどうかの窓口_負荷チェッカーサービスSHIFT Inc.
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略Naoki Umehara
 
Php勉強会スライド
Php勉強会スライドPhp勉強会スライド
Php勉強会スライドsuzumurashingo
 
ソフトウェア・テスト入門2
ソフトウェア・テスト入門2ソフトウェア・テスト入門2
ソフトウェア・テスト入門2Kenta Hattori
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本Tsuyoshi Yumoto
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Naoki Umehara
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015ichikaway
 

Similar to 自動テストで開発効率を上げるには (20)

8人の匠によるテスト戦略20080918
8人の匠によるテスト戦略200809188人の匠によるテスト戦略20080918
8人の匠によるテスト戦略20080918
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous Testing
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
ゲームテストへの新しいアプローチ
 ゲームテストへの新しいアプローチ ゲームテストへの新しいアプローチ
ゲームテストへの新しいアプローチ
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
Software testing
Software testingSoftware testing
Software testing
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
 
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
 
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese TranslationEric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
Eric Ries at Startup Lessons Learned sllconf 2011 - Japanese Translation
 
20140605_じどうかの窓口_負荷チェッカーサービス
20140605_じどうかの窓口_負荷チェッカーサービス20140605_じどうかの窓口_負荷チェッカーサービス
20140605_じどうかの窓口_負荷チェッカーサービス
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
Php勉強会スライド
Php勉強会スライドPhp勉強会スライド
Php勉強会スライド
 
Gamedevenvstudy1
Gamedevenvstudy1Gamedevenvstudy1
Gamedevenvstudy1
 
ソフトウェア・テスト入門2
ソフトウェア・テスト入門2ソフトウェア・テスト入門2
ソフトウェア・テスト入門2
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
 
ITS fidel
ITS fidelITS fidel
ITS fidel
 

More from Wataru Terada

Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Wataru Terada
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったことWataru Terada
 
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていることWataru Terada
 
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったらWataru Terada
 
PSR-1 と PSR-2 を 5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解するPSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を 5分でざっくり理解するWataru Terada
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZWataru Terada
 
CakePHP を使ってよかったこと
CakePHP を使ってよかったことCakePHP を使ってよかったこと
CakePHP を使ってよかったことWataru Terada
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数Wataru Terada
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げるWataru Terada
 
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと初めてのTravisCIでハマったこと
初めてのTravisCIでハマったことWataru Terada
 
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方デグレを防ぐテストの書き方
デグレを防ぐテストの書き方Wataru Terada
 
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrantCakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrantWataru Terada
 

More from Wataru Terada (12)

Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったこと
 
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
 
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
 
PSR-1 と PSR-2 を 5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解するPSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を 5分でざっくり理解する
 
PHP基本的関数QUIZ
PHP基本的関数QUIZPHP基本的関数QUIZ
PHP基本的関数QUIZ
 
CakePHP を使ってよかったこと
CakePHP を使ってよかったことCakePHP を使ってよかったこと
CakePHP を使ってよかったこと
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
 
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
 
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
 
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrantCakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
 

自動テストで開発効率を上げるには