40
Copyright © 2012 TechMatrix Corporation. All rights reserved. マルチステージ型 継続的インテグレーションのすすめ Jenkins ユーザ・カンファレンス 2012 東京 セッション:S406-4 14:3015:20 @S406

Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Embed Size (px)

Citation preview

Page 1: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

マルチステージ型 継続的インテグレーションのすすめ

Jenkins ユーザ・カンファレンス 2012 東京 セッション:S406-4

14:30~15:20 @S406

Page 2: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

自己紹介 • 氏名:今井 敦(いまい あつし)

• 所属:テクマトリックス株式会社 ・経歴:コールセンターシステム開発、データベース製品保守業務に携わる。現在はソフトウェア品質保証を中核としたビジネスを展開する部署にて品質保証サービスに従事。

1

Page 3: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

会社紹介 2

テクマトリックス株式会社 ・設立:1984年8月 (旧社名:ニチメン・データ・システム) ・資本金:12億9,812万円 ・事業内容: コンピュータ、通信機器のハードウェア・ ソフトウェア販売、システム開発・構築、 保守、教育、コンサルティング業務、 アプリケーションパッケージの開発・販売 など

Page 4: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

ソフトウェア品質保証 3

Software Quality

Assurance

ソフトウェア品質保証 ソフトウェア開発における工数削減と品質向上を可能にする各種開発支援ツールと、チーム開発におけるエラーの予防・プロジェクト管理・品質管理を支援するソリューションを提供。

Page 5: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

単体テスト/静的解析 実行時エラー検出

メモリエラー検出 機能テスト/負荷テスト

構成管理/課題管理

取扱ツール 4

アーキテクチャ分析 構造分析 影響分析

Page 6: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

単体テスト/静的解析 実行時エラー検出

メモリエラー検出 機能テスト/負荷テスト

構成管理/課題管理

取扱ツール 5

アーキテクチャ分析 構造分析 影響分析

Page 7: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

品質保証ソリューション 6

単体テストソリューション

• テストケースの生成から単体テストの実行までを自動化

セキュリティソリューション

• ソースコードセキュリティ検証を自動化し、脆弱なコードを検出

静的解析ソリューション

• ソースコードの静的検証を自動化し、潜在的なエラー検出をサポート

エラー検出ソリューション

• ランタイムエラーの検出を自動化し、メモリ関連エラーの検出をサポート

負荷テストソリューション

• WebシステムやSOAシステムの性能測定、パフォーマンスボトルネックの検出をサポート

品質管理ソリューション

• チーム開発におけるテストやプログラムの品質向上をサポート

CIソリューション

• 継続的インテグレーションによる、開発効率向上を実現

構成管理・変更管理・課題管理ソリューション

•効率的なソフトウェア構成管理や課題管理を実現するサービスを提供

機能安全コンプライアンスソリューション

•機能安全規格へのコンプライアンス支援サービスを提供 •機能安全(IEC61508) 自動車(ISO26262) FA(IEC/EN62061)、鉄道RAMS/EN50126)

医療機器安全SLCP支援サービス

•IEC62304 JIST2304 対応支援

医療機器FDAコンプライアンス準拠支援サービス

•GPSV Part11 CSV 対応支援 •Automated Defect Prevention の仕組みを提供

アーキテクチャ分析ソリューション

• DSMを使用し依存関係を可視化することで、アプリケーションのアーキテクチャの分析をサポート

トレーサビリティソリューション

• 要求仕様からアーキテクチャ設計、詳細設計、テスト設計、V&V、コード相互依存関係を含むトレーサビリティをMDMで実現する技術を提供

Page 8: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

CIソリューション 7

CI環境構築サービス

• 標準的なCI環境を導入されたいお客様へ • 構成管理ツールから自動チェックアウト/自動ビルド環境を構築します。

CI環境構築+テストツール連携サービス

• バグ検出機能をCI環境へ導入されたいお客様へ • Parasoft製品によるフロー解析、コーディング規約チェックを導入します。

CI環境構築+ツール連携+ルール選定サービス

• 高精度なバグ検出機能をCI環境に組込みたいお客様へ • ソースコードを分析し、お客様に最適なルールセットをご提供します。

CIコンサルティングサービス

• プロジェクトや製品特性に合わせたCI環境を導入されたいお客様へ • お客様の課題を解決する最適なソリューション、構築サービスを提案します。

Page 9: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

本日のアジェンダ 8

1.継続的インテグレーションのメリット

2.メリットを享受できていますか?

3.マルチステージ型継続的インテグレーション

4.デモムービーによる説明

5.おわりに

マルチステージ型継続的インテグレーションのすすめ

Page 10: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

継続的インテグレーションのメリット

9

Page 11: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

継続的インテグレーションのメリット 10

