Slide 1

Slide 1 text

中の人が語るテスト自動化SaaSのCS - カスタマーサポート、そしてサクセスへ - ソフトウェアテスト自動化カンファレンス2020 Dec 5th, 2020 Meiko Hori

Slide 2

Slide 2 text

自己紹介 Meiko Hori 堀 明子 Customer Success Engineer @ Autify ● 略歴 ○ SIerに十数年所属。客先常駐 SES中心 ○ アプリ開発/システム運用/プロジェクトリーダー ○ コロナ禍に初転職、今年 8月からAutifyに参画 ● アウトプット ○ 英語の技術記事の和訳、書籍の翻訳にも挑戦中 ✍ ○ https://yakst.com/ja/users/meiq/translated

Slide 3

Slide 3 text

本日お話しする内容 私の所属するAutifyのE2Eテスト自動化プラットフォームを題材に ● ユーザーへどのようなサポートを提供し ● ユーザーがサービスを活用できているサクセス状態を目指しているか についてお話しします。 [対象外の内容] ● Autifyの仕組みやアーキテクチャに関する詳しい話 ● カスタマーサクセス一般の話 ご興味のある方はAsk the speakersでお声がけいただくか、最後の参考文献をご覧ください!

Slide 4

Slide 4 text

E2Eテストの自動化、してますか? 絶賛自動化推進中! いまのところ手動だが、ど うやろうか検討中

Slide 5

Slide 5 text

E2Eテストの準備、どうですか? あれもやりたい これもやりたい データも環境も 準備に手間がかかる

Slide 6

Slide 6 text

E2Eテスト、自動化してみていかがですか? 実際やりたいところま で手が回らない できたはできたけど壊れが ち、実行が遅い

Slide 7

Slide 7 text

自動化したE2Eテスト、順調に回り続けていますか? アプリ改修のたびに コードをメンテするの が面倒 なんだか思いもよらない理 由で失敗する

Slide 8

Slide 8 text

E2Eテストの自動化、いろいろ大変 導入段階の壁 ● テスト目的の明確化、優先度づけ ● 何が自動化できて、何が自動化できないのかの切り分け ● 自動テスト用のコードの準備 ● 実行環境の整備 運用段階の壁 ● アプリの変化に追従するコードのメンテナンス ● 実行環境のメンテナンス ● 壊れやすいテストとの戦い → 専門的なスキルが必要、そもそも対応できる人員がいないという問題

Slide 9

Slide 9 text

注文の多いウェブアプリのE2Eテスト tesu E2EテストをCIに組み込 んで開発したい 現在は手動でやってるリ グレッションテストを自動 化したい クロスブラウザテストを がっつりやりたい 困難な課題に伴う手間を軽減する上で、SaaSを活用するのはひとつの選択肢 皆様こんにちは Autifyです! IE対応が要る んだけど スマホ実機も ぬるぬる動く SPAも ある程度の速さで回 せないと運用が厳し い

Slide 10

Slide 10 text

ユーザー環境 Autifyの提供するウェブアプリ向けE2Eテストのサービス テスト作成 ● ブラウザ操作がAutifyに記録される ● コードを書かなくても直感的にテストシナリ オを作成可能 テスト実行 ● Autify側でご用意したブラウザ環境からテ スト対象アプリへアクセスし、繰り返しテスト を実行可能 ● テスト対象アプリにおける変化も軽微なも のならシナリオが自動で追従 テスト対象ウェブアプリ テスト作成 テスト実行 自動テストのシナリオ作成、環境の準備、テストのメンテナンスの負荷を大きく軽減

Slide 11

Slide 11 text

さて、サービス提供者側の目線になってみると テスト対象 ウェブアプリA ユーザーAさんの場合 モダンSPAをクロスブラウザテス トしたい! テスト対象 ウェブアプリB ユーザーBさんの場合 7, 8年選手の画面をスマホ実機 でテストしたい! テスト対象 ウェブアプリC ユーザーCさんの場合 E2Eテストを開発プロセスに組 み込んで高速実行したい!

Slide 12

Slide 12 text

あらゆる顧客のE2Eテストをサポートするには 中の人たちが頑張ります! (チャットからいつでもお問い合わせください)

Slide 13

Slide 13 text

開発チーム CSチーム ようこそ、Autifyのカスタマーサポートへ。 技術的な質問 &調査依頼 TSE &リードメンバー Backlog ユーザー Chat チャットからはじまる、お問い合わせの旅

Slide 14

Slide 14 text

カスタマーサポートの流れ 01. テキスト 開発対応 (Engineering) ● プロダクトの改修とリ リース ● 緊急性の高い障害発 生の場合はより臨機応 変に対応 一次切り分け (CS) ● 技術サポートが必要な 内容か、そうでないかを まず判断 (※) ● 既存のナレッジや、 チーム内での解決を目 指す 技術的調査 (TSE) ● CSで解決できなかった 事象を詳しく調査 ● ワークアラウンドがある 場合にはCSへ提供、プ ロダクト改修が必要な 場合には開発対応へ ※機能追加リクエストや契約に関する問い合わせのケースもある

Slide 15

Slide 15 text

どんなお問い合わせが来るのか サービスの使いかたに関する質問 ● このようなテストをしたいのだがどうしたらよいか? ○ 機能を活用しながらテストの作り方をアドバイス ○ 例) データドリブンテスト、テストの並列実行、JavaScriptを活用した値の生成 機能に関する要望・リクエスト ● こんな機能が欲しい、こうなったらもっと便利 ○ プロダクトの改善、新機能開発へ反映 テストが予期せぬ失敗をした ● 原因は個々の状況によりさまざま (後述) サポート対応の多くを占める

Slide 16

Slide 16 text

予期せぬテスト失敗の原因は ❌ レコーディング時は失敗しな いのにAutifyでのテスト実行で 失敗する レコーディング環境とテスト実行 環境に差異に起因する (通信要 件など) ❌ 特定のブラウザだけ失敗 ブラウザ固有の問題 ❌ テスト対象の変化が大きく Autifyの追随が難しくなった Autifyが要素の判断材料として いる、要素のDOM上の特徴が 毎回変わってしまう ❌ 顧客の実装特有の挙動 テスト対象のアプリ固有の JavaScriptの実装と競合する ❌ 繰り返しテストを実行してい ると失敗するようになる 状態の変化に起因するもの、テ ストの冪等性が保たれないつく りのもの 環境起因 テスト対象-Autify間起因 テストの作り方に起因

Slide 17

Slide 17 text

発生した問題の原因 サポート例 予期せぬテストの失敗に対するサポート例 アプリ側で毎回一意な値が入力されることを 想定されていた データなどの状態変化がアプリの動作に影響 している テスト対象のアプリケーションの変化が大き く、Autifyが追随できなくなった 一意な値を生成するJavaScriptをご案内 データの生成・削除なども含めたシナリオの作 り方をご案内 テストシナリオの再レコーディングや、要素を 安定して選択できるようにするワークアラウン ドをご案内 自動テストの課題の本質的な課題には、Autifyを使っても取り組むことになる

Slide 18

Slide 18 text

提供するサービスの性質上のサポートの難しさ 問題の切り分けの難しさ ● ユーザー環境とAutify側の両方にまたがる ● Autifyのサービス自体の進化による挙動の変化 問題の再現自体の難しさ ● ユーザー環境の状態も変化する ○ 例) アプリのリリース・データの状態 ● 問題が解決したことも同様の背景から難しい 難しい問題も多いのだけれども... 解決できたときの喜びはひとしおです ユーザー環境 テスト対象

Slide 19

Slide 19 text

まとめ Autifyのようなサービスを使っても、自動テストにおける課題は共通で存在する ● SaaSの利用は自動テスト実現にあたっての一つの手段である ● サービスをいかに活用して自動テストに載せていくかが鍵となる サポート観点でいうと、多様なユーザー環境・テストのニーズに応えるのは容易ではない ● 地道ながらもやりがいのあるお仕事 ● ユーザーと対話しながらサービスを活用できている状態(サクセスの形)を考えていく ご興味のある方は是非、弊社採用情報もご覧ください! https://autify.com/ja/careers

Slide 20

Slide 20 text

01. テキスト 参考資料 ▼FargateとLambdaで作るスケーラブルな E2Eテスト実行基盤 https://speakerdeck.com/doublemarket/building-a-scalable-e2e-test-execution-platform-with-a ws-fargate-and-lambda ▼全てを知りたいと思う人のための「テクニカルサポートエンジニア」という選択肢 https://blog.autify.com/ja/about-tse ▼公用語は英語? - AutifyのCSチームと開発チームの社内コミュニケーションにおける取り組み https://blog.autify.com/ja/cs-dev-communication

Slide 21

Slide 21 text

ご清聴ありがとうございました!