狠狠撸

狠狠撸Share a Scribd company logo
TestLinkで
で
アジャイルにテストする
2009/6/4
あきぴー@TEF関西
copyright 2009 akipii@TEF関西

1
自己紹介
HN:あきぴー
簡単な職歴
業務系Webシステムの開発部隊に所属
プログラミングからプロジェクト管理まで何でも

興味
XPを代表とするアジャイル開発

copyright 2009 akipii@TEF関西

2
第1部 
部 
TestLinkを
を
アジャイル開発に組み込む

copyright 2009 akipii@TEF関西

3
TestLinkとは
PHPで作られたテスト管理Webシステム
最新版:1.8.2 (2009/5)
TEF有志によるテスト管理システムTestLink日本語化プロジェクト
http://testlinkjp.org/

LAMP、WAMP環境で動作
GPLで配布

テスト工程をWeb上で一括管理できる
テストケースの登録?実行?集計を一括管理
BTSと連携してバグ修正&検証フローを管理
Mantis, Bugzilla, Trac, Redmine, Jira etc.

最近、Excelのテスト仕様書をWeb化できる特徴が注目
されている
copyright 2009 akipii@TEF関西

4
【1】TestLink導入前(Excel編)
Excelのテスト仕様書は管理が大変
数千~数万のテストケースを管理するのは難しい
仕様変更等でテストケース修正や再テストに手間がかかる

テスト工程の進捗が分かりにくい
テスト工程で人員が最大化する為、管理業務が大変
失敗したテストケースが多くなるとチームが混乱してくる

バグ修正フローがスムーズでない
失敗したテストケースが増えるとバグ管理と連携が面倒
管理者は作業指示を逐一出すだけで1日が終わる

並行開発の構成管理作業が大変
新規開発と本番運用のソース管理に手間がかかる
copyright 2009 akipii@TEF関西

5
【2】TestLink導入前(XP編)
Junitで単体テストを実施
単体テストが自動化された

継続的インテグレーションを実施
いつでもリリースモジュールをワンクリックでビルドできる

並行開発をメインラインモデルで管理する
新規開発(trunk)とその分岐である本番運用(branch)の
コードラインを使い分ける

弱点:受入テストの品質を確保する手段があまりない
バグ修正フローはスムーズでなかった
受入テストの自動化(例:Seleniuum)は難しい
copyright 2009 akipii@TEF関西

6
【3】TestLink導入前(Redmine編)
バグ管理をBTS(Redmine)で行う
バグ修正作業はRedmineチケットで管理する

RedmineのチケットをXPのタスクカードのように使う
 ?チケット駆動開発(TiDD)
障害も要望もチケットで扱う(Issue Tracking)
作業状態、進捗情報はチケットで一元管理
ガントチャート、バーンダウンチャートで進捗管理
バグ修正や機能追加等をワークフロー管理
チケット集計結果からバグ収束曲線等で品質管理

弱点:テスト工程の進捗管理はRedmineではやりにくい
ではやりにくい
弱点:テスト工程の進捗管理は
copyright 2009 akipii@TEF関西

7
【4-1】TestLinkをアジャイル開発へ組み込む
TestLinkを結合~受入テストで使う
単体テストはJunitでテスト自動化
結合テスト以降は業務シナリオでテストする

テスト計画をXPのイテレーションに見立てる
テストケースをテスト計画単位にグループ化する
テスト計画のテストケースを全て成功にしたらリリースできる
ように運用する
同じテスト計画を複数回実施して回帰テストも可能

失敗したテストケースの修正/検証はBTSと連携する
バグ修正はRedmineチケットで管理する
バグ検証はTestLinkテストケースで再テストする
copyright 2009 akipii@TEF関西

8
【4-2】TestLinkの運用サイクル
PG
PL

PL
計画作成
登録
集計表示 TestLink

テスター
更新
テスター
終了

PG
Hudson

Redmine
copyright 2009 akipii@TEF関西

9
【4-3】TestLinkの概念モデル
テスト計画
?XPのイテレーション
のイテレーション
 Scrumのスプリント
のスプリント

テスト仕様
?テストケースの貯蔵庫
 Scrumのプロダクトバックログ
のプロダクトバックログ

ビルド
?回帰テストの実施結果。
 ビルド番号。製品番号。
copyright 2009 akipii@TEF関西

10
【4-4】テストケースの状態遷移図

copyright 2009 akipii@TEF関西

11
【5-1】TestLink導入後
テスト工程の進捗をリアルタイムに把握できる
テスターが大人数でもWebですぐに進捗確認できる
バグ修正と検証の切替がスムーズになった

テスターや開発者の受けもいい
テスターは自分のテストケースだけフィルタリングしている
開発者はBTSチケットでバグ修正に専念する
テスターはBTSチケットが解決になれば即、再テストする

チケット駆動開発と相性がいい
設計~単体テスト?Redmineによるチケット駆動開発
によるチケット駆動開発
設計~単体テスト?
結合テスト~受入テスト? TestLinkでテスト管理
でテスト管理
copyright 2009 akipii@TEF関西

12
【5-2】TestLinkの更なる可能性
W字モデルで設計時にテスト計画を作る
設計時に要件カバレッジの観点を入れる
1次開発でバグが多発した機能のテストケースを2次開発で
再利用し、品質を強化する

テスト実績から累積グラフを作成できる
テストの予定?実績の比較も可能
テスト実績から品質やリスクに対処できる

テストもアジャイルにできる
テスト計画もXPのイテレーションで小刻みにテスト可能
テストケースの優先順位付けが重要
アジャイル開発の弱点である受入テストを補強できる
copyright 2009 akipii@TEF関西

13
第2部
部

TestLinkの運用例
の運用例

copyright 2009 akipii@TEF関西

14
(1-1)TestLinkとテスト仕様書の関係

copyright 2009 akipii@TEF関西

15
(1-2)テストケースの形式
テストケースをTestLinkの形式に合わせる
テストケースはユースケースシナリオから作る
分類や目的はテストスイートでツリー化する
事前条件はテストケース概要に書く
テスト手順はテストケースのステップに書く
事後条件はテストケースの期待値に書く
要件はテストケースのキーワードへ書いて紐付ける
直交表は<table>で表形式に書く

要件やテストケースはTestLinkCnvMacroで一括イン
ポートする
要件やテストケースはExcelであらかじめ作成しておく
インポート後はTestLink上で実績管理する
copyright 2009 akipii@TEF関西

16
(1-3)テスト仕様へテストケースをインポート

TestLinkCnvMacro
で出力したXMLをイン
で出力した
をイン
ポートする
【TestLinkCnvMacro 】
http://sourceforge.jp/projects/testlinktools/releases?package_id=7520
copyright 2009 akipii@TEF関西

17
(2-1)テスト計画を作成

テスト計画が
XPのイテレーションに
のイテレーションに
相当する
copyright 2009 akipii@TEF関西

18
(2-2)テスト計画へテストケースをアサイン

テストケースも変更履歴を残せる
copyright 2009 akipii@TEF関西

19
(2-3)テストケースへユーザをアサイン

copyright 2009 akipii@TEF関西

20
(3-1)ビルド作成後、テスト実行

copyright 2009 akipii@TEF関西

21
(3-2)失敗したテストケースはチケット発行

バグはRedmineチケットに
チケットに
バグは
登録する
?失敗したテストケースは必
ずRedmineチケットを持つ
チケットを持つ

copyright 2009 akipii@TEF関西

22
(3-3)テスト結果一覧

copyright 2009 akipii@TEF関西

23
(3-4)テストケースの全バグを確認

?BTSチケットのステータスをリアルタイムに表示
チケットのステータスをリアルタイムに表示
?オープン=0になるまでリリース不可能
?オープン= になるまでリリース不可能

copyright 2009 akipii@TEF関西

24
(3-5)ビルドをClose後、回帰テスト

全テストケース実施後、
TestLinkビルドにビルド
ビルドにビルド
番号を付与する
?ビルドをCloseしたらテ
?ビルドを
したらテ
スト結果は修正不可
(2個目のビルドを作る
個目のビルドを作る)
個目のビルドを作る

copyright 2009 akipii@TEF関西

25
(4-1)テスト実績を累積数でグラフ化
TestLinkCnvMacroでTestLink
で
のテスト実績を出力する

copyright 2009 akipii@TEF関西

26
(4-2)要件カバレッジ

copyright 2009 akipii@TEF関西

27
(4-3)要件カバレッジの実績

テストケースのキーワードに要件を紐づけるのがミソ
copyright 2009 akipii@TEF関西

28
(4-4)要件カバレッジの実績グラフ
TestLinkCnvMacroでTestLink
で
の要件カバレッジ実績を出力する

copyright 2009 akipii@TEF関西

29
(4-5)テスターの生産性グラフ
TestLinkCnvMacroでテスターの
で
生産性グラフを出力する
生産性グラフを出力する

copyright 2009 akipii@TEF関西

30
TestLink運用上の注意
テスト計画に含めるテストケース数は5百未満にする
テスト計画のテストケース数が多すぎると回帰テストできない
複数回のリリースを前提にテスト計画を分割(本来のマネジメント)

PGとテスターがペア作業できるワークフローにする
バグ修正は、PGがRedmineチケットで修正する
バグ検証は、テスターがTestLinkテストケースで再テストする

テストケースのブロックを使ってテスト管理
テストケースが失敗したら、依存するテストケースをブロック
ブロックしたテストケースは見なしバグ
見なしバグとしてテスト保留
見なしバグ
バグ検証完了後、ブロックしたテストケースのテストを再開

TestLinkと自動化ツールの連携は未完成
現状はTestLinkで手動の受入テストを効率化できた
Ver1.8以降はXML-RPC機能を使って自動化ツールと連携が可能(?)
自動化ツールでテストケースやテスト結果をTestLinkへ登録できる
copyright 2009 akipii@TEF関西

31
まとめ?謝辞
TestLinkでアジャイル開発のテスト工程を効率化しよう
1.
2.
3.
4.

TestLinkは結合~受入テストで運用する
テスト計画をイテレーションに同一視してアジャイル化する
バグ管理はRedmineによるチケット駆動開発と連携する
TestLinkCnvMacroでテスト実績を分析してプロセス改善する

謝辞
TEF関西の皆さん
TestLink-MLの皆さん
TestLink開発チーム

copyright 2009 akipii@TEF関西

32

More Related Content

贰罢奥别蝉迟2009讲演资料「罢别蝉迟尝颈苍办でアジャイルにテストする」