Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

異業種でのテスト自動化の実際

CEDEC2014(2014.9.3)「[CEDEC×JaSST2014コラボセッション]異業種でのテスト自動化の実際」にて使用した資料です。

  • Als Erste(r) kommentieren

異業種でのテスト自動化の実際

  1. 1. [CEDEC×JaSST]コラボセッション 異業種での テスト自動化の実際 (株)エスイープランニング 浦山 さつき
  2. 2. JaSST:ソフトウェアテストシンポジウム 北海道 東北 新潟 東京 東海 大阪 四国 九州
  3. 3. ASTER:NPO法人 ソフトウェアテスト技術振興協会 ソフトウェアテスト の技術を日本、アジ アに広め、更なる技 術発展を目指す組織
  4. 4. 浦山 さつき STAR:テスト自動化研究会 コミッター しなてす:テスト設計コンテスト出場チーム メンバー (株)エスイープランニング所属 受託開発メインの会社 テストエンジニア Web、エンプラ、組込み テスト全般業務、テスト自動化など 好きなゲーム 位置ゲー 自己紹介 M
  5. 5. 持ち帰ってもらいたいもの 1.ソフトウェアテストの技術 2.テスト自動化へのヒント + テストの世界って深い!
  6. 6. 自己紹介 ソフトウェアテスト用語説明 事例発表1 自動化で解決!網羅率UP! 事例発表2 5年の実績!保守しつづけた自動テストの秘密 事例発表3 単純じゃなかった?!テスト自動化に立ちはだかる壁 まとめ おまけ 本セッションの流れ
  7. 7. ソフトウェアテスト用語説明 事例紹介の前に
  8. 8. Q.プログラムの必須機能が動いているか 確認するテストを、あなたの現場では何 と呼びますか? 1.疎通確認 2.スモークテスト 3.信頼テスト 4.サニティテスト
  9. 9. JSTQB:ソフトウェアテスト 技術者認定資格 ISTQBの日本版 http://jstqb.jp/ ソフトウェアテスト技術に関する情報が公開さ れている シラバス ソフトウェアテスト標準用語集
  10. 10. テストレベル・テストプロセス 統 合 テ ス ト 受 入 テ ス ト テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 要求定義書 画面仕様書 要求分析 基本設計書 詳細設計書 ソース コード ユーザ要求 システム 要件 設計 実装 ユ ニ ッ ト テスト システム テ ス ト 開発の作業 開発の成果物 テストの作業(プロセス) テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テストツールまるわかりガイド 図3-2 V字モデルとテストに必要な作業の対比
  11. 11. テストタイプ 機能テスト 非機能テスト パフォーマンステスト ロードテスト ストレステスト ユーザビリティテスト 相互運用テスト 保守性テスト 信頼性テスト 移植性テストなど 構造テスト 部分変更のテスト 確認テスト 回帰テスト 信頼テスト(スモークテスト) 回帰テスト:プログラム の変更によって、意図し ない部分に不具合が発生 していないか確認するテ スト。リグレッションテ スト。 スモークテスト:プログ ラムの必須機能が正常に 動作していることを確認 するための、全テスト ケースのサブセット。サ ニティテスト。
  12. 12. 自動化で解決!網羅率UP! 事例1
  13. 13. ネット広告管理システムでのお話 広告管理 システム ・配信内容 ・配信条件 -エリア -時間帯 -性別 -年齢 -などなど 広告配信 システム 広告主 広告承認 システム 広告主がネット配信広告を登録する WEBシステム
  14. 14. システム詳細 ほぼ新規開発(要件は引き継いでいた) 規模はインフラも合わせると月300人ぐらい 私たちはフロント開発チームの一部 フロント開発チーム 機能テスト自動化チーム ×5人 ・Selenium IDE ・Selenium WebDriver ×たくさん
  15. 15. 私たちの仕事とやったこと テスト自動化対象範囲の明確化 できること、できないことをはっきりさせた 手動テストを実施するチームと常に連携を取り、テス トの抜け漏れがないよう注意した 設計書やモックを基に、自動化できそうなテス トケースを設計し自動化していく 自動化しやすいシステム構築のお願い HTMLにIDをつけてもらった IDを振れない箇所には、Selenium専用属性をつけても らった
  16. 16. 例:エリア登録機能テストの自動化 配信設定可能エリア1300箇所 1300通り試すのは辛い… そこで自動化! 登録パターンは決まっている エリアを変えて登録していく
  17. 17. 実現方法 入力内容、判定内容を決める エリア以外の必須入力項目の入力値はどうするのか OK・NGは何を持って判断するのか 結果はどのように確認するのか 自動テストのログ出力は別途プログラミングしていたものを 使用した ベースとなる操作をテストスクリプトとして記 述する htmlに持っていたエリアを配列に入れ、1つずつ 順番に登録する 実行ボタン ポチっ
  18. 18. 結果 1エリアだけ登録できず…! 市町村合併の関係で、エリアマスタから なくなっていた地域でした
  19. 19. 次にやること、やったこと 組合せて登録するテストを実施しよう 組合せテスト技法を用いるとよい 組合せの洗い出しに役立つ技法 HAYST法、オールペア法、直行表など 組合せを出力するツール PICT(Pict Master)など 同様のテストを自動化していこう 機械的に繰り返すテストは自動化が向い ている 曜日ごと、30分刻みで設定可能な時間指 定のテストも実現しました
  20. 20. 5年の実績! 保守しつづけた自動テストの秘密 事例2
  21. 21. 顧客管理システム開発でのお話 顧客管理 システム お客様情報 新規登録 -個人情報 -支払方法 ‐サービス内容 変更 窓口 数千万人の顧客情報を取扱う クライアントシステム 顧客 在庫管理 システム 料金管理 システム
  22. 22. 顧客管理システム開発でのお話 リリース後の不具合が致命傷 数時間でニュース沙汰 信頼失墜 大損害 テストに力を入れていた ただし手動実行 膨大な工数がかかっていた そこで、自動化することに。
  23. 23. テストチーム テスト自動化を導入 ツールと端末 テスト自動化チーム ×10人 ×30台 ・Quick Test Professional (現UFT) ・Quality Center ×50人 ・テスト計画 ・テスト分析 ・テスト設計 ・テスト実装 ・テスト実行 ・テスト報告
  24. 24. テスト対象システムのライフサイクル ①199X年 新規開発 ⑤サービス終了 ②設計 影響調査 ③修正の実施 ④テスト ⑥201X年 システム刷新 サービス追加要件 リリース 3か月毎
  25. 25. 自動テストのスコープ ①199X年 新規開発 ⑤サービス終了 ②設計 影響調査 ③修正の実施 ④-1 ユニットテスト ⑥201X年 システム刷新 サービス追加要件 リリース ④-2 統合テスト ④-3 システムテスト ④-4 受入れテスト テストを 作成・修正する 充分な期間がとれる
  26. 26. 自動テストのスコープ 機能テスト 回帰テスト etc… 自動化したテストの テストがしやすい テスト対象にバグが 入り込みやすい 自動テストのバグ? テスト対象のバグ? 切り分けが必要 保守工数 UP テスト対象のバグが 発生しにくい
  27. 27. 回帰テストの一例 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一括 請求書
  28. 28. 回帰テストの一例 種別 顧客 支払 プラン1 プラン2 割引1 割引2 新規 A 口振 付 付 付 付 変更 A 廃 廃 新規 B 一括(親A) 付 付 変更 A CR 廃 付 廃 付 解約 A 種別 新規契約 変更 利用停止 解約 変更取消 1.Aさんが新規契約。支払は口座振替。 プラン1、プラン2、割引1、割引2を適用。 2.Aさんのプラン1を廃止する変更登録。 3.Bさんが新規契約。プラン1と割引1を適用。使用料はAさんが一括で支払う。 4.Aさんの支払いをクレジットカード払いに変更登録。 5.Aさんの契約を解除する。 これを分解すると…
  29. 29. 操作内容の細分化 新規契約 変更 変更取消 利用停止 解約 種別にXXXを選択する 種別 新規契約 変更 利用停止 解約 変更取消 どこに どうする なにを
  30. 30. 完成した自動テストフレームワーク 操作順 操作画面 値 1 検索 A 2 種別選択 変更 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 パラメタ なにを 順番 どこに どうする スクリプト スクリプト スクリプト
  31. 31. 完成した自動テストフレームワーク パラメタ なにを 順番 どこに どうする スクリプト スクリプト スクリプト 操作順の変更 操作対象の変更 設定値の変更 変更箇所が 見つけやすい
  32. 32. 自動テストのライフサイクル ①2005年 新規開発 ⑤不要な テストの除外 ⑥2011年 テスト自動化 システム刷新 3か月毎 ②影響調査 ③修正の実施 ④試行 サービス追加要件 テスト実施 及び リリース判定
  33. 33. 自動テストの保守作業 ②影響調査 ③修正の実施 ④試行 サービス追加要件 テスト実施 及び リリース判定 パラメタ調査ツール 一括置換ツール 環境作成ツール 結果取得ツール 試験管理ツール 変更による間違いが 起きにくい
  34. 34. 保守性 •修正のしやすさに関するソフトウェア製品の能力 (JIS X 0129:2003) 解析性 変更性 安定性 試験性 保守性標準適合性 ソフトウェアの保守性
  35. 35. できあがった自動テストの保守性 変更による間違いが 起きにくい 変更箇所が 見つけやすい 自動化したテストの テストがしやすい 試験性 解析性 安定性 自動化のスコープを 定める 自動テストを 構造化する ツールを活用する
  36. 36. 単純じゃなかった?! テスト自動化に立ちはだかる壁 事例3
  37. 37. ネット証券システム開発でのお話 ネット証券 システム 株取引 注文入力 その他 証券会社 システム 口座開設者 取引所 システム 発注 約定 失効 発注 約定 失効 365日24時間稼働する オンラインWEB取引システム
  38. 38. ネット証券システム開発でのお話 制度変更や新サービス対応などの案件が乱立 開発規模は月100人ぐらい 案件が発生するたびにチームが発足 品質保証部のような専門チームはない テストはほぼすべて手動 システム開発部 A案件チーム ×5人 B案件チーム ×10人 C案件チーム ×3人 ・・・
  39. 39. 保守開発のサイクル 10 11 12 2014 1 2 3 4 5 6 7 8 2013 9 9 サービス変更対応 制度改正対応 新サービス追加対応 新サービス追加対応 制度改正対応 新サービス追加対応 サービス変更対応 制度改正対応 M M M
  40. 40. テスト自動化の一歩 繰り返し実行する シナリオが単純 スモークテストを自動化しよう! M スモークテストの自動化か ら始めるのがおススメ! @JaSST Tokyo’13 テスト自動化研究会
  41. 41. 取扱商品・売買・執行条件 現物株式 買い 売り 訂正 取消 成行 指値 寄成 引成 寄指 引指 …… 成行 指値 寄成 引成 寄指 引指 …… 信用株式 新規 返済 訂正 取消 成行 指値 寄成 引成 寄指 引指 …… 成行 指値 寄成 引成 寄指 引指 …… 先物オプション 新規 成行FAS 成行FAK 成行FOK 指値FAS 指値FAK 指値FOK ……
  42. 42. It’s very easy. スモークテストを自動化しよう 王道パターン 買い注文→訂正→取消 売り注文→訂正→取消 執行条件を変えるだけで たくさんのパターンが 実施できる……♪ M M
  43. 43. さっそく、やってみた 王道ケースを操作し、スクリプトに記録⇒OK 動作確認として再生⇒OK 数時間後 もう一度再生⇒NG …なぜ?! 時間によって画面表示がかわっていた 時間で処理を分ける⇒OK M
  44. 44. さっそく、やってみた M 翌日 もう一度再生⇒NG …なぜ?!?! 昨日まで使ってた入力値がはじかれる 可変にする必要があった DBから値を取得して使う⇒OK
  45. 45. さっそく、やってみた どうにか動いたし… 動作できる執行条件を増やそう スクリプト内の 執行条件の選択部分だけ変更⇒NG なぜ…?!?!?! 執行条件によって 王道パターンが異なるものがあった… 他にも… 月次のサービスが切れた! お金が足りない! 保有株式の残高が足りない!! などなど…… M …
  46. 46. M ……
  47. 47. どこに壁があったのか 仕様への理解が足りない 一見単純だったのですが…撃沈… 執行条件によって結果が変わること 時間帯によって注文受付可否があること 環境の状態に左右される 時間による制御が入っている 使用できる値が刻々と変わる いろんな人が使用する環境だから 自由に設定ができない テスト側で解決しようとロジックを追加、追加、追加… そしていつの間にか、メンテナンス不可能・信頼できない自 動テストのできあがり?!
  48. 48. 学んだこと テスト自動化に限らず、テスト分析は重要。 業務知識がないとテストができない! ひとりでは解決できないことが多い。たくさん のひとの協力が必要。 自動テストは融通が利かない。環境に左右され る場合は、専用の環境を用意したほうがよい。 自動テストにもテストが必要。信頼できないテ ストを動かしても無意味。
  49. 49. 保守性 •修正のしやすさに関するソフトウェア製品の能力 (JIS X 0129:2003) 解析性 変更性 安定性 試験性 保守性標準適合性 このときの自動テストの保守性 M 未だに満足のいく作りに 達していません…
  50. 50. まとめ
  51. 51. テストは条件次第 (ソフトウェアテストの7原則より) テスト自動化も条件次第 ソフトウェアの要件が異なれば、 テストの方法も変わる
  52. 52. テストの自動化は、 テストであり、 (テスト)システム開発である。 (BY Stasuki Urayama)
  53. 53. テスト自動化と自動化保守に関する書籍 『Software Test Automation』 Mark Fewster & Dorothy Graham著 (1999年) Chapter7 Building maintainable test 日本語訳版 『テスト自動化標準ガイド』 テスト自動化研究会STA翻訳チームで製作中 12月に翔泳社より出版予定!!
  54. 54. テスト自動化標準ガイド 7章 保守性の高いテストを構築する 7.2 テストメンテナンスの要因 1.テストケースの数 2.テストデータの量 3.テストデータの形式 4.テストケースの実行時間 5.テストケースのデバッグ能力 6.テストの相互依存性 7.命名規則 8.テストの複雑性 9.テストドキュメンテーション
  55. 55. テストに関するツール 統合 テ ス ト 受 入 テ ス ト テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 要求定義書 画面仕様書 要求分析 基本設計書 詳細設計書 ソース コード ユーザ要求 システム 要件 設計 実装 ユ ニ ッ ト テ ス ト シ ス テ ム テ ス ト 開発の作業 開発の成果物 テストの作業(プロセス) テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 テスト分析 テスト設計 テスト実装 テスト実行 報告書作成 コード解析 モニタリングとコントロール ソフトウェア管理 インシデント管理 テストツールまるわかりガイド 図3-2 V字モデルとテストに必要な作業の対比
  56. 56. テストツールを紹介した冊子 『テストツールまるわかりガイド(入門編)』 ASTER テストツールWG著(2012年) http://www.aster.or.jp/business/testtool_wg.html 無料 テストツール導入のためのプロジェクト問診チェック 有償、無償問わず様々なテストツールを テストプロセスとマッピングしながら紹介
  57. 57. おまけ
  58. 58. テスト業界イベントInformation JaSST 北海道@札幌 2014年9月5日 東海@刈谷 2014年10月31日 四国@香川 2014年11月14日 九州@那覇 2014年11月28日 東京@白山 2015年2月20日~21日 XP祭り 2014年9月6日:アジャイル×テスト自動化 システムテスト自動化カンファレンス2014 2014年12月14日:『テスト自動化標準ガイド』を大解説 WACATE2014冬 2014年12月6日-7日:三浦海岸でテスト三昧
  59. 59. ご清聴 ありがとうございました

    Als Erste(r) kommentieren

    Loggen Sie sich ein, um Kommentare anzuzeigen.

  • goyoki

    Sep. 6, 2014
  • koichiuemura1

    Sep. 13, 2014
  • AkihiroMATSUMOTO

    Nov. 9, 2014
  • AkihiroMATSUMOTO

    Nov. 9, 2014
  • mitsuhirokoga75

    Nov. 25, 2014
  • kert

    Dec. 23, 2014
  • NaoMiura

    Feb. 23, 2015
  • yuresun

    Jun. 9, 2015
  • kauji0522

    Jul. 8, 2015
  • yoshinorikitahara2

    Dec. 3, 2017

CEDEC2014(2014.9.3)「[CEDEC×JaSST2014コラボセッション]異業種でのテスト自動化の実際」にて使用した資料です。

Aufrufe

Aufrufe insgesamt

2.721

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

151

Befehle

Downloads

16

Geteilt

0

Kommentare

0

Likes

10

×