トレタ開発者ブログ

飲食店向け予約/顧客台帳サービス「トレタ」、モバイルオーダー「トレタO/X」などを運営するトレタの開発メンバーによるブログです。

SeleniumConf Tokyo 2019 に行ってきました!

こんにちは、QAエンジニアの坂田です。

少し前になりますが、4月18〜19日にSeleniumの国際カンファレンス SeleniumConf Tokyo 2019 を聴講してきました。
今回は、2日間の参加を通して感じたことをまとめてみたいと思います!

f:id:asktn:20190426155520j:plain

Seleniumとは

Seleniumはブラウザを自動操作してWebアプリケーションをテストするツールです。
最近は主要コンポーネントであるWebDriverがW3C採択され各ブラウザ内に実装されつつあるなど、UIテストフレームワークとしての標準化が進んでいます。

国際セッションで受けた印象

国際カンファレンスということで、半分以上のセッションが海外の方の講演でした。
海外の方の講演で個人的に感じたのは「とにかくまずやってみることを後押し」「新しい技術に対する説明が具体的かつ丁寧」ということです。

  • 日本人:組織寄り
    • 開発体制や組織の成長、チーム内外のコミュニケーションなどが俯瞰的に語られる傾向
  • 海外:技術・個人の成長寄り
    • 技術的なチャレンジの後押しと、必要なことが具体的に語られる傾向

良し悪しではなく、純粋に国際カンファレンスならでは実感できた違いとして面白かったです。

組織内でのQAの役割

開発現場では、開発とQAの一体化が進んでいる印象でした。
体制的にも職能的にも、現場のQAは実装に携わるエンジニアとアジャイル開発プロセスを共有しつつ、プロダクトの提供スピードや品質向上を相互にサポートし合う関係性が求められているように感じます。

一方、大きな企業になると、現場から離れた専門チームにもQA人材が入り、プロダクト横断で Developer Experience 改善に取り組んでいるケースが多かったです。
講演では以下のような取り組みが紹介されました。

  • CI化支援
  • E2Eテスト支援ツールの提供
  • テストケース最適化によるデプロイ高速化
  • レポーティングツールの内製

テスト自動化のスコープ

QA目線で自動化しようとするとテストコストの削減を第一に考えがちですが、自動化によるメリットはコスト削減よりもむしろ下記の方が大きかった、という話もありました。

  • エンジニアへ即時フィードバックを返せる
    • 頭が温まっているうちに修正でき、スイッチングコストが低減される
  • コード変更への精神的な抵抗感(デグレリスク)が軽減される
    • 積極的な機能拡張・リファクタリングが可能になる
  • テスト自動化の過程でプロダクトの仕様・構造を深く理解できる

何を目指すかで自動化の方針も大きく変わりうるため、重要な学びになりました。

サービス・プロダクトの特性に応じたテストの配分最適化

サービス・プロダクトの特性に応じてテストピラミッド(テストの階層/役割/配分など)を最適化した実例も紹介され、面白かったです。

極力ローレベルのテストに落としていく原則は変わりませんが、単純なピラミッドの形だけが良いのではなく、状況に応じてintegration(APIテストなど)を厚くしたりE2Eを厚くしたりと、思ったより様々な印象でした。

QAにも高品質なコーディングが求められる

テストコードもプロダクト資産である、という点もいくつかのセッションに共通するメッセージでした。
TDDの大家である和田卓人(t_wada)さんがKeynoteに登壇したりと、開発プロセスやコードの保守性が重要なテーマに上がっていました。

さいごに

全体を通して、QAも他のエンジニアと同様に、技術を組み合わせて組織課題を解決したり、開発プロセスを最適化したり、といったアプローチを当然に求められていることを強く感じました。

個人的に、開発プロセスも成熟度も異なる複数のプロダクトに対しQAとしてどう関与・貢献すべきか課題を持っていたこともあり、とても有意義なカンファレンス参加になりました。

次回のSeleniumConfは2019年10月にロンドンで開催予定です。(海外!)
興味ある方がいらっしゃれば、ぜひ参加して感想をお聞かせください!

RubyKaigi 2019に参加してきました

はじめましてこんにちは。サーバサイドエンジニアの川又です。

先日04/18〜04/20に福岡国際会議場で開催された RubyKaigi 2019 に参加してきました。

f:id:rkmathii:20190424150113j:plain

トレタはGold Sponsorとしてスポンサードしていて、自分を含むエンジニア3名で参加しました。

専用のスポンサーブースはありませんが、ノベルティ置き場に置かせていただいた「トレタ手ぬぐい」が多くの人に手にとっていただけたようで嬉しかったです!

自分はRubyKaigiへの参加は今年が初めてだったのですが、参加される方がとても多く、楽しいセッションがいくつもあったため、めちゃめちゃ楽しませていただきました。

特に1日目の「Fibers Are the Right Solution」はスライドが分かりやすく、気になっていたものの使ったことがなかったFiber機能についての紹介があったので、個人的にとても興味深いものでした。

また、ランチタイムになると会場すぐ横に屋台が設営されていたり、

f:id:rkmathii:20190424150150j:plain

1日目の夜は商店街を借りて(!)のオフィシャルパーティーがありと、そんなことができるのかと正直びっくりしました。 運営に携わってくださった皆さまに、感謝しています。

f:id:rkmathii:20190424150201j:plain

今回のRubyKaigiのチケットはスポンサーチケットとして会社で確保していたものをいただいたのですが、それ以外に旅費・宿泊費も福利厚生の一貫として、会社からサポートしてしてもらえました。

自分は今年の4月に入社したばかりですが、面接等で聞いていたよりも会社全体が働きやすさについて考えてくれていると感じることが多く、とても仕事がやりやすいと日々感じています。

もしもご興味がある方がいましたら、最近リニューアルした採用ページを見ていただけますと幸いです!

corp.toreta.in

Rails Developers Meetup 2019 で飲食店のオンライン予約の仕組みについて発表しました #railsdm

f:id:m_nakamura145:20190423163906j:plain

SREチームの中村です。 先月3/22〜23に開催されたRails Developers Meetup 2019 にてトレタが解決しようとしている飲食店さんが抱える課題と、提供しているオンライン予約システムの仕組みについて発表しました。

飲食店さんが抱える課題については、弊社代表のnoteでもさらに詳細にお話しています。ぜひご覧ください。

街には様々な飲食店さんが存在します。業態やお店の価格帯、個店・大規模法人さんによって、どのようなお客様をターゲットにしているかも違ってきます。各店舗内のオペレーションも千差万別です。そのような飲食店さんに対して現場で使っていただけるサービスを提供するためには、とても細かい業務の分析を把握することが必要不可欠です。

そんな難しいオペレーションをこなしているお店の方々に対して、我々開発者が「どのように価値を提供できるか」を日々考えているということを今回の登壇で少しお伝えできたかなと思っています。

おわりに

当日は予想以上に聴講していただいた人が多く、懇親会を含め多くの質問をいただきました。ありがとうございました!

railsdmの素敵なところは私のようなサービス開発をメインにしているエンジニアにも登壇の機会を与えていただけるところだと思います。

他の登壇者の方と別の登壇内容にしたかったので、実際のプロダクト開発で「どのような課題に直面し、どのような解決方法を考えているか」の部分にフォーカスした発表にしました。

弊社は最近Googleで予約への参画やトレタnowのようなtoC向けのサービスをリリースしています。しかし、私が外部のエンジニアの方とお話する際に、メインサービスがtoB向けなので外部からどんなサービスを作っているのかということがイマイチわかりづらいという意見をいただくこともありました。

そこで、今後も継続的に対外発表や開発者ブログ上で実際のプロダクト開発で考えていることについてお話していこうと思っています。トレタでのプロダクト開発・技術のことについてお話するMeetupも5月に実施予定ですのでご興味ある方はぜひご参加ください!

© Toreta, Inc.

Powered by Hatena Blog