53
テスト管理ツール「CAT」導入によ るデバッグ管理の効率化 GTMF 2015 OSAKA 2015/7/7

GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

Embed Size (px)

Citation preview

Page 1: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

テスト管理ツール「CAT」導入によるデバッグ管理の効率化

GTMF 2015 OSAKA

2015/7/7

Page 2: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

自己紹介

島川 知 (しまかわ とも)

10年間 携帯電話端末の第三者検証サービスに従事。 2013年株式会社SHIFTに参画。 ゲームデバッグサービスの立上げを担う。 2014年よりGame Sectionの責任者に就任

株式会社SHIFT ソフトウェアテスト事業本部 テストエンジニア部 Game Section Section長

Page 3: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

SHIFTについて

Page 4: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

4

会社概要

SHIFTは、ソフトウェアの「品質保証」を支援する会社

社名 株式会社SHIFT

業務内容 ソフトウェアの品質保証支援、ソフトウェアテスト事業

設立 2005年9月7日

上場 東証マザーズ 3697

従業員数 500名 ※契約社員含む(2014年10月時点)

代表者 代表取締役社長 丹下 大 Masaru Tange

所在地

【本社&東京TC】東京都港区麻布台2-4-5メソニック39MTビル

【札幌TC】北海道札幌市中央区北1条西3丁目3 札幌プラザビル

【福岡TC】福岡県福岡市中央区天神1-15-6 綾杉ビル ※TC…テストセンター

子会社 SHIFT INDIA PRIVATE LIMITED(インド国) SHIFT GLOBAL PTE LTD(シンガポール国)

Page 5: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

5

従業員数

Page 6: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

6

強み(サマリー)

Page 7: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

抱えている課題

Page 8: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

エクセルの集計・分析に時間を浪費!

回収したExcel

リーダー

エンジニア ディレクター

毎日、集計と 分析を実行

メンバー

ファイルが破損すると目も当てられない事態に・・・・

Page 9: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

蓋を開けたら全然進んでいなかった!

デバッグ会社 QA部隊

報告が上がってくるまで状況が見えない

ディレクター

報告コストを掛けるより、ちゃんとデバッグ

しよう!

1日1回の進捗報告

進捗遅延

デバッグ状況が見えずらいため、 余計なコミュニケーションコストがかかっている

Page 10: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

テスト管理ツール「CAT」

Page 11: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 12: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 13: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 14: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 15: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 16: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 17: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 18: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT
Page 19: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

CATを導入すると

Page 20: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

リアルタイムで情報共有 テスト結果

不具合レポート 課題

進捗状況 不具合管理 課題管理

素早く、正確に次の一手を打てる!! 透明性100%!!

ディレクター エンジニア

QAマネージャ

テスター

テスター

Page 21: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

障害改修後の再テストもスムーズ

障害報告時にテストケースを紐づけて登録

影響項目の洗い出しが不要

障害管理機能

実行管理機能

Page 22: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

管理コスト 30%~50%カット

メンバー対応

デバッグリーダーの工数

報告・連絡

集計・分析

メンバー対応

報告・連絡

浮いた工数を何に使う? ・経験を活かしたフリーデバッグ? ・新しい観点のテスト考察? ・ゲームバランスのチェック? ・メンバーの教育?

同コストでさらに高い品質レベルを目指すことも可能になる

集計コストゼロ コミュニケーションコスト削減

Page 23: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

2015年8月 トライアルサービス開始!

詳しくはWebで www.catcloud.net

Page 24: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

Kiuwanによる 継続的コードインスペクション

SHIFT & Kiuwan©, an Optimyth™ Brand

Page 25: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

自動コードインスペクションの課題

• コードインスペクションツールの検出する欠陥はバグではなく、潜在欠陥もしくは技術的負債

• たくさんの欠陥を検出してくれるが、どこから着手して、どこまで直すべきかの定量的根拠が弱い

• 結果、Jenkinsのジョブで自動実行するが、検出した欠陥は放置されることが多い

Page 26: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

Kiuwan クラウド型コードインスペクションサービス

クラウド上で実施

3. 品質モデルを管理する

1. コードを分析する 2. コードの品質を可視化する

4. ポートフォリオ分析をする

