...

アジャイルテストに学ぶ テスト視点からの プロジェクト品質向上

by user

on
Category: Documents
0

views

Report

Comments

Transcript

アジャイルテストに学ぶ テスト視点からの プロジェクト品質向上
アジャイルテストに学ぶ
テスト視点からの
プロジェクト品質向上
2010年8月5日
日本アイ・ビー・エム(株)
グローバル・ビジネス・サービス事業 テストマネジメント
山腰 直樹
1
© Copyright IBM Japan, Ltd. 2010
本日の内容
„
„
„
„
„
自己紹介 (これまでの経験)
日米、および組込み・エンタープライズSW開発プロ
ジェクトにおけるテストチームの参画形態の違い
第3者検証のメリットと注意点
アジャイルテストの視点からのテストチームの参画
の考察
… アジャイル開発の特徴
… アジャイルテストの4象限
… プロジェクトを成功に導く7つのポイント
まとめ
2
© Copyright IBM Japan, Ltd. 2010
自己紹介(これまでの開発へのかかわり)
1984~
IBM大和研究所
1990年代
米国研究所
通信端末機器
Microcode
2000~05
大和研究所
日本本社
PC
BIOS, Driver, APPL
ITアプリケーション
製品開発
全体統括PM:大和
開発チーム:大和(ホストや制御装
置は米国)
テストチーム:大和・米国
おもに開発チームとしてプロジェクト
に参加(80年代)
PMとしてプロジェクトに参加(90年
代)
© Copyright IBM Japan, Ltd. 2010
2006~
サービス
全体統括PM:米国
開発チーム:米国・英国・
日本
テストチーム:米国・日本
+アジア(台湾・韓国)
全体統括PM:日本
開発チーム:日本・中
国
テストチーム:開発
チームに含まれる
おもにテストチームとして
プロジェクトに参加
テスト推進リーダー
3
日米、および組込み・エンタープライズSW開発プロ
ジェクトにおけるテストチームの参画形態の違い
・GR導入により特に必
性善説?終身雇用?
日本
欧米
要となるSOD
・世代交代により必要と
なる俗人性排除
開発組織から独立した
QA組織の存在
QA組織による上流工程
からの活動とブラックボッ
クステストの実施
開発チームがそのままテ
ストを実施
追加リソースでテスターを
雇うことはある
開発組織から独立した
QA組織の存在
QA組織による上流工程
からの活動とブラックボッ
クステストの実施
テストを専門にする組織
からプロジェクトに参画
テストチームによる上流
工程からの活動とブラッ
クボックステストの実施
組込みSW
© Copyright IBM Japan, Ltd. 2010
ITアプリケーションSW
SOD:
Separation of
duty
4
日本のITアプリケーションSW開発における従来型テ
スト・アプローチの課題
外部設計
開発・UT
内部設計
テスト計画
テスト活動は開始されていない
空白時期
テスト準
備
テスト
テスト実施
開発後半から
テストに着手
典型的なパターン
この期間はすべてのプロジェクト
メンバーは設計作業に従事
テストケースが
作成できない
ツールがあったら
工数が削減できた
© Copyright IBM Japan, Ltd. 2010
のに・・・
プログラミング作業や・修正変更
に追われてヘトヘト
要員が足りない・・
間に合わない・・・
テストデータが
準備できない!
テスト環境/
資源が不足
網羅性のあるテ
ストができてい
るか不安
5
従来型の課題を解決するIBMのアプローチ
FLT(フル・ライフサイクル・テスト)
要件定義
外部設計
テスト計画活動
開発・UT
内部設計
課題対策
テスト
テスト準備
テスト実施
課題
潜在的な課題を洗い出し、事前に対応する
マスターテスト計画
テストケース
が作成でき
ない
テスト範囲
役割分担・体制
スケジュール
テスト環境
テストツール
事前に対策
ツールが
あったら工
数が削減で
きた
要員が足りな
い・・間に合わな
い・・・
テスト環境/
資源が不足
テストデータ
が準備でき
ない!
テストデータ
© Copyright IBM Japan, Ltd. 2010
網羅性のあ
るテストがで
きているか不
安
潜在的な課題
6
フル・ライフサイクル・テスト (FLT)とは
開発のライフサイクル全般に渡って、テストに関する事柄 ( コンセ
プト、プロセス・モデル、標準 ) を体系的にまとめたIBM グローバ
ル標準メソドロジー
ƒ コンセプト
¾ 最初から正しく行えば欠陥除去コストを低減できる
ƒ テストアプローチ
¾ 戦略的なテスト計画の作成
9 要件定義・設計と同期したテスト設計 <= 効果的なテスト計画による重複排
除
9 テスト実施要件の定義と計画的準備 <= テスト準備・実施の作業効率向上
(含:自動化促進)
¾ 上流工程から「テストで確認できること」を作成物上で検証することで、要
件および仕様の抜け漏れや曖昧さを抑止し、後工程への欠陥の先送り
を防ぐ
7
© Copyright IBM Japan, Ltd. 2010
フル・ライフサイクル・テスト (FLT)とは
プロジェクト
計画
要求
外部設計
静的テスト
内部設計
CODE
目標、ニーズ、前提条件
ユーザー要件、外部システム要件、運用要件
システム機能/非機能要件
内部機能要件、結合要件
PGMロジック
単体テスト
単体テスト
計画
計画
受入テスト
受入テスト
計画
計画
システム
システム
テスト計画
テスト計画
統合テスト
統合テスト
計画
計画
テスト戦略
テスト戦略
Test Cases
マスター
マスター
テスト戦略
テスト戦略
システム統合
システム統合
テスト計画
テスト計画
運用テスト
運用テスト
計画
計画
Test Cases
Test Cases
Test Cases
単体テスト
統合テスト
システム
テスト
動的テスト
© Copyright IBM Japan, Ltd. 2010
システム統合
テスト ユーザー
受入テスト
運用テスト
8
従来型の課題を解決するテスト専任チームの編成
z テスト専任チームの役割
フルライフサイクル・テスティング(FLT)の実施
テスト手法/技法の研究
テストツールの選定と適用
アプリケーション個別のテストツールの開発と適用
テストケース、テストDBなどのテスト環境の維持・管理
z テスト専任チーム編成の意義
テストの手法/技法/ツールの研究に専念できる
アプリケーション設計に偏った先入観がなく、純粋な気持ちでテストができる
それがテスト品質に良い効果をもたらす
テストケース、テストDBなどのテスト環境の維持・管理が専門にでき、再テス
トの効率を高める
9
© Copyright IBM Japan, Ltd. 2010
テスト専門組織(Test CoE)の存在意義
Test CoEを適用したケース
プロジェクトチームA
プロジェクトチームB
プロジェクトマネージャー
プロジェクトマネージャー
プロジェクトマネージャー
プロジェクトマネージャー
開発チーム
テストチーム
開発チーム
テストチーム
開発マネジャー
開発マネジャー
テストマネージャー
テストマネージャー
開発マネジャー
開発マネジャー
テストマネージャー
テストマネージャー
設計者/開発者
設計者/開発者
テストスペシャリスト
テストスペシャリスト
設計者/開発者
設計者/開発者
テストスペシャリスト
テストスペシャリスト
KT
KT
TCoEからの参加
開発チームからの参加
開発チームからの参加
TCoEからの参加
テスト専門リソース
Test CoE
Test CoE: Test Center of Excellence
© Copyright IBM Japan, Ltd. 2010
Test CoEに蓄積さ
れるもの:
• 方法論
• テンプレート
• テスト技法
• ツール知識
• 品質データ
など
10
*テストの標準化・専門化の3つのポイント
テストの標準化・専門化
テストの標準化・専門化
特徴
従来との違い
効果
(1)
テスト分業
テスト準備作業の前倒し。分業・ テストスピードの向上
専門化による作業習熟度の向
上
(2)
標準プロセス
・成果物
再利用による作業効率の向上。 テストスピードの向上
作業標準化による人依存脱却
コスト低減
品質向上
(3) テストツール専門家
テスト実施時間の短縮
テストスピードの向上
コスト低減
テストスピードの向上。品質の向上。コストの削減。
テストスピードの向上。品質の向上。コストの削減。
11
© Copyright IBM Japan, Ltd. 2010
テスト分業化における注意事項
z 業務知識・製品知識のあるメンバーとテスト知識のあるメン
バーでテストを計画すること
z 開発チームとテストチームが対立しないよう気を配ること
(PM、リーダー)
z 開発チームとテストチームが協業すること(分業はテスト専
門化であり、独立化ではない)
z テストチームも上流工程からテスト活動に参画すること
→ アジャイルにおけるテスト活動が参考になる
12
© Copyright IBM Japan, Ltd. 2010
ここからの話の内容
参考文献の紹介
„ 日本IBMにおけるアジャイルの導入の現状
„ アジャイルの考え方
„ アジャイルチームにおけるテストの視点(4象
限)
„ プロジェクトを成功に導く7つのポイント
„
13
© Copyright IBM Japan, Ltd. 2010
はじめに:今回参考にした書籍
Agile Testing
実践アジャイルテスト
テスターとアジャイルチームのための実践ガイド
Lisa Crispin, Janet Gregory著
榊原彰 監訳/山腰直樹・増田聡・石橋正章 訳
… アジャイルテストとはアジャイルチームにおける
テストのこと。
本日特にご紹介したい内容:
… アジャイルテストの4象限について
… テストの視点からプロジェクトを成功に導くポイ
ント
„
„
アジャイルテストの実践的なポイント。
高品質を追求するチーム。
14
© Copyright IBM Japan, Ltd. 2010
IBMにおけるアジャイルへの取り組み
製品開発部門
• Rational SWなどの開発において既にAgileな
開発手法を標準として推進している。
社内IT部門
• 海外では適用可能プロジェクトにはAgileの適
用を行っている。
サービス部門
• Agileなプロセスを準備。日本でもパッケージ
ベース開発において事例がではじめている
• お客様との契約が請負型の場合の課題はあ
る。
15
© Copyright IBM Japan, Ltd. 2010
15
アジャイルとは?
16
© Copyright IBM Japan, Ltd. 2010
アジャイルソフトウェア開発マニフェスト
■プロセスやツールより、
人と人同士の相互作用を重視する。
プロセスやツールも大事だが、開
発チームのモラル・人間関係や
チームワークが重要
■包括的なドキュメントより、
動作するソフトウェアを重視する。
無駄なドキュメントを作りすぎない
こと。
■契約上の交渉より、
顧客との協調を重視する。
顧客とのコミュニケーションを密
にし、継続的にフィードバックをお
こなうこと
■計画に従うことより、
変化に対応することを重視する。
長期的な計画に関しては、初め
から詳細化することは不可能。短
期的な計画はあまり変更すべき
ではない。
17
© Copyright IBM Japan, Ltd. 2010
17
アジャイルにおけるそもそもの考え方:要求は劣化し
ていく
システム機能の利用度
出展: Standish group study report in 2000 chaos report
© Copyright IBM Japan, Ltd. 2010
18
18
アジャイル開発の特徴
ウォーターフォール
要件定義
アジャイル
要件
定義
設計
実装
テスト
反復
反復
反復
要
要
要
テ
設
テ
実
設
テ
実
設
リリース
実
インクリメンタル開発
必要最小限な要
件定義からはじ
める
© Copyright IBM Japan, Ltd. 2010
早期からの結合
テストの実施
反復でのフィード
バックを次の反
復に生かす
反復の終了時は
リリース可能な
状態
19
アジャイル開発の共通ポイント:
短いタイムボックス内で動くコードを
次を取り出し
ストーリー1
構築
ストーリー2
ストーリー3
・・・
OK
評価
バックログ
バックログで優
先順位を常に
管理
チームの中で、
テストまで全て
行う
定義
テスト
決められた期間
NG
は絶対動かさな
すぐに修正
い
受け入れテス
タイムボックス
トを早期に
出展:「アジャイル開発の本質とスケールアップ」
20
© Copyright IBM Japan, Ltd. 2010
20
「高品質を追求するアジャイルチームにおけるテストの
視点」
1.
2.
3.
アジャイルで中核をなすプラクティス:テスト駆動開発(Test
Driven Development : TDD)
アジャイルテストは、ビジネス面または技術面の軸とチーム
を支援する目的か、製品を批評する目的かの軸による4象
限の分類で説明される
アジャイルテストの実践的なポイントがある
… チーム全体アプローチ
… 自動化
など
⇒ これらの考え方はアジャイルでなくても共通点が
ある
21
© Copyright IBM Japan, Ltd. 2010
アジャイルテストの4象限を使い、プロジェクト品質をす
べての面から網羅する
顧客にアプリケーションを使用する
機会を提供し、必要に応じて要求を
調整する
チームが製品に価値を追加し続ける
ように支援する
ビジネス面
手動
自動と手動
探索的テスト
シナリオ
ユーザービリティテスト
ユーザー受入テスト
アルファ/ベータ
第3象限
第4象限
製品を批評する
チームを支援する
機能テスト
例
ストーリーテスト
プロトタイプ
シミュレーション
第2象限
第1象限
パフォーマンス/負荷テスト
セキュリティテスト
「~性」テスト
単体テスト
コンポーネントテスト
ツール
自動
技術面
継続的インテグレーションやビルド、
テストプロセスをセットアップし、
フィードバックを早める
© Copyright IBM Japan, Ltd. 2010
専門的なテストを行い、製品の技術
的な品質向上につなげる
22
※「実践アジャイルテスト」(翔泳社)96ページ図6-1より引用
プロジェクトを成功に導く7つのポイント
その1.チーム全体のアプローチを取る
9
テスターもプログラマと一緒に座り、自ら会議に参加する。
9
チーム内で課題を共有する。
9
チーム全体で品質の責任を持つ。
9
チーム全員が平等。
9
共同作業を行うためにチーム全体が同じ場所にいること。あるいは分散している場
合はコミュニケーションを円滑にするためのツールを使う。
従来型機能別チーム
プログラマの視点
ビジネス
アナリスト
プログラマ
アジャイルチーム
ビジネス
アナリスト
プログラマ
テスター
テスター
機能別チームから
アジャイルチームへ
テスターの視点
23
© Copyright IBM Japan, Ltd. 2010
※「実践アジャイルテスト」(翔泳社)64ページ図4-1より引用
プロジェクトを成功に導く7つのポイント
その2.アジャイルテストの考え方を採用する
9
継続的により良い仕事の方法を探す。
9
良質の本、ブログ、記事を読み、新しいアイデアやスキルを身につける。
9
PMはメンバーが腕を磨くことを積極的に支援する。
9
アジャイルテスターは、設計に関する議論に恐れず首を突っ込み、テストのしやす
さやより洗練された解決策を提示する。
その3.自動リグレッションテストを適用する
9
自動化戦略を早めに立てる。
9何を自動化し、何を自動化しないか?
9自動リグレッションテストに使うデータはどうするか?
9どんな自動化ツールを使うか
9
シンプルに始める。
9基本的な自動スモークテストや自動単体テストだけでも価値がある。
24
© Copyright IBM Japan, Ltd. 2010
プロジェクトを成功に導く7つのポイント
その4.フィードバックを与え、受ける
9 チームがスケジュールどおりに進むために継続的なフィードバックを提供する。
9
自動リグレッションテスト結果
9
進捗
9 反復計画会議と振り返りに十分な時間をかけて改善する方法を探る。
←反復のストーリーとタスクを
示すストーリーボード
25
© Copyright IBM Japan, Ltd. 2010
※「実践アジャイルテスト」(翔泳社)433ページ図18-3より引用
プロジェクトを成功に導く7つのポイント
その5.コアプラクティスの実践
短時間で、頻繁なビルド
自動化されたビルドプロセスとフィード
バック
1.
継続的インテグレーション
2.
テスト環境の管理
3.
技術的な負債の管理
4.
段階的に作ること
5.
コーディングとテストはひとつのプロセスの一部
6.
ビルド、データベーススキーマ、テスト環境の
投資と管理
コードのメンテナンス工数が雪だるま的にふ
くらむのを防ぐ
ベロシティ(1回の反復の生産性)測定とリ
ファクタリングの反復
小さな部品をコーディングしてテストし、部品
を結合して増やしながらテストする
プラクティス間の相乗効果
複数のアジャイルプラクティスを組み合わせるこ
とに意味がある
© Copyright IBM Japan, Ltd. 2010
それぞれの反復の中でも、テスト-コー
ディング-テスト-コーディング-テスト
の反復を繰り返す
バグは早く直せば直すほど安く済む
26
プロジェクトを成功に導く7つのポイント
その6.顧客と共同作業する
9
テスターは顧客とプログラマーの間の橋渡しとなる。
9顧客が要求を明確にし、優先順位付けをするのを助ける。
9システムに期待される振る舞いとユーザーシナリオを明確にする。
9それを実行可能なテストに落とす。
9
プログラマーと顧客の直接のコミュニケーションも促進する。
その7.広い視野を持つ
9
一般的にプログラマーは今取り組んでいるストーリーを作ることに集中するので、
誰かが大規模システム全体のことを考え、チームに注意を払わせる必要がある。
9
アジャイルテストの4象限を使い、テスト計画がすべてのアングルをカバーしている
ことを確認する。
9
投資収益率(ROI)を考え、効果的なテストを行う。
9
できるだけ本番に近い、かつ将来を見据えたテスト環境を作り出すように心がける。
9
現在のストーリーがビジネスの重要なスキームに合うか評価できるようにする。
27
© Copyright IBM Japan, Ltd. 2010
まとめ
„
テスト専門チームのプロジェクト早期からの存在に
よって、プロジェクトの品質を高めることができる。
„
早期からのテスト活動の開始によって、プロジェクト
全体のデリバリー期間を短くすることができる。
„
テスト専門チームがプロジェクトに対して貢献するた
めには、アジャイルテストの考え方が参考になる。
28
© Copyright IBM Japan, Ltd. 2010
Backup
29
© Copyright IBM Japan, Ltd. 2010
Fly UP