Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

テスト自動化の現場から~落とし穴に気を付けよう~

3,949 views

Published on

テストを効率的に実行する方法の一つとして、自動化があります。しかし、「自動化することで手作業がなくなり、バグがたくさん見つかる」ということはありません。テスト自動化で見逃しがちな落とし穴を、現場の事例を交えながらご紹介します。

Published in: Engineering
  • Be the first to comment

テスト自動化の現場から~落とし穴に気を付けよう~

  1. 1. 株式会社 ウェブレッジ 浦山 さつき テスト自動化の現場から ~落とし穴に気を付けよう~
  2. 2. 自己紹介 浦山 さつき  仕事 エンプラ・金融系・Webシステムのテスト テスト設計、テスト自動化、マネジメント、教育  所属コミュニティ テスト自動化研究会、しなてす JaSST Tohoku 実行委員会  書籍 『システムテスト自動化標準ガイド』共訳  登壇 WACATE2015夏 CEDEC2014 JaSST ’14 Tohoku JaSST ’13 Tokyo 他
  3. 3. 株式会社 ウェブレッジ 優しいシステム、ステキな品質。 サービス検証事業 ユーザビリティ調査 現状サイト分析 ヒューリスティック調査 システム検証事業 請負検証 常駐検証 品質改善コンサルティング 自動化コンサルティング
  4. 4. テスト自動化の紹介 自動化したシステムの紹介 店舗情報ポータルサイトの品質管理業務 顧客管理システムのテスト 現場で遭遇した落とし穴 まとめ 本セッションの流れ
  5. 5. 統 合 テ ス ト 受 入 テ ス ト テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 要求定義書 画面仕様書 要求分析 基本設計書 詳細設計書 ソース コード ユーザ要求 システム 要件 設計 実装 ユ ニ ッ ト テ ス ト シ ス テ ム テ ス ト 開発の作業 開発の成果物 コード解析 モニタリングとコントロール ソフトウェア管理 インシデント管理 テストの作業(プロセス) テストツールまるわかりガイド 図3-2 V字モデルとテストに必要な作業の対比 テスト自動化のスコープ
  6. 6. なんでも自動化できる?
  7. 7. できます。
  8. 8. できます。
  9. 9. システムテスト自動化カンファレンス2015 参加者アンケートより 自動化に興味がある人でも、 経験がない人や自動化に問題を抱えている人が多い
  10. 10. 現場で遭遇した 落とし穴 を ご紹介します。
  11. 11. の前に
  12. 12. 現場 を ご紹介します。
  13. 13. 店舗情報ポータルサイトの品質管理業務 自動化したシステムの紹介①
  14. 14. 店舗情報ポータルサイト開発でのお話 店舗情報 ポータル サイト 情報検索 一般ユーザー • 約60万件の店舗情報を扱うWEBサービス 店舗情報 クーポン配信 店舗 店舗情報 クーポン登録 システム 管理者 新規登録
  15. 15. システム詳細 • 月に100コンテンツ/機能のリリースが行われる 社員数1800名の企業が運用しているシステム 品質管理部は、リリース前のテストからクレーム解消施策 など、顧客満足度向上のために幅広く対応していた
  16. 16. 体制イメージ 品質管理部 システム開発部 A案件 企画部 B案件 C案件 … ③リリース判定結果 フィードバック ②依頼
  17. 17. 品質管理部の仕事 • 顧客満足度を上げるための様々な施策 リリース判定 各コンテンツの機能障害検知、速度調査 店舗情報の公開、非公開確認 リンク切れチェック 機能、非機能の確認 競合比較、パフォーマンス調査 公開されている情報のコンプライアンスチェック 開発チームへのフィードバック 等
  18. 18. 顧客満足度を上げるための様々な施策 例 新規登録・更新 反映 各コンテンツの機能障害検知、速度調査 施策 • 機能障害を検知する 仕組みの導入 • 障害の定義 • 許容時間の定義 店舗 クレーム 店舗情報 ポータル サイト
  19. 19. 情報検索 公開日 顧客満足度を上げるための様々な施策 例 店舗情報 ポータル サイト 新規登録 店舗情報の公開確認 施策 • 公開日に情報が表示 されるか確認 システム 管理者 クレーム
  20. 20. 自動化の背景 0.0 0.5 1.0 1.5 2.0 2.5 2011 2012 2013 2014 2015 倍 ユニークユーザー数 有料加盟店舗数 5万件 を突破
  21. 21. 自動テストのライフサイクル ①影響調査 ②修正箇所と 修正方法の 特定 サービス追加要件 テスト実施 報告 リリース ③修正 及び 試行 毎日
  22. 22. 顧客管理システムのテスト 自動化したシステムの紹介②
  23. 23. 顧客管理システム開発でのお話 顧客管理 システム お客様情報 新規登録 -個人情報 -支払方法 ‐サービス内容 変更窓口 • 数千万人の顧客情報を取扱うクライアントシステム 顧客 在庫管理 システム 料金管理 システム
  24. 24. システムの詳細 • 開発規模は月1000人以上 • リリース後の不具合が致命傷 数時間でニュース沙汰 信頼失墜 大損害
  25. 25. システムテストチーム 体制イメージ テスト自動化チーム ×10人 ・回帰テストの自動化 ・自動テストの運用 開発チーム A機能 B機能 C機能 … A機能 B機能 C機能 …
  26. 26. テスト対象システムのライフサイクル ①199X年 新規開発 ⑤サービス終了 ②設計 影響調査 ③修正の実施 ④テスト ⑥201X年 システム刷新 サービス追加要件 リリース 3か月毎
  27. 27. 自動テストのスコープ ①199X年 新規開発 ⑤サービス終了 ②設計 影響調査 ③修正の実施 ④-1 ユニットテスト ⑥201X年 システム刷新 サービス追加要件 リリース ④-2 統合テスト ④-3 システムテスト ④-4 受入れテスト ④-3 システムテスト
  28. 28. 自動テストのライフサイクル ①2005年 新規開発 ⑤不要な テストの除外 ⑥2011年 テスト自動化 システム刷新 3か月毎 ②影響調査 ③修正の実施 ④試行 サービス追加要件 テスト実施 及び リリース判定
  29. 29. 現場で遭遇した 落とし穴 を ご紹介します。
  30. 30. テスト自動化の落とし穴 自動化の現場から
  31. 31. 落とし穴① 自動化は初期投資が大事だ
  32. 32. 自動化は初期投資が大事だ • 最初にかかるコスト • ツール購入のコスト • スクリプトを作るコスト
  33. 33. \ メンテしないと動かない /
  34. 34. \ ほかの人が使えない /
  35. 35. “自動化は初期投資が大事だ”は落とし穴 ツール/テストプロセス/人/プロダクトについて、時間軸で考える 導入前~ プロジェクト導入 導入後~ ソフトウェアライフサイクル全体 ツール ツールの購入コスト サポートやライセンスなど 保守契約に要するコスト テスト プロセス スクリプト作成の負荷 欠陥修正後の確認テスト 実行にかかる時間 人 導入に必要なスキルの トレーニングコスト スクリプトのメンテナンスのための 技術伝承のコスト プロダクト 自動テスト可能なつくりにするためのコスト 新技術の導入等による 利用技術の変化に対応するコスト 時間 JaSST’13 Tokyo 「なれる!Test Automator!~テスト自動化を成功に導く3つの真実~」
  36. 36. 事例2 2010.11 新システムでの導入(5名) 2009.4 新システムに向けて再開発(5名) 2007.4 回帰試験運用(4名) 2006.4 テスト対象範囲拡張、回帰試験での導入(7名) 2005.8 受け入れテストでの導入(10名) 2005.1 立ち上げ(15名) “自動化は初期投資が大事だ”は落とし穴 自動テストに関わった人数の推移
  37. 37. 落とし穴② 簡単に作れればそれでよい
  38. 38. 簡単に作れればそれでよい • ツールを使えば簡単にテストが自動化できる • 簡単に作れる! • たくさん作れる!
  39. 39. \ 修正が追い付かない /
  40. 40. “簡単に作れればそれでよい”は落とし穴 • 影響範囲が大きすぎて、修正が追いつかない! • 似たようなスクリプトが多すぎる!! Test1 Test2 Test4Test3 事例1
  41. 41. “簡単に作れればそれでよい”は落とし穴 • スクリプトの構造化が有効。 レベル1 Linear Script Frameworks レベル2 Data-driven Frameworks Functional Decomposition Frameworks レベル3 Keyword-Driven Frameworks Model-based Framework TABOK Segment 2: Macroscopic Process Skills Skill Category 4: Test Automation Frameworks
  42. 42. “簡単に作れればそれでよい”は落とし穴 Class サービス設定画面 Function ユーザー名(Name) TextBox(“UserName”).Type Name Function ログイン Button(“Login”).Click Class 検索画面 Function 検索(id) TextBox(“UserId”).type id Button(“Serch”).Click Function 種別選択(item) SelectBox(“UserId”).select item 事例2 操作順 操作画面 値 1 検索 A 2 種別選択 変更 パラメタ なにを順番どこに どうする スクリプトスクリプトスクリプト
  43. 43. “簡単に作れればそれでよい”は落とし穴 パラメタ なにを順番どこに どうする スクリプトスクリプトスクリプト 操作順の変更操作対象の変更 設定値の変更 変更箇所が 見つけやすい 事例2
  44. 44. 落とし穴③ 優秀すぎる結果ファイル
  45. 45. 優秀すぎる結果ファイル • 結果の解析に必要な情報が 十分に含まれた結果ファイルが自動で出力される • 実行時間 • すべての操作内容 • すべての画面キャプチャ あいう かきく レ 成功 レ 成功 レ 成功 レ 成功 レ 成功 レ 成功 レ 成功 × 失敗 レ 成功 (フォーム2).type “かきく” 2015.10.03 12:02:12 結果
  46. 46. \ 専用ツールが必要だった /
  47. 47. “優秀すぎる結果ファイル”は落とし穴 • 専用ツールを入れないと結果が見れない • 開発者が結果を見てくれない • 手動テストと同様に操作内容を記入する必要あり • ツール導入時は、関係者と使い方を確認しよう 事例2
  48. 48. \ サーバーがパンクした /
  49. 49. “優秀すぎる結果ファイル”は落とし穴 • サーバーがパンクした! • 運用を始めて数か月、見たことのないエラーで停止 • ログのメンテもしましょう • エビデンスやログの解析に不要な画面キャプチャの削除 • 過去ログの保存ルールを決定 事例2
  50. 50. 落とし穴④ 繰り返しできるテスト
  51. 51. 繰り返しできるテスト • いつでも、何度でもテストできる幸せ! • 今日も、来週も、来年も実行するぞ!! 事例2
  52. 52. \ 別なところからバグが /
  53. 53. “繰り返しできるテスト”は落とし穴 • テストケース以外の箇所からデグレードを発見! • 殺虫剤のパラドックス • テストの草刈りをすべし • テストを自動化して満足することなかれ。 • テスト自身の保守も忘れずに。 • テストケースの追加と削除 • 修正に伴う自動テストのテストも忘れずに。 事例2
  54. 54. “繰り返しできるテスト”は落とし穴 ②影響調査 ③修正の実施 ④試行 サービス追加要件 テスト実施 及び リリース判定 テストケースの保守 事例2
  55. 55. 落とし穴⑤ 自動化すれば万事OK
  56. 56. 自動化すれば万事OK • 長くて複雑なテストがあった • 手でやるのは面倒くさい! • 自動化すればオペレーションミスもなくなる! 事例2
  57. 57. \ 実行時間が増えた /
  58. 58. “自動化すれば万事OK”は落とし穴 • 長いテストには 「入れ子型欠陥」シンドローム が付きまとう • 自動化以外の解決策があるかも • テスト目的を見直そう • テストレベルを見直そう • テストを短くする工夫をしよう • カオスを自動化してもカオスが速くなるだけ! 事例2
  59. 59. まとめ
  60. 60. 落とし穴 は ふさいでおきましょう。
  61. 61. テストツールを紹介した冊子 『テストツールまるわかりガイド(入門編)』 ASTER テストツールWG著(2012年) http://www.aster.or.jp/business/testtool_wg.html 無料 テストツール導入のためのプロジェクト問診チェック 有償、無償問わず様々なテストツールを テストプロセスとマッピングしながら紹介
  62. 62. UIテスト自動化のガイド 『システムテスト自動化標準ガイド』 テスト自動化研究会共訳/共著(2014年) 第1部 テスト実行を自動化する技法 第2部 システムテスト自動化のケーススタディ
  63. 63. テストプロセスの側面から自動化を考える 『TPI NEXTⓇ ビジネス主導のテストプロセス改善』 薮田和夫、湯本剛、皆川義孝 (訳)(2015年)
  64. 64. ご清聴 ありがとうございました

×