SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
サービス開発者の読書会

    アジャイルサムライ
第五部 アジャイルなプログラミング

  2012.5.19 株式会社コネクトスター
後半戦
これはなに

• アジャイルサムライ読書会
• 第5部を読んだ前提で議論する資料
• 前編はhttp://www.slideshare.net/
 naotokoshikawa/82012612
KPT

• まずは読書会のKPTを確認
• http://kpt-it.herokuapp.com/
  9fdaa76993f04b532d3d8604baaefcb5
第五部
       今回は14と15をやります。
•12.ユニットテスト:動くことが分かる

• 13.リファクタリング:技術的負債の返済
• 14.テスト駆動開発
• 15.継続的インテグレーション:リリースに備え
 る
おさらい
問答無用で実践すべき
   プラクティス
• ユニットテスト
• リファクタリング
• テスト駆動開発(TDD)
• 継続的インテグレーション
14. テスト駆動開発

• 前回実際にRSpecでテスト駆動開発をお
 見せしました。

• 想像通り?
• イメージ変わった?
      (考えよう!)
実際見てみて
• TDDって何が難しいの?(当たり前じゃ
 ない?)

• ブラウザで検証するものだと思ってた
• メンタルに作用するものでは
• めんどくさそう
実際見てみて
• 成功体験がないと実感しないかも
• 一見不合理に見える
• 分かっていても出来ないものに見えた
• 生活習慣の一種に見えた
• 技術よりマインドが大事そう
テストを先に書く




まず失敗するテストを書く
ルールその1

• 失敗するテストをひとつ書くまでは、
 新しいコードを一切 書かない。

• (ここで大事なのは、本当に必要なコー
 ド以外を書いちゃいけない)
ルールその2

• 「危なっかしい所」をすべてテストす
 る

• 意図を伝えるためにテストを書く
ルールについて

• 「既に実装されたコードがある」と考
 えながら、先にテストを書くっていう
 のは設計手法として実にうまい作戦

• テスト駆動開発はユニットテストやリ
 ファクタリングよりも高度な 技術

      (考えよう!)
ルールについて

• どうやってTDDやっているかをチェッ
 クするんだい?

• テストそのものの質はどうみよう?
• 危なっかしい箇所がピックアップされ
 ているか?
得られる効果
得られる効果
• コードベースの保守や修正を容易にす
 ることにつながっている。

• コードが減れば、複雑さも減る。
• 設計がシンプルになれば、変更や修正
 もし やすくなる
15.継続的インテグレーション
リリースに備える文化

• プロジェクトの本番は初日から始まっ
 ている

• 本番環境へのデプロイは遙か遠い未来
 のことではない


       (考えよう!)
リリースに備える文化

• 本番環境にアップロードするのはお客
 さんということもある

• プログラム納品とかあるとありがち
• 納品前のドタバタがありがち
継続的インテグレーションとは

 • ソースコードリポジトリ
 • チェックイン手順
 • ビルドの自動化
 • 作業単位を小さくしようとする姿勢
具体的に必要なもの
• git
• gitのワークフローの理解
• アトミックコミット
• CIサーバー
• それを通知するコミュニケーション
 ツール(IRC, Campfire, hipchatなどなど)
コミット手順
ビルドの自動化




    更にチェックインすると
CIサーバーがビルドしてテストを実行する
学んだこと
• ユニットテスト
 ビルドしたコードがちゃんと動くこと
 を示す方法

• リファクタリング
 コードをシンプルでクリーンな状態に
 保ち、読みやすくするための技術
学んだこと
• テスト駆動開発(TDD)
 複雑さに立ち向かうための設計技法

• 継続的インテグレーション
 決まった間隔ですべてを統合し、プロ
 ダクトをリリース可能な状態を保ち続
 ける取り組み
アジャイルであるために


• 毎週、価値ある成果を届けられている
 か?

• たゆまぬ改善のための努力を惜しまず
 続けているか?
KPT




    http://kpt-it.herokuapp.com/
9fdaa76993f04b532d3d8604baaefcb5
完
次回

• みんなの感想LT
• リーンスタートアップ読書会の進め方を
 検討しよう!

Weitere ähnliche Inhalte

Was ist angesagt?

#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
 

Was ist angesagt? (20)

Automationtestssf beta
Automationtestssf betaAutomationtestssf beta
Automationtestssf beta
 
テスト駆動&オブジェクト指向ハンズオン
テスト駆動&オブジェクト指向ハンズオンテスト駆動&オブジェクト指向ハンズオン
テスト駆動&オブジェクト指向ハンズオン
 
Ai for software testing
Ai for software testingAi for software testing
Ai for software testing
 
Automationtestssf beta2 architectureskill
Automationtestssf beta2 architectureskillAutomationtestssf beta2 architectureskill
Automationtestssf beta2 architectureskill
 
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
 
QA improvement
QA improvementQA improvement
QA improvement
 
ssmjp 20200221 Automation
ssmjp 20200221 Automationssmjp 20200221 Automation
ssmjp 20200221 Automation
 
An Agile Way As an SET at LINE
An Agile Way As an SET at LINEAn Agile Way As an SET at LINE
An Agile Way As an SET at LINE
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
 
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 
テスト自動化入門@Graat勉強会
テスト自動化入門@Graat勉強会テスト自動化入門@Graat勉強会
テスト自動化入門@Graat勉強会
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014
 
iOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotipsiOSにおけるUIテスト@potetotips
iOSにおけるUIテスト@potetotips
 
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
 
pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約pact-jvmではじめるコンシューマー駆動契約
pact-jvmではじめるコンシューマー駆動契約
 

Andere mochten auch

スクラムプロジェクト逆計画ゲーム 状況カード
スクラムプロジェクト逆計画ゲーム 状況カードスクラムプロジェクト逆計画ゲーム 状況カード
スクラムプロジェクト逆計画ゲーム 状況カード
Yasui Tsutomu
 
小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE
Yuji Tomiyama
 

Andere mochten auch (20)

「管理」をなくせばうまくいく
「管理」をなくせばうまくいく「管理」をなくせばうまくいく
「管理」をなくせばうまくいく
 
20120426 アジャイルサムライ読書会 第2回
20120426 アジャイルサムライ読書会 第2回20120426 アジャイルサムライ読書会 第2回
20120426 アジャイルサムライ読書会 第2回
 
勉強会勉強会と勉強会カンファレンス
勉強会勉強会と勉強会カンファレンス勉強会勉強会と勉強会カンファレンス
勉強会勉強会と勉強会カンファレンス
 
20150917 pcスキルコース3 ネット好きなら知っておきたい5つのこと
20150917 pcスキルコース3 ネット好きなら知っておきたい5つのこと20150917 pcスキルコース3 ネット好きなら知っておきたい5つのこと
20150917 pcスキルコース3 ネット好きなら知っておきたい5つのこと
 
スクラムプロジェクト逆計画ゲーム 状況カード
スクラムプロジェクト逆計画ゲーム 状況カードスクラムプロジェクト逆計画ゲーム 状況カード
スクラムプロジェクト逆計画ゲーム 状況カード
 
20120605 アジャイルサムライ読書会第7回
20120605 アジャイルサムライ読書会第7回20120605 アジャイルサムライ読書会第7回
20120605 アジャイルサムライ読書会第7回
 
20120508 アジャイルサムライ読書会 第3回
20120508 アジャイルサムライ読書会 第3回20120508 アジャイルサムライ読書会 第3回
20120508 アジャイルサムライ読書会 第3回
 
20100521部内勉強会
20100521部内勉強会20100521部内勉強会
20100521部内勉強会
 
Git道場を開催してきた
Git道場を開催してきたGit道場を開催してきた
Git道場を開催してきた
 
アジャイル×パターン=ぼくたちの現場 イントロダクション
アジャイル×パターン=ぼくたちの現場 イントロダクションアジャイル×パターン=ぼくたちの現場 イントロダクション
アジャイル×パターン=ぼくたちの現場 イントロダクション
 
目標設定型Pmセミナー企画書ver0.1 up 01
目標設定型Pmセミナー企画書ver0.1 up 01目標設定型Pmセミナー企画書ver0.1 up 01
目標設定型Pmセミナー企画書ver0.1 up 01
 
10年かけたたどり着いた一つの場所はアジャイル開発の扉だった
10年かけたたどり着いた一つの場所はアジャイル開発の扉だった10年かけたたどり着いた一つの場所はアジャイル開発の扉だった
10年かけたたどり着いた一つの場所はアジャイル開発の扉だった
 
小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE
 
ひとくち勉強会②_メモを考える
ひとくち勉強会②_メモを考えるひとくち勉強会②_メモを考える
ひとくち勉強会②_メモを考える
 
アジャイルプラクティスリファレンスガイドイントロダクション
アジャイルプラクティスリファレンスガイドイントロダクションアジャイルプラクティスリファレンスガイドイントロダクション
アジャイルプラクティスリファレンスガイドイントロダクション
 
テスト駆動開発始めました!
テスト駆動開発始めました!テスト駆動開発始めました!
テスト駆動開発始めました!
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should know
 
20120418 アジャイルサムライ読書会 第1回
20120418 アジャイルサムライ読書会 第1回20120418 アジャイルサムライ読書会 第1回
20120418 アジャイルサムライ読書会 第1回
 
魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk
 
IIBA日本支部BABOK-WG発表会「アジャイル要求分析」(2014年6月17日) 講演メイン資料(伊藤衡さん作成)
IIBA日本支部BABOK-WG発表会「アジャイル要求分析」(2014年6月17日) 講演メイン資料(伊藤衡さん作成)IIBA日本支部BABOK-WG発表会「アジャイル要求分析」(2014年6月17日) 講演メイン資料(伊藤衡さん作成)
IIBA日本支部BABOK-WG発表会「アジャイル要求分析」(2014年6月17日) 講演メイン資料(伊藤衡さん作成)
 

Ähnlich wie 20120519 アジャイルサムライ読書会第9回(完)

継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
Takuma SHIRAISHI
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
ko ty
 

Ähnlich wie 20120519 アジャイルサムライ読書会第9回(完) (20)

.Netlab202107
.Netlab202107.Netlab202107
.Netlab202107
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
テスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決することテスト自動化の現場で困ること SI-Toolkitが解決すること
テスト自動化の現場で困ること SI-Toolkitが解決すること
 
物理モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第9回】
物理モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第9回】物理モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第9回】
物理モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第9回】
 
ITS fidel
ITS fidelITS fidel
ITS fidel
 
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略ポストJenkins時代のCI戦略
ポストJenkins時代のCI戦略
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
SeleniumConf Chicago 参加報告
SeleniumConf Chicago 参加報告SeleniumConf Chicago 参加報告
SeleniumConf Chicago 参加報告
 
夜子まま塾 2015年1月23日 進行用資料
夜子まま塾 2015年1月23日 進行用資料夜子まま塾 2015年1月23日 進行用資料
夜子まま塾 2015年1月23日 進行用資料
 
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
 

20120519 アジャイルサムライ読書会第9回(完)