Enviar pesquisa
Carregar
レガシーコード改善はじめました 横浜道場
•
3 gostaram
•
2,800 visualizações
Hiroyuki Ohnaka
Seguir
Espiritual
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 35
Baixar agora
Baixar para ler offline
Recomendados
ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩
Satsuki Urayama
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
yufu yufu
ハイパフォーマンスSeleniumテスト@サイボウズ
ハイパフォーマンスSeleniumテスト@サイボウズ
Jumpei Miyata
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
Groovy Testing Aug2009
Groovy Testing Aug2009
guest4a266c
Groovier testing with Spock
Groovier testing with Spock
Robert Fletcher
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
kyon mm
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
Kenji Hiranabe
Recomendados
ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩
Satsuki Urayama
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
yufu yufu
ハイパフォーマンスSeleniumテスト@サイボウズ
ハイパフォーマンスSeleniumテスト@サイボウズ
Jumpei Miyata
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
Groovy Testing Aug2009
Groovy Testing Aug2009
guest4a266c
Groovier testing with Spock
Groovier testing with Spock
Robert Fletcher
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
kyon mm
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
Kenji Hiranabe
Spock Framework 2
Spock Framework 2
Ismael
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Uehara Junji
Spockを使おう!
Spockを使おう!
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
Tomek Kaczanowski
The outlineoftestprocess
The outlineoftestprocess
kyon mm
Jenkinsプラグイン開発
Jenkinsプラグイン開発
Takahisa Wada
Testing Web Applications with GEB
Testing Web Applications with GEB
Howard Lewis Ship
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Guillaume Laforge
function list
function list
kyon mm
Gradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
Kiyotaka Oku
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
Kiyotaka Oku
Hands on the Gradle
Hands on the Gradle
Matthias Käppler
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
How about Gradle?
How about Gradle?
Yasuharu Nakano
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
GradleによるG*なビルドシステムの構築
GradleによるG*なビルドシステムの構築
Masatoshi Hayashi
Groovy, Transforming Language
Groovy, Transforming Language
Uehara Junji
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
WO Community
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
Mais conteúdo relacionado
Destaque
Spock Framework 2
Spock Framework 2
Ismael
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Uehara Junji
Spockを使おう!
Spockを使おう!
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
Tomek Kaczanowski
The outlineoftestprocess
The outlineoftestprocess
kyon mm
Jenkinsプラグイン開発
Jenkinsプラグイン開発
Takahisa Wada
Testing Web Applications with GEB
Testing Web Applications with GEB
Howard Lewis Ship
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Guillaume Laforge
function list
function list
kyon mm
Gradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
Kiyotaka Oku
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
Kiyotaka Oku
Hands on the Gradle
Hands on the Gradle
Matthias Käppler
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
How about Gradle?
How about Gradle?
Yasuharu Nakano
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
GradleによるG*なビルドシステムの構築
GradleによるG*なビルドシステムの構築
Masatoshi Hayashi
Groovy, Transforming Language
Groovy, Transforming Language
Uehara Junji
Destaque
(20)
Spock Framework 2
Spock Framework 2
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Spockを使おう!
Spockを使おう!
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
The outlineoftestprocess
The outlineoftestprocess
Jenkinsプラグイン開発
Jenkinsプラグイン開発
Testing Web Applications with GEB
Testing Web Applications with GEB
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
function list
function list
Gradle a new Generation Build Tool
Gradle a new Generation Build Tool
Jenkins導入ライブ
Jenkins導入ライブ
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
Hands on the Gradle
Hands on the Gradle
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
How about Gradle?
How about Gradle?
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
GradleによるG*なビルドシステムの構築
GradleによるG*なビルドシステムの構築
Groovy, Transforming Language
Groovy, Transforming Language
Semelhante a レガシーコード改善はじめました 横浜道場
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
WO Community
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
ごきげんRails
ごきげんRails
Yasuko Ohba
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
civicpg
Jsf アプリ作ったった
Jsf アプリ作ったった
Oda Shinsuke
nseg第5回勉強会
nseg第5回勉強会
ko ty
インストールどうしてますか
インストールどうしてますか
Hirohisa Yamaguchi
ゆるLTのススメ+α
ゆるLTのススメ+α
joker1007
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
kyon mm
Apex Test Plusの紹介
Apex Test Plusの紹介
Yuichiro Ebihara
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
MySQLインストールのお作法
MySQLインストールのお作法
Meiji Kimura
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Toshiyuki Hirata
2012年4月22日 カーネル/VM探検隊
2012年4月22日 カーネル/VM探検隊
Ryuichi Ueda
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
テスト駆動開発の進化
テスト駆動開発の進化
Yukei Wachi
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
Shou Takenaka
はじめてのWordPress講座01
はじめてのWordPress講座01
sainoslide
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
Semelhante a レガシーコード改善はじめました 横浜道場
(20)
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
ソフトウェアテスト入門
ソフトウェアテスト入門
ごきげんRails
ごきげんRails
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
Jsf アプリ作ったった
Jsf アプリ作ったった
nseg第5回勉強会
nseg第5回勉強会
インストールどうしてますか
インストールどうしてますか
ゆるLTのススメ+α
ゆるLTのススメ+α
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
Apex Test Plusの紹介
Apex Test Plusの紹介
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
MySQLインストールのお作法
MySQLインストールのお作法
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
2012年4月22日 カーネル/VM探検隊
2012年4月22日 カーネル/VM探検隊
TDDはじめる前に
TDDはじめる前に
テスト駆動開発の進化
テスト駆動開発の進化
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
はじめてのWordPress講座01
はじめてのWordPress講座01
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Mais de Hiroyuki Ohnaka
remote Docker over SSHが熱い
remote Docker over SSHが熱い
Hiroyuki Ohnaka
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
Hiroyuki Ohnaka
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
Hiroyuki Ohnaka
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
Hiroyuki Ohnaka
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル
Hiroyuki Ohnaka
Mackerelの薄い本
Mackerelの薄い本
Hiroyuki Ohnaka
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話
Hiroyuki Ohnaka
Azure functions+typescript
Azure functions+typescript
Hiroyuki Ohnaka
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
Hiroyuki Ohnaka
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
Hiroyuki Ohnaka
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~
Hiroyuki Ohnaka
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い
Hiroyuki Ohnaka
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
Hiroyuki Ohnaka
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
Hiroyuki Ohnaka
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
Hiroyuki Ohnaka
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbc
Hiroyuki Ohnaka
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)
Hiroyuki Ohnaka
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!
Hiroyuki Ohnaka
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで
Hiroyuki Ohnaka
Mais de Hiroyuki Ohnaka
(20)
remote Docker over SSHが熱い
remote Docker over SSHが熱い
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル
Mackerelの薄い本
Mackerelの薄い本
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話
Azure functions+typescript
Azure functions+typescript
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbc
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで
レガシーコード改善はじめました 横浜道場
1.
レガシーコード改善
はじめました 2012/4/26 アジャイルサムライ横浜道場 特別編 せとあずさ♂ 2012年4月27日金曜日
2.
今日の出来事 2012年4月27日金曜日
3.
2012年4月27日金曜日
4.
気をつけましょう 2012年4月27日金曜日
5.
•
せとあずさ♂ • Growing Object-Oriented Software,Guieded by Test (goos_jp)読書会主宰 • ぺけま http://devtesting.jp/pekema/ • yokohama.rb / shinjuku.rb • 「みなとRuby会議」 2012/6/2 • 仕事は生産性向上とか、品質改善とか 2012年4月27日金曜日
6.
レガシーコード 2012年4月27日金曜日
7.
2012年4月27日金曜日
8.
テストがないコード
はレガシーコード だ! 2012年4月27日金曜日
9.
わかりました 2012年4月27日金曜日
10.
テスト書きましょう 2012年4月27日金曜日
11.
というわけで今日は
• レガシーコードな社内フレームワーク に、TDDでテスト書きながら機能拡張 したお話し 2012年4月27日金曜日
12.
いきさつ
• よくある社内フレームワーク • Java • FilterベースのMVC + 簡易O/Rマッピン グ • 大幅に機能拡張をすることに 2012年4月27日金曜日
13.
きっかけ
• 運用開始後にフレームワークの致命的 なバグが発覚することが多く、現場か らクレーム • 自分としてもテストをがっちり書いて 開発したかった 2012年4月27日金曜日
14.
テストの方針
• 奇をてらったことはしていない • JUnit4(hamcrest) + mockito • ビルドはAnt • Cobetureでカバレッジ計測 • JenkinsでCI • インスペクションはFindBugs+CheckStyle+Jtest 2012年4月27日金曜日
15.
• なんだかんだでAPIの仕様が設計段階で
ほぼfixしていたのは大きかった。 • 仕様が安定していたことにより、精度 の高いテストケースを組むことが出来 た 2012年4月27日金曜日
16.
もうひとつの特徴 2012年4月27日金曜日
17.
環境の組み合わせが
多い 2012年4月27日金曜日
18.
•
Java • Java5 / Java6 / Java7 • RDBMS • Oracle 10g / 11g • SQLServer 2005 / 2008 / (2012) • PostgreSQL 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 9.0 / 9.1 / (9.2) • Servet 2.3 / 2.4 / 3 2012年4月27日金曜日
19.
• これ、全部テストするんですか? 2012年4月27日金曜日
20.
• してますが、何か? 2012年4月27日金曜日
21.
• Eclipse上ではPostgereSQL9.0+Java5で開発
し、残りの組み合わせはCI環境で実施 • Jenkinsでビルドする際に、Ant にシステ ムプロパティを渡してデータソース、ク ラスパス等を切り替え • パラメータの設定は多分もっと楽な方 法はあるが... 2012年4月27日金曜日
22.
•
SVNにコミットすると、まず Java5+PostgreSQL9.0でビルドを行う • この時点ではRDBMS固有のロジックはモッ ク(Test Double)を使用 • その後、JVM別、RDBMS別のテストを8スレッ ド並行で行う。 • 並行実行のためにRDBMSのスキーマは別々 • 総実行テストケース数 6,900 件以上! 2012年4月27日金曜日
23.
とはいっても 2012年4月27日金曜日
24.
最初からこうだった
わけじゃない 2012年4月27日金曜日
25.
•
(PostgreSQLだけおさえといて、後は結合でい いだろう....) • 「OracleとSQLServerも見といてくださいね」 • 「えっ」 • 「Java6だけじゃなくてJava5もサポートしてくだ さいね」 • 「えっ」 2012年4月27日金曜日
26.
• 動作環境の組み合わせが増えると、
色々ある 2012年4月27日金曜日
27.
• Java6とJava5でHashMapの並び順が逆だっ
たりとか... • MSSQLServerのDATETIMEの精度が3.33 ミリ秒でうまく楽観排他できなかった りとか... • Java7とSQLServer2008の組み合わせで JDBCドライバのバグ踏んだりとか... 2012年4月27日金曜日
28.
• 多様な環境をサポートするのはやっぱ
大変 2012年4月27日金曜日
29.
• でもですね、 2012年4月27日金曜日
30.
• ユニットテストなしに、動作環境の多
様な組み合わせでの動作保証は出来な かった • その後のバグ修正、機能拡張が非常に スムーズになった • というのは、自信をもって言える 2012年4月27日金曜日
31.
• 先日SQLServerのJDBCドライバに大バグ
があることが発覚して、バージョン アップしたドライバでの動作検証が必 要だったのですが、15分で検証終了し ました。 2012年4月27日金曜日
32.
• 現時点での課題は、データベースの追
加が面倒くさいこと • 2012年4月27日金曜日
33.
• DDLの投入は自動化してるが、スキー
マ追加が手作業になっている • テスト用のデータソースの設定が、フ レームワークのいけてない仕様をひき づって、面倒くさくなっている • 鋭意改善中 2012年4月27日金曜日
34.
• ユニットテストが全パスしたら、
Seleniumでのテスト用のアプリケーショ ンをデプロイし、そのアプリケーショ ンに対してのテストを行う • ...というのを、今やっているところ 2012年4月27日金曜日
35.
乞うご期待 2012年4月27日金曜日
Baixar agora