Submit Search
Upload
大規模ソフトウェアにおけるディリービルド&リグレッションテスト@Dev Love
•
Download as PPT, PDF
•
4 likes
•
1,527 views
Hiro Yoshioka
Follow
2010年11月18日、DevLOVEで発表。 大規模ソフトウェアにおけるディリービルド&リグレッションテスト。Oracle8開発における事例。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 19
Download now
Recommended
React Nativeで作る「触れるプロトタイプ」の活用
React Nativeで作る「触れるプロトタイプ」の活用
Taiga Sano
20210526 nutanix devopsnight_meetup
20210526 nutanix devopsnight_meetup
Naotaka Shinogi
Shinogi meetup online_20200729
Shinogi meetup online_20200729
Naotaka Shinogi
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
urasandesu
新規Androidアプリ開発において何より大切なこと
新規Androidアプリ開発において何より大切なこと
Hiroshi Kikuchi
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト
Kazuto Ohara
クラウド&コンテナ活用でDevOpsを加速させる!
クラウド&コンテナ活用でDevOpsを加速させる!
Kazuto Ohara
中国のスマホ市場
中国のスマホ市場
Namito Satoyama
Recommended
React Nativeで作る「触れるプロトタイプ」の活用
React Nativeで作る「触れるプロトタイプ」の活用
Taiga Sano
20210526 nutanix devopsnight_meetup
20210526 nutanix devopsnight_meetup
Naotaka Shinogi
Shinogi meetup online_20200729
Shinogi meetup online_20200729
Naotaka Shinogi
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
urasandesu
新規Androidアプリ開発において何より大切なこと
新規Androidアプリ開発において何より大切なこと
Hiroshi Kikuchi
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト
Kazuto Ohara
クラウド&コンテナ活用でDevOpsを加速させる!
クラウド&コンテナ活用でDevOpsを加速させる!
Kazuto Ohara
中国のスマホ市場
中国のスマホ市場
Namito Satoyama
Wantedlyのテスト事情
Wantedlyのテスト事情
Takao Sumitomo
運用にモチベを求めるのは間違っているだろうか
運用にモチベを求めるのは間違っているだろうか
Daisuke Itou
Five fails of user interviewing
Five fails of user interviewing
Steph Maki Okusa
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
Fumitaka Inayama
ソニックガーデン流 無駄のないシステム開発
ソニックガーデン流 無駄のないシステム開発
Masahiro Nishimi
今更聞けない? Androidのテストのいろは
今更聞けない? Androidのテストのいろは
Hiroshi Kikuchi
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
Tomoyuki Sugita
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
智治 長沢
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
#RoadToDF19 - Dreamforceでやりたいこと
#RoadToDF19 - Dreamforceでやりたいこと
Takahito Miyamoto
3ヶ月のコミットから始める英語勉強法のススメ
3ヶ月のコミットから始める英語勉強法のススメ
Takeshi Kondo
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おう
Shinya Nakajima
CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2
LIFULL Co., Ltd.
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM,INC
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
Shinya Nakajima
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
Study Group by SciencePark Corp.
Go初心者が標準パッケージから学んだテストの手法
Go初心者が標準パッケージから学んだテストの手法
TVer Technologies Inc.
devreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
Shotaro Suzuki
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
CASAREAL, Inc.
More Related Content
What's hot
Wantedlyのテスト事情
Wantedlyのテスト事情
Takao Sumitomo
運用にモチベを求めるのは間違っているだろうか
運用にモチベを求めるのは間違っているだろうか
Daisuke Itou
Five fails of user interviewing
Five fails of user interviewing
Steph Maki Okusa
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
Fumitaka Inayama
ソニックガーデン流 無駄のないシステム開発
ソニックガーデン流 無駄のないシステム開発
Masahiro Nishimi
今更聞けない? Androidのテストのいろは
今更聞けない? Androidのテストのいろは
Hiroshi Kikuchi
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
Tomoyuki Sugita
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
智治 長沢
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
#RoadToDF19 - Dreamforceでやりたいこと
#RoadToDF19 - Dreamforceでやりたいこと
Takahito Miyamoto
3ヶ月のコミットから始める英語勉強法のススメ
3ヶ月のコミットから始める英語勉強法のススメ
Takeshi Kondo
What's hot
(11)
Wantedlyのテスト事情
Wantedlyのテスト事情
運用にモチベを求めるのは間違っているだろうか
運用にモチベを求めるのは間違っているだろうか
Five fails of user interviewing
Five fails of user interviewing
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
ソニックガーデン流 無駄のないシステム開発
ソニックガーデン流 無駄のないシステム開発
今更聞けない? Androidのテストのいろは
今更聞けない? Androidのテストのいろは
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
#RoadToDF19 - Dreamforceでやりたいこと
#RoadToDF19 - Dreamforceでやりたいこと
3ヶ月のコミットから始める英語勉強法のススメ
3ヶ月のコミットから始める英語勉強法のススメ
Similar to 大規模ソフトウェアにおけるディリービルド&リグレッションテスト@Dev Love
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おう
Shinya Nakajima
CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2
LIFULL Co., Ltd.
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM,INC
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
Shinya Nakajima
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
Study Group by SciencePark Corp.
Go初心者が標準パッケージから学んだテストの手法
Go初心者が標準パッケージから学んだテストの手法
TVer Technologies Inc.
devreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
Shotaro Suzuki
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
CASAREAL, Inc.
altJSの選び方
altJSの選び方
terurou
Photon Enterprise Cloud 事例
Photon Enterprise Cloud 事例
Tomotsune Murata
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
アジャイル開発のためのDatadog
アジャイル開発のためのDatadog
Nobuyasu Seki
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
LINE Corporation
DevOps、その前に
DevOps、その前に
Yuta Matsumura
.NET 7期待の新機能
.NET 7期待の新機能
TomomitsuKusaba
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化
智治 長沢
Similar to 大規模ソフトウェアにおけるディリービルド&リグレッションテスト@Dev Love
(20)
ペアプロするならgit-duetを使おう
ペアプロするならgit-duetを使おう
CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
レガシーコードに向き合ってみた話
レガシーコードに向き合ってみた話
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
ビルド職人頼みの自社製品リリースを、CI可能にした取り組み
Go初心者が標準パッケージから学んだテストの手法
Go初心者が標準パッケージから学んだテストの手法
devreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
altJSの選び方
altJSの選び方
Photon Enterprise Cloud 事例
Photon Enterprise Cloud 事例
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
アジャイル開発のためのDatadog
アジャイル開発のためのDatadog
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
DevOps、その前に
DevOps、その前に
.NET 7期待の新機能
.NET 7期待の新機能
【デブサミ2010】アジリティを向上させる開発ツールの進化
【デブサミ2010】アジリティを向上させる開発ツールの進化
More from Hiro Yoshioka
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Hiro Yoshioka
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Hiro Yoshioka
不揮発性メモリ(NVM)とはなにか
不揮発性メモリ(NVM)とはなにか
Hiro Yoshioka
続・人生100年時代の学び方
続・人生100年時代の学び方
Hiro Yoshioka
人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活
Hiro Yoshioka
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Hiro Yoshioka
人生100年時代の学び方、脳には可塑性がある
人生100年時代の学び方、脳には可塑性がある
Hiro Yoshioka
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
Hiro Yoshioka
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
Hiro Yoshioka
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
Hiro Yoshioka
未経験プログラマがコボルコンパイラを作った話 #compiler_study
未経験プログラマがコボルコンパイラを作った話 #compiler_study
Hiro Yoshioka
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Hiro Yoshioka
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
Hiro Yoshioka
理科系の作文技術
理科系の作文技術
Hiro Yoshioka
Agile Software Development advanced course (PBL) at AIIT, 2015
Agile Software Development advanced course (PBL) at AIIT, 2015
Hiro Yoshioka
質問される力 #TechGirls
質問される力 #TechGirls
Hiro Yoshioka
Oracle vs Google API 著作権裁判を考える
Oracle vs Google API 著作権裁判を考える
Hiro Yoshioka
Using oss at an internet company and hacker culture
Using oss at an internet company and hacker culture
Hiro Yoshioka
Be Hacker
Be Hacker
Hiro Yoshioka
Project Based Learning using by PaaS
Project Based Learning using by PaaS
Hiro Yoshioka
More from Hiro Yoshioka
(20)
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
不揮発性メモリ(NVM)とはなにか
不揮発性メモリ(NVM)とはなにか
続・人生100年時代の学び方
続・人生100年時代の学び方
人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
人生100年時代の学び方、脳には可塑性がある
人生100年時代の学び方、脳には可塑性がある
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
未経験プログラマがコボルコンパイラを作った話 #compiler_study
未経験プログラマがコボルコンパイラを作った話 #compiler_study
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
理科系の作文技術
理科系の作文技術
Agile Software Development advanced course (PBL) at AIIT, 2015
Agile Software Development advanced course (PBL) at AIIT, 2015
質問される力 #TechGirls
質問される力 #TechGirls
Oracle vs Google API 著作権裁判を考える
Oracle vs Google API 著作権裁判を考える
Using oss at an internet company and hacker culture
Using oss at an internet company and hacker culture
Be Hacker
Be Hacker
Project Based Learning using by PaaS
Project Based Learning using by PaaS
Recently uploaded
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(9)
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
大規模ソフトウェアにおけるディリービルド&リグレッションテスト@Dev Love
1.
1 楽天株式会社 開発部 アーキテクト G よしおかひろたか |
2010 年 11 月 18 日 よしおかひろたか @DevLOVE
2.
2 よしおか 本日のメッセージ 開発者の皆さん、 テストを書こう テストを書く=テストコード+入力データ+期待する出力デー タ Excel でテストケースを作ることではない。 よしおか
3.
3 よしおか アジェンダ •大規模ソフトウェア 開発におけるディリ ービルド&リグレッ ションテスト -
事例
4.
4 よしおか 自己紹介 • 楽天株式会社
DU 、 ACT 課アーキテクト G 、技術 理事 よしおかひろたか • 2009 年 8 月入社 • カーネル読書会の主宰者、 DEBUG HACKS 共著 ISBN978-4-87311-404-0 • twitter @hyoshiok http://d.hatena.ne.jp/hyoshiok
5.
5 よしおか わたしの経験から • 大規模ソフトウェア開発の現場の経験 をお話する。 –
ソフトウェア製品開発は受託開発とは相 当異なる。 • 事例: – Oracle8 の開発現場←今日はここ
6.
6 よしおか Oracle の場合 •
開発環境 • 開発プロセス • プログラマの日常 • リズム • チェックアウト、チェックイン • ディリービルド • リグレッションテスト • 学んだこと
7.
7 よしおか Oracle 8
の場合 • わたしが参加した時期、 1995 年~ 2000 年 • Oracle8/8i あたりのころ • 開発環境: Sun Workstation 、 SunOS から Solaris • Clearcase ベースの開発環境。 – ファイルの仮想化。一人で複数のブランチを同 時に持てる。 • 例えば、 Oracle 7.3 用、 Oracle 8 用、 Oracle 8.1 用。バ グ修正、機能ごと、ちょっとした確認用などなど • check-out したものは check-in するまで他の人には見え ない。
8.
8 よしおか開発プロセス( Oracle の場合) •
要求仕様作り(開発者) – 外部 API 、 UI などを決定する。 • 例: SQL のシンタックス、セマンティックスを定義する。 – リファレンスマニュアルのベースになる。 • 設計(開発者) – API などを決定したら、設計&実装になる。 • 実装(開発者) – コードを書く、テストを書く、テストをする • ディリービルド&リグレッションテスト(自動) – チェックインされた最新のコードをスクラッチからビルドして、 リグレッションテストを実行。 • チェックインしたコードの概要と、テスト結果の概要が日々 担当者にメールで送られる • 常に動くコードが毎日ある。 • 安定化プロセス – フィーチャーフリーズ(機能追加を凍結する) – コードフリーズ(重大なバグフィックス以外のチェックインを認 めない)
9.
9 よしおか ソフトウェア製品開発のプログ ラマ • 設計者が実装者でテストも書く • 一つの機能については、すべて知って いる。 •
コーダーという人がいるわけではない 。
10.
10 よしおか プログラマの一日 • 朝会社に来る。 •
コーヒーでも飲みながら、メールをチェックする。 – 担当のテストを確認する。 • 自分が昨日チェックインしたコードがリグレッションテスト を壊していないか。 • 他の人のチェックインが、担当テストを壊していないか。 • 壊れている場合は、調査する。あるいは調査を依頼する。 • 仕掛の作業を行う。 – コードを書いたり、テストを流したり、あれやこれや。 – 全テストを流すと時間がかかるので、サブセットを流す – コードが安定したら当該ブランチの最新版にマージする • 自分の環境で動作確認ができたら、 – 同僚にレビュー依頼をして、コメントをもらう。特に問題がなさ そうの場合、リリースマネージャーにチェックインの許可をもら う。 • 許可が出たら、チェックインする。 – 次の日はどきどきしながらリグレッションテストの結果を見る • 休暇の前に確認しないでチェックインをするな、という不文律 – http://d.hatena.ne.jp/hyoshiok/20040516#p1
11.
11 よしおか リズム • チェックアウトして •
コードをいじって、テストを書いて、 • テストを実行して、 OK になるまで繰り返 して、 • 変更についてコメントを書いて、(変更の 概要、バグ修正、機能追加、機能変更など など) • 同僚にレビューしてもらって、 • リリースマネージャに許可をもらって、 • チェックイン
12.
12 よしおかチェックアウト、チェックイン • 複数のブランチを同時にいじっている • バージョンがいくつか •
それぞれについて、バグフィックス、 機能変更、機能追加、機能ごとに別々 のブランチを切っておく。 • 最新のバージョンでバグフィックスし たものを昔のバージョンに適用するこ ともある。(バックポート)
13.
13 よしおか ディリービルド • 毎日大量のチェックインがある。数 十~ •
最新のソースからビルドする。 – コンパイルエラーが出るチェックインは 無条件にロールバックされる。 – 複数のビルドマシンで分散ビルド • 安定性に差こそあれ常に動くものがあ る。 – Oracle8 の最初のビルドは前バージョン (Oracle 7.3) と同一。ここから始まる。
14.
14 よしおか リグレッションテスト • ディリービルドされた最新の実行イメージ でリグレッションテスト(数千)を実行す る –
10 数台(?)のサーバーマシンで何時間もかか る。 – テストコード、入力データを与えて、期待する 出力と実際の出力の差分を見る – diff (差分)が出たらそれを目視確認する。期待 する結果なのか、いなか。 – 新機能追加、バグフィックスの場合は対応する テストの追加、修正などを行う。 – リグレッションテストがあるので、既存の機能 の予期しない影響がすぐにわかる。リグレッシ ョンの発見。
15.
15 よしおか 安定化プロセス • あるクライテリアで、安定化プロセスに入 る。 –
新機能の追加を凍結する( feature freeze) 期間に 入る – バグ修正だけを行う – リグレッションテストの diff の数を減少させる – テストの追加、実行だけをやって、製品の安定 化を図る。 – あるクライテリアで、重大なバグ修正以外は一 切変更を認めない (code freeze) 期間に入る。 – バグ(不具合)はリリースノート等に記載し出 荷する
16.
16 よしおか 学んだこと • ディリービルド&リグレッションテストに よって、常に動作が確認されているものが ある。 –
どの機能が実装されていて、どの機能が実装さ れていないかが一目でわかる – 実装すべき機能のプライオリティが変更になっ たとしても、すぐに対処可能 – スケジュールが遅延した場合、どの機能を落と すかの判断が容易に可能。(どれが動いている かいないかを把握できているので) – マニュアルに記述していない機能は存在しない のと一緒。
17.
17 よしおか デイリービルド&リグレッショ ンテスト • 大規模ソフトウェア開発において俊敏 性を高めるベストプラクティスで、ソ フトウェア製品開発では広く利用され ている。(例:マイクロソフトの OS 開発など) •
闘うプログラマー ビル・ゲイツの 野望を担った男達 http://books.rakuten.co.jp/rb/6130084/
18.
18 よしおか 開発者の皆さん、 テストを書こう テストを書いてプロフェッショナルにな ろう 世界へ
19.
19 よしおか
Download now