Copyright © 2019 VeriServe Corporation All Rights Reserved.テスト⾃動化プロジェクトを⽀える技術と仕組み2019年11⽉30⽇伊藤由貴システムテスト⾃動化カンファレンス2019
View Slide
Copyright © 2019 VeriServe Corporation All Rights Reserved.0.はじめに1■今回お話する内容• ベリサーブが様々な会社さんにテスト⾃動化サービスを提供するにあたって、どんな⼯夫をしているか■たとえばこんな場⾯で役⽴ててほしい• これからテスト⾃動化を始める• 今うまくいっていないテスト⾃動化を⽴て直す• 社内にテスト⾃動化を広める■対象外• 使っている具体的なツール、ライブラリの話
Copyright © 2019 VeriServe Corporation All Rights Reserved.0.はじめに2■ことば• テスト⾃動化≒テスト実⾏⾃動化、として話します■資料の公開• のちほどSpeaker Deckで公開予定です ※編集の可能性有
Copyright © 2019 VeriServe Corporation All Rights Reserved.⽬次30.はじめに1.⾃⼰紹介・会社紹介2.抱えていた問題3.取り組み4.成果と今後5.まとめ
Copyright © 2019 VeriServe Corporation All Rights Reserved.11.⾃⼰紹介4伊藤由貴(@yoshikiito)株式会社ベリサーブIT企画開発部 ⾃動テスト推進課新卒で⼊社以降、ずっとテスト⾃動化関連のお仕事。テスト⾃動化の⾃社ツールの開発→組み込み機器・業務システム・Webアプリケーションなどのテスト⾃動化業務→テスト⾃動化のエヴァンジェリスト業その他、ASTER正会員(2019~)/JaSST東北実⾏委員(2018~)等イマココ
Copyright © 2019 VeriServe Corporation All Rights Reserved.12.会社紹介5株式会社べリサーブ2001年に当時の親会社から独⽴した、現在は品質創造企業。ソフトウェアテスト、テストプロセスの診断や改善、負荷検証や脆弱性検証などなど、品質向上に関わるサービスを提供。その他特徴としては• 社員は約1000⼈の規模• テスト対象や業種が様々。Web、モバイル、組み込み etc…• 客先常駐がメインで、短ければ⼀ヶ⽉、⻑いと数年など
Copyright © 2019 VeriServe Corporation All Rights Reserved.12.会社紹介6■テスト⾃動化サービスl エンジニア数名が客先常駐し⾃動テストの要件定義/トライアル/⾃動テストシステム構築/コーディングなどを⾏うl 依頼をいただくキッカケ• テストを⾃動化したいが何から始めればいいかわからない• ⼀度チャレンジしたが失敗したので、プロの⼿を借りたい• 既にテスト業務を請け負っているお客様からの追加依頼orこちらからのご提案
Copyright © 2019 VeriServe Corporation All Rights Reserved.テスト⾃動化サービス概要• ツール検討• ⾃動テストシステムの導⼊可否調査• ⾃動テストシステムの計画および構築• ⾃動テストスクリプト開発• ⾃動テストの保守/運⽤とレポーティング• マニュアル作成• トレーニングトライアル⾃動テスト構築⾃動テスト運⽤お引渡し1 2 3 4実施内容• トライアルレポート• テスト⾃動化計画/⾒積• ⾃動テストスクリプト(テストケース数件分)• ⾃動テストシステム• ⾃動テストスクリプト• ⾃動テストの運⽤報告• ⾃動テスト結果分析レポート• 構築、運⽤マニュアル• 保守マニュアル• トレーニング資料⼀式成果物例会社のサービス紹介資料より
Copyright © 2019 VeriServe Corporation All Rights Reserved.⽬次80.はじめに1.⾃⼰紹介・会社紹介2.抱えていた問題3.取り組み4.成果と今後5.まとめ
Copyright © 2019 VeriServe Corporation All Rights Reserved.2.抱えていた問題9理想• テスト⾃動化によって、お客様の製品のQCD向上に寄与• ベリサーブを⾼く評価してもらい、次のお仕事につなげるしかし・・・⼀部プロジェクトの現実• お客様の製品のQCDが上がらない• 炎上
Copyright © 2019 VeriServe Corporation All Rights Reserved.2.抱えていた問題10社内の横の連携不⾜常駐している場所がバラバラ、テスト対象もバラバラで、部署やチームごと個別に頑張っている状態だった。エンジニアのテスト⾃動化スキル不⾜所謂「要員ガチャ」状態。スキルが無いとテスト⾃動化のお仕事ができず、お仕事ができないと経験が積めずにスキルが⾝につかない、のループ。12マネージャのテスト⾃動化知⾒不⾜テスト⾃動化に関する知⾒が少ないと、プロジェクトを進める上でのリスクを⾒落としたり、⾒積の精度が低かったりといった問題が起こる。3
Copyright © 2019 VeriServe Corporation All Rights Reserved.2.抱えていた問題11■既存の資料・概念も役に⽴つ、が・・・• テスト⾃動化の8原則をはじめ、これまで様々な「コツ」「ベストプラクティス」「落とし⽳」「パターン」などが公開され、ナレッジが蓄積されてきた• これらも⼗分役に⽴つものではあるが、初⾒の⼈がうまく使えていない現状もあったもう少し具体的な「仕組み」化が必要と考えた
Copyright © 2019 VeriServe Corporation All Rights Reserved.⽬次120.はじめに1.⾃⼰紹介・会社紹介2.抱えていた問題3.取り組み4.成果と今後5.まとめ
Copyright © 2019 VeriServe Corporation All Rights Reserved.3.取り組み13以下のような施策を⾏った(ている)• テスト⾃動化プロジェクトガイドライン策定• プロセス定義• ロールとスキル定義• 社員教育順にご紹介
Copyright © 2019 VeriServe Corporation All Rights Reserved.31.テスト⾃動化プロジェクトガイドライン策定14l 概要• テスト⾃動化プロジェクトを進めるにあたって必要なことをまとめたガイドラインl 使いどころ• ベリサーブでテスト⾃動化を含むプロジェクトを⾏う際に参照l ベース• ISTQBのTestAutomationEngineerシラバスや、社内の事例、社外の事例など
Copyright © 2019 VeriServe Corporation All Rights Reserved.31.テスト⾃動化プロジェクトガイドライン策定15■ガイドラインの内容の⼀部• テスト⾃動化の⽬的、成功要因と失敗要因• gTAA, TAA, TAS• テスト⾃動化プロジェクトマネジメント• ⾃動化する/しないの選定などなど※社外秘のため⾮公開
Copyright © 2019 VeriServe Corporation All Rights Reserved.32.標準プロセス設定16過去・・・l テストの⾃動化をしようと思うと、個々の技術要素やツールのほうに意識が向いてしまい、失敗することがあったl 「⽬的をはっきりさせましょう」など、ピンポイントでのノウハウは浸透しているが、うまく活⽤できていないテスト⾃動化をどう進めていけばいいのか全体像を明確にするために標準プロセスを設定した
Copyright © 2019 VeriServe Corporation All Rights Reserved.32.標準プロセス設定17■作成した標準プロセス
Copyright © 2019 VeriServe Corporation All Rights Reserved.33.テスト⾃動化エンジニアのロール・スキル定義18過去・・・l テスト⾃動化プロジェクトを⾏うにあたって、どんなスキルをもったエンジニアがいればいいのかわからないl テスト⾃動化できるようになろう︕と⾔われても、何をどのくらい⾝に付ければいいのかわからないロールを設定し、各ロールに求められるスキルを定義することでl テスト⾃動化プロジェクトを⾏うために必要なロールを明⽰l テスト⾃動化に必要なスキルを可視化
Copyright © 2019 VeriServe Corporation All Rights Reserved.33.テスト⾃動化エンジニアのロール・スキル定義19ロール スキル⾃動テストシステムアーキテクトCIを含めた⾃動テストシステム全体の設計ができる既存テストケースでのPOCができるPOCを通じて費⽤対効果算出ができる⾃動テストレポートの設計ができるテスト⾃動化エンジニアに対して保守性を確保するための指導、施策ができる⾃動テストプロジェクトマネージャ⾃動テストシステムの要件定義ができるテスト⾃動化の計画が作れる⾃動テストシステム開発のリソース(ヒトモノカネ)管理ができるテスト⾃動化プランナーテスト⾃動化ツール選定(製品の⾃動化I/Fの⾒極め)ができるお客様テスト計画のどこをいつ⾃動化できるか⾒極められる既存テストケースのテスト⾃動化向け変換可能性を⾒極められる⾃動テストシステム運⽤エンジニア⾃動テストシステムの⽇々の運⽤ができる製品、テストケースの改変による保守ができる⾃動テストコードの構成をバージョンアップできるテスト⾃動化エンジニア担当ドメインの主たるSWがどのように動作しているかを概ね把握している製品、テストケースの理解ができる⾃動テストコードの開発ができる
Copyright © 2019 VeriServe Corporation All Rights Reserved.33.テスト⾃動化エンジニアのロール・スキル定義20■ロール間のレベル関係⾃動テストシステム運⽤エンジニアテスト⾃動化エンジニア⾃動テストシステムアーキテクト⾃動テストプロジェクトマネージャテスト⾃動化プランナー⾼
Copyright © 2019 VeriServe Corporation All Rights Reserved.21■各ロールが担当する主な範囲33.テスト⾃動化エンジニアのロール・スキル定義自動テストシステムアーキテクト
Copyright © 2019 VeriServe Corporation All Rights Reserved.22■各ロールが担当する主な範囲33.テスト⾃動化エンジニアのロール・スキル定義自動テストプロジェクトマネージャ
Copyright © 2019 VeriServe Corporation All Rights Reserved.23■各ロールが担当する主な範囲33.テスト⾃動化エンジニアのロール・スキル定義自動テストプランナー
Copyright © 2019 VeriServe Corporation All Rights Reserved.24■各ロールが担当する主な範囲33.テスト⾃動化エンジニアのロール・スキル定義自動テストシステム運用エンジニア
Copyright © 2019 VeriServe Corporation All Rights Reserved.25■各ロールが担当する主な範囲33.テスト⾃動化エンジニアのロール・スキル定義テスト自動化エンジニア
Copyright © 2019 VeriServe Corporation All Rights Reserved.34.社員教育26l 研修の開催• テスト⾃動化関連研修を毎週• 数⽇〜数週間の⾃動テスト集中トレーニングl 教育内容• Pythonプログラミング, 単体テスト• Selenium+Pythonでのテスト⾃動化• Gitを使ったバージョン管理、Jenkins等でのCI構築• 商⽤の⾃動テストツールを使ったテスト⾃動化など。資料は全て社内展開し、⾃学も可能(⾔語やFWは変わりうるが)これらのスキルをテストエンジニア全員が⾝に着けることを⽬指す
Copyright © 2019 VeriServe Corporation All Rights Reserved.⽬次270.はじめに1.⾃⼰紹介・会社紹介2.抱えていた問題3.解決のための取り組み4.成果と今後5.まとめ
Copyright © 2019 VeriServe Corporation All Rights Reserved.41.取り組みの主な成果28l 社内のノウハウ共有促進• ガイドラインやプロセス策定にあたり、各部署のメンバーで協議し、様々なテスト対象・業種で利⽤できるものを作成l プロジェクトの安定運営• 例えば炎上件数がN割減った、というデータは出せず・・・• テスト⾃動化プロジェクトに途中からJoinするメンバーのレベル底上げl ⽂化の浸透• 特に社員教育とロールスキル設定によって、社内でテスト⾃動化の⽂化が広まってきた• ⾮エンジニア職からもテスト⾃動化を学びたいという要望が出て、教育を⾏っている
Copyright © 2019 VeriServe Corporation All Rights Reserved.42.⽬指す姿と今後29ウチのエンジニアは皆テスト⾃動化をあたりまえにできますという状態を実現するためにl ガイドラインやプロセスなどの利⽤促進l 教育の継続をやっていく
Copyright © 2019 VeriServe Corporation All Rights Reserved.⽬次300.はじめに1.⾃⼰紹介・会社紹介2.抱えていた問題3.解決のための取り組み4.成果と今後5.まとめ
Copyright © 2019 VeriServe Corporation All Rights Reserved.5.まとめ31l テスト⾃動化プロジェクトを効果的に&安全に進めるために、• ガイドライン• プロセス• ロール、スキルなどの策定・設定をし、これらに基づいて教育を強化したl 社内の横連携促進とテスト⾃動化のスキルアップに繋がった
テスト⾃動化ができるorやりたいエンジニアを募集していますテスト⾃動化の導⼊or改善に関するご相談をお受けします
本資料の著作権は株式会社ベリサーブに帰属します。弊社の同意なしに資料の全部または⼀部を複製、コピー、公表、伝達を⾏うことは著作権侵害となります。本資料からのテキスト、図版の引⽤や転⽤については弊社同意により弊社資料からの出典である旨記載し、ご利⽤をお願いします。また、会社名・製品名・サービス名は、各社の登録商標または商標です。
Copyright © 2019 VeriServe Corporation All Rights Reserved.補⾜資料
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原則