SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
自動テストへの道のり
テストを簡単!楽しく!
(PHPUnit + jenkins)
2013/4/26 @papettoTV
13年4月27日土曜日
自己紹介
横田 英二(@papettoTV)
web developer
PHP / Titanium mobile
13年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/wiki
move_upload_file()は未対応っぽい
• コードブロック無視 アノテーション
@codeCoverageIgnore
@codeCoverageIgnoreStart
@codeCoverageIgnoreEnd
13年4月27日土曜日
デメリット
•  開発工数体感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_in_macosx/
• デモ
13年4月27日土曜日
まとめ
• git commit でテスト結果通知 = 簡単!楽
しい!
• enjoy テスト!
13年4月27日土曜日

Contenu connexe

En vedette

Mqttの通信を見てみよう
Mqttの通信を見てみようMqttの通信を見てみよう
Mqttの通信を見てみようSuemasu Takashi
 
MQTTでオフィスハック with RasPi
MQTTでオフィスハック with RasPiMQTTでオフィスハック with RasPi
MQTTでオフィスハック with RasPiMasahiko Kubara
 
IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解Naoto MATSUMOTO
 
20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったことDaichi Morifuji
 
AWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAmazon Web Services Japan
 
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)Koji YUSA
 

En vedette (6)

Mqttの通信を見てみよう
Mqttの通信を見てみようMqttの通信を見てみよう
Mqttの通信を見てみよう
 
MQTTでオフィスハック with RasPi
MQTTでオフィスハック with RasPiMQTTでオフィスハック with RasPi
MQTTでオフィスハック with RasPi
 
IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解
 
20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと
 
AWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoTAWS Black Belt Tech シリーズ 2015 - AWS IoT
AWS Black Belt Tech シリーズ 2015 - AWS IoT
 
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
M-6 MQTTの使いどころ (JJUG CCC 2015 Spring)
 

Similaire à 自動テストへの道のり

はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法Tatsuya Saito
 
『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2shinyaa31
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Takami Sato
 
Turnipによるエンドツーエンドテストことはじめ
TurnipによるエンドツーエンドテストことはじめTurnipによるエンドツーエンドテストことはじめ
TurnipによるエンドツーエンドテストことはじめTakayuki Ujita
 
ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴mganeko
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践Hiroshi Maekawa
 
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiAワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiARyutaro YOSHIBA
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」Hiroyuki Ohnaka
 
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 hiboma
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous TestingAtsuhiro Kubo
 
小物ツールを自作しよう
小物ツールを自作しよう小物ツールを自作しよう
小物ツールを自作しようSohei Iwahori
 
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-Taichi Watanabe
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前にYasui Tsutomu
 
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島Tomohiko Himura
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 

Similaire à 自動テストへの道のり (18)

はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法
 
『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
 
Turnipによるエンドツーエンドテストことはじめ
TurnipによるエンドツーエンドテストことはじめTurnipによるエンドツーエンドテストことはじめ
Turnipによるエンドツーエンドテストことはじめ
 
TDD一連の流れ
TDD一連の流れTDD一連の流れ
TDD一連の流れ
 
ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴ここがつらいよWebRTC - WebRTC開発の落とし穴
ここがつらいよWebRTC - WebRTC開発の落とし穴
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践
 
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiAワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
ワンクリックデプロイ 〜いつまで手でデプロイしてるんですか〜 #devsumiA
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
 
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013 師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous Testing
 
小物ツールを自作しよう
小物ツールを自作しよう小物ツールを自作しよう
小物ツールを自作しよう
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
 
TFSの導入提案
TFSの導入提案TFSの導入提案
TFSの導入提案
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 

Plus de Eiji Yokota

Lecture for middle_students
Lecture for middle_studentsLecture for middle_students
Lecture for middle_studentsEiji Yokota
 
生と死について
生と死について生と死について
生と死についてEiji Yokota
 
webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡Eiji Yokota
 
webエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけwebエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけEiji Yokota
 
Node-REDの紹介
Node-REDの紹介Node-REDの紹介
Node-REDの紹介Eiji Yokota
 

Plus de Eiji Yokota (10)

Lecture for middle_students
Lecture for middle_studentsLecture for middle_students
Lecture for middle_students
 
生と死について
生と死について生と死について
生と死について
 
webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡
 
Evo2017
Evo2017Evo2017
Evo2017
 
IoTの魅力
IoTの魅力IoTの魅力
IoTの魅力
 
webエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけwebエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけ
 
Node-REDの紹介
Node-REDの紹介Node-REDの紹介
Node-REDの紹介
 
筋トレ大事
筋トレ大事筋トレ大事
筋トレ大事
 
Cakephp api
Cakephp apiCakephp api
Cakephp api
 
web_to_kotatsu
web_to_kotatsuweb_to_kotatsu
web_to_kotatsu
 

Dernier

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Dernier (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

自動テストへの道のり