SlideShare a Scribd company logo
1 of 12
PHP Agile テスト
     Tips
     2012/11/07(Wed)
    T.Chikuba@bilcom
about tchikuba

   所属
       ビルコム株式会社

   自社サービス
       ReBuy http://rebuy.jp/

       Okkru https://okkru.jp

   役割
       開発 PM

       PM = Playing Manager

   いいね!
       Linux 、ビール、宇宙平和

   facebook/twitter
       tchikuba
テスト種別

   Project としてテスト自動化して
    いるフェーズは以下の 2 つ
     結合試験

     単体試験

   テスト着手の優先度は「該当フ
    ェーズ毎」にビジネス的に価値
    の高いものを都度判断して決定
    する
テストフレームワーク種別
   当 Project では PHPUnit を採用
   採用している PHPUnit は大別して以
    下の通り
       単体試験用
           PHPUnit_Framework_TestCase
           Zend_Test_PHPUnit_ControllerTestCase
       結合試験用
        PHPUnit_Extensions_Selenium2TestCase
        ※ 単体試験用の 2 つとは全く別モノなので注
         意!
必要な実行環境の要件
   環境を用途により分ける必要性
   ( ビルド ) デプロイ自動化
   リポジトリ変更をタイムリーにハン
    ドル
   デプロイ時に必ずテストを自動実行
   開発者にタイムリーに通知
   本番環境でユーザテスト実施
   デザインモックをタイムリーに最新
    化
実行環境
   環境
        開発環境:開発コード
        ステージング環境:リポジトリ最新コード
        本番環境:ある時点のリビジョン
   Capistrano
        環境毎のデプロイをコマンド化
        DB 更新 (migrate)
        facebook グループに更新内容を通知
   Jenkins
        テストケース実行
        ステージング環境自動デプロイ
        本番環境用フローチェック
        デザインモック最新化
   Facebook
        テストユーザ
        開発者用グループ
   実装
        ブランチ非採用
        フラグ採用: β 版 view,js,css のみ
PHPUnit_Framework_TestCa
se
   主に Model の単体試験に採用
   複数の Model を多用する
    ServiceModel は setUp メソッド内に
    て MOCK_OBJECT を定義して疎結
    合化
     if(!defined('MOCK_OBJECT'))
      define('MOCK_OBJECT', true);
     $this->getModel(‘[Model 名 ]’);  ※直接
      new×
   単体の Model で完結する Model はス
    テージング環境 DB に接続して試験
Zend_Test_PHPUnit_ControllerTestCase

   主に Controller の単体試験に採用
   以下環境でサポート外なので注意
       Zendframework1.x
       PHPUnit3.6 以降
   とはいえ意外と便利なので PHPUnit3.7 系でも無理やり使
    用
   無理やり使用 tips
       テストケース落ちでも unserialize エラーが発生し実際のエ
        ラーの中身が不明
       なので /usr/share/pear/PHPUnit/Util/PHP.php の 238 行目付
        近をまさぐってテスト実行結果を /tmp 等に出力
       出力内容に実際のエラーが記述されている
   MOCK_OBJECT は基本必ず setUp() 内で定義
   新規に手を入れる Action のテストケースをまず作成
   結果、 Controller 実装における 3 大原則を守れるように
       フローコントロールに注力するよう実装
       Model データ引き回しは厳禁
       セッションを多用しない
PHPUnit_Extensions_Selenium2TestCase


   現在本番環境デプロイ直後に
    Capistrano→Jenkins で自動実行
   ユーザが実行する遷移を忠実に再現
   クリティカルな問題を未然に防ぐ対
    策
       ホントはステージング環境でも動かし
        たい
   CentOS で動く SeleniumServer に対
    して実行
   webDriver の擬似ブラウザで動作確
    認
Selenium2 のメリット/デメ
リット
   メリット
       htmlunit が使える
            Selenium1 系だと htmlunit が使用不可 ( そうだっ
             た)
       最新なので更新が多頻度
   デメリット
       SeleniumIDE によるテストコード生成が出来な
        い
            IDE によるケースが既にあれば移植の手間
            ただし移植は比較的容易
       ドキュメント皆無
            github と戦う
            フレームワークチェック用のテストコード参照で
             書ける
結合試験デバッグ tips
   テストコードサンプル
     https://github.com/sebastianbergm
     ann/phpunit-
     selenium/blob/master/Tests/Seleni
     um2TestCaseTest.php
   テスト対象 html
     https://github.com/sebastianbergm
     ann/phpunit-
     selenium/tree/master/selenium-1-
     tests/html
以上
    T.Chikuba@bilcom
facebook/twitter :  tchikuba

More Related Content

What's hot

Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
 
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsEclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtips
Hiroki Kondo
 
Test Plugins
Test PluginsTest Plugins
Test Plugins
ykhr
 
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストnGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
JunHo Yoon
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮する
Wataru Terada
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
finoue
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
Masatoshi Itoh
 

What's hot (20)

Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
 
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsEclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtips
 
Test Plugins
Test PluginsTest Plugins
Test Plugins
 
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストnGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
 
Bat vb script_power_shellの単体テスト自動化
Bat vb script_power_shellの単体テスト自動化Bat vb script_power_shellの単体テスト自動化
Bat vb script_power_shellの単体テスト自動化
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
単体テストで工数を短縮する
単体テストで工数を短縮する単体テストで工数を短縮する
単体テストで工数を短縮する
 
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
 
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
EclipseでのデバッグTips
EclipseでのデバッグTipsEclipseでのデバッグTips
EclipseでのデバッグTips
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
Behat Driven Development
Behat Driven DevelopmentBehat Driven Development
Behat Driven Development
 

Similar to PHP agile test tips

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Yasutomo Arai
 

Similar to PHP agile test tips (20)

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
Python Autotest pdc2008w
Python Autotest pdc2008wPython Autotest pdc2008w
Python Autotest pdc2008w
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primer
 
Selenium
SeleniumSelenium
Selenium
 
Magento Test Automation Framework
Magento Test Automation FrameworkMagento Test Automation Framework
Magento Test Automation Framework
 
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCIJenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
PHP勉強会 #51
PHP勉強会 #51PHP勉強会 #51
PHP勉強会 #51
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
 
Selenium勉強会
Selenium勉強会Selenium勉強会
Selenium勉強会
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 

More from Tsutomu Chikuba

Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Tsutomu Chikuba
 
【参観レポート】Lean startupnight real startup dialog
【参観レポート】Lean startupnight   real startup dialog【参観レポート】Lean startupnight   real startup dialog
【参観レポート】Lean startupnight real startup dialog
Tsutomu Chikuba
 
リーンソフトウェア開発で始めるFacebookアプリ開発
リーンソフトウェア開発で始めるFacebookアプリ開発リーンソフトウェア開発で始めるFacebookアプリ開発
リーンソフトウェア開発で始めるFacebookアプリ開発
Tsutomu Chikuba
 

More from Tsutomu Chikuba (10)

Megurorb 15 lt
Megurorb 15 ltMegurorb 15 lt
Megurorb 15 lt
 
Ebisu.rb#15LT「turnipいいよturnip」
Ebisu.rb#15LT「turnipいいよturnip」Ebisu.rb#15LT「turnipいいよturnip」
Ebisu.rb#15LT「turnipいいよturnip」
 
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
Meguro.rb#3LT「Ruby入門書を書いてて得られた知見5選+3α」
 
オープンデータ利活用への道のり@未来型不動産サービス「IESHIL(イエシル)」の事例
オープンデータ利活用への道のり@未来型不動産サービス「IESHIL(イエシル)」の事例オープンデータ利活用への道のり@未来型不動産サービス「IESHIL(イエシル)」の事例
オープンデータ利活用への道のり@未来型不動産サービス「IESHIL(イエシル)」の事例
 
turnipとcapybaraとBDDと私
turnipとcapybaraとBDDと私turnipとcapybaraとBDDと私
turnipとcapybaraとBDDと私
 
いよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こういよいよPHPerもリーンで行こう
いよいよPHPerもリーンで行こう
 
behatで始めるBDD
behatで始めるBDDbehatで始めるBDD
behatで始めるBDD
 
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
 
【参観レポート】Lean startupnight real startup dialog
【参観レポート】Lean startupnight   real startup dialog【参観レポート】Lean startupnight   real startup dialog
【参観レポート】Lean startupnight real startup dialog
 
リーンソフトウェア開発で始めるFacebookアプリ開発
リーンソフトウェア開発で始めるFacebookアプリ開発リーンソフトウェア開発で始めるFacebookアプリ開発
リーンソフトウェア開発で始めるFacebookアプリ開発
 

Recently uploaded

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

PHP agile test tips

  • 1. PHP Agile テスト Tips 2012/11/07(Wed) T.Chikuba@bilcom
  • 2. about tchikuba  所属  ビルコム株式会社  自社サービス  ReBuy http://rebuy.jp/  Okkru https://okkru.jp  役割  開発 PM  PM = Playing Manager  いいね!  Linux 、ビール、宇宙平和  facebook/twitter  tchikuba
  • 3. テスト種別  Project としてテスト自動化して いるフェーズは以下の 2 つ  結合試験  単体試験  テスト着手の優先度は「該当フ ェーズ毎」にビジネス的に価値 の高いものを都度判断して決定 する
  • 4. テストフレームワーク種別  当 Project では PHPUnit を採用  採用している PHPUnit は大別して以 下の通り  単体試験用  PHPUnit_Framework_TestCase  Zend_Test_PHPUnit_ControllerTestCase  結合試験用 PHPUnit_Extensions_Selenium2TestCase ※ 単体試験用の 2 つとは全く別モノなので注 意!
  • 5. 必要な実行環境の要件  環境を用途により分ける必要性  ( ビルド ) デプロイ自動化  リポジトリ変更をタイムリーにハン ドル  デプロイ時に必ずテストを自動実行  開発者にタイムリーに通知  本番環境でユーザテスト実施  デザインモックをタイムリーに最新 化
  • 6. 実行環境  環境  開発環境:開発コード  ステージング環境:リポジトリ最新コード  本番環境:ある時点のリビジョン  Capistrano  環境毎のデプロイをコマンド化  DB 更新 (migrate)  facebook グループに更新内容を通知  Jenkins  テストケース実行  ステージング環境自動デプロイ  本番環境用フローチェック  デザインモック最新化  Facebook  テストユーザ  開発者用グループ  実装  ブランチ非採用  フラグ採用: β 版 view,js,css のみ
  • 7. PHPUnit_Framework_TestCa se  主に Model の単体試験に採用  複数の Model を多用する ServiceModel は setUp メソッド内に て MOCK_OBJECT を定義して疎結 合化  if(!defined('MOCK_OBJECT')) define('MOCK_OBJECT', true);  $this->getModel(‘[Model 名 ]’);  ※直接 new×  単体の Model で完結する Model はス テージング環境 DB に接続して試験
  • 8. Zend_Test_PHPUnit_ControllerTestCase  主に Controller の単体試験に採用  以下環境でサポート外なので注意  Zendframework1.x  PHPUnit3.6 以降  とはいえ意外と便利なので PHPUnit3.7 系でも無理やり使 用  無理やり使用 tips  テストケース落ちでも unserialize エラーが発生し実際のエ ラーの中身が不明  なので /usr/share/pear/PHPUnit/Util/PHP.php の 238 行目付 近をまさぐってテスト実行結果を /tmp 等に出力  出力内容に実際のエラーが記述されている  MOCK_OBJECT は基本必ず setUp() 内で定義  新規に手を入れる Action のテストケースをまず作成  結果、 Controller 実装における 3 大原則を守れるように  フローコントロールに注力するよう実装  Model データ引き回しは厳禁  セッションを多用しない
  • 9. PHPUnit_Extensions_Selenium2TestCase  現在本番環境デプロイ直後に Capistrano→Jenkins で自動実行  ユーザが実行する遷移を忠実に再現  クリティカルな問題を未然に防ぐ対 策  ホントはステージング環境でも動かし たい  CentOS で動く SeleniumServer に対 して実行  webDriver の擬似ブラウザで動作確 認
  • 10. Selenium2 のメリット/デメ リット  メリット  htmlunit が使える  Selenium1 系だと htmlunit が使用不可 ( そうだっ た)  最新なので更新が多頻度  デメリット  SeleniumIDE によるテストコード生成が出来な い  IDE によるケースが既にあれば移植の手間  ただし移植は比較的容易  ドキュメント皆無  github と戦う  フレームワークチェック用のテストコード参照で 書ける
  • 11. 結合試験デバッグ tips  テストコードサンプル  https://github.com/sebastianbergm ann/phpunit- selenium/blob/master/Tests/Seleni um2TestCaseTest.php  テスト対象 html  https://github.com/sebastianbergm ann/phpunit- selenium/tree/master/selenium-1- tests/html
  • 12. 以上 T.Chikuba@bilcom facebook/twitter :  tchikuba