【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜を開催しました!

こんにちは!
プレイドでインフラエンジニアをしている@ikemonnです。

本日は10/27(木)に開催しました「【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜」のレポートをお届けしたいと思います。

発表タイトル

  • ペパボを支える大統一CI基盤と人々
  • KARTEを支えるCI環境
  • 自動マルチブラウザテストを導入・運用した話
  • グーペのE2Eテスト運用事情
  • 並行処理のテストは難しい

ペパボを支える大統一CI基盤と人々

まずペパボ @ravelllさんから「ペパボを支える大統一CI基盤と人々」についてお話頂きました。

ペパボさんのCI環境の変遷や現在の姿、現場の声、課題などについて発表して頂きました。
各チームがそれぞれ いいかんじに CI環境を立てていた時代からdrone.ioを用いた社内統一CIができるまでのお話です。

CI環境を社内で統一することによって、「CI環境自体のトラブルが減ったり」「困ったときに誰にでも質問できて楽」といったメリットがあったそうです。
とは言え、Dockerfileをメンテする人が有識者に限られたり、drone.io/Docker側の問題があったりと課題もあるので改善しつつ運用されているようです。

弊社も現在絶賛Dockerize中ですので、大変勉強になりました。

KARTEを支えるCI環境

次にプレイド @positiveflatから「KARTEを支えるCI環境」の発表がありました。

プレイドでは、Web接客サービスKARTEのサービス開発当初から、CIの仕組みを強化し続けています。今回は、弊社のCIの全体像と、CI環境強化の途中で発生したいくつかの問題とその解決策について簡単に紹介しました。会場にいた方は、CIに取り組みたいけどまだ取り組んでいないという方が多かったので、今回の内容がCI導入のきっかけになれば幸いです。詳しくはこちらのブログの記事でも説明していますので、是非ご覧ください。

自動マルチブラウザテストを導入・運用した話

次にプレイド @sdaikichiから「自動マルチブラウザテストを導入・運用した話」の発表がありました。

40通り以上の自動マルチブラウザテストをSelenium x CircleCI x BrowserStackで実現する を元に、PLAIDでマルチブラウザ(クロスブラウザ)テストを導入・運用をした経験から、設定方法やハマりどころを紹介しました。
(sdaikichiが挙手制アンケートをとったところ)会場にはほぼマルチブラウザテストを行っている人はおらず、CIのマルチブラウザテストはかなりハードルが高いことが伺えました。
twitterでは「(BrowserStackに関して)テストを全て動画にしてくれるのはありがたい」などの感想がつぶやかれていました。

ポケモンやりすぎ!

グーペのE2Eテスト運用事情

続いてペパボ @hypermktさんから「グーペのE2Eテスト運用事情」の発表がありました。

自己紹介をPHPUnit(テストはちゃんとパスする)で書かれていて、掴みからバッチリでした!
テストが全くなかったサービスにテストを導入されたお話で、チームメンバーにテストコードの必要性から実装方法までを説明し、今ではUTもE2Eテストも都度追加しておられるそうです。
まずは正常閲覧テストから始めてみると簡単に実装できて良いとのことでした!

並行処理のテストは難しい

最後にペパボ @nakano_akihitoさんから「並行処理のテストは難しい」の発表がありました。

並列・並行処理が注目されている中、どのように並列・並行処理のテストをすればよいかを具体的にコードを見つつ説明して頂きました。
sleep 1 のように不安定な処理をいれるのではなく、Humble Object patternで処理を切り出したり、メッセージパッシング を使うことでテストを上手く書くことが出来ます。

ご自身でもPHPの並列処理をするライブラリackintosh/snidelを書かれておられるので、ご興味のある方はご覧ください!

最後に

今後も引き続き勉強会を開催したいと思っておりますので、一緒に勉強会を開いてくださる方を募集中です。

また、ウェブ接客プラットフォーム「KARTE」を運営するプレイドでは、 KARTEを支える技術に興味を持つエンジニア(インターンも!)を募集しています。

詳しくはWantedlyをご覧ください。 もしくはお気軽に、下記の「話を聞きに行きたい」ボタンを押してください!