Upload
Download free for 30 days
Login
Submit Search
大規模ソフトウェアにおけるディリービルド&リグレッションテスト@Dev Love
Download as PPT, PDF
4 likes
1,537 views
Hiro Yoshioka
2010年11月18日、DevLOVEで発表。 大規模ソフトウェアにおけるディリービルド&リグレッションテスト。Oracle8開発における事例。
Technology
Related topics:
Insights on Software Development
Read more
1 of 19
Download now
Downloaded 11 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
More Related Content
PDF
React Nativeで作る「触れるプロトタイプ」の活用
Taiga Sano
PPTX
20210526 nutanix devopsnight_meetup
Naotaka Shinogi
PPTX
Shinogi meetup online_20200729
Naotaka Shinogi
PPTX
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
urasandesu
PDF
新規Androidアプリ開発において何より大切なこと
Hiroshi Kikuchi
PDF
副業が私にもたらした2つのシフト
Kazuto Ohara
PDF
クラウド&コンテナ活用でDevOpsを加速させる!
Kazuto Ohara
PDF
中国のスマホ市場
Namito Satoyama
React Nativeで作る「触れるプロトタイプ」の活用
Taiga Sano
20210526 nutanix devopsnight_meetup
Naotaka Shinogi
Shinogi meetup online_20200729
Naotaka Shinogi
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
urasandesu
新規Androidアプリ開発において何より大切なこと
Hiroshi Kikuchi
副業が私にもたらした2つのシフト
Kazuto Ohara
クラウド&コンテナ活用でDevOpsを加速させる!
Kazuto Ohara
中国のスマホ市場
Namito Satoyama
What's hot
(11)
PPTX
Wantedlyのテスト事情
Takao Sumitomo
PDF
運用にモチベを求めるのは間違っているだろうか
Daisuke Itou
PDF
Five fails of user interviewing
Steph Maki Okusa
PPTX
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
Fumitaka Inayama
PDF
ソニックガーデン流 無駄のないシステム開発
Masahiro Nishimi
PDF
今更聞けない? Androidのテストのいろは
Hiroshi Kikuchi
PDF
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
Tomoyuki Sugita
PDF
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
智治 長沢
PDF
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
PDF
#RoadToDF19 - Dreamforceでやりたいこと
Takahito Miyamoto
PPTX
3ヶ月のコミットから始める英語勉強法のススメ
Takeshi Kondo
Wantedlyのテスト事情
Takao Sumitomo
運用にモチベを求めるのは間違っているだろうか
Daisuke Itou
Five fails of user interviewing
Steph Maki Okusa
XP祭り2017LT 「技術系同人誌で学ぶ 実践プロダクトマネジメント」
Fumitaka Inayama
ソニックガーデン流 無駄のないシステム開発
Masahiro Nishimi
今更聞けない? Androidのテストのいろは
Hiroshi Kikuchi
チャットワークで仕事が捗る10のコツ chatwork fanmeetingvol1
Tomoyuki Sugita
デブサミ関西2013 A6 Visual Studio 2013 - Be Agile, Stay Lean... #kansumiA6
智治 長沢
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
#RoadToDF19 - Dreamforceでやりたいこと
Takahito Miyamoto
3ヶ月のコミットから始める英語勉強法のススメ
Takeshi Kondo
Ad
Similar to 大規模ソフトウェアにおけるディリービルド&リグレッションテスト@Dev Love
(20)
PDF
TDDBC osaka 2012/06/02
Hiro Yoshioka
PDF
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
PDF
テスト勉強会よしおか100311 1
Hiro Yoshioka
PDF
JIRA Agileを活用したアジャイル開発実践事例 #AUGJ
満徳 関
PDF
Atlassian Summit 2015でのDevOps関連の取り組みについて
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
PDF
XP lives, XP dies, XP lives again !!
Masanori Kado
PPTX
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
PDF
はじめてのScrumこれから大切にしたいこと Release#2
Takenori Takaki
PDF
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
智治 長沢
PDF
「継続的デリバリー」読書会 第3章 継続的デリバリー
Norikazu Hiraki
PPT
レガシーコード改善ガイド読書会
Hiro Yoshioka
PDF
要求モデル/BDD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第43回】
Tomoharu ASAMI
PDF
ゲーム会社で ゲーム以外のことを開発してる話
Riou Tomita
PPTX
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
PPTX
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
PDF
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
PPTX
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc.
PDF
Agile japan2016 a 2 ricksoft
Hiroshi Ohnuki
PDF
Hyper → Highspeed → Development
aktsk
TDDBC osaka 2012/06/02
Hiro Yoshioka
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
テスト勉強会よしおか100311 1
Hiro Yoshioka
JIRA Agileを活用したアジャイル開発実践事例 #AUGJ
満徳 関
Atlassian Summit 2015でのDevOps関連の取り組みについて
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
XP lives, XP dies, XP lives again !!
Masanori Kado
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
はじめてのScrumこれから大切にしたいこと Release#2
Takenori Takaki
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
智治 長沢
「継続的デリバリー」読書会 第3章 継続的デリバリー
Norikazu Hiraki
レガシーコード改善ガイド読書会
Hiro Yoshioka
要求モデル/BDD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第43回】
Tomoharu ASAMI
ゲーム会社で ゲーム以外のことを開発してる話
Riou Tomita
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc./Begi.net Inc.
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
今さら聞けない人のためのDevOps超入門
VirtualTech Japan Inc.
Agile japan2016 a 2 ricksoft
Hiroshi Ohnuki
Hyper → Highspeed → Development
aktsk
Ad
More from Hiro Yoshioka
(20)
PDF
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Hiro Yoshioka
PDF
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Hiro Yoshioka
PDF
不揮発性メモリ(NVM)とはなにか
Hiro Yoshioka
PDF
続・人生100年時代の学び方
Hiro Yoshioka
PDF
人生100年時代における学び方 定年後の学生生活
Hiro Yoshioka
PDF
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Hiro Yoshioka
PDF
人生100年時代の学び方、脳には可塑性がある
Hiro Yoshioka
PDF
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
Hiro Yoshioka
PDF
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
Hiro Yoshioka
PDF
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
Hiro Yoshioka
PDF
未経験プログラマがコボルコンパイラを作った話 #compiler_study
Hiro Yoshioka
PDF
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Hiro Yoshioka
PDF
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
Hiro Yoshioka
PDF
理科系の作文技術
Hiro Yoshioka
PDF
Agile Software Development advanced course (PBL) at AIIT, 2015
Hiro Yoshioka
PDF
質問される力 #TechGirls
Hiro Yoshioka
PDF
Oracle vs Google API 著作権裁判を考える
Hiro Yoshioka
PDF
Using oss at an internet company and hacker culture
Hiro Yoshioka
PDF
Be Hacker
Hiro Yoshioka
PDF
Project Based Learning using by PaaS
Hiro Yoshioka
Infra study 2nd #1 人生100年時代の学び方,定年後の大学院生活
Hiro Yoshioka
Infra study 2nd #1「インフラ技術者・研究者としてのキャリア」
Hiro Yoshioka
不揮発性メモリ(NVM)とはなにか
Hiro Yoshioka
続・人生100年時代の学び方
Hiro Yoshioka
人生100年時代における学び方 定年後の学生生活
Hiro Yoshioka
Thesis introduction "RECIPE : Converting Concurrent DRAM Indexes to Persisten...
Hiro Yoshioka
人生100年時代の学び方、脳には可塑性がある
Hiro Yoshioka
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、「私のような仕事につく方法」、2019/06/23 DevLOVE X Day 1 D-7
Hiro Yoshioka
OSSとの付き合い方。OSSから学んだこと。OSS貢献者賞受賞講演
Hiro Yoshioka
エンジニア人生と定年退職、人生100年時代のエンジニアの生き方、デブサミ 2019 【15-A-8】
Hiro Yoshioka
未経験プログラマがコボルコンパイラを作った話 #compiler_study
Hiro Yoshioka
Godel, Escher, Bach: an Eternal Golden Braid, reading club, Chapter 12
Hiro Yoshioka
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
Hiro Yoshioka
理科系の作文技術
Hiro Yoshioka
Agile Software Development advanced course (PBL) at AIIT, 2015
Hiro Yoshioka
質問される力 #TechGirls
Hiro Yoshioka
Oracle vs Google API 著作権裁判を考える
Hiro Yoshioka
Using oss at an internet company and hacker culture
Hiro Yoshioka
Be Hacker
Hiro Yoshioka
Project Based Learning using by PaaS
Hiro Yoshioka
大規模ソフトウェアにおけるディリービルド&リグレッションテスト@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