トレタ開発者ブログ

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

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月に実施予定ですのでご興味ある方はぜひご参加ください!

テストシンポジウム JaSST'19 Tokyo に行ってきました

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

去る3月27〜28日に、東京御茶ノ水で開催された JaSST'19 Tokyo に参加してきました。 少し日が経ってしまいましたが、ミニレポートしたいと思います。

今年は AI がテーマ

JaSST は NPO法人ソフトウェアテスト技術振興協会(ASTER)が2003年から全国各地で開催している国内最大級のソフトウェアテストシンポジウムです。

毎回、特定のテスト技法に関する技術的な発表からチーム運営やキャリア形成まで様々なトピックのセッションが開かれます。今年は「AI」がフィーチャーされた構成になっていました。 (メイン会場は特にAI絡みが多かった!)

「AI テストする(AIによるテスト自動化)」話や「AI テストする(例えば自動運転システムに対する品質保証)」話など、様々な観点からテストとAIの関わりを学べるシンポジウムでした。

基調講演:AI-Driven Testing

基調講演は「AI テストする」側のトピックとして、海外から Ultimate Software のTariq King氏を迎えてAI駆動のテスト自動化の取り組みが紹介されました。

ソースはGitHubで公開されています。素晴らしいですね。 github.com

私が聞いた限り、概ね以下の流れでテストが行われるようです。

Webサイトに対し、AIがサイト内を探索して入力エリアやボタン等を探す
  ↓
各要素に対し、サイト構造やDOM、前後のテキストの文脈からあるべき操作やインタラクションを推定する
  ↓
Test Agentがテスト実行プランを生成し、実際にテストを実行する
  ↓
実行後、テスト結果をレポートする
面白かった話
  • AIがテスト生成する際「IF→WHEN→THEN」の順にストーリーを組み立てる
    • 「FirstNameというテキストボックスを見つけた→空にしたままSUBMITを押す→エラーが表示される」など
    • 「事前条件→実行手順→期待結果」ということで、人間がテストを書く際のモデルと一緒ですね
  • AIがAI自身の動作を評価しフィードバックする仕組みを入れている
    • Adoptive behaviorと呼ばれてました
  • 並列実行が可能
    • 親分のTest Agentが多数の子workerを統制し、探索〜テスト実行を非同期かつ最適に行えるらしい

講演後も下記のような質疑が活発に行われました。

  • AIによってブラックボックス化されたテストを、我々はどう信頼し正しいと判定すれば良いか?
  • テスト結果の膨大なアウトプットに対し、どうトリアージを行えば良いか?
  • 人間の感覚に基づくテスト(ユーザビリティテストなど)は可能か?
  • Agentが学習すると、徐々に探索テストに近づくのではないか?そこに含まれるランダム性はどう制御できるか?
  • システムの正しい振る舞いをAIが推測するのにも限界があるのでは?
  • AIによる自律テストの今後は、汎化に向かうのか特化に向かうのか?

まだ開発は道半ばのようですが、今後の展開が楽しみです。

講演:AIプロダクトに対する品質保証の基本的考え方

こちらは「AI テストする」側の話です。 QA4AIコンソーシアム の設立発起人である電通大の西さんと国立情報学研究所の石川さんによる講演でした。

AIは下記の特性から従来の品質モデルによる評価やテストは不可能、新しい品質軸が必要、とのこと。

  • 帰納的開発である
    • 通常のプログラミング (演繹的開発) とは逆に、ML (機械学習) 技術は入出力ペアの集合から導き出し方 (関数) を構築するシステムである
    • 結果実装はブラックボックスになり、なぜ正しいのか説明できない
  • 確率的振る舞いをする
    • CACE (Changing Anything Changes Everything) 性により入力条件が微妙に変わっただけで出力が全く別物になる可能性がある
    • 非線形な振る舞いを予測できず同値クラスなど従来のテストアプローチも通用しないため、テスト不可能
    • 結局大量で多角的なデータによる検証が必要になり、データ生成・検証・評価の自動化も必須になる
AIの面白い(困った)特性の例
  • 自動運転の画像認識で天下一品の看板を進入禁止と認識し、永遠に天一に入れない
  • 同じく自動運転で、STOPの標識にステッカーを貼りつけた途端にGOの標識と誤認識する
  • オオカミの画像のどこが識別に効いたか分析したら、周りの雪景色しか見ていなかった
AIプロダクトの品質軸

以下の5つが提唱されました。

  • Data Integrity
  • Model Robustness
  • System Quality
  • Process Agility
  • Customer Expectation

システム面では上3つの 学習に用いるデータ 適用する機械学習モデル システム全体の信頼性・安全性 が該当します。

データに関しては学習の偏りや過学習を防ぐ必要があり、モデルに関しても筋の良いアルゴリズムを選定するなど、AIならではのテクニックを駆使しないと太刀打ちできなさそうだなぁ、、という感想。 信頼性・安全性もAIである以上確率的/非線形的な振る舞いは避けられず、クリティカルな機能や例外・制約・セーフティーネットに当たる部分は非AI(ルールベース)で押さえる等の考慮が必要だ、とのことでした。

講演資料

www.slideshare.net

参考資料:IoT/AI時代のテスティング・検証技術の最前線

www.slideshare.net

他に聴講したセッション

AI以外にもテスト自動化関連を中心にいくつか聞きました。長くなるのでこちらは割愛します。

  • テストの未来、品質の未来 ~自動化はテスター撲滅の夢を見るか?~
  • 赤い会社のテストエンジニアたちが語りつくす ~テスト現場で起こるリアル課題と対処策~
  • Unit Testing: What Every Tester and Developer Should Know

行ってみて

元々は自動化が目当てで参加を決めたのですが、色々聞いて一番刺激を受けたのはAIでした。 日々のQAそのものに直接生きる訳ではありませんが、全く新しい視点から改めて「品質とは」を考える良い機会になりました!

© Toreta, Inc.

Powered by Hatena Blog