...

Agitator

by user

on
Category: Documents
7

views

Report

Comments

Description

Transcript

Agitator
Agitarソリューション導入事例
開発効率および品質向上ソリューション
プロダクト & SIビジネスユニット
エンジニアリング グループ
石原 賢二
© 2006 10art-ni Corporation
アジェンダ
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
テンアートニ事業概要
Linux Solution
„ Linuxサポート
„ Red Hat Enterprise Linux 『Plus』シリーズ
„ Linuxプロダクト
„ HAクラスタリングソリューション『LifeKeeper』
„ ソースコードのIP(知的財産権)コンプライアンス管理『ProtexIP』
„ Northern Lightsサーバ製品の企画・製造・販売・サポート
„ Linuxコンサルティング、システムインテグレーション
„ Linuxシステムの最適な構成分析と提案・構築
SE Linux導入コンサルティング
Java/Web Solution
„ サービス
„システム構築サービスとコンサルティング
„ MS-AccessからWebシステムへ移行ソリューション『TenArtni A2Jaws』
„ 『現場指向アプローチ』シリーズ オープントレーニングコース
„ OJT代行サービス『バーチャルOJT』
„ Javaソリューション / アプリケーション
„ ビジュアルWebシステム構築ソリューション『TenArtni Ninja-VA』
„ Web帳票ソリューション『WebReportCafe』
„ 営業効率改善ソリューション 『TenArtni SFA+』
„ クライアントに.NET サーバにJavaという選択『TenArtni Ninja-VA for Win2Jaws』
© 2006 10art-ni Corporation
ソフトウェア開発を取り巻く環境
9社会・経済環境の変化が激しい時代
9サービスインまでの期間が短縮化
9ユーザ要求の高度化
9度重なる要求変更
9変化の激しい技術
9不特定多数の利用者
9厳しい性能要求
9ビジネスの変化の早さ
9競合他社との差別化
9Ajax、リッチクライアント
9RSS、ブログ、SNS (BtoC)
9M&A、ビジネスのボーダーレス化
9ユーザービリティ、サービス向上
9 IT(ソフトウェア)の重要性が増している
9 我々はユーザの厳しい要求に応えつつ、
IT業界での勝ち組を目指さなければならない
© 2006 10art-ni Corporation
テンアートニの取り組み
9いかにソフトウェアの品質を維持するか
長
バグ修正の時間
単純なバグの発見・修正を
いかに効率的にするか
いかに複雑なバグ対処に
リソースを割くか
バグの複雑さ
高
© 2006 10art-ni Corporation
テンアートニの取り組み
9いかにテストプロセスの生産性をあげるか
多
残作業
いかにソフトウェア開発
の生産性を向上させるか
時間の流れ
© 2006 10art-ni Corporation
有償ツールの選択
9OSSツールよりも機能面で優れている
9ベンダーのサポートを受けることができる
9長期的な視点で見た場合、費用対効果をあげる
ことができる
© 2006 10art-ni Corporation
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
現状の問題点
9単体テストにxUnit、JCoverageなどのOSSツー
ルを使用
プログラマ(開発者)の稼動工数のうち、30%~
50%がJUnitテストコードの作成・維持に費やされ
ている
全ての作業が開発者任せになる(マンパワーに
依存)
9 OSSツールのような手動(マニュアル)テストでは
プロジェクトへの負担が大きい
© 2006 10art-ni Corporation
OSSツールによるテストの煩雑さ
9テストコードのメンテナンスや管理が大変である
9仕様変更や追加があった場合に都度テストコー
ドを修正する必要がある
9開発者任せになる(属人的になる)
9テスト品質が開発者のテストスキルに依存され
てしまう
© 2006 10art-ni Corporation
開発者との心理的なギャップ
9開発者が実装を進めたがる理由
9
9
ソフトウェアの品質
9
開発者
Excellent
Good
OK
Poor
Very
Poor
Hospitalize
フィードバックなし
俺の仕事はプログラミングだけだ
俺のソースコードにはバグがなく正常に動作す
る
テストコードを作る暇があれば実装した方が
よいに決まっている
9 プログラマの負荷を軽減する
必要がある…
9 負荷を軽減しても品質は保証
完了か ?
したい
9 継続的なテストを実施するよう
管理を強化する必要がある
時間
実装作業
デバッグと修正作業
単体テスト(品質保証)
© 2006 10art-ni Corporation
単体テストツールにAgitarを選択
9
9
9
9
9
9
Checkstyle
JUnit
FindBugs
djUnit
DBUnit
JCoverage
9 Agitator
9 Management Dashboard
単体テスト
環境の見直し
9 実装&単体テスト環境の統一化が容易
9 カバレッジだけではないレポートの出力が可能
9 OSSフレームワークのサポート etc
© 2006 10art-ni Corporation
なぜAgitarを選択したのか
9 テスト対象のソースコードを修正する都度、何度もテス
トを再実行できる
9 テストはAgitatorが実行するので、開発者間のテストス
キルのばらつきを抑え、均質化を図ることができる
9 外部リソース(DB環境など)が無くても単体テスト可能
Agitatorを使用することにより
継続的なテストが実施可能
© 2006 10art-ni Corporation
なぜAgitarを選択したのか
9 テストの状況をさまざまな視点で見ることができる
9 各クラスやメソッドのリスクが数値化されるので、リスク
分析・対策を早期に実施できる
9 DashboardはHTML形式なので、
プロジェクト・メンバ間でプロジェクトの
状態を簡単に共有できる
Dashboardレポート
客観的な数値で実装&単体テストの
進捗・品質管理できる
© 2006 10art-ni Corporation
Agitarソリューション導入ステップ
0.意思決定
9Agitator 10ライセンス(ノードロック)導入
1.パイロットプロジェクトの選定
9パイロットPJでノウハウを蓄積し順次導入
9まずは小規模プロジェクトから
9フレームワークはStruts、Spring、Hibernateを使用
2.プロトタイプによる単体テスト手順などの確認
9単体テスト標準化のための検証
© 2006 10art-ni Corporation
Agitarソリューション導入ステップ
4.体制(メンターのアサイン)
9プロジェクトメンバの他にAgitar導入を推進する人をアサイン
5.ガイドライン作成(標準化)
9開発者向け、管理者向けガイドラインの作成と配布
6.Agitar教育(トレーニング)
9Agitator基礎、ガイドライン説明
7.Agitarを使用した実装と単体テスト
9メンターによるサポートと開発者へのスキトラ
© 2006 10art-ni Corporation
Agitatorによる単体テストの流れ
9 Agitarを使用しても従来の単体テストの流れは変わらない
9 Agitarによりメソッドレベル単体テストの質と生産性が向上する
カバレッジ
入力条件/出力条件
(分岐網羅/条件網羅)
境界値/同値分割
コーディングルール
プログラム仕様
予期せぬエラー
仕様変更や
仕様追加対応
開発者
開発者
OK
ホワイトボックス
コード実装
NG
OK
完了
ブラックボックス
NG
レグレッション
アサーション確認
未了
© 2006 10art-ni Corporation
Agitatorによる単体テストの流れ
実装/
テスト
チェック
イン
9
9
8
ナイトリービルド/
一括アジテーション
9
テスト結果
ソースコード
開発者
フィードバック
CVS
Agitator
確認
Dashboard
チェック/管理
レポーティング Ant
リーダー/マネージャ
Webサーバ
継続的なビルドと回帰テスト
© 2006 10art-ni Corporation
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
単体テストの進捗管理
9 単体テストしているのか?いないのか?
„ 各クラス、メソッドのテストケース密度やカバレッジの進捗を
確認する
9 スキルが低い、進捗の上がらない開発者はいるか?
„ 開発者別レポートの進捗を確認する
9 クラス、メソッドの実装が進んでいるか?
„ ソースコード全体の進捗度合いを確認する
9 単体テスト終了できるレベルに達しているか?
„ 客観的な数値で終了を判断
© 2006 10art-ni Corporation
ソースコードのリスク分析
9 リスク対策の優先度順位付けが容易になる
優先度:高
複雑度の度数分布
優先度:低
順位付け一覧
9 リスク対策の理由
やはりバグが多い
複雑度:高=リスク高い
リスク
テストし易く
バグが少ない
複雑度:低=リスク低い
© 2006 10art-ni Corporation
ソースコードのリスク対策
1.優先度の高いメソッドから順にソースコードレビューを実施
2.実装内容の確認と複雑度解消の検討
3.必要に応じてリファクタリングを実施
(明確な理由があれば、リファクタリング不要)
※特に、リスクの高いクラスやメソッドの仕様変更や追加時には注
意深く対応できる
実装
フィードバック
(リスク対策)
単体テスト
レポート
(リスク分析)
継続的なフィードバックと対応
© 2006 10art-ni Corporation
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
ソースコード品質の確保
9 ソフトウェア品質の保守性を確保できる
9 実装の終盤でリファクタリングせずに済む
修正のしやすさに関するソフトウェア
製品の能力
保守性
解析性
変更性
適合性
安定性
試験性
保
守
性
解析性
ソフトウェアにある欠陥の診断ま
たは故障原因の追及、およびソフ
トウェアの修正箇所の識別を行う
ためのソフトウェア製品の能力
変更性
指定された修正を行うことができ
るソフトウェア製品の能力
適合性
ソフトウェアの修正による予期せ
ぬ影響を避けるソフトウェア製品
の能力
安定性
修正したソフトウェアの妥当性確
認ができるソフトウェア製品の能
力
試験性
保守性に関連する規格または規約
を遵守するソフトウェア製品の能
力
複雑度解消の効果
リファクタリング
出典:JIS X 0129-1 (ISO/IEC 9126 )
© 2006 10art-ni Corporation
結合テストにおける手戻り工数の減少
9 プログラムバグは実装&単体テストフェーズで確実に
潰すことができる
STOP
バグ
実装&単体テスト
PGバグは実装&単体
フェーズで確実に潰す
結合テスト
システムテスト
プログラムバグによる
手戻りは実装&単体テスト
からやり直すことになる
9 結合テスト本来のテストに集中できる
9 手戻り工数の減少=プロジェクト工数の減少
© 2006 10art-ni Corporation
Agitarソリューション導入効果
9 ドライバ(テストクラス)の作成が不要になる
9 ソースコードレベルで継続的な回帰テストを実施できる
9 単体テストの終了基準を設定し、テストの終了を判断で
きる
9 ソースコードの品質を客観的な数値で判断できる
ドライバ
メソッド1
Agitatorで自動生成
JUnitテストクラス
メソッド2
メソッド3
スタブ
(Mock)
メソッド4
© 2006 10art-ni Corporation
Agitarソリューション導入効果
パイロットプロジェクトのメソッド数
クラス数
472
ステップ数
28K
メソッド数(複雑度低)
6,134
メソッド数(複雑度高)
85
約243人日削減(約65%削減)
400
350
OSSツールの場合
計算式( JUnitでテストする場合、平均で30分)
約6,000メソッド
6,000メソッド × 30分
30分 ÷ 60分
60分 ÷ 8時間
工数
約375人日
375人日
Agitatorの場合
計算式
(シンプルなメソッドで10分
複雑なメソッドで20分)
300
250
200
150
100
50
0
同アーキテクチャおよび同規模の
プロジェクトメソッド数
工数
6,134メソッド×10分÷60分÷8時間
85メソッド×20分÷60分÷8時間
手動
Agitar
約128人日
128人日
約4人日
合計132人日
© 2006 10art-ni Corporation
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
プロジェクト組織形態
次プロジェクト1
Agitarの導入
サポート
開発者
社内メンター
サポート
メンタリング、
トレーニング
次プロジェクト2
全社導入
パイロットプロジェクト
コピー
コンサルタント
社内メンター
サポート
社内メンター
:
:
© 2006 10art-ni Corporation
テスト終了基準の策定
9テスト終了基準は属人的であいまいな基準では
なく、客観的数値にすべき
9 単体テスト
カバレッジ:85%以上、テストケース密度:100%
„ アサーション失敗数ゼロ etc
„
9 結合テスト
ユースケースに沿ったテストスクリプトとテストログ
„ 自動機能テスト失敗数がゼロであること etc
„
9 負荷テスト
負荷シナリオとテストログ
„ パフォーマンス統計値がユーザー要求を満たしていること
„
etc
© 2006 10art-ni Corporation
ツール導入成功の秘訣
9 目先の利益より長期的な利益を考慮せよ
9 リーダーがツールの普及を促進し、開発者に啓蒙すべ
し
9 はじめは適切なパイロットプロジェクトを選定し、メン
ターを付けて導入せよ
9 外部のコンサルティング・サービスなども積極的に活用
すべし
© 2006 10art-ni Corporation
9
9
9
9
9
9
ソフトウェア品質への取り組み
単体テストとAgitator
単体テスト管理とManagement Dashboard
Agitarソリューション導入効果
テストツール導入ステップ
まとめ
© 2006 10art-ni Corporation
あるべきテスト資産とは
9 テスト計画
9 テストデータ
9 テスト実行環境
9 テスト不具合レポート
9 テストケースと結果
9 テストスクリプト
9 テストログ
あるべきテストの成果物
テスト対象のソフトウェアはテス
トの成果物ではない
保守や変更を考えた場合、これら
は確実に残すべき
継続的なテスト実施が可能である
ことがテスト資産の条件
生産性と効果の向上により結
果的にソフトウェアの品質が
向上する
© 2006 10art-ni Corporation
テンアートニ品質向上ソリューション
9 各テストフェーズにツールを使用し、生産性を向上
9 リソースをより高度な作業に振り向け、品質を向上
Agitator
Functional Tester
ホワイトボックステスト
ブラックボックステスト
Performance Tester
ブラックボックステスト パフォーマンステスト
(画面機能・回帰テスト)
負荷耐久テスト
実装&単体テスト
結合テスト
Purify Plus
システムテスト
アプリのプロファイリング
メモリリークなど
注意:AgitatorはJavaシステム開発が対象
© 2006 10art-ni Corporation
テスト成功の秘訣
9単純作業を効率化する為にツールを導入すべし
(自動化できるところは自動化すべし)
9基本的なテスト方法論を身に付けるべし
9開発者にツールの使用を啓蒙し、適切に管理す
べし
9継続的にテストを実施すべし
© 2006 10art-ni Corporation
最後に
現状維持か? 前へ進むか?
変化は機会(チャンス)です
まずは、ご相談ください
© 2006 10art-ni Corporation
ご清聴ありがとうございました
お問い合せ
株式会社テンアートニ
http://www.10art-ni.co.jp/
プロダクト& SI ビジネスユニット
Webソリューション営業部
Tel: 03-5298-2924
E-mail: [email protected]
© 2006 10art-ni Corporation
Fly UP