1.手戻りの削減・品質の維持

コミット コミット

コミット 大量のバグ

コミット

少量のバグ

コミット

少量のバグ

2.いつでもリリースが可能

OK NG NG OK

インテグレーション

最新の安定バージョン

3.作業コストの削減 4.作業の正確さ、あいまい性の排除 5.開発データの蓄積

自動実行 (インテグレーション)

開発者は 知的な作業に注力

コンパイル

テスト

デプロイ

インスペクション 同じ環境 同じ設定 同じ手順

インテグレーションの結果

Page 12: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

メリットを享受できていますか?

11

Page 13: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

継続的インテグレーションを導入したプロジェクト 12

実装 テスト

受け入れ テスト 統合 テスト

実装 テスト レビュー 結合 リリース

CI

モジュールA 開発チーム

モジュールB 開発チーム

モジュールC 開発チーム

• 結合ビルドで行う

Page 14: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

ビルドエラーの影響が他チームに及ぶ

13

実装 テスト

受け入れ テスト 統合 テスト

実装 テスト レビュー 結合 リリース

CI

モジュールA 開発チーム

モジュールB 開発チーム

モジュールC 開発チーム

結合できるレベルに達していないソースが構成管理に格納

されている

Page 15: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

期待したメリットを得ることができない 14

1.手戻りの削減・品質の維持

コミット コミット

コミット 大量のバグ

コミット

少量のバグ

コミット

少量のバグ

2.いつでもリリースが可能

OK NG NG OK

インテグレーション

最新の安定バージョン

3.作業コストの削減 4.作業の正確さ、あいまい性の排除 5.開発データの蓄積

自動実行 (インテグレーション)

開発者は 知的な作業に注力

コンパイル

テスト

デプロイ

インスペクション 同じ環境 同じ設定 同じ手順

インテグレーションの結果

Page 16: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

改善策はあるか? • つぎの視点で見直すことが必要

15

モジュールA 開発チーム

モジュールB 開発チーム

モジュールC 開発チーム

実装 テスト

実装 テスト レビュー

結合

チーム/モジュール構成 開発プロセス

Page 17: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

マルチステージ型継続的インテグレーション

16

Page 18: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

ソフトウェアの成熟度 • ソフトウェアは、開発プロセスを通して段階的に成熟していくものです。

17

マルチステージ型継続的インテグレーション

• プロジェクト規模、チーム構成、モジュール構成、プロセスの視点が大切であり、継続的インテグレーションは、これに応じて段階的に行うと効果的です。

• このように段階的に構成された継続的インテグレーションをつぎのように呼びます。

Page 19: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

マルチステージ型継続的インテグレーション 18

実装 テスト

受け入れ テスト 統合 テスト

実装 テスト レビュー 結合 リリース

CI CI

CI CI

CI CI CI

CI

モジュールA 開発チーム

モジュールB 開発チーム

モジュールC 開発チーム

• チームビルドと結合ビルド

Page 20: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

マルチステージ型のメリット • ビルド失敗時の影響範囲を限定的にし、大規模なプロジェクトにCIを適用しやすくする –チームビルド、結合ビルド

19

• チームのプロセス、ソフトウェアの成熟度に応じた適切なフィードバックをする

• 単体テスト、コーディング規約チェック • メトリクス計測 • 影響分析

継続的インテグレーションの効果を最大化

Page 21: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

デモムービーによる説明

20

Page 22: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

チームビルド 結合ビルド

AccuRevで表現

デモ環境の説明 21

Page 23: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

Understand ソースコード解析ツール ソースコードを静的に解析し、

結果をグラフィカルに可視化。 ソースコードのフロー図の表示やメトリクスを集計。

ソースコードメトリクスとは プロジェクトやソースコードなどの評価をするための尺度。 例: ・コード行数 ・クラス数 ・サイクロマチック複雑度

補足:デモンストレーションで使用したツールのご紹介 22

Page 24: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

Lattix

DSM(Dependency Structure Matrix)を利用して、全体構造を効果的に可視化 モジュールやソースコード自体を解析対象とし、AsIsを分析

ア ー キ テ ク チ ャ 分 析 ツ ー ル

補足:デモンストレーションで使用したツールのご紹介 23

Page 25: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

単体テストツール 24

ISO 26262 / IEC61508 ツール認証取得

単体テスト、静的解析、フロー解析、 実行時メモリエラー検出を1ツールで。

高品質なC/C++ソフトウェアの開発を強力にサポートします。

補足:デモンストレーションで使用したツールのご紹介

Page 26: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

デモムービーについて • 同様のデモンストレーションを弊社サイトでもご覧いただけます。ぜひご覧ください。

http://www.accurev-techmatrix.jp/movie/ci/ci-demo.html

25

