自動テストへの道のりテストを簡単!楽しく!(PHPUnit + jenkins)2013/4/26 @papettoTV13年4月27日土曜日
自己紹介横田 英二(@papettoTV)web developerPHP / Titanium mobile13年4月27日土曜日
背景• 手動でテスト。嫌い。苦手。• 品質担保どうしよう。。。• そうだ!自動テストだ!13年4月27日土曜日
PHPUnit• Cakephp2系 PHPUnit標準13年4月27日土曜日
TDD• テストファースト• でも後からやっても効果は十分!(DDT?)13年4月27日土曜日
テスト対象• MVCでいうと、MとCはやるけど、V(html)はがっちりやってない• apiサーバならがっちりできる!13年4月27日土曜日
code coverage• テストの漏れを防げる(100%目指してしまう><)13年4月27日土曜日
テスト導入効果• 仕様が明確に!• (手動で)テストしにくかった処理が、確認できる• レアな不具合を発見できる• 実は不要な分岐を発見できる13年4月27日土曜日
テストできない?• ファイルのダウンロード• ファイル保存、書き込み、読み込み• 外部サーバとの通信(SNS連携、その他外部api、etc)• メール送信• session_id()を使った処理13年4月27日土曜日
対策/回避• モック• vfsStreamでファイル処理を疑似実装https://github.com/mikey179/vfsStream/wikimove_upload_file()は未対応っぽい• コードブロック無視 アノテーション@cod...
デメリット•  開発工数体感50%増し?•  やっぱりテストするのは面倒。。。13年4月27日土曜日
テスト行程• テスト+実装• 該当箇所のテスト確認• 成功確認するまで繰り返し• まとまったらcommit• 全テスト• テスト結果目視13年4月27日土曜日
テストを簡単に!• テスト+実装• 該当箇所のテスト確認• 成功確認するまで繰り返し• まとまったらcommit• git hookでjenkinsに全テスト、テスト結果通知13年4月27日土曜日
テストを楽しく!• テスト結果通知プラグイン• 成功時、失敗時にそれぞれの効果音http://blog.playispeace.com/918/jenkins_run_build_and_sound_alert_when_git_commit_...
まとめ• git commit でテスト結果通知 = 簡単!楽しい!• enjoy テスト!13年4月27日土曜日
Upcoming SlideShare
Loading in...5
×

自動テストへの道のり

938
-1

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
938
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

自動テストへの道のり

  1. 1. 自動テストへの道のりテストを簡単!楽しく!(PHPUnit + jenkins)2013/4/26 @papettoTV13年4月27日土曜日
  2. 2. 自己紹介横田 英二(@papettoTV)web developerPHP / Titanium mobile13年4月27日土曜日
  3. 3. 背景• 手動でテスト。嫌い。苦手。• 品質担保どうしよう。。。• そうだ!自動テストだ!13年4月27日土曜日
  4. 4. PHPUnit• Cakephp2系 PHPUnit標準13年4月27日土曜日
  5. 5. TDD• テストファースト• でも後からやっても効果は十分!(DDT?)13年4月27日土曜日
  6. 6. テスト対象• MVCでいうと、MとCはやるけど、V(html)はがっちりやってない• apiサーバならがっちりできる!13年4月27日土曜日
  7. 7. code coverage• テストの漏れを防げる(100%目指してしまう><)13年4月27日土曜日
  8. 8. テスト導入効果• 仕様が明確に!• (手動で)テストしにくかった処理が、確認できる• レアな不具合を発見できる• 実は不要な分岐を発見できる13年4月27日土曜日
  9. 9. テストできない?• ファイルのダウンロード• ファイル保存、書き込み、読み込み• 外部サーバとの通信(SNS連携、その他外部api、etc)• メール送信• session_id()を使った処理13年4月27日土曜日
  10. 10. 対策/回避• モック• vfsStreamでファイル処理を疑似実装https://github.com/mikey179/vfsStream/wikimove_upload_file()は未対応っぽい• コードブロック無視 アノテーション@codeCoverageIgnore@codeCoverageIgnoreStart@codeCoverageIgnoreEnd13年4月27日土曜日
  11. 11. デメリット•  開発工数体感50%増し?•  やっぱりテストするのは面倒。。。13年4月27日土曜日
  12. 12. テスト行程• テスト+実装• 該当箇所のテスト確認• 成功確認するまで繰り返し• まとまったらcommit• 全テスト• テスト結果目視13年4月27日土曜日
  13. 13. テストを簡単に!• テスト+実装• 該当箇所のテスト確認• 成功確認するまで繰り返し• まとまったらcommit• git hookでjenkinsに全テスト、テスト結果通知13年4月27日土曜日
  14. 14. テストを楽しく!• テスト結果通知プラグイン• 成功時、失敗時にそれぞれの効果音http://blog.playispeace.com/918/jenkins_run_build_and_sound_alert_when_git_commit_in_macosx/• デモ13年4月27日土曜日
  15. 15. まとめ• git commit でテスト結果通知 = 簡単!楽しい!• enjoy テスト!13年4月27日土曜日
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×