Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テスト自動化プロジェクトを支える技術と仕組み

YoshikiIto
November 30, 2019

 テスト自動化プロジェクトを支える技術と仕組み

YoshikiIto

November 30, 2019
Tweet

More Decks by YoshikiIto

Other Decks in Technology

Transcript

  1. Copyright © 2019 VeriServe Corporation All Rights Reserved. テスト⾃動化プロジェクトを⽀える 技術と仕組み

    2019年11⽉30⽇ 伊藤由貴 システムテスト⾃動化カンファレンス2019
  2. Copyright © 2019 VeriServe Corporation All Rights Reserved. 0.はじめに 1

    ▪今回お話する内容 • ベリサーブが様々な会社さんにテスト⾃動化サービスを提供 するにあたって、どんな⼯夫をしているか ▪たとえばこんな場⾯で役⽴ててほしい • これからテスト⾃動化を始める • 今うまくいっていないテスト⾃動化を⽴て直す • 社内にテスト⾃動化を広める ▪対象外 • 使っている具体的なツール、ライブラリの話
  3. Copyright © 2019 VeriServe Corporation All Rights Reserved. 0.はじめに 2

    ▪ことば • テスト⾃動化≒テスト実⾏⾃動化、として話します ▪資料の公開 • のちほどSpeaker Deckで公開予定です ※編集の可能性有
  4. Copyright © 2019 VeriServe Corporation All Rights Reserved. ⽬次 3

    0.はじめに 1.⾃⼰紹介・会社紹介 2.抱えていた問題 3.取り組み 4.成果と今後 5.まとめ
  5. Copyright © 2019 VeriServe Corporation All Rights Reserved. 1­1.⾃⼰紹介 4

    伊藤由貴(@yoshikiito) 株式会社ベリサーブ IT企画開発部 ⾃動テスト推進課 新卒で⼊社以降、ずっとテスト⾃動化関連のお仕事。 テスト⾃動化の⾃社ツールの開発 →組み込み機器・業務システム・Webアプリケーションなどの テスト⾃動化業務 →テスト⾃動化のエヴァンジェリスト業 その他、ASTER正会員(2019~)/JaSST東北実⾏委員(2018~)等 イマココ
  6. Copyright © 2019 VeriServe Corporation All Rights Reserved. 1­2.会社紹介 5

    株式会社べリサーブ 2001年に当時の親会社から独⽴した、現在は品質創造企業。 ソフトウェアテスト、テストプロセスの診断や改善、 負荷検証や脆弱性検証などなど、品質向上に関わるサービスを提供。 その他特徴としては • 社員は約1000⼈の規模 • テスト対象や業種が様々。Web、モバイル、組み込み etc… • 客先常駐がメインで、短ければ⼀ヶ⽉、⻑いと数年 など
  7. Copyright © 2019 VeriServe Corporation All Rights Reserved. 1­2.会社紹介 6

    ▪テスト⾃動化サービス l エンジニア数名が客先常駐し⾃動テストの要件定義/トライアル/ ⾃動テストシステム構築/コーディングなどを⾏う l 依頼をいただくキッカケ • テストを⾃動化したいが何から始めればいいかわからない • ⼀度チャレンジしたが失敗したので、プロの⼿を借りたい • 既にテスト業務を請け負っているお客様からの追加依頼 orこちらからのご提案
  8. Copyright © 2019 VeriServe Corporation All Rights Reserved. テスト⾃動化サービス概要 •

    ツール検討 • ⾃動テストシステムの 導⼊可否調査 • ⾃動テストシステムの 計画および構築 • ⾃動テスト スクリプト開発 • ⾃動テストの 保守/運⽤と レポーティング • マニュアル作成 • トレーニング トライアル ⾃動テスト 構築 ⾃動テスト 運⽤ お引渡し 1 2 3 4 実施 内容 • トライアルレポート • テスト⾃動化計画/⾒積 • ⾃動テストスクリプト (テストケース数件分) • ⾃動テストシステム • ⾃動テストスクリプト • ⾃動テストの運⽤報告 • ⾃動テスト結果分析 レポート • 構築、運⽤マニュアル • 保守マニュアル • トレーニング資料⼀式 成果 物例 会社の サービス紹介 資料より
  9. Copyright © 2019 VeriServe Corporation All Rights Reserved. ⽬次 8

    0.はじめに 1.⾃⼰紹介・会社紹介 2.抱えていた問題 3.取り組み 4.成果と今後 5.まとめ
  10. Copyright © 2019 VeriServe Corporation All Rights Reserved. 2.抱えていた問題 9

    理想 • テスト⾃動化によって、お客様の製品のQCD向上に寄与 • ベリサーブを⾼く評価してもらい、次のお仕事につなげる しかし・・・ ⼀部プロジェクトの現実 • お客様の製品のQCDが上がらない • 炎上
  11. Copyright © 2019 VeriServe Corporation All Rights Reserved. 2.抱えていた問題 10

    社内の横の連携不⾜ 常駐している場所がバラバラ、テスト対象もバラバラで、 部署やチームごと個別に頑張っている状態だった。 エンジニアのテスト⾃動化スキル不⾜ 所謂「要員ガチャ」状態。スキルが無いとテスト⾃動化のお仕事ができず、 お仕事ができないと経験が積めずにスキルが⾝につかない、のループ。 1 2 マネージャのテスト⾃動化知⾒不⾜ テスト⾃動化に関する知⾒が少ないと、プロジェクトを進める上での リスクを⾒落としたり、⾒積の精度が低かったりといった問題が起こる。 3
  12. Copyright © 2019 VeriServe Corporation All Rights Reserved. 2.抱えていた問題 11

    ▪既存の資料・概念も役に⽴つ、が・・・ • テスト⾃動化の8原則をはじめ、これまで様々な「コツ」 「ベストプラクティス」「落とし⽳」「パターン」などが 公開され、ナレッジが蓄積されてきた • これらも⼗分役に⽴つものではあるが、初⾒の⼈がうまく使えて いない現状もあった もう少し具体的な「仕組み」化が必要と考えた
  13. Copyright © 2019 VeriServe Corporation All Rights Reserved. ⽬次 12

    0.はじめに 1.⾃⼰紹介・会社紹介 2.抱えていた問題 3.取り組み 4.成果と今後 5.まとめ
  14. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3.取り組み 13

    以下のような施策を⾏った(ている) • テスト⾃動化プロジェクトガイドライン策定 • プロセス定義 • ロールとスキル定義 • 社員教育 順にご紹介
  15. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­1.テスト⾃動化プロジェクトガイドライン策定 14

    l 概要 • テスト⾃動化プロジェクトを進めるにあたって必要なことをまとめ たガイドライン l 使いどころ • ベリサーブでテスト⾃動化を含むプロジェクトを⾏う際に参照 l ベース • ISTQBのTestAutomationEngineerシラバスや、社内の事例、 社外の事例など
  16. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­1.テスト⾃動化プロジェクトガイドライン策定 15

    ▪ガイドラインの内容の⼀部 • テスト⾃動化の⽬的、成功要因と失敗要因 • gTAA, TAA, TAS • テスト⾃動化プロジェクトマネジメント • ⾃動化する/しないの選定 などなど ※社外秘のため⾮公開
  17. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­2.標準プロセス設定 16

    過去・・・ l テストの⾃動化をしようと思うと、個々の技術要素やツールのほ うに意識が向いてしまい、失敗することがあった l 「⽬的をはっきりさせましょう」など、ピンポイントでのノウハ ウは浸透しているが、うまく活⽤できていない テスト⾃動化をどう進めていけばいいのか 全体像を明確にするために標準プロセスを設定した
  18. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­3.テスト⾃動化エンジニアのロール・スキル定義 18

    過去・・・ l テスト⾃動化プロジェクトを⾏うにあたって、どんなスキルを もったエンジニアがいればいいのかわからない l テスト⾃動化できるようになろう︕と⾔われても、何をどのくら い⾝に付ければいいのかわからない ロールを設定し、各ロールに求められるスキルを定義することで l テスト⾃動化プロジェクトを⾏うために必要なロールを明⽰ l テスト⾃動化に必要なスキルを可視化
  19. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­3.テスト⾃動化エンジニアのロール・スキル定義 19

    ロール スキル ⾃動テストシステム アーキテクト CIを含めた⾃動テストシステム全体の設計ができる 既存テストケースでのPOCができる POCを通じて費⽤対効果算出ができる ⾃動テストレポートの設計ができる テスト⾃動化エンジニアに対して保守性を確保するための指導、施策ができる ⾃動テスト プロジェクトマネージャ ⾃動テストシステムの要件定義ができる テスト⾃動化の計画が作れる ⾃動テストシステム開発のリソース(ヒトモノカネ)管理ができる テスト⾃動化プランナー テスト⾃動化ツール選定(製品の⾃動化I/Fの⾒極め)ができる お客様テスト計画のどこをいつ⾃動化できるか⾒極められる 既存テストケースのテスト⾃動化向け変換可能性を⾒極められる ⾃動テストシステム 運⽤エンジニア ⾃動テストシステムの⽇々の運⽤ができる 製品、テストケースの改変による保守ができる ⾃動テストコードの構成をバージョンアップできる テスト⾃動化エンジニア 担当ドメインの主たるSWがどのように動作しているかを概ね把握している 製品、テストケースの理解ができる ⾃動テストコードの開発ができる
  20. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­3.テスト⾃動化エンジニアのロール・スキル定義 20

    ▪ロール間のレベル関係 ⾃動テストシステム運⽤エンジニア テスト⾃動化エンジニア ⾃動テストシステム アーキテクト ⾃動テスト プロジェクト マネージャ テスト⾃動化 プランナー ⾼
  21. Copyright © 2019 VeriServe Corporation All Rights Reserved. 21 ▪各ロールが担当する主な範囲

    3­3.テスト⾃動化エンジニアのロール・スキル定義 自動テストシステム アーキテクト
  22. Copyright © 2019 VeriServe Corporation All Rights Reserved. 22 ▪各ロールが担当する主な範囲

    3­3.テスト⾃動化エンジニアのロール・スキル定義 自動テスト プロジェクトマネージャ
  23. Copyright © 2019 VeriServe Corporation All Rights Reserved. 23 ▪各ロールが担当する主な範囲

    3­3.テスト⾃動化エンジニアのロール・スキル定義 自動テスト プランナー
  24. Copyright © 2019 VeriServe Corporation All Rights Reserved. 24 ▪各ロールが担当する主な範囲

    3­3.テスト⾃動化エンジニアのロール・スキル定義 自動テストシステム 運用エンジニア
  25. Copyright © 2019 VeriServe Corporation All Rights Reserved. 25 ▪各ロールが担当する主な範囲

    3­3.テスト⾃動化エンジニアのロール・スキル定義 テスト自動化エンジニア
  26. Copyright © 2019 VeriServe Corporation All Rights Reserved. 3­4.社員教育 26

    l 研修の開催 • テスト⾃動化関連研修を毎週 • 数⽇〜数週間の⾃動テスト集中トレーニング l 教育内容 • Pythonプログラミング, 単体テスト • Selenium+Pythonでのテスト⾃動化 • Gitを使ったバージョン管理、Jenkins等でのCI構築 • 商⽤の⾃動テストツールを使ったテスト⾃動化 など。資料は全て社内展開し、⾃学も可能 (⾔語やFWは変わりうるが)これらのスキルを テストエンジニア全員が⾝に着けることを⽬指す
  27. Copyright © 2019 VeriServe Corporation All Rights Reserved. ⽬次 27

    0.はじめに 1.⾃⼰紹介・会社紹介 2.抱えていた問題 3.解決のための取り組み 4.成果と今後 5.まとめ
  28. Copyright © 2019 VeriServe Corporation All Rights Reserved. 4­1.取り組みの主な成果 28

    l 社内のノウハウ共有促進 • ガイドラインやプロセス策定にあたり、各部署のメンバーで協議し、 様々なテスト対象・業種で利⽤できるものを作成 l プロジェクトの安定運営 • 例えば炎上件数がN割減った、というデータは出せず・・・ • テスト⾃動化プロジェクトに途中からJoinするメンバーの レベル底上げ l ⽂化の浸透 • 特に社員教育とロールスキル設定によって、社内でテスト⾃動化の ⽂化が広まってきた • ⾮エンジニア職からもテスト⾃動化を学びたいという要望が出て、 教育を⾏っている
  29. Copyright © 2019 VeriServe Corporation All Rights Reserved. 4­2.⽬指す姿と今後 29

    ウチのエンジニアは皆テスト⾃動化を あたりまえにできます という状態を実現するために l ガイドラインやプロセスなどの利⽤促進 l 教育の継続 をやっていく
  30. Copyright © 2019 VeriServe Corporation All Rights Reserved. ⽬次 30

    0.はじめに 1.⾃⼰紹介・会社紹介 2.抱えていた問題 3.解決のための取り組み 4.成果と今後 5.まとめ
  31. Copyright © 2019 VeriServe Corporation All Rights Reserved. 5.まとめ 31

    l テスト⾃動化プロジェクトを効果的に&安全に進めるために、 • ガイドライン • プロセス • ロール、スキル などの策定・設定をし、これらに基づいて教育を強化した l 社内の横連携促進とテスト⾃動化のスキルアップに繋がった
  32. Copyright © 2019 VeriServe Corporation All Rights Reserved. 1. ⼿動テストはなくならない

    2. ⼿動でおこなって効果のないテストを⾃動化しても無駄である 3. ⾃動テストは書いたことしかテストしない 4. テスト⾃動化の効⽤はコスト削減だけではない 5. ⾃動テストシステムの開発は継続的におこなうものである 6. ⾃動化検討はプロジェクト初期から 7. ⾃動テストで新種のバグが⾒つかることは稀である 8. テスト結果分析という新たなタスクが⽣まれる 引⽤︓テスト⾃動化研究会「テスト⾃動化の8原則」より https://sites.google.com/site/testautomationresearch/test_automation_principle テスト⾃動化の8原則