Slide 1

Slide 1 text

mabl導⼊記 masuhara (株式会社ピースオブケイク) 1

Slide 2

Slide 2 text

⾃⼰紹介 増原賢秀(ますはら たかひで) @masalajpn Test Automation Engineer at 株式会社ピースオブケイク(以降、ピ社) Organizer of #SeConfTokyo CyberAgent -> 無職 -> freee -> ピ 2

Slide 3

Slide 3 text

今⽇話すこと mablを1年弱運⽤してきて得た諸々 3

Slide 4

Slide 4 text

テスト対象サービス 記事を書いて販売したり、他のクリエイターを⽀援したりできます Web(PC, mobile), モバイルアプリ(iOS/android) #ソフトウェアテスト をよろしくお願いします 今⽇はPC webの話をします 4

Slide 5

Slide 5 text

開発チーム ⼈数構成 noteプロダクトチーム Serverside/Frontend 約16名 SRE 約3名 Mobile APP 約2名 ML 約4名 デザイン 約6名 Test Automation Engineer 1名 (私) 過去にpuppeteerで主要なURLを開くのを⾃動化→動かなくなって引退 毎営業⽇productionデプロイ やってます 5

Slide 6

Slide 6 text

mablの簡単な紹介 ブラウザで使えるE2E⾃動テスト作成&実⾏saas mabl trainer(chrome extension)によるtest作成機能 mablのサーバー上でtestを並列実⾏ auto-healingで利⽤するロケータを⾃動修正 ⾒た⽬の変更もoption的に教えてくれる ピ社は⽇本で最初の有償顧客 6

Slide 7

Slide 7 text

なぜsaasなのか エンジニア積極採⽤中(テストエンジニアの枠はまだない) E2Eテストの運⽤って⼤変 シナリオに問題がなくても落ちることがある chromedriverが古い インスタンスの調⼦が悪い 必要な⾃動テストはE2Eだけじゃない E2Eの運⽤をしつつ他のレイヤーのテストに⼿を出せるようにしたい そのためにはE2Eの運⽤コストをできるだけ下げたい ダメなら課⾦を⽌めればいい 7

Slide 8

Slide 8 text

なぜmablなのか ユーザー数が増えてもプランが上がらない mablを開発者にオープンにできる mabl trainerが使いやすい ブラウザで(割と)楽にシナリオ作成とメンテができそう 変数作成やapiによる実⾏、slack連携などE2Eメンテに⼗分な機能が揃っていた 安定して動いていた これ⼤事 8

Slide 9

Slide 9 text

これだけ知っとくといいよ! mabl⽤語集 test テストのシナリオ。ブラウザで実⾏する操作が列挙されている plan 実⾏環境、実⾏するtest、落ちたときリトライするか などの設定がまとまったもの flow testで実⾏する操作をまとめたもの。これが使えれば初⼼者卒業 9

Slide 10

Slide 10 text

ピ社では test (約20) signup, 記事投稿, マガジン作成, 有料記事を購⼊ plan (約3) dev兼staging環境, production 1実⾏で約5min.chromeのみ flow (約25) signup, ID作成, 記事投稿まわりなどの共通処理 10

Slide 11

Slide 11 text

デモのお時間 シナリオ作成とクラウド実⾏の様⼦をお⾒せします 11

Slide 12

Slide 12 text

こんな機能も使ってます datatableで定義した値をつかってdata-driven testing ⼀つのtestで複数の条件のテストが可能 ピ社ではnote記事内のコンテンツembedの確認に利⽤ mabl mailboxでサービスから送信されたメールの受信確認 12

Slide 13

Slide 13 text

testsの実⾏タイミング dev兼staging環境にデプロイされたとき productionデプロイされたとき jenkinsのデプロイjobの中でplanを指定してdeployment apiを叩く 13

Slide 14

Slide 14 text

⼀ヶ⽉間の状況 こーんな感じ 14

Slide 15

Slide 15 text

安定して動いてる? こーんな感じ 15

Slide 16

Slide 16 text

auto-healingってどう? 運⽤開始してから26回auto-healが動いている 16

Slide 17

Slide 17 text

良いところ1 chrome extensionが使いやすい ステップ毎のスクリーンショットが撮られていて、トラブルシューティングがしやすい アップデートが⾮常に頻繁に⾏われる。最近特にリリースが多い https://help.mabl.com/v1.0/blog/ で更新をチェック! バグの報告から対応までが速い jenkinsからの⾃動実⾏設定もcurlコマンドビルダーがあるので楽 ドキュメントやヘルプ動画が充実しているし、更新頻度が⾼い 実⾏環境のメンテをしなくて良いの最⾼ 開発者に落ちたtestの修正してもらった mabl mailbox便利 みんなが⼤好きなDark modeがある 17

Slide 18

Slide 18 text

良いところ2 プロダクト改善アイデアを出せる slack通知の改善 plan実⾏が連続して成功した場合に通知 plan実⾏開始時に通知 18

Slide 19

Slide 19 text

これから?なところ(⼀部) サーバーが海外にあるので⼿元で動いてもmabl上で実⾏するとエラーになることがある mablに向かない画⾯がある ⾃動化を諦めたシナリオ、あります(動画note) メンテする⼈が増えたらどうなる?多⼈数でのメンテに向いてるのか? 現⾏の仕様だと、あまり向いてるとはいえない 19

Slide 20

Slide 20 text

これからmabl⼤⾂になる皆様へ1 test, plan, flowなどmablで使う機能の理解 ツールにあったシナリオを⾃動化する mablサポート、カスタマーサクセスとのやりとりは英語。ただしテキストベースのコミ ュニケーション(slack, intercom chat, mail)がメインです サポートとのやりとりで、時差によるタイムラグが発⽣する オンボーディング時はストレスが多少あるかもしれないが、運⽤が始まればそこま で⼤きな問題にはならないと思っています 20

Slide 21

Slide 21 text

これからmabl⼤⾂になる皆様へ2 ブラウザ⾃動テストのお作法を理解する 機能的に不⼗分なところでJavaScriptを使う、共通処理はflowにまとめておく、ト ラブルシューティングなど 積極的にmablプロダクト改善サイクルに関わる バグレポート submit feature idea 検証の時間を⼗分に取る。trial期間は他の仕事は調整して、ひたすら触りまくる 実⾏結果は早い段階で開発者がいるslackの部屋に積極的に通知 存在を他の開発者に知ってもらうきっかけづくり testが落ちたときのmabl⼤⾂のリアクションやtest修正の思考過程、mablサポートとの やりとりをslackに積極的に通知 こういうときに落ちるんだと他の開発者に知ってもらうきっかけづくり 可能なら検証・導⼊は複数⼈で担当しましょう 21

Slide 22

Slide 22 text

これからmabl⼤⾂になる皆様へ3 product updateの内容を⼀⾔でまとめてslackに書く 英語はあまり読まれないと思うので 22

Slide 23

Slide 23 text

これからの課題 what (not) to test を決める CI連携。PRベースで実⾏する環境をどうするか(難易度⾼そう) mablのメンテを他のエンジニアができるようにする E2Eの外に出る 23

Slide 24

Slide 24 text

mablのメンテを他のエンジニアができるようにする 教材(google slide)を作って全4回。参加者約4名。ハンズオンがメイン そこそこ好評。開発者のオンボーディングに⼊れたい。 24

Slide 25

Slide 25 text

わかったこと mablも完璧ではない ⾃前で実装しようがツール使おうが運⽤は⼿間がかかる saasでもプロダクトフィードバックをすることで変えていける部分はある ⾃前でシステムを構築する前に検討の価値はあると思う ⼀⼈でやらないほうがいいです 25

Slide 26

Slide 26 text

まとめ ピ社でもまだまだ試⾏錯誤中です 試して失敗して学びましょう 26

Slide 27

Slide 27 text

special thanks mabl検証から導⼊、運⽤フェーズまで信じて任せてくれたCTO今さんはじめピ社のみな さん #STAC2019 実⾏委員の皆様 27

Slide 28

Slide 28 text

この辺はきいてください 導⼊までの流れ ざっくり費⽤感 他ツールとの⽐較 28

Slide 29

Slide 29 text

ありがとうございました ask the speakerブースでお待ちしてます 29