Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

自動テストへの道のり

1,351 views

Published on

Published in: Technology

自動テストへの道のり

  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日土曜日

×