Page 27: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

おわりに

26

Page 28: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

まとめ 27

1.手戻りの削減・品質の維持

コミット コミット

コミット 大量のバグ

コミット

少量のバグ

コミット

少量のバグ

2.いつでもリリースが可能

OK NG NG OK

インテグレーション

最新の安定バージョン

3.作業コストの削減 4.作業の正確さ、あいまい性の排除 5.開発データの蓄積

自動実行 (インテグレーション)

開発者は 知的な作業に注力

コンパイル

テスト

デプロイ

インスペクション 同じ環境 同じ設定 同じ手順

インテグレーションの結果

Page 29: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

Q & A

28

Page 30: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

製品カタログ

29

Page 31: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

構成管理ツール(AccuRev) 30

複雑な並行開発・分散開発のプロセスを自動化・最適化する

ソフトウェア構成管理ツール 導入実績 600社・25,000ライセンス以上

▶ Stream Browser™によるプロセスの見える化 ▶ AccuWorkによる課題との統合管理 ▶ ロック・ACLによるセキュリティの確保 ▶ 並行/派生開発時のマージ負荷軽減 ▶ 様々な開発プロセスへの適用 ▶ Time Safe 機能による再現性・完全性の確保 ▶ Replica機能による分散開発のサポート

Page 32: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

単体テストツール 31

ISO 26262 / IEC61508 ツール認証取得

単体テスト、静的解析、フロー解析、 実行時メモリエラー検出を1ツールで。

高品質なC/C++ソフトウェアの開発を強力にサポートします。

Page 33: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

特長 32

•メトリクス計測+重複コード検証

•バグ探偵(フロー解析)による冗長パスチェック

コード規模拡大の防止

テスト容易性・保守性向上

•コーディング規約チェックと単体テスト

•バグ探偵による致命的なエラーの検出

バグ混入防止と検出

早期品質確保の徹底

•テストケース自動生成(早期開発時回帰テスト)

•ナイトリービルドによる自動回帰テスト

回帰テスト自動化

効率的なデグレード予防

•単体テストカバレッジの計測 •アプリケーション実行時のカバレッジ計測

カバレッジ計測

開発・受入時での利用

Page 34: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

C/C++ メモリエラー検出 33

アプリケーションを動かしただけでは、検出することが困難なメモリリークやメモリ参照エラー等をピンポイントで検出します。

メモリ参照エラー

■メモリ破壊 ■メモリリーク ■ポインタの誤った使用 ■メモリ演算子の矛盾

変数宣言の問題

■グローバル変数宣言の矛盾 ■未使用ローカル変数

プログラミングエラーとサードパーティライブラリエラー

■引数の不一致 ■システムコールの不正なパラメータ ■誤った引数の値 ■システムコールのエラー

Page 35: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

機能テスト/負荷テストツール 34

WebサービスやXMLの相互運用性、クライアント/サーバーの単体テスト、機能テスト、パフォーマンステスト、さらにはセキュリティ検証まで、さまざまな角度から SOAシステムやWebアプリケーションを検証

Webアプリケーション機能テスト/負荷テスト 動的に生成されるページを静的解析 RESTやSOAPクライアントによるサービス単体テスト

Page 36: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

サービス・アプリケーションを仮想化 35

•仮想アセットを使えば、他チームが開発するサブシステムの進捗状況に影響されず、システムテストを開始できます。

並行開発での利用

•仮想アセットを使えば、テスト用データベースのセットアップが短時間で済みます。

データベースのエミュレーション

•外部システムを模倣する仮想アセットが異常系・例外処理をエミュレート。

異常系・例外処理のエミュレーション

Page 37: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

ソフトウェアライフサイクル品質管理 36

プロジェクト計画とタスク定義 要件のトレーサビリティ タスク管理と分配 開発プロジェクトの見える化

Page 38: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

アーキテクチャ分析 37

DSMを使用してシステムの アーキテクチャを分析するツール

DSM(Dependency Structure Matrix)を利用して、 全体構造を効果的に可視化

モジュールやソースコード自体を解析対象とし、AsIsを分析

Page 39: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

ソースコードを可視化 (Understand) 38

ソースコードを静的に解析し、結果をグラフィカルに可視化。プログラム構造を可視化し、ソフトウェアの開発環境及びメンテナンス環境を、飛躍的に向上させます。

ソースコード静的解析& メンテナンスツール

Page 40: Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ

Copyright © 2012 TechMatrix Corporation. All rights reserved.

お問い合わせ

テクマトリックス株式会社 システムエンジニアリング事業部

ソフトウェアエンジニアリング営業部

Tel : 03-5792-8606 / Fax : 03-5792-8706 E-Mail : [email protected]

URL : http://www.techmatrix.co.jp/solution/quality/product.html

39