Soumettre la recherche
Mettre en ligne
PHP Codeception テスト -- 日本語
•
16 j'aime
•
11,145 vues
Florent Batard
Suivre
Codeceptionテスト やっと辛く無いテスト!
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 41
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
Tomoyuki Sugita
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Tsutomu Chikuba
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
20101130 南東京iphone開発3
20101130 南東京iphone開発3
Masaki Kase
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
Recommandé
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
Tomoyuki Sugita
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Php unit extensions_selenium2_testcaseによる結合試験でらくらくテスト♪
Tsutomu Chikuba
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
20101130 南東京iphone開発3
20101130 南東京iphone開発3
Masaki Kase
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
Windows Phone 7はじめました
Windows Phone 7はじめました
Akira Hatsune
Twitter4Jとテスト
Twitter4Jとテスト
Yusuke Yamamoto
Web applicationpenetrationtest その2
Web applicationpenetrationtest その2
Tetsuya Hasegawa
Php勉強会資料20090629
Php勉強会資料20090629
Takako Miyagawa
Python Autotest pdc2008w
Python Autotest pdc2008w
Takayuki Shimizukawa
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
耕二 阿部
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
kunihikokaneko1
Android4.2徹底解剖!
Android4.2徹底解剖!
leverages_event
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
Hiroshi Urabe
Contenu connexe
Similaire à PHP Codeception テスト -- 日本語
Windows Phone 7はじめました
Windows Phone 7はじめました
Akira Hatsune
Twitter4Jとテスト
Twitter4Jとテスト
Yusuke Yamamoto
Web applicationpenetrationtest その2
Web applicationpenetrationtest その2
Tetsuya Hasegawa
Php勉強会資料20090629
Php勉強会資料20090629
Takako Miyagawa
Python Autotest pdc2008w
Python Autotest pdc2008w
Takayuki Shimizukawa
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
耕二 阿部
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
kunihikokaneko1
Android4.2徹底解剖!
Android4.2徹底解剖!
leverages_event
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
Hiroshi Urabe
Similaire à PHP Codeception テスト -- 日本語
(10)
Windows Phone 7はじめました
Windows Phone 7はじめました
Twitter4Jとテスト
Twitter4Jとテスト
Web applicationpenetrationtest その2
Web applicationpenetrationtest その2
Php勉強会資料20090629
Php勉強会資料20090629
Python Autotest pdc2008w
Python Autotest pdc2008w
java-ja TDD 2nd
java-ja TDD 2nd
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
Android4.2徹底解剖!
Android4.2徹底解剖!
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
PHP Codeception テスト -- 日本語
1.
Text Codeception テストの活用 (TDD)—>Test Driven
Development
2.
アジェンダ 自己紹介 Codeception紹介 テストタイプ デモとハンズオン Best Practices リファレンス 質問(Q&A) @phpcon_kansai #phpkansai
3.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
4.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
5.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
6.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
7.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
8.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
9.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
10.
この外国人って誰? Batard Florent (28
歳)(Shenril) Twitter: @shenril Facebook: Florent Btd セキュリティエンジニア (ハッカー) フランス人 フランス、スイス、アメリカ、イギリス、日本に住んでた 日本が大好き、特に関西:食べ物、人、空気 日本語はまだ勉強中。。すみません
11.
何でスピーカーになった? 実務経験: W3C 国連(セキュリーティ) プライベート·バンキング スイステレビ放送(Eurovision) ヨーロッパでスピーカーしました だいたいセキュリティのトッピク (Youtube) (英語とフランス語。。) OWASPメンバー
(ウェブセキュリティプロジェクト) 10年間ウェブ開発者 DevOps ,サーバー,インフラ,AI いつも新しいことをやりたい
12.
何でスピーカーになった? 実務経験: W3C 国連(セキュリーティ) プライベート·バンキング スイステレビ放送(Eurovision) ヨーロッパでスピーカーしました だいたいセキュリティのトッピク (Youtube) (英語とフランス語。。) OWASPメンバー
(ウェブセキュリティプロジェクト) 10年間ウェブ開発者 DevOps ,サーバー,インフラ,AI いつも新しいことをやりたい
13.
何でスピーカーになった? 実務経験: W3C 国連(セキュリーティ) プライベート·バンキング スイステレビ放送(Eurovision) ヨーロッパでスピーカーしました だいたいセキュリティのトッピク (Youtube) (英語とフランス語。。) OWASPメンバー
(ウェブセキュリティプロジェクト) 10年間ウェブ開発者 DevOps ,サーバー,インフラ,AI いつも新しいことをやりたい
14.
何でスピーカーになった? 実務経験: W3C 国連(セキュリーティ) プライベート·バンキング スイステレビ放送(Eurovision) ヨーロッパでスピーカーしました だいたいセキュリティのトッピク (Youtube) (英語とフランス語。。) OWASPメンバー
(ウェブセキュリティプロジェクト) 10年間ウェブ開発者 DevOps ,サーバー,インフラ,AI いつも新しいことをやりたい
15.
ベスト会社! クックビズ株式会社 すごいチーム すごい課題
16.
ベスト会社! クックビズ株式会社 すごいチーム すごい課題
17.
ベスト会社! クックビズ株式会社 すごいチーム すごい課題
18.
前提条件を減らします->何かを仮定すれば、それは絶対失敗 します 機能後退(リグレッション)がないことを確認 コードが期待通りに動いているか確認 境界値テスト (セキュリティ,大きいデータ) 繰り返し作業を自動化 ->
Good developers are lazy developers!!! デバッグは簡単になります なぜコードをテストする必要がありますか?
19.
しかし… だいたい開発者はテストを書くことが好 きじゃない 実行するには長すぎます ビジネスロジックやユーザーシナリオと 合ってない
20.
CodeCeption(1) http://codeception.com/ (English) テストフレームワーク Acceptance Tests Functional
Tests Unit Tests 簡単 書きやすい 読みやすい デバッグしやすい PHPUnitを使ってる -> 標準
21.
CodeCeption(2) BDDテスト(ビヘイビア駆動開発スタイルのシナリオ作成) WebServices テスト出来る (SOAP/REST/XML-RPC) レポートを生成(HTML/XML/JSON) Laravel/Zend/Phalcon/Yii2/Symfony/Composer
モジュール -> 絶対できる!言い訳しない! CIツールとの統合 (Jenkins/Bamboo) そして Selenium2 や PhantomJS と同時で使える
22.
どんな感じですか? <?php $I = new
AcceptanceTester($scenario); $I->wantTo('create wiki page'); $I->amOnPage('/'); $I->click('Pages'); $I->click('New'); $I->see('New Page'); $I->fillField('title', 'Hobbit'); $I->fillField('body', 'By Peter Jackson'); $I->click('Save'); $I->see('page created'); // notice generated $I->see('Hobbit','h1'); // head of page of is our title $I->seeInCurrentUrl('pages/hobbit'); $I->seeInDatabase('pages', array('title' => ‘Hobbit')); ?>
23.
24.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend
25.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend
26.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend User Scenario
27.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend User Scenario
28.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend User Scenario Developer Scenario
29.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend User Scenario Developer Scenario
30.
テストタイプ Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2
Module Backend User Scenario Developer Scenario Function Testing
31.
Acceptance Tests リクエスト出来る、DOMさわれる クエリを実行するために偽のブラウザを使用して クリックとか、フォームを埋めることができます JavaScriptとスクリーンショットを確認するために Selenium/ PhantomJSで接続することができます 一番遅い
32.
Functional Tests Acceptance testsと一緒けどブラウザを使ってない フレームワークにプラグインすることができ、直接内部関 数やプロパティにアクセスします
(Models, validation) $_REQUESTや$_POST や $_GETを使ってる もっと早い DOM 触れない (JS/Ajax/Events)
33.
Unit Tests Functionsのテスト フレームワークにプラグインすることができ、直接内部関数やプロ パティにアクセスします (Models,
Validation) 一番早い MVCでやりにくい 人間で読みにくい。。 コードレビューも大変 public function testValidation() { $user = User::create(); $user->username = null; $this->assertFalse($user->validate(['username'])); $user->username = 'toolooooongnaaaaaaameeee'; $this->assertFalse($user->validate(['username'])); $user->username = 'davert'; $this->assertTrue($user->validate(['username'])); }
34.
インストール Mac OSX: brew update
&& brew install homebrew/php/codeception Linux: wget http://codeception.com/codecept.phar . php codecept.phar bootstrap Windows: php composer.phar global require “codeception/codeception:*” Composer/ PhpStorm: php composer.phar require “codeception/codeception:*”
35.
Bootstrap >codecept bootstrap >codecept generate:cept
acceptance Validation 設定ファイル : tests/acceptance.suite.yml class_name: AcceptanceTester modules: enabled: - PhpBrowser - AcceptanceHelper config: PhpBrowser: url: ‘http://conference.kphpug.jp/2015/’
36.
パーティー始めましょう >codecept run >codecept run
—debug Bonus >codecept generate:scenarios acceptance //英語シナリオ >codecept console acceptance //Interactive console >codecept run —debug —env test //環境設定も出来るし
37.
デモ タイム!!!!! > PHP
conference Kansai サイトをテストしよう!
38.
Best practices 1. ローカル/Vagrantでテストして
-> テストに合格出来たらGIT PUSH 2. テストサーバーでデプロイして -> もう一回テストをして(環境) 3. テストサーバーでテストに合格出来たら本番に展開します 4. 本番でしないで ! NEVER!!! ダメ!ゼッタイ! 1. 新しいエントリの作成とデータベースの変更をします 2. 本番サーバーの負荷が増えます 3. 本番サーバーをチェックするためにMonitoringは必要
39.
まとめ Installation : http://codeception.com/install Acceptance
Tests : http://codeception.com/docs/04-AcceptanceTests Yii2 module : http://codeception.com/docs/modules/Yii2 WebDriver : http://codeception.com/docs/modules/WebDriver Yii2 Database Faker : http://qiita.com/tanakahisateru/items/ c4d39cc77a71067ed658 別のツール PHPUnit Framework(難しい) phpspec (使用 & Unit Testing) Pure Selenium/PhantomJS (PHPと統合しにくい)
40.
募集中 PHP Developers iOS Developers Let’s
work together !!!!
41.
Questions & Answers Do
you have any questions?
Télécharger maintenant