Kiuwan

Kiuwan©, an Optimyth™ Brand 3

Page 27: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

コードを品質特性に基づいて数値化

Kiuwan©, an Optimyth™ Brand 4

Page 28: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

品質特性や言語、重要度でドリルダウン

Kiuwan©, an Optimyth™ Brand 5

Page 29: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

複数のソフトウェアのポートフォリオ分析

Kiuwan©, an Optimyth™ Brand 6

Page 30: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

簡単に開始できる

3. 品質モデルを管理する • 独自のモデルを定義 or 既存モデルを利用 • コードのベストプラクティスとメトリクス • ポートフォリオの定義

1. コードを分析する • ローカルもしくはクラウドで • 開発のライフサイクルに統合できる • 通信は暗号化されている • 分析時間が速い

2. コードの品質を可視化する

• リスク • 欠陥 • メトリクス • Technical debt

4. ポートフォリオ分析をする • ポートフォリオ分析をしてアクションを決定 • 複数のアプリケーションと時系列の分析 • 修正に必要な抗すつとリソースを見積もり

Kiuwan©, an Optimyth™ Brand 7

Page 31: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

C/C++を始め多数の言語に対応

Kiuwan©, an Optimyth™ Brand 8

Page 32: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

Jenkins Kiuwanプラグイン

Jenkins Kiuwanプラグイン Kiuwanプラグインによって、JenkinsによるCIやCDにKiuwanによるコードインスペクションを組み込むことが可能 Kiuwanのローカル分析がビルドプロセス上で実行され、結果がKiuwanの各アプリケーションにアップされる

Kiuwan©, an Optimyth™ Brand 9

Page 33: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

デモ

Page 34: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

Kiuwanによる自動コードインスペクションの改善

• どこから直すの判断が容易 – ベンチマークとなる製品と比較して劣っている品質特性に関係する欠陥から

– 最も低い品質特性の重要度の高いものから

• どれだけ直すの判断が容易 – What ifで工数見積もり

• どれだけ改善されたの判断が容易 – 時系列と製品横断で品質改善を評価

Page 35: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

1

Jenkins Enterpriseによるコンテンツパイプラインの改善

株式会社SHIFT 技術開発部

Page 36: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

2

• CloudBees Jenkins Platform Enterprise Editionの紹介

• シチュエーション別Enterprise Editionによる解決 – 長いコンテンツパイプラインの記述と実行 – JenkinsのマスターがSPOF – 複数のマスターでスレーブを共有

アジェンダ

Page 37: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

3

CloudBees Jenkins Platform Enterprise Editionの紹介

Page 38: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

4

• Enterprise Edition – 通常のオープンソースのJenkinsをベースに、CloudBees社によって管理・リリースされている有償版

– CentOSとRedHat Enterprise Linuxのような関係 – 中小チームのために機能限定したTeam Editionもあり

• メリット – オープンソースのJenkinsの安定版をベースに、

Enterprise Edition独自のプラグインを追加している – Jenkins本体と無償版とEnterprise Editionのプラグインの両方で、使用にあたってCloudBeesのサポートを受けることができる

CloudBees Jenkins Platform Enterprise Editionの紹介

Page 39: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

5

シチュエーション別Enterprise Editionによる解決

Page 40: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

6

• 問題 – ゲーム業界でJenkinsを使う場合、長く複雑なビルドパイプラインやコンテンツパイプラインの記述が必要になる

• OSS Jenkinsによる解決 – Copy Artifactプラグイン、Parameterized Trigger Plugin、

Conditional Build Stepプラグイン、Build Flow Pluginなどを組み合わせれば複雑なビルドパイプラインの記述は可能

• 但し、見通しが非常に悪くなる

• Enterprise Editionによる解決 – Workflowプラグイン

• 実はOSS版でも使える • Enterprise Editionではチェックポイントでのリラン、ステージの可視化が可能

長いコンテンツパイプラインの記述と実行

Page 41: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

7

ワークフロー記述例 stage 'GameObjectExport' node { parallel MeshExport: { build 'MeshExport' }, GameObjectExport: { build 'GameObjectExport' } } checkpoint 'GameObjectExportFinished' stage 'AnimationTranform' node { parallel SkeltonExport: { build 'SkeltonExport' }, AnimationTranform: { build 'AnimationTranform' } }

ステージ

並列ビルド

チェックポイント

Page 42: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

8

• Workflowプラグイン – GroovyのDSLにより並列実

行やチェックポイントを含む柔軟なビルドパイプラインの記述が可能

• Workflow Stage Viewプラグイン – ステージ毎の実行時間の

可視化 – チェックポイントからの再実

WorkflowプラグインとWorkflow Stage Viewプラグイン

Page 43: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

9

JenkinsのマスターがSPOF

• 問題 – JenkinsのマスターがSPOFであるため、長く複雑なビルドパイプラインやコンテンツパイプラインの実行中に落ちてしまうと回復までのダメージが大きい

• OSS Jenkinsによる解決 – マスターはExecutorとはしない – マスターを分ける

• 複数のマスターで同じジョブを実行したい場合にマスター管理が面倒

• Enterprise Editionによる解決 – High Availabilityプラグイン

• Jenkinsマスターをアクティブ・スタンバイのHA構成に

Page 44: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

10

Enterprise Editionにおける高可用性

• アクティブ・スタンバイの設定をする

アクティブ Jenkins master

$JENKINS_HOME

スタンバイ Jenkins master

リバース プロキシ

Page 45: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

11

フェイル・オーバーすると…

• サービスが中断して、しばらくしたら、スタンバイ・ノードがサービスを引きつぐ

• 設定とビルドの履歴は残る • 人の介在は必要なし • 実行中のビルドは消失する

Page 46: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

12

HA 監視ツール

• フェイル・オーバーを監視する小さなアプリ – 昇格&降格スクリプトを実行可能

• システム管理者がroot権限で実行することを想定 – IPのエイリアスを変更する – サーバーへ通知する

$ java -jar jenkins-ha-monitor.jar -host-promotion path/to/promotion.sh -host-demotion path/to/demotion.sh

Page 47: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

13

複数のマスターでスレーブを共有

• 問題 – ゲームタイトルごとにJenkinsマスターを立てているが、スレーブの稼働率向上のために、複数のタイトルでスレーブを共有したい

• OSS Jenkinsによる解決 – 手動でスレーブの登録先マスターを切り替える

• 毎回の手動切り替えが大変

• Enterprise Editionによる解決 – Operations on a cluster of masters with Cluster Ops

• 複数のマスターで使用できるスレーブをOperations on a cluster of masters with Cluster Opsで管理できる

• 個々のマスターはどのスレーブを使うか判断しなくて良い

Page 48: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

14

• マスター間でエグゼキューターを共有する – 現在はできない

開発

QA

運用

水平スケールアウトの課題: したいこと…

Page 49: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

15

• セキュリティー情報の共有 – ユーザー情報とロール

開発

QA

運用

ops.cloudbees.com eng.cloudbees.com

http://sca12-3530-qe.cloudbees.com/jenkins

• マスター間の容易な移動

垂直スケールアウトの課題: したいこと…

Page 50: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

16

垂直スケールアウトの課題

• いつまでJenkinsをスケールできるのか?? • 単一障害点(SPOF)の問題

Page 51: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

17

開発

QA

運用

共有ロールと ユーザー管理

オペレーション・コントール マスター・サーバー

oc.cloudbees.com

oc.cloudbees.com/qa

oc.cloudbees.com/eng oc.cloudbees.com/ops

所属するマスター

所属するマスター 所属するマスター

マスターへ配信される

トポロジー例

Page 52: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

18

• 新規マスターのための組込みグループ • 単一障害点となるメガ・マスターからの脱却 • オペレーション・センターマスターとマスターHAを実現する

Enterprise Editionプラグイン • オペレーション・マスターに障害が起きても、Jenkinsマスターは

稼働を継続 • 頻繁に異常終了することなく、迅速に障害から回復する軽量な

マスター

Enterprise Editionによって水平スケールアウトが可能に

Page 53: GTMF 2015: 「テスト管理ツール「CAT」導入によるデバッグ管理の効率化とJenkins Enterpriseによるコンテンツパイプラインの改善」 | 株式会社SHIFT

19

リファレンス・アーキテクチャ