kickflow Tech Blog

株式会社kickflowのプロダクト開発本部によるブログ

Autifyで効率的なE2Eテストシナリオを作ってみた 〜チケット削除機能の例〜

こんにちは!kickflowのプロダクト開発本部 QAチームのNです。

私たちは、kickflowの品質向上のため、日々様々なテストに取り組んでいます。
その中でもE2E(End-to-End)テストは、ユーザーが実際に操作する流れを通して機能全体の動作を保証する上で非常に重要です。

しかし、E2Eテストは網羅性が高い反面、手動で行うと多くの時間と手間がかかるという課題もあります。
そこでkickflowでは、E2Eテスト自動化プラットフォームであるAutifyを活用し、テストの効率化を進めています。

今回は、Autifyを使って「チケット削除機能」のE2Eテストシナリオを作成した際の工夫やポイント、そしてその効果についてご紹介します。

続きを読む

TSKaigi 2025 にブロンズスポンサーとして参加しました

TSKaigi2025の会場、ベルサール神田

こんにちは。
kickflowでエンジニアをしている芳賀です。

先日開催されたTSKaigi 2025に、kickflowはブロンズスポンサーとして参加させていただきました!
本記事では、イベントの様子や聴講したセッションの概要、そして独自に行った「フロントエンドのAI開発」に関するアンケートの結果などをご紹介します。

続きを読む

kickflowの公式MCPサーバーを公開しました

こんにちは、CTO の小林です。

最近、AI エージェントの活用が企業の業務効率化において重要なトピックとなっています。特に Claude や GPT などの大規模言語モデル(LLM)を活用したエージェントは、様々な業務タスクを自動化する可能性を秘めています。

そこで今回は、kickflow の API を AI エージェントから簡単に利用できるようにするため、Model Context Protocol(MCP)に対応したサーバーを開発しました。この記事では、MCP の概要と、kickflow 公式 MCP サーバーの開発について紹介します。

続きを読む

CTOがClineを1ヶ月触りまくって分かったこと

こんにちは、kickflowでCTOを務めている小林です。

kickflowでは、プロダクト開発の効率化と品質向上を目指して、常に新しい技術やツールを積極的に検証・導入しています。その一環として、最近注目を集めているAIコーディングツールのClineを約1ヶ月間、実際の開発業務で集中的に利用してみました。

本記事では、Clineを様々なプロジェクトで試した結果、どのようなことが可能になり、逆にどのような課題が見えてきたのか、そしてAIコーディングツールを効果的に活用するためのTipsについて、kickflowの開発現場からのリアルな声をお届けします。

  • Clineとは
  • 利用環境
  • Clineでできたこと
    • 爆速で新規開発できる
    • 既存プロダクト(kickflow)開発での部分的な活用
    • 共通して便利だったこと
  • Clineでできなかったこと・課題
    • ファイルサイズと複雑性の壁
    • 動作確認が不安定
    • 独自UIフレームワークの理解不足
    • Rubyライブラリの知識不足
    • 静的型付け言語との差
    • 新しい技術への追随が苦手
  • Clineを使いこなすためのTips
    • 1. ルールを整備する(最重要)
    • 2. タスクを細かく分割する
    • 3. プロジェクトの関するドキュメントを与える
    • 4. メモリバンクの活用(今回は未使用)
    • 5. AIによるリファクタリングを促す
    • 6. AIの作業中は下手に手を出さない
  • AIコーディングツールの普及による影響の考察
    • 「AIに寄せた」技術選定の可能性
  • 今後の展望
  • おわりに
続きを読む

RubyKaigi 2025 in 松山にシルバースポンサーとして参加しました

こんにちは。kickflowプロダクト開発本部の小本です。

2025年4月15日から18日にかけて愛媛県松山市で開催された「RubyKaigi 2025」に、kickflowがシルバースポンサーとして参加した際のレポートをお届けします。

  • RubyKaigi 2025 概要
  • kickflowのスポンサーシップについて
  • セッションで感じた技術トレンド
    • 次期Rubyの大型機能は「Namespace」
    • 型チェック
    • 「Prism」の存在感
    • VSCodeのデファクトスタンダード化
    • AI関連の話題は限定的
  • 個人的に気になったツール・技術
    • rbs-inline: RBSをインラインコメントで記述
    • rbs-trace: テスト実行からRBSを自動生成
    • quickjs.rb: 軽量JavaScriptエンジン QuickJS のRubyバインディング
    • deprewriter: 非推奨メソッドの書き換えを支援するGem
    • defer: Go言語ライクな後処理記述構文
  • We are hireing
続きを読む

DevinでOpenAPIスキーマを自動生成したお話

社内AIにお願いして描いてもらったAIとOpenAPIのイメージ

こんにちは。kickflow エンジニアの芳賀と申します。
AIエンジニア界隈、すごく盛り上がっていますよね。
私としてもお仕事がなくなってしまうのではないかと戦々恐々としております(笑)

そんな中、弊社にも Devin ちゃんがジョインしております。
本記事ではDevinを開発で活用した事例についてご紹介します。

続きを読む

ActiveRecordによるクエリを監視しファイルに出力する

大型バイクを押しがけしている
トラブルが起きたとき、昔ながらの方法が役立つこともある

Wayne Truong from Houston, TX, CC BY 2.0, via Wikimedia Commons

こんにちは。株式会社kickflowプロダクト開発本部の小本です。

Bulletは何の問題点も検出しないが実際に動かすと何故か遅い

Rails業界ではBulletなどのクエリの問題点を検出するツールが普及していますが、それらも万能ではありません。時には生のクエリログが解決の糸口になることがあります。

普通にRailsアプリケーションを作ると、development環境では以下のようなクエリログが出力されるようになっています。

例:

  CACHE User Load (0.0ms)  SELECT "users".* FROM "users" WHERE "users"."tenant_id" = '6fa44ea2-cbbd-4901-980b-abbe3e0f66cc' AND "users"."id" = '4344b765-595e-4ee7-bf91-a627cbfce622' LIMIT 1
  MonthlyActivityLog Load (6.5ms)  SELECT "monthly_activity_logs".* FROM "monthly_activity_logs" WHERE "monthly_activity_logs"."tenant_id" = '6fa44ea2-cbbd-4901-980b-abbe3e0f66cc' AND "monthly_activity_logs"."year" = 2025 AND "monthly_activity_logs"."month" = 3 AND "monthly_activity_logs"."user_id" = '4344b765-595e-4ee7-bf91-a627cbfce622' LIMIT 1 /*action='show',application='Kickflow',controller='tenant'*/
  ↳ app/controllers/api/v1/user_controller.rb:4:in 'Api::V1::UserController#show'
  ↳ app/models/monthly_activity_log.rb:47:in 'MonthlyActivityLog.create_log'

しかし、標準のクエリログは、

  • 人間が読むためにフォーマットされているため機械的に処理しにくい(JSONでくれ!)
  • log/development.log に他ログと一緒に出力されるので、クエリログを発見しにくい。
  • 全てのアクションのログが1ファイルに出力される(調べたいのは特定の重いアクションだけなのだ。)

という問題があります。そこで、この記事ではクエリログをJSON形式で出力する方法を説明します。

続きを読む