BASEプロダクトチームブログ

ネットショップ作成サービス「BASE ( https://thebase.in )」、ショッピングアプリ「BASE ( https://thebase.in/sp )」のプロダクトチームによるブログです。

第17回Quesにて「Agile Testingを夢見たテスト自動化」というタイトルで登壇、テスト自動化のしくじりについて話しました

こんにちは。BASE BANK 株式会社 Dev Division にて、Engineering Manager をしている東口(@hgsgtk)です。

TL;DR

  • 第 17 回 Ques にて「CI のためのテスト自動化」というテーマでの登壇依頼をいただき「Agile Testing を夢見たテスト自動化 〜ATDD への挑戦から始まる 1 年間の試行錯誤〜」というタイトルで発表しました
  • 実際にうまく行かなかったことも含めてテスト自動化のしくじりを話しました
  • Agile Testing・ATDD/BDD/SBE に興味がある方に参考になる資料を公開しました

第17回Quesとは

Ques とは Software 品質保証に関わる QA エンジニアの活性化を目的とした QA 専門イベントです。

ques.connpass.com

Software品質保証に関わるQAエンジニアの活性化を目的としたQA専門イベントです。 会社間の垣根を越え、情報交換・親交の場を提供することで 日本のSoftware品質保証を盛り上げていく場にしたいと思います。

当日のアーカイブは YouTube にて配信されています。

www.youtube.com

今回、kyon_mm さんとのイベント『TDDとATDD 2021』や、公開していた資料『実践ATDD 〜TDDから更に歩みを進めたソフトウェア開発へ〜』を見てくださっていた QUES 事務局の方から依頼を頂き 45 分ほど講演の時間をいただきました。

f:id:khigashigashi:20211124222522p:plain
登壇に至る経緯

登壇内容

個人的に 3 部構成の最終盤という意気込みで作成した資料です。

登壇の際に用いた資料はこちらです。

タイトルの副題「ATDD への挑戦から始まる 1 年間の試行錯誤〜」にもある通り、実際に ATDD(Acceptance Test-driven Development)の取り組みとそこから始まる試行錯誤について赤裸々にまとめています。ダメだった・できなかったこと、その考察も含めているのはなかなか珍しいと思うので、参考になると思います(少なくとも挑戦前・挑戦中の自分が見て参考になるようには設計しました)。

たとえば、テスト自動化のしくじりとして次のようなことを紹介しました。

  • HOW から課題提起してしまう
  • テストデータの用意が億劫で心折れる
  • 「E2E テスト」の解像度で議論してしまう

f:id:khigashigashi:20211124222544p:plain
人によって異なるE2Eのスコープ

もしかしたらこの画像だけは事前に小出しに上げていたツイートで見た方がいるかもしれません。

当日投稿したTweetは多くの方に拡散いただき、リアルタイムで参加された方以外からも多くの反応をいただきました。はてなブックマークでは翌日起きたら 100 はてぶ(当記事執筆時点で 155)を超えていて、自分・自チームの試行錯誤が少ならからず同じ戦場で戦う方々の刺激になるものになってよかったなと思います。

当日のツイートは QUES 事務局の方々にまとめていただいていたので、こちらも補足資料として紹介しておきます。

togetter.com

Q and A

当日参加者の方に頂いた質問に対して答えたものを補足として置いておきます(その場だから喋ったみたいなクローズドなものもいくつかありましたので、それは当日参加の方だけのシークレット情報ってことで...)。

テストデータは毎回作るとありましたが、テスト終了後は消してクリーンアップするでしょうか?

実際まだテスト終了後のクリーンアップはしていません。新規にユーザーを作成すると gauge-xxx みたいなユーザーが貯まることにはなっているのが現状です。ちょうど先日、ゴミデータとして溜まってしまっていることが開発業務内で課題になったことがあり、定期的にクリーンアップするような試みを現在進行系で行おうとしています。

本筋から外れますが、Circle CI のフローで Security Scan と書いてあったところでは具体的には何を実施してるんでしょうか。差し支えなければ教えていただけたら幸いです。

Circle CI のフローとはこちらのスライドです。

f:id:khigashigashi:20211124222609p:plain
Circle CI のワークフロー

Security Scan という箇所では trivy というツールでコンテナイメージのセキュリティスキャンしてます。

Playwright の選定は Capture & Replay で比較的メンテがしやすそうで選定されたという認識ですが、比較的TestCodeを書くスキルのないQA専任者のような人でもメンテナンスし続けられるような狙いもあったのでしょうか?

QA 専任者のような人でもってのも狙ってはいましたね。今回のペルソナになるメンバー(自分も含めて)はテスト自動化自体にしっかり時間を使って試行錯誤できないので、Capture & Replay でかつコミュニティの知見がある(ググったら出る)ってのも大事なポイントと捉えて選択しました。

おわりに

ozonohiroakiさんが発表された『これからのCI、これからのE2E自動テスト』もとてもおもしろかったです!PR-Driven E2E Testingの構想と実行、それに至るまでの個人・チーム全体の課題意識が赤裸々に語られていて、まさに Ques でしか聞けない内容だったと思います。個人的には Pull request・CI といった用語にも丁寧に事前解説されていて職種の多様性もカバーしている良い試みだな〜とか、立って登壇することで身振り手振りがオンライン上からも分かるのいいな〜とかスピーカー目線で参考になったこともいくつかあり感謝です。この場を借りて、ozonohiroakiさん素晴らしい発表ありがとうございました!

また、参加者の皆様のリアクションがたくさんいただけたのもありがたかったです。自分は Twitter と Discord と Zoom の chat 欄を表示しながらリアクション見ながら発表していました。なのでリアルタイムでコメントがいただければいただけるほどありがたいのですが、たくさんいただけたので「この辺は参考になったんだよかった〜」とか 45 分の間も安心しながら話すことができました。参加者の皆様ありがとうございました!

最後に、QUES 事務局の皆様イベントのセッティングから事前ミーティングでの期待値調整や当日の段取り・司会、その後のアンケート・フォローバックまでありがとうございました。第 17 回 Ques での発表を通じて自分の中で 1 つ棚卸しできました。このような機会をいただき光栄でしたし感謝申し上げます。

積極採用中!

おわりのおわりに、BASE では様々な職種採用募集中です!採用情報から BASE というサービスや組織のことや募集中の職種を確認できます。この記事に興味を持った方へのおすすめ職種を 2 点ご紹介して終わろうと思います。

当発表の舞台となったチームです。フルサイクルエンジニアを志向しており自分たちで開発したサービス・機能をグロース・サポートまで担当します。

ネットショップ作成サービス「BASE」の品質保証業務を担っていただく役割です。