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

中の人が語るテスト自動化SaaSのCS - カスタマーサポート、そしてサクセスへ - STAC 2020

Meiko Hori
December 05, 2020
3k

中の人が語るテスト自動化SaaSのCS - カスタマーサポート、そしてサクセスへ - STAC 2020

Meiko Hori

December 05, 2020
Tweet

Transcript

  1. 自己紹介 Meiko Hori 堀 明子 Customer Success Engineer @ Autify

    • 略歴 ◦ SIerに十数年所属。客先常駐 SES中心 ◦ アプリ開発/システム運用/プロジェクトリーダー ◦ コロナ禍に初転職、今年 8月からAutifyに参画 • アウトプット ◦ 英語の技術記事の和訳、書籍の翻訳にも挑戦中 ✍ ◦ https://yakst.com/ja/users/meiq/translated
  2. E2Eテストの自動化、いろいろ大変 導入段階の壁 • テスト目的の明確化、優先度づけ • 何が自動化できて、何が自動化できないのかの切り分け • 自動テスト用のコードの準備 • 実行環境の整備

    運用段階の壁 • アプリの変化に追従するコードのメンテナンス • 実行環境のメンテナンス • 壊れやすいテストとの戦い → 専門的なスキルが必要、そもそも対応できる人員がいないという問題
  3. ユーザー環境 Autifyの提供するウェブアプリ向けE2Eテストのサービス テスト作成 • ブラウザ操作がAutifyに記録される • コードを書かなくても直感的にテストシナリ オを作成可能 テスト実行 •

    Autify側でご用意したブラウザ環境からテ スト対象アプリへアクセスし、繰り返しテスト を実行可能 • テスト対象アプリにおける変化も軽微なも のならシナリオが自動で追従 テスト対象ウェブアプリ テスト作成 テスト実行 自動テストのシナリオ作成、環境の準備、テストのメンテナンスの負荷を大きく軽減
  4. さて、サービス提供者側の目線になってみると テスト対象 ウェブアプリA ユーザーAさんの場合 モダンSPAをクロスブラウザテス トしたい! テスト対象 ウェブアプリB ユーザーBさんの場合 7,

    8年選手の画面をスマホ実機 でテストしたい! テスト対象 ウェブアプリC ユーザーCさんの場合 E2Eテストを開発プロセスに組 み込んで高速実行したい!
  5. カスタマーサポートの流れ 01. テキスト 開発対応 (Engineering) • プロダクトの改修とリ リース • 緊急性の高い障害発

    生の場合はより臨機応 変に対応 一次切り分け (CS) • 技術サポートが必要な 内容か、そうでないかを まず判断 (※) • 既存のナレッジや、 チーム内での解決を目 指す 技術的調査 (TSE) • CSで解決できなかった 事象を詳しく調査 • ワークアラウンドがある 場合にはCSへ提供、プ ロダクト改修が必要な 場合には開発対応へ ※機能追加リクエストや契約に関する問い合わせのケースもある
  6. どんなお問い合わせが来るのか サービスの使いかたに関する質問 • このようなテストをしたいのだがどうしたらよいか? ◦ 機能を活用しながらテストの作り方をアドバイス ◦ 例) データドリブンテスト、テストの並列実行、JavaScriptを活用した値の生成 機能に関する要望・リクエスト

    • こんな機能が欲しい、こうなったらもっと便利 ◦ プロダクトの改善、新機能開発へ反映 テストが予期せぬ失敗をした • 原因は個々の状況によりさまざま (後述) サポート対応の多くを占める
  7. 予期せぬテスト失敗の原因は ❌ レコーディング時は失敗しな いのにAutifyでのテスト実行で 失敗する レコーディング環境とテスト実行 環境に差異に起因する (通信要 件など) ❌

    特定のブラウザだけ失敗 ブラウザ固有の問題 ❌ テスト対象の変化が大きく Autifyの追随が難しくなった Autifyが要素の判断材料として いる、要素のDOM上の特徴が 毎回変わってしまう ❌ 顧客の実装特有の挙動 テスト対象のアプリ固有の JavaScriptの実装と競合する ❌ 繰り返しテストを実行してい ると失敗するようになる 状態の変化に起因するもの、テ ストの冪等性が保たれないつく りのもの 環境起因 テスト対象-Autify間起因 テストの作り方に起因
  8. 発生した問題の原因 サポート例 予期せぬテストの失敗に対するサポート例 アプリ側で毎回一意な値が入力されることを 想定されていた データなどの状態変化がアプリの動作に影響 している テスト対象のアプリケーションの変化が大き く、Autifyが追随できなくなった 一意な値を生成するJavaScriptをご案内

    データの生成・削除なども含めたシナリオの作 り方をご案内 テストシナリオの再レコーディングや、要素を 安定して選択できるようにするワークアラウン ドをご案内 自動テストの課題の本質的な課題には、Autifyを使っても取り組むことになる
  9. 提供するサービスの性質上のサポートの難しさ 問題の切り分けの難しさ • ユーザー環境とAutify側の両方にまたがる • Autifyのサービス自体の進化による挙動の変化 問題の再現自体の難しさ • ユーザー環境の状態も変化する ◦

    例) アプリのリリース・データの状態 • 問題が解決したことも同様の背景から難しい 難しい問題も多いのだけれども... 解決できたときの喜びはひとしおです ユーザー環境 テスト対象