Jasst14東北 事例発表 share

29
SEPLANNING.CO STAR : SOFTWARE TEST AUTOMATION RESEARCH GROUP.JP SHINATESU : SHINAGAWA TESTING TEAM JASST’14 TOHOKU SATSUKI URAYAMA : MAY PRESENTS AUTOMATOR 2 MANAGEMENT DAYS

Transcript of Jasst14東北 事例発表 share

Page 1: Jasst14東北 事例発表 share

SEPLANNING.CO

STAR : SOFTWARE TEST AUTOMATION RESEARCH

GROUP.JP

SHINATESU : SHINAGAWA TESTING TEAM

JASST’14 TOHOKU

SATSUKI URAYAMA : MAY PRESENTS

AUTOMATOR 2 MANAGEMENT DAYS

Page 2: Jasst14東北 事例発表 share

浦山 さつき

(株)エスイープランニング テストエンジニア

テスト自動化研究会(STAR) コミッター

しなてす

岩手県盛岡市出身

[最近の嬉しかったこと]

東京で「プチよ市」が開催されること

[最近の悲しかったこと]

「へっちょこだんご」が通じなかったこと &会場に「よ市」が通じなかったこと

M

Page 3: Jasst14東北 事例発表 share

はじめに

予稿集について

本発表の参考資料あり、発表時のスライドと内容が異なります

テスト自動化チームの人数は新規開発時のものであり、保守の段階の自動化チームは最終的に2人まで減りました

キャプチャ&リプレイツールを使用して画面を操作するテストの実行を自動化していました

本資料は当日の会場の声を受けて、一部に修正を加えていますm(_ _)m

M

Page 4: Jasst14東北 事例発表 share

MAINTENANCE

保守

Page 5: Jasst14東北 事例発表 share

48%

10%

16%

8%

18%

近々自動化しようと検討し

ている

自動化しようとしたが障壁

があったため断念している

自動化したテストに問題が

出ている

自動化したテストが上手く

いっている

自動化しようとは現時点で

考えていない

TEST Automation?

傾向

JaSST’14 Tohoku 参加者アンケートより

会場内で自動化したことのある人のうち、約65%の人が自動化後に問題を抱えている

Q.テストを自動化していますか?

Page 6: Jasst14東北 事例発表 share

保守性 • 修正のしやすさに関するソフトウェア製品の能力

(JIS X 0129:2003)

解析性

変更性

安定性

試験性

保守性標準適合性

これを満たすような自動テストってどんなもの?

Page 7: Jasst14東北 事例発表 share

自身が経験した事例の中から 5年間保守し続けた自動テストを紹介

M

Page 8: Jasst14東北 事例発表 share

CASE STUDY

事例

Page 9: Jasst14東北 事例発表 share

テスト対象システムのライフサイクル

①199X年 新規開発

⑤サービス終了

②設計 影響調査

③修正の実施

④テスト

⑥201X年 システム刷新

サービス追加要件

リリース 3か月毎

Page 10: Jasst14東北 事例発表 share

自動テストのライフサイクル

①2005年 新規開発

⑤不要な テストの除外

②影響調査

③修正の実施

④試行

⑥2011年 テスト自動化 システム刷新

サービス追加要件

テスト実施 及び

リリース判定

3か月毎

Page 11: Jasst14東北 事例発表 share

レベル

受入れテスト

システムテスト

統合テスト

単体テスト

タイプ

機能テスト

ユースケース テスト

回帰テスト

etc…

システムテスト

回帰テスト

Page 12: Jasst14東北 事例発表 share

レベル

受入れテスト

システムテスト

統合テスト

単体テスト

タイプ

機能テスト

ユースケース テスト

回帰テスト

etc… 修正できる 期間が短い

テスト対象に バグが入り込みやすい 修正する

期間がとれる

テスト対象のバグが発生し

にくい

システムテスト

回帰テスト 保守工数

UP

保守工数

UP

自動化のバグ? テスト対象のバグ? 切り分けが必要

自動化したテストのテストがしやすい

Page 13: Jasst14東北 事例発表 share

1.Aさんが新規契約。支払は口座振替。 プラン1、プラン2、割引1、割引2を適用。

2.Aさんのプラン1を廃止する変更登録。

3.Bさんが新規契約。プラン1と割引1を適用。使用料はAさんが一括で支払う。

4.Aさんの支払いをクレジットカード払いに変更登録。

5.Aさんの契約を解除する。

回帰テストの一例

A B

プラン1

プラン2

割引1

割引2

口振

プラン1

割引1

CR

A一括 請求書

Page 14: Jasst14東北 事例発表 share

1.Aさんが新規契約。支払は口座振替。 プラン1、プラン2、割引1、割引2を適用。

2.Aさんのプラン1を廃止する変更登録。

3.Bさんが新規契約。プラン1と割引1を適用。使用料はAさんが一括で支払う。

4.Aさんの支払いをクレジットカード払いに変更登録。

5.Aさんの契約を解除する。

回帰テストの一例

種別 顧客 支払 プラン1 プラン2 割引1 割引2

新規 A 口振 付 付 付 付

変更 A 廃 廃

新規 B 一括(親A) 付 付

変更 A CR 廃 付 廃 付

解約 A

種別 新規契約

変更

利用停止

解約

変更取消

Page 15: Jasst14東北 事例発表 share

操作内容の細分化

支払方法を設定する

プランを外す

割引を付ける

割引を外す

プランを付ける

新規契約

変更

変更取消

利用停止

解約

登録種別を選択する 種別 新規契約

変更

利用停止

解約

変更取消

Page 16: Jasst14東北 事例発表 share

完成したテスト自動化フレームワーク

操作順 操作画面 値

1 ユーザーID入力 ABC

2 検索

Class サービス設定画面 Function ユーザー名(Name) TextBox(“UserName”).Type Name

Function ログイン Button(“Login”).Click

Class 検索画面 Function ユーザーID入力(id) TextBox(“UserId”).type id

Function 検索 Button(“Serch”).Click

パラメタ

なにを 順番 どこに どうする

スクリプト スクリプト スクリプト

Page 17: Jasst14東北 事例発表 share

操作順の変更 操作対象の変更 設定値の変更

パラメタ

なにを 順番 どこに どうする

スクリプト スクリプト スクリプト

完成したテスト自動化フレームワーク

変更箇所が 見つけやすい

Page 18: Jasst14東北 事例発表 share

自動テストの保守作業

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

3か月毎

Page 19: Jasst14東北 事例発表 share

②影響調査 - 1

既存のテスト内容に影響する要件がないか調査する。

機能仕様書や画面仕様書を以下の観点で調査する。 オペレーションの追加や変更があるか

必ず確認しなければならないサービスや付与しなければならないサービスの追加や変更があるか

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

1か月

Page 20: Jasst14東北 事例発表 share

②影響調査 - 2

影響箇所と規模を見積もる。

スクリプトは、追加されるオブジェクトの種類や数により工数を見積もる。

パラメタ調査ツールを使用し、既存パラメタに変更対象の箇所がどれくらいあるか調査する。

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

1か月

Page 21: Jasst14東北 事例発表 share

③修正の実施 ‐ 1

スクリプトを修正する

新しいボタンや画面が追加された場合、スクリプトを追加する。

パラメタを修正する

一括置換ツールを使用し、変更箇所を一括で置き換える。

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

1か月

Page 22: Jasst14東北 事例発表 share

④試行 ‐ 1

環境を構築する

環境作成ツールを使用し、テスト環境を用意する。

修正に誤りや漏れがないか確認する。

修正したテストを抜粋し、試験管理ツールを使用して実行をコントロールする。

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

2週間

Page 23: Jasst14東北 事例発表 share

④試行 ‐ 2

結果取得ツールを使用し、OK/NGを一覧で取得する。

NGの場合、自動化のバグかテスト対象のバグかを切り分けるため、ログを確認する。

自動化のバグがなくなれば完了。

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

2週間

Page 24: Jasst14東北 事例発表 share

②影響調査

③修正の実施

④試行

サービス追加要件

テスト実施 及び

リリース判定

パラメタ調査ツール

試験管理ツール

環境作成ツール

一括置換ツール

結果取得ツール

変更による間違いが 起きにくい

Page 25: Jasst14東北 事例発表 share

SUMMARY まとめ

Page 26: Jasst14東北 事例発表 share

変更による間違いが 起きにくい

変更箇所が 見つけやすい

自動化したテストのテストがしやすい

試験性

解析性

安定性

自動化のスコープを 定める

自動テストを 構造化する

ツールを活用する

Page 27: Jasst14東北 事例発表 share

生み出した自動テストが 長生きできる仕組みを作ろう

M

Page 28: Jasst14東北 事例発表 share

I’LL BE BACK

Page 29: Jasst14東北 事例発表 share

JIS X 0129:2003

JIS X 0161:2008

ISO/IEC 9126-1

『ソフトウェア工学のすすめ』玉置彰宏 http://www.tamakiseoffice.jp/software_engineering/Chap_33.pdf

TABOK(Test Automation Body Of Knowledge)

Terminator Real NFI http://www.dafont.com/terminator-real-nfi.font

PRESENTED BY

SATSUKI URAYAMA