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
YT
Uploaded by
Yuuki Tan-nai
7,767 views
Casper導入資料
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
KEY
Unit testで定時帰宅!
by
Funato Takashi
PPT
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
PDF
TDD Boot Camp Tokyo for C++ 2014-01 補講
by
Takashi Imagire
PPT
PHP agile test tips
by
Tsutomu Chikuba
PDF
Myweekdays and testing
by
ryuji koyama
PPTX
Php勉強会スライド
by
suzumurashingo
PDF
テストエンジニアのおっさんの日常です
by
ryuji koyama
PPT
Test Plugins
by
ykhr
Unit testで定時帰宅!
by
Funato Takashi
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
TDD Boot Camp Tokyo for C++ 2014-01 補講
by
Takashi Imagire
PHP agile test tips
by
Tsutomu Chikuba
Myweekdays and testing
by
ryuji koyama
Php勉強会スライド
by
suzumurashingo
テストエンジニアのおっさんの日常です
by
ryuji koyama
Test Plugins
by
ykhr
What's hot
PDF
超簡単!!なTestLinkの使い方
by
Cake YOSHIDA
PDF
Jmeter20120421
by
hatakyo
KEY
初めての単体テスト
by
Basuke Suzuki
PDF
Mail parsetest100
by
yokotaso
PPT
Shibya.trac #2: TracとTestLinkの合わせ技
by
Toshiyuki Kawanishi
PDF
仕様変更で死なないためのユニットテスト
by
tod esking
PPTX
ソフトウェア・テスト入門5
by
Kenta Hattori
PPTX
reg-suitとQA Wolfを活用したVisual Regression Test
by
Kazuyuki Tsuzisaki
KEY
自動テストのすすめ
by
Katsunori Kanda
PDF
pytest × TDD テスト駆動開発のススメ
by
iRidge, Inc.
PPTX
少し分かった気になるテスト駆動開発
by
lnial
PPTX
ソフトウェアテスト入門
by
iKenji
PDF
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
PDF
モックライブラリを使ってきちんとユニットテストする #Objective-C
by
Shoichi Matsuda
PPTX
Eggplant Functional - Lesson 9 (Japanese slides)
by
Eggplant
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PPTX
後期講座08
by
Takenori Nakagawa
PPT
開発ワークフロー
by
Cuong Nguyen Cao
KEY
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
PDF
テスト駆動ゲーム開発をJava scriptで実践
by
Yuusuke Takeuchi
超簡単!!なTestLinkの使い方
by
Cake YOSHIDA
Jmeter20120421
by
hatakyo
初めての単体テスト
by
Basuke Suzuki
Mail parsetest100
by
yokotaso
Shibya.trac #2: TracとTestLinkの合わせ技
by
Toshiyuki Kawanishi
仕様変更で死なないためのユニットテスト
by
tod esking
ソフトウェア・テスト入門5
by
Kenta Hattori
reg-suitとQA Wolfを活用したVisual Regression Test
by
Kazuyuki Tsuzisaki
自動テストのすすめ
by
Katsunori Kanda
pytest × TDD テスト駆動開発のススメ
by
iRidge, Inc.
少し分かった気になるテスト駆動開発
by
lnial
ソフトウェアテスト入門
by
iKenji
よりよいPHPUnitの実行方法を求めて
by
Akio Ishida
モックライブラリを使ってきちんとユニットテストする #Objective-C
by
Shoichi Matsuda
Eggplant Functional - Lesson 9 (Japanese slides)
by
Eggplant
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
後期講座08
by
Takenori Nakagawa
開発ワークフロー
by
Cuong Nguyen Cao
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
by
Shuji Watanabe
テスト駆動ゲーム開発をJava scriptで実践
by
Yuusuke Takeuchi
More from Yuuki Tan-nai
PDF
Riakはなぜ良いのか
by
Yuuki Tan-nai
PDF
分散合意の動機的な何か
by
Yuuki Tan-nai
PPTX
SQLドリルの話(仮)
by
Yuuki Tan-nai
PDF
Infernoについて(仮)
by
Yuuki Tan-nai
PDF
DB技術[実践]入門を読んだ
by
Yuuki Tan-nai
PDF
Infernoの話
by
Yuuki Tan-nai
PDF
InfernoのLTを今作ったので聞いて欲しい
by
Yuuki Tan-nai
KEY
献血とPerlについて
by
Yuuki Tan-nai
KEY
献血に行ってきた
by
Yuuki Tan-nai
PDF
Niigata rb発表資料
by
Yuuki Tan-nai
KEY
RFC4627 Reading
by
Yuuki Tan-nai
PDF
私の失敗道(仮)
by
Yuuki Tan-nai
Riakはなぜ良いのか
by
Yuuki Tan-nai
分散合意の動機的な何か
by
Yuuki Tan-nai
SQLドリルの話(仮)
by
Yuuki Tan-nai
Infernoについて(仮)
by
Yuuki Tan-nai
DB技術[実践]入門を読んだ
by
Yuuki Tan-nai
Infernoの話
by
Yuuki Tan-nai
InfernoのLTを今作ったので聞いて欲しい
by
Yuuki Tan-nai
献血とPerlについて
by
Yuuki Tan-nai
献血に行ってきた
by
Yuuki Tan-nai
Niigata rb発表資料
by
Yuuki Tan-nai
RFC4627 Reading
by
Yuuki Tan-nai
私の失敗道(仮)
by
Yuuki Tan-nai
Casper導入資料
1.
Casper.JS導入資料 @saisa6153 2013/9/12
2.
Agenda ● テストとは ● E2Eテストの概要 ●
Phantom + Casperについて ● 今後の課題とかやること
3.
テストとは
5.
テスト ● コンピュータのプログラムを実行し、正しく動作するか どうか確認する作業のこと ○ コードを書く→保存する→ブラウザで確認 ○
予めテスト項目を書いておいて自動で走らせて確認 ● プログラム(の挙動)を保護する ● 自動でやりたい ● どんなテストがあるのか ○ 単体テスト:メソッド、クラス単位。モデルのテストに相当 ○ 結合テスト:複数のクラスをテスト。コントローラに相当 ○ E2Eテスト:システム単位のテスト。今回の目的。
6.
自動でテストすると何が良いのか ● 網羅的で高速なチェックが可能 ● コードを変えても機能が変わらないことを保証 ●
挙動を変わった原因を容易に把握できる ○ すぐ治せる ● リファクタリングに先立って必要
7.
E2Eテストの概要
8.
End-2-End(E2E)テストとは ● システムを外側から見たテスト ● 受け入れテストが日本での正式名称 ●
今回で言うと、 ○ ある値をpostした時に ○ 期待するHTML(あるいは文字列)が返ってくるか ● 内部の実装に依存せず書ける
9.
Phantom+Casper
10.
Phantom.JSとは ● ブラウザ ● GUIを持たない(ヘッドレス) ●
JavaScriptで操作を記述する ● Ajaxリクエストの改変、監視なども行える ● これだけでも受け入れテストが書ける →しかしcookie周りとかの記述がとても大変 簡単な操作でも、細かいとこまで記述 →管理できずに破綻する未来が見える ● そこでCasper.JS
11.
Casper.JSとは ● phantomの操作を簡単に行うためのライブラリ ● CoffeeScriptも使用可能 →記述量の削減 ●
便利メソッド(操作、テスト)がたくさん ● Phantomのみにしか依存しない →Phantom使えるならCasperをcloneするだけ ○ 開発者が気軽に実行できないと続かない ○ 競合ライブラリは重くてでっかい何かに依存している
12.
E2EテストBeforeAfter 操作を記述 駆動 リクエスト レスポンス レンダリング 出力 リクエスト レスポンス ブラウザを直接操作 変更項目を目視確認 アプリケーション アプリケーション ブラウザ
13.
環境を作る
14.
PhantomとCasperを準備 $ wget https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-x86_64. tar.bz2 $
tar jxf phantomjs-1.9.2-linux-x86_64.tar.bz2 $ sudo cp phantomjs-1.9.2/bin/phantomjs /usr/local/bin/ $ git clone git://github.com/n1k0/casperjs.git $ sudo ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs
15.
今後やることなど テスト運用の話も
16.
運用時のディレクトリ構成 $ pwd ~/app $ tree
./test test ├── common │ ├── casper_inc.coffee │ └── casper_pre.coffee └── suite └── 01-trialA ├── 01-trialA.coffee ├── 02-trialA.coffee ├── 03-trialA.coffee ├── 04-trialA.coffee └── 05-trialA.coffee
17.
運用にあたっての懸念(課題) ● 変数が直書き ● 原因不明な失敗がある... ○
操作の間で適切にcasper.then()を入れるべき? ● 継続的にE2Eテストをメンテするモチベーション ○ Jenkins? ○ エクセル管理? ○ テスト記述を推奨する制度、しくみ ● QAとの連携 ○ TestLink ○ QAチームのテストエンジニア化計画も... ● テスト実行に際する冪等性 ○ 毎回DBが膨らんでゆく...
18.
懸念を払拭する:テストケースの管理 ● 値を切り出す ○ 値(与える入力と期待する出力)とテストロジックの分離 ○
テストロジックの重複を排除 ○ 値は分離して何かで管理 ● 各種管理ツールの導入 ○ えくせる的な何か ○ TestLink ○ Jenkins
19.
やるべきこと ● 継続的にメンテできる体制の構築 ○ テストは常に網羅されている状態を維持したい ○
コードは常にテストを通る状態を維持したい ● テストケースの管理方法の制定 ○ 誰がどのシナリオ・ケースを担当し、書いたか ○ 期待する値の粒度 ■ 細かすぎると、些細な変更でもテストに通らない ■ 大きすぎると、肝心なときにコケてくれない ○ assert値をstatic変数にして別ファイルにしてinclude ● コーディング規約の制定 ○ @(=this)使わないほうがいいのか? ○ CoffeeScriptのベストプラクティス
20.
E2Eが第一歩 ● 内部の実装に依存しないで動作を保証できる ○ “テストのためのリファクタ”が基本的に不要 ○
テストの中では一番手をつけやすい ● これが無いと次のリファクタを始められない ○ きちんと動いていることをテストが保証 ○ 人が確認していたことを機械が自動で確認 ● ここでテストの習慣ができれば... ○ 今後結合テスト、単体テストの導入も楽 ○ やってることは大して変わらない(操作してassert)
21.
がんばりましょう!!! 千里の道も一歩から
Download