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
EN
Uploaded by
Florent Batard
PDF, PPTX
11,226 views
PHP Codeception テスト -- 日本語
Codeceptionテスト やっと辛く無いテスト!
Software
◦
Read more
16
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 41
2
/ 41
3
/ 41
4
/ 41
5
/ 41
6
/ 41
7
/ 41
8
/ 41
9
/ 41
10
/ 41
11
/ 41
12
/ 41
13
/ 41
14
/ 41
15
/ 41
16
/ 41
17
/ 41
18
/ 41
19
/ 41
20
/ 41
21
/ 41
22
/ 41
23
/ 41
24
/ 41
25
/ 41
26
/ 41
27
/ 41
28
/ 41
29
/ 41
30
/ 41
31
/ 41
32
/ 41
33
/ 41
34
/ 41
35
/ 41
36
/ 41
37
/ 41
38
/ 41
39
/ 41
40
/ 41
41
/ 41
More Related Content
PDF
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
by
Tomoyuki Sugita
PDF
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
PDF
CodeIgniter東京勉強会 2011.05.14
by
Takako Miyagawa
PDF
テストを書くのに挫折したあとやったこと
by
Yuta Ohashi
PDF
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PDF
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
by
Kazunori Sakamoto
PPTX
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
PDF
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
エンジニア採用ヤバイ! PHPカンファレンス関西 懇親会LT
by
Tomoyuki Sugita
Code igniterでテスト駆動開発 資料作成中
by
Takako Miyagawa
CodeIgniter東京勉強会 2011.05.14
by
Takako Miyagawa
テストを書くのに挫折したあとやったこと
by
Yuta Ohashi
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
by
Kazunori Sakamoto
TDC20111031_Groovy_Geb
by
Nobuhiro Sue
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
Similar to PHP Codeception テスト -- 日本語
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
PDF
Yesod(at FPM2012)
by
Seizan Shimazaki
PDF
behatで始めるBDD
by
Tsutomu Chikuba
PDF
GUI Test is (not) necessary
by
Hiroshi Maekawa
PDF
継続的8章
by
shinjiyoshida
PDF
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
PPT
PHP agile test tips
by
Tsutomu Chikuba
PPT
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
PDF
Eclipse PDT + MakeGoodによるPHPコードのテスト
by
Atsuhiro Kubo
PDF
Php勉強会資料20090629
by
Takako Miyagawa
PDF
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
PDF
PHP勉強会 #51
by
Takako Miyagawa
PPTX
Akito.Tsukahara.PHPerKaigi2020
by
Akito Tsukahara
PDF
Nds#24 単体テスト
by
Kazumune Katagiri
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
PDF
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
PDF
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
by
terahide
KEY
Functional Testing in #YAPCASIA
by
kyon mm
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
ZIP
負荷テストことはじめ
by
Kazumune Katagiri
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
Yesod(at FPM2012)
by
Seizan Shimazaki
behatで始めるBDD
by
Tsutomu Chikuba
GUI Test is (not) necessary
by
Hiroshi Maekawa
継続的8章
by
shinjiyoshida
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
PHP agile test tips
by
Tsutomu Chikuba
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
Eclipse PDT + MakeGoodによるPHPコードのテスト
by
Atsuhiro Kubo
Php勉強会資料20090629
by
Takako Miyagawa
JS開発におけるTDDと自動テストツール利用の勘所
by
Koji Nakamura
PHP勉強会 #51
by
Takako Miyagawa
Akito.Tsukahara.PHPerKaigi2020
by
Akito Tsukahara
Nds#24 単体テスト
by
Kazumune Katagiri
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
by
terahide
Functional Testing in #YAPCASIA
by
kyon mm
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
負荷テストことはじめ
by
Kazumune Katagiri
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')); ?>
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?
Download