TECH PLAY

アクセス解析

イベント

マガジン

技術ブログ

こんにちは。 ファインディ株式会社でテックリードマネージャーをやらせてもらっている戸田です。 生成AIが開発現場に入り込んでから1年あまり。Claude CodeやGitHub Copilotなどのエージェント型ツールも一般的になってきました。 その一方で、「AIを導入したのに、思ったほど速くなっていない」「むしろレビューが大変になった」という声を、社内外でよく聞くようになりました。 そんな中で先日、弊社主催の「AI Engineering Summit Tokyo 2026」にて 「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革のロードマップと実行 ─ と題して登壇してきました。 ファインディ社内で1年強かけて見えてきた「AI導入の落とし穴」と、そこから組み立てた3段階のロードマップを共有する内容です。 ai-engineering-summit-tokyo.findy-tools.io この記事では登壇内容を振り返りつつ、AI導入の効果が伸び悩んでいる組織に向けて、ファインディがどのような順番で開発フローを作り変えてきたかを紹介します。 それでは見ていきましょう! AIを入れたのに、アウトプットは伸びていなかった 「速く作る」だけでは限界がある AI活用レベル レベル 1:AIエージェントでコード生成 レベル 2:AIエージェントでモノを作る レベル 3:AIで価値を生み出す まとめ AIを入れたのに、アウトプットは伸びていなかった ファインディも同様に生成AIの本格活用を進め、Claude CodeやCodexなどのAIエージェントが日常的な開発フローに入り込んできました。社内の体感としては「1人あたりのPR作成数も増えていそうだし、開発のリードタイムも短くなっているはず」というものでした。 しかし、Findy Team+で1年分の数値を計測してみると、想像とは違う景色が見えてきました。 まずポジティブな変化として、PR作成総数は前年比で伸びていました。ただ、その内訳を見ると、稼働メンバー数が約1.5倍に増えていたことが大きく、1人あたりのPR作成数はほぼ横ばいだったのです。 さらに、レビュー開始からApproveまでの時間は前年比でおよそ20分延び、PR1本あたりの平均コメント数・レビュー数も約30%増えていました。AIによるコード生成が増えた一方で、レビュー側の負荷が確実に積み上がっていたわけです。 シニア層と若手層で傾向を分けて見ると、もう一段深い構造が見えてきました。AIの出力を読んで検証できるシニアメンバーはアウトプットが上がる一方、経験年数が浅いほどAI出力の合否判断に苦戦する傾向があり、結果としてレビュー側に判断の負荷が集中していました。 組織全体として、 AIに使われている 状態に近かったとも言えます。「体感と事実がズレているかもしれない」と疑い、各種数値を可視化していたからこそ、実は「1人あたりのPR作成数は増えておらず、それどころかレビューの負荷が増えており、結果的に開発のリードタイムは長くなっていた」ことに気づくことができたのです。 「速く作る」だけでは限界がある 計測結果から見えてきたのは、「コードを書く速度が上がっても、ボトルネックがレビューに移り変わったために、全体のリードタイムは短くならなかった」、ということでした。 AIでコードを書くスピードは確かに上がります。一方で、内容を十分理解せずに生成するケースが増えると、PRの一貫性や正確性が落ちます。 指摘の量が増えると、リードクラスのレビュー時間が膨らみ、リードタイムが悪化します。最終的に、トータルのアウトプットはAI導入前とほぼ変わらない、という結果に着地します。 AIの成果物に対する確認や検証に時間がかかるようになり、レビューの負荷が増える。これがAI導入の落とし穴の一つです。そのため、AIの成果物の品質を再現性高く担保するための仕組みを整えることが必要になります。 そのために必要になるのが、「正しい作り方と手順」を仕組み化することです。馬を御する馬具(ハーネス)になぞらえ、AIの動きを暴走させず目的の方向へ導くための仕組みを整えることを ハーネスエンジニアリング と呼びます。 このハーネス化を、ファインディは 開発フロー改革 として進めてきました。具体的には、AI活用のレベルを3段階に分け、土台から段階的に積み上げていくロードマップを描いています。 AI活用レベル 開発フローを分解し、AIで何を肩代わりできるかをマッピングすると、3つのレベルが浮かび上がりました。 レベル 1:速く作る :コード変更とPR作成を中心に、AIで代替できる範囲を自動化する レベル 2:正しく作る :タスク分解とIssue作成までAIに任せ、「正しく作る」仕組みを整える レベル 3:必要なものを作る :要件定義やQAという「AIで代替しづらい」とされてきた領域に踏み込む ポイントは、「どれか1つを単独でやる」のではなく、Lv1 → Lv2 → Lv3 と段階的に積み上げて初めて効果が出るという点です。ここから各レベルを順に見ていきます。 レベル 1:AIエージェントでコード生成 レベル 1の目的は、コード変更とPull request作成までをAIエージェントに任せ、人間は本質的なレビューに集中することです。 このフェーズで真っ先に向き合う必要があるのは、「AIが出したコードの責任は誰にあるか」という問いです。 どれだけ自動化されても、AIが出力したコードの責任は人間にあります。品質と判断の最終責任は人間が引き受けることになります。 その前提の上で、レベル 1の工程を整理してみました。 コード変更とPull request作成はAIに全て任せることが出来ます。そしてレビューに関しては、コードの責任という観点から人間が行う必要があると考えていました。しかし、本当にそうなのか疑問に思いました。 自分自身がコードを書いてPull requestを作成していた頃を思い出してみてください。自分でコードを書いて、Pull requestを作成する。レビュー依頼を出す前にやっていたことがありました。セルフレビューです。 そしてセルフレビューで気づく内容と、実際に他のメンバーからもらうレビューの内容は観点や内容が違います。これを今回の開発フロー改革に当てはめました。 レビューをセルフレビューとレビューに分け、レベル 1ではセルフレビューまでをAIに任せることにしました。セルフレビューではコード変更そのものに対するレビュー、レビューでは人間が最終判断しないといけない内容にフォーカスしてレビューというように切り分けることにしました。 ここで重要なのは、AIを入れる前提として「AIと関係なく当たり前のこと」が揃っている必要がある、という点です。 アーキテクチャ・命名規則・型定義といったコード設計、十分なテストカバレッジ、一貫した設計パターン、そしてPRの適切な粒度・レビュー文化・タスク分解の習慣。 これらはAI以前から品質を保つために必須でしたが、AIエージェントが入ると一気に効いてきます。土台が弱いと、AIはその弱さを増幅する方向に働くからです。 ファインディがこの「土台」をどう積み上げてきたかは、次の記事で詳述しています。 tech.findy.co.jp その土台の上に、AIが参照するドキュメントとルールをガードレールとして整備します。 READMEやプロジェクトドキュメントで開発前提・アーキテクチャ・運用ルールを記述し、AGENT.mdやrulesでコード規約・命名規則・テスト方針をAIに自動参照させ、カスタムコマンドやプロンプトテンプレートで依頼タスクを規格化する。 この整備があって初めて、AIは使い物になるコードを出力してくれます。 ファインディではレベル 1を支える仕組みとして、Claude CodeのSkillを複数組み合わせています。代表的なものは次の通りです。 Pull request作成:typecheck/lint/test/buildといった品質チェックの自動実行、ブランチ命名規則の強制、Conventional Commitに沿ったコミット生成、PRテンプレートからのbody自動生成までを1コマンドで実行 Pull request作成前の自動セルフレビュー:セキュリティ/コード品質/規約準拠/Simplify観点/要件検証/チェックリスト照合の6観点で並列分析。信頼度の高い指摘のみを報告してノイズを抑制し、2026年4月時点で1500以上のPRで運用中 AI併用レビュー:Codex CLIを別系統として並行運用し、メインAIのレビューと統合してPRコメントに提示。AIの偏りに依存しない複眼チェックを実現 定期セルフレビュー自動化:平日の朝方にGitHub Actionsで起動し、直近1ヶ月変更されていない技術的負債となりうる既存コードに対して修正Pull requestを自動作成 チェックリスト自動更新:過去レビューコメントをGitHub APIで収集し、LLMで指摘パターンを分類してチェックリストへ反映。レビュアーの暗黙知をSkillに形式知として残す セルフレビュー周りの仕組みについては、それぞれ次の記事でも紹介しています。 tech.findy.co.jp tech.findy.co.jp これらは1リポジトリにSkill/Sub Agent/MCPとしてまとめており、Pluginとして運用することで /plugin install によるワンコマンド配布を実現しています。全員がcontributeできる構造にすることで、改善がそのまま組織全体に反映される回り方になっています。 レベル 2:AIエージェントでモノを作る レベル 1で「速く作る」の足回りが整うと、次にぶつかるのが「要件をどう実現するか」の手順自体がAIフレンドリーではない、という壁です。タスクの粒度や手順を誰も明示的に決めていないため、生成AIに何を渡せば精度よく動くかが属人化していました。 ここで必要になるのが、「作りたいもの(What)」と「作り方の設計図(How)」を分離して扱う発想です。 Whatをタスク分解の形でHowに落とし込み、それをAIに渡せば、AIはそのステップどおりに実装してくれます。そしてレビューでは、出来上がったコードよりも先に「作り方と実現方法が合っているか」を検証し、設計図のほうにフィードバックする。タスク分解の品質が、そのままアウトプットの品質を決める構造です。 このフェーズでは、AIとの関係性が「協働」から「委任」に変わります。 Vibe Codingが「AIは隣で並走するパートナー」だとすると、Agentic Workflowは「AIは自走する実行エージェントで、人間はその指揮者」になります。 任せる粒度も、1行〜1関数のレベルから、タスク/PR/フロー全体へと拡張されます。 Agentic Workflowの定義として4つの自律性を意識しています。 ゴール指向 :「何を」を与え、「どう実現するか」はAIが組み立てる 計画と分解 :大きなタスクをサブタスクに分けて順序付けて実行 ツール使用 :ファイル・Skill・コマンド・検索・MCPを能動的に使う 自己検証ループ :テスト失敗→修正→再実行を自律的に繰り返す 興味深かったのは、AI委任の前提が変わると開発環境そのものが変わったことです。 2026年に入ってから、ファインディではコード生成のメインツールがIDEからターミナルへ変化しました。 1ウインドウで1タスクずつ進めるのではなく、複数ウインドウ・ペインで同時にAIへ委任するスタイルになったため、並列委任しやすい場所として、ターミナル+tmuxのような構成に自然と寄せていく流れになっています。IDEの役割はコードを書く場から、広域に渡るコードリーディングや理解を深める場へとシフトしています。 このレベル 2を支えるのが、要件構造化&Issue自動生成のSkillです。次の6ステップで動きます。 要件理解 ─ インタラクティブな質問で曖昧さを解消 コード探索 ─ 並列の探索Agentが複数観点で同時調査 要件明確化 ─ 不足情報を補完してスコープを定義 設計提案 ─ 実装方針のドラフトを生成 タスク分解 ─ 実装単位に分解(粒度判定Skill連携) Issue作成 ─ Sub Issue/relationshipを含む構造化Issue このSkillで生成したIssueは累計3000以上にのぼり、親Issue(Feature)→子Issue(DB層→API層など)が blocked_by の依存関係付きで自動構成されます。 例えば「ユーザー通知機能の追加」という親Issueに対し、「#1 DB層:通知テーブル追加」「#2 POST API追加」「#3 DELETE API追加」のような子Issueが、依存関係込みで一気に並ぶイメージです。 実装フェーズでは、これを「Issue × Worktree × Agent」の並列モデルで走らせています。Team Lead Agentが blocked_by に従ってLayerごとにWorker Agentを起動・同期し、同じLayer内はworktreeを切ってWorker Agentが完全並列で実装する。Layer 0でDB層が完了したら、Layer 1のPOST/DELETE APIを2つのworktreeで同時に進める、といった動かし方ができます。 この並列モデルの詳細は次の記事で解説しています。 tech.findy.co.jp コードレビューの分担も、レベル 2では明示的に再定義しています。 担当 レビュー領域 AI コード規約・命名、型定義、テストコード・テストケース 人間 ビジネスロジックの要件適合、アーキテクチャや設計、データベース構造、明確なセキュリティリスク 視点はコードそのものから抽象的なところに寄せていきます。 結果として、レベル 2の導入後、1人あたりのPR作成数は前年比で1.5倍を超えました。AIフレンドリーな「設計図(タスク分解+構造化Issue)」を誰でも作れる状態になり、作りたいものを再現性高くアウトプットできるようになった、というのがその答えです。 レベル 3:AIで価値を生み出す レベル 2まで進むと、開発スピードに対する次のボトルネックが見えてきます。「何を作るか」の上流が詰まり、せっかく整えた実装力を活かしきれない状態です。 具体的には、要件の実現可能性を調査できるのがエンジニアだけになっていたり、システムとプロダクトの概念が離れていて、お互いを十分知らないまま施策や検証が進んでしまったりします。 レベル 3の目的は、要件定義(PdM領域)とQA領域というAIで代替しづらいとされてきた領域に、AIで踏み込むことです。 レベル 3の起点になるのが 現状把握 です。現状把握の対象は広い範囲に及びます。コードベース・Google Analytics・プロダクト文書・GitHub Issues/PR・Datadog・各種KPIなど、必要なコンテキストは多岐にわたります。 まず要件定義では、これらを毎回手動で集めるのは現実的ではないため、専門Agentチームが各ソースから必要な分だけ自動収集する仕組みを組みました。 ファインディの要件定義Skillでは、7つの専門Agentが並列で動きます。 目的・成果分析 ─ WHY/WHAT仮説の自律生成 データ・コンテキスト収集 ─ GitHub Issues・Notionから数値収集 プロダクト文書抽出 ─ docs/配下のKPI・ポリシーを抽出 コードベース分析 ─ リポジトリの制約・パターンを分析 スコープ分割 ─ MVPと拡張項目に分割 技術的実現可能性評価 ─ 解決アプローチの実現可能性を評価 アクセス解析データ収集 ─ Google Analyticsから自動収集 これらのAgentがAgentTeamsとして並列で稼働し、お互い会話しながら必要な情報を集めて分析します。 ユーザーは分析結果を修正・補足し、最後にAIが構造化&品質チェックしてGitHub Issueとして出力します。ユーザー操作は入力・レビュー・承認の3回のみで、それ以外はAIが自律的に進める設計です。出力されたWHY/WHAT構造化済みIssueは、そのままレベル 2のIssue自動分解Skillに連携できます。 もう1つの挑戦がQA領域です。ユーザビリティ・アクセシビリティ・UI/UXといった非機能要件のテストはAI単独では難しいため、AIで代替しづらい領域です。ファインディは「代替」ではなく「支援」、つまりAIがQAエンジニアの判断を最大化する形を仮説にしています。 次にQA領域は3つのSkillで一気通貫にしました。仕様ソース(Issue/Figma/Notion)を入力に、次の流れで進みます。 QA観点抽出:観点を自動抽出してQA観点mdを出力 QAテストケース生成:観点→ステップ/期待結果/前提条件に展開してMarkdown+CSV化 QA自動実行:Playwright MCP経由でClaude Codeから直接ブラウザを操作し、Pass/Failとスクリーンショット付きのレポートを出力 QA観点抽出では、仕様分析/画面構造・UX探索/影響範囲判定の3つのAgentが並列で動き、観点設計のたたき台を数分で生成します。 テストケース生成では、観点→具体ケースへの落とし込みにかかる工数が数時間から数分に短縮されました。生成されたQAリストは、認証・認可/入力バリデーション/表示・UI/ファイル操作/外部連携/メール送信の6軸で共通基準と照合し、観点漏れ・粒度のばらつきを検出します。 人間が集中すべきは、ユーザビリティ評価、例外シナリオ、クライアント要件の確認といった「判断が必要な領域」です。反復可能なケースはAIが淡々と実行し、失敗時はスクリーンショット付きレポートで原因特定が速くなりました。 まとめ AI活用のレベルをレベル 1(速く作る)/レベル 2(正しく作る)/レベル 3(必要なものを作る)と分けてきましたが、最大の主張は、これらは「どれか1つ」ではなく段階的に積み上げて初めて成立する、ということです。 そして、ここで強調したいのが 順番を間違えない ことです。土台が弱いと、ガードレールもAI Skillも成果を出せません。ファインディが踏んだ順番は次の4段でした。 裏返すと、AIエージェントを入れる前にやっておくべきことは、AI以前から変わっていません。統一規約、テストコード、PR粒度、レビューなどの開発文化といった 基本の徹底 こそがAI活用における大前提です。 AI時代の本丸は、「速く作る」ではなく、「正しく作る」「必要なものを作る」への段階的越境です。あなたの組織が今どのレベルにいるか、そして次のレベルへ進むためにどの土台が弱いかを確認する目安として、このロードマップが役立てば幸いです。 ファインディでは一緒に会社を盛り上げてくれるメンバーを募集中です。興味を持っていただいた方はこちらのページからご応募お願いします。 herp.careers
急成長を続けるプロダクト、多様化が止まらないユーザーデバイス、そしてチームごとにバラバラなテスト基準。QAマネージャーとして、場当たり的な個別対応に限界を感じてはいませんか? 現場からの「どこまでテストすればいいのか」という問いと、経営層やPdMからの「リリース速度を落としたくない」という要求。 その板挟みの中で「これで本当に品質が担保できているのか」という不安を払拭するのは容易ではありません。 そこで今回は単なる表示確認にとどまらない、以下のような戦略的な「クロスブラウザテスト」の本質を掘り下げます。 なぜブラウザ差異が発生し、ビジネスにどのようなリスクを与えるのか データに基づき、どのように「全環境対応」の幻想を捨て、優先順位を決めるのか 手動と自動をどう使い分け、CI/CDに組み込んで持続可能な体制を築くのか import haihaiInquiryFormClient from "https://form-gw.hm-f.jp/js/haihai.inquiry_form.client.js";haihaiInquiryFormClient.create({baseURL: "https://form-gw.hm-f.jp",formUUID: "927d2c4e-f06c-45b1-bd36-0240e55ccf72",}) ▼テストの種類について詳しい内容はこちら▼ 【保存版】テストの目的別タイプ一覧 クロスブラウザテストとは? クロスブラウザテストの定義 クロスブラウザテストとは、Google ChromeやSafari、Microsoft Edge、Firefoxといった複数の異なるWebブラウザ、およびそれらが動作するデバイスやOSの組み合わせにおいて、WebサイトやWebアプリケーションが意図通りに動作・表示されるかを検証するプロセスを指します。 QAの現場ではしばしばレイアウト崩れを確認する表示確認と同義に捉えられがちですが、本来の目的はそれ以上に多岐にわたります。 特定のブラウザでのみJavaScriptが実行されず、購入ボタンが反応しないといった機能不全や、特定のOSでフォーム入力の挙動が異なりユーザーが操作を完結できないといった操作性の問題、さらにはフォントの読み込み速度やアニメーションの滑らかさによるユーザー体験の毀損を防ぐことが重要です。 単なる見た目の整合性を超え、どの環境からアクセスしてもプロダクトが提供すべき価値を同等に享受できる状態を担保することが、クロスブラウザテストの本質的な役割といえます。 メガベンチャー規模のプロダクトにおいては、ユーザーの利用環境が多岐にわたるため、この検証の網羅性がサービス全体の信頼性に直結します。 なぜブラウザ差異が発生するのか ブラウザ間で表示や挙動の差異が発生する最大の要因は、各ブラウザが採用しているレンダリングエンジンやJavaScriptエンジンの違いにあります。 例えば、ChromeやEdgeはBlink、SafariはWebKit、FirefoxはGeckoという異なるレンダリングエンジンを用いてHTMLやCSSを解析し、画面上に描画しています。 各エンジンはW3Cなどの標準化団体が策定した仕様に準拠するよう開発されていますが、新しい仕様への対応スピードや、仕様書の記述に対する細かな解釈、さらには実装の優先順位がエンジンごとに異なります。 加えて、JavaScriptの実行を担うV8やJavaScriptCore、SpiderMonkeyといったエンジンの性能差や、特定のメソッドへの対応状況も挙動の乖離を生む原因となります。 結果として、同じコードであってもブラウザごとにCSSのプロパティが無視されたり、スクリプトの実行タイミングが微妙にずれたりするといった現象が発生します。 こうしたブラウザ内部の仕組みや、仕様解釈の微妙なズレが積み重なることで、開発者の意図しない差異が生まれる構造になっています。 クロスブラウザテストが担う品質価値 クロスブラウザテストが担保する品質は、プロダクトのビジネス的成功に直結する極めて重要な価値を持っています。 昨今の多様なデバイス環境において、特定のブラウザで発生する不具合は単なる技術的なミスに留まらず、ユーザー体験の低下、ひいてはコンバージョン率(CVR)の直接的な下落を招きます。 例えば、決済画面で動作が不安定になればユーザーは即座に離脱し、その機会損失は大規模なサービスほど膨大な額に達します。 また、サービスが特定の環境で適切に動作しないという事実は、プロダクトおよびブランドへの信頼性を大きく損ない、長期的なファンを失うといったビジネス上のリスクを孕んでいます。 QAマネージャーとしては、こうした不具合が引き起こすリスクを定量的に捉え、開発チームや経営層に対して品質投資の重要性を説く際の論理的な根拠とする必要があります。 クロスブラウザテストは、あらゆるユーザーに対して公平かつ安定したサービスを提供し、事業の持続的な成長を支える基盤としての役割を担っているのです。 クロスブラウザテストが必要とされる背景 ユーザー環境の多様化 現代のWebプロダクトにおいて、ユーザーがサービスに触れる入り口はかつてないほど複雑化しています。 Google Chrome、Safari、Microsoft Edge、Firefoxといった主要ブラウザのシェアは常に変動しており、それぞれが独自のレンダリングエンジンやスクリプト実行環境を持っています。 さらに、これらがWindowsやmacOSといったデスクトップOSだけでなく、iOSやAndroidといったモバイルOS上で動作することを考慮しなければなりません。 PC、スマートフォン、タブレットといったデバイスの種別も加わり、検証すべき組み合わせは指数関数的に増加しています。 メガベンチャーのような大規模なサービスでは、一部の環境で発生する軽微な表示崩れが、数万人規模のユーザーにとっての致命的な利用障害に繋がるリスクを孕んでいます。 特定の環境だけで発生するバグを未然に防ぎ、あらゆるユーザーに最低限の品質を保証するためには、こうした多様な環境の掛け合わせを前提とした検証体制の構築が不可欠となっています。 モバイル特有の課題 デスクトップ環境での検証以上に品質管理を難しくさせているのが、モバイル環境における固有の課題です。 スマートフォンやタブレットは画面サイズや解像度が機種ごとに激しく異なり、レスポンシブデザインが意図通りに機能しているかを常に監視する必要があります。 またマウス操作を前提としたデスクトップに対し、モバイルは指によるタッチ操作が基本となるため、ボタンの押しやすさやスクロールの挙動、ホバーアクションの有無といったインターフェース面の検証も欠かせません。 さらにモバイルブラウザはメモリ制限や電力消費の最適化のためにデスクトップ版とは異なる挙動を示すことがあります。 例えば、iOS版Safari特有の描画ルールや、Android端末のOSバージョンによるWebviewの差異などが、予期せぬ不具合の原因となるケースは少なくありません。 プロダクトがモバイルシフトを加速させる中で、こうしたデバイスごとの物理的・ソフトウェア的な差異を埋めるテストの重要性は増すばかりです。 「全環境対応」を目指さない考え方 QAの全体最適を考える上で最も重要なのは、すべての環境で完璧な動作を保証する全環境対応という幻想を捨てることです。 リソースが限られた現場において、シェアが極端に低い古いOSやマイナーなブラウザまで網羅することは、コスト対効果の観点から見て合理的ではありません。 現実的な品質戦略としては、まずはアクセス解析ツールなどから実際のユーザー利用率を抽出し、ビジネスに与える影響度が大きい環境を主要サポート対象として定義することが求められます。 機能の重要度に応じて、主要ブラウザではフル機能の動作を保証し、マイナー環境では最低限コンテンツが閲覧できる状態を維持するという、段階的な品質基準を設けるのが賢明です。 開発や経営層に対しても、闇雲にすべての不具合を解消するのではなく、リスクとコストを天秤にかけた戦略的な判断基準を提示することで、組織として納得感のある品質推進が可能になります。 テスト対象とテスト範囲の設計方法 対象ブラウザ・バージョンの選定 クロスブラウザテストの対象を定める際、まず取り組むべきは客観的なデータに基づいた優先順位付けです。 最新バージョンのブラウザを対象に含めるのは当然ですが、過去のバージョンをどこまで遡るかは、プロダクトのユーザー層によって最適解が異なります。 Google Analyticsなどのアクセス解析ツールを用いて、実際にサービスを利用しているユーザーのブラウザシェアとバージョン分布を詳細に分析することが不可欠です。 例えば、全ユーザーの95パーセントをカバーする範囲をサポート対象とする、あるいはビジネス上の重要度が高い特定のブラウザを重点項目に据えるといった明確な基準を設けます。 特に、自動更新が行われるエバーグリーンブラウザであるChromeやEdgeと、OSのアップデートに依存して更新頻度が異なるSafariでは、バージョンの扱いが異なる点に注意が必要です。 古いバージョンのサポートを打ち切る際の判断基準をデータで明確にしておくことで、開発チームや経営層に対しても、リソースをどこに集中すべきかという論理的な説明が可能になります。 闇雲に網羅性を求めるのではなく、データに基づき対象を絞り込むことが、QAの全体最適を実現するための第一歩となります。 対象OS・デバイスの整理 OS、ブラウザ、デバイスの膨大な組み合わせを整理するには、検証環境の特性を理解した使い分けが重要です。 メガベンチャーのような多種多様なプロダクトを抱える組織では、すべての組み合わせを実機で確認するのは現実的ではありません。 そこで、クリティカルな不具合が発生しやすい主要な組み合わせについては物理的な実機を用い、広範囲な網羅性が求められる検証にはクラウド上の仮想環境やエミュレータを活用するハイブリッドなアプローチを推奨します。 実機はタッチの感触や実際のレスポンス、物理的な挙動を確認するのに適していますが、仮想環境はスケールが容易でテスト自動化との相性が非常に良いという利点があります。 この設計においては、まず検証が必要なマトリクスを定義し、どのセルをどの手法で埋めるかを事前に決めておくことが属人化を防ぐ鍵となります。 また、iOSとAndroidそれぞれのOSバージョンと、そこで動作する標準ブラウザの挙動差を考慮に入れ、リスクの高いポイントを重点的に検証範囲へ組み込むことで、限られた工数の中で最大限の品質保証を実現できます。 こうした体系的な整理は、現場の負担を軽減し、持続可能な品質体制の構築に大きく寄与します。 優先的にテストすべき機能・ページ テストの範囲を限定するもう一つの軸は、機能やページの重要度による選定です。 すべてのページでピクセル単位の表示の整合性を求めるのではなく、ビジネスインパクトの大きい主要なユーザーフローを最優先に保護すべきです。 具体的には、ログイン、商品検索、決済、情報の送信といった、ユーザーが目的を達成するために不可欠な動線において、機能的な欠陥がないかを厳格に検証します。 特定のブラウザでボタンが反応しない、フォームが送信できないといった機能不全は、軽微なレイアウト崩れよりもはるかに深刻な機会損失や信頼低下を招きます。 QAマネージャーとしては、表示の美しさだけでなく、サービスが提供するコアな価値がどの環境でも損なわれていないかという視点で、開発側やプロダクトマネージャーと共通認識を持つことが重要です。 重要度の低いページについては自動チェックツールによる簡易的な目視に留め、主要なコンバージョンポイントにテストリソースを集中させることで、手戻りを最小限に抑えつつ、プロダクト全体のスピードと品質を両立させることが可能になります。 この優先順位付けこそが、QAが単なるボトルネックではなく、価値創出の中核として機能するための戦略的な判断となります。 クロスブラウザテストの実施方法と落とし穴 手動テストと自動テストの役割分担 クロスブラウザテストを組織全体で最適化するためには、手動テストと自動テストの役割を明確に定義し、相乗効果を生む設計が不可欠です。 手動テストが真価を発揮するのは、レイアウトの微妙な違和感やフォントの視認性、直感的な操作感といった、数値化しにくいUX(ユーザー体験)の検証領域です。 特に新機能のリリース初期やデザインの大幅変更時には、人間の目による探索的なアプローチが欠かせません。 一方で、複数のブラウザやOSの組み合わせを網羅する回帰テストにおいては、自動テストの導入が不可欠です。 ログイン、検索、決済といったビジネスインパクトの大きい定型的なユーザーフローに対して、PlaywrightやSeleniumなどのツールを用いた自動化パターンを構築することで、人的ミスを排除しつつ検証の頻度を飛躍的に高めることができます。 現場の属人化を防ぎ、QAが開発のボトルネックにならないようにするためには、機械的な繰り返し作業を自動化に委ね、QAエンジニアがより戦略的な品質設計や高難度な不具合の特定にリソースを割ける体制を構築することが、全体最適への近道となります。 よくある失敗パターン メガベンチャーのようなスピード感が求められる環境でよくある失敗は、開発効率を優先するあまり最新の特定ブラウザのみでテストを終えてしまうことです。 モダンブラウザは標準化が進んでいるとはいえ、SafariのようにOSアップデートと密接に関わるブラウザや、企業内で利用され続ける少し古いバージョンのEdgeなどでは、予期せぬ挙動差が頻発します。 また、PCでの検証を主軸に置き、モバイル端末での検証を開発終盤まで後回しにすることも大きなリスクを孕んでいます。 スマートフォンの画面サイズ、解像度、そしてタッチ操作特有のイベント処理は、デスクトップのシミュレータだけでは再現しきれない不具合を隠し持っていることが多いからです。 さらに、ブラウザごとのレンダリング性能やJavaScriptエンジンの処理速度の差を軽視することも、UXの観点では致命的です。 ある環境ではスムーズに動いても、別の環境ではページの読み込みが極端に重く、ユーザーの離脱を招くケースは少なくありません。 これらのパフォーマンス差を考慮せず、単に「動いている」ことだけを確認する姿勢は、ビジネス的な成功を脅かす落とし穴となります。 落とし穴への具体的な対策 こうした落とし穴を確実に回避するためには、論理的で再現性のある具体的な対策を講じる必要があります。 まず重要なのが、アクセス解析データに基づいてテスト対象を戦略的に絞り込むことです。 すべてのブラウザを平等に扱うのではなく、ユーザー数やビジネス上の優先度が高い環境にリソースを集中させることで、コスト対効果を最大化します。 実行環境においては、物理的な挙動を確認するための主要な実機と、膨大なOS・ブラウザの組み合わせを低コストで網羅できるクラウド上の仮想環境やエミュレータを賢く併用するハイブリッドな体制が理想的です。 さらに、検証の観点を「表示(デザインの整合性)」「機能(ロジックの正当性)」「性能(応答速度の快適さ)」の3つに明確に分離して考える視点を持つことも、品質の全体像を俯瞰する上で極めて有効です。 それぞれの重要度に応じた合格基準を設けることで、場当たり的な改善から脱却し、開発チームや経営層に対して「どのレベルの品質が担保されているか」を一貫した言葉で説明できるようになります。 この整理された知見を仕組み化することで、属人化を排除し、組織拡大に耐えうる持続可能な品質体制の礎を築くことが可能になります。 効率化・自動化と継続的な運用設計 クロスブラウザテストを支えるツール活用 メガベンチャー規模のプロダクトにおいて、膨大なデバイスとブラウザの組み合わせを自社で維持・管理することは、コストと工数の両面で現実的ではありません。 そこで重要となるのが、クラウド型ブラウザ検証サービスの活用です。 これらのサービスは、数千種類のOS、ブラウザ、実機の組み合わせをオンデマンドで提供し、インフラ維持の負担を大幅に軽減する役割を担います。 また自動化テストツールは、クロスブラウザテストの網羅性を担保するためのエンジンとして位置づけられます。 PlaywrightやSeleniumといったツールを基盤に、主要なユーザー動線を検証するスクリプトを記述することで、人手では不可能な頻度での多環境検証が可能になります。 QAマネージャーとしては、単にツールを導入するだけでなく、どの検証をクラウドで行い、どの範囲を自動化に委ねるかという戦略的な配置図を描くことが求められます。 ツールの導入は手段であり、QAチームがより付加価値の高い探索的テストや品質改善活動に集中するための環境作りであると捉えるべきです。 CI/CDとクロスブラウザテスト クロスブラウザテストの真の価値は、リリースの直前に一度だけ実施することではなく、開発サイクルの中に溶け込ませた継続的な検証にあります。 CI/CDパイプラインにクロスブラウザテストを組み込むことで、コードが変更されるたびに主要な環境での互換性を自動でチェックする仕組みを構築できます。 これにより、開発の初期段階でブラウザ固有の不具合を発見する「シフトレフト」が実現し、リリース間際の手戻りを劇的に削減できます。 ただし、すべてのテストを毎回のビルドで実行するとフィードバックループが遅延するため、回帰テストとしての組み込み方には工夫が必要です。 例えば、プルリクエスト時には最重要ブラウザのみを検証し、深夜の定期実行ですべてのサポート対象環境を網羅するといった段階的な設計が有効です。 こうした継続的な運用設計は、開発スピードを損なうことなく品質の最低ラインを常に維持し続けるための防波堤となり、組織拡大後も破綻しないQA体制の基盤となります。 運用で成果を出すためのベストプラクティス テスト運用を形骸化させず、着実に成果を出すためには、結果の記録と共有の仕組み化が欠かせません。 テスト結果は単なる成否のログに留めず、不具合発生時のスクリーンショットやビデオ、ネットワークログなどを自動で集約し、開発者が即座に修正に着手できる形で共有されるべきです。 また発見された不具合に対しては、ビジネスインパクトに基づいた厳格な優先度判断を行います。特定のブラウザでのみ発生する軽微な表示のズレに固執するのではなく、主要なユーザーフローが阻害されているかという視点で、プロダクトマネージャーや開発チームと同じ言葉で議論し、修正の優先順位を決定します。 さらに、毎回のテスト結果や発生した不具合の傾向を分析し、次回のテスト範囲やサポート対象の見直しに繋げる運用ループを回すことが重要です。 場当たり的な対応から脱却し、蓄積されたデータに基づいた改善を繰り返すことで、QA活動が事業の意思決定に貢献する価値創出の中核へと進化していきます。 まとめ クロスブラウザテストは、単なるバグ探しのプロセスではありません。あらゆる環境のユーザーに等しくプロダクトの価値を届け、ビジネスの機会損失を防ぐための「事業基盤」そのものです。 今回解説した要点は以下の通りです。 論理的なターゲット選定: アクセス解析データに基づき、全環境対応という幻想を捨てて、ビジネスインパクトの大きい環境にリソースを集中させる。 ハイブリッドな検証体制: 実機によるUX検証と、クラウド・仮想環境による網羅的な自動テストを使い分け、属人化を排除する。 継続的な運用設計: CI/CDパイプラインへの統合と運用ループの構築により、リリース速度を落とさず品質を維持する「シフトレフト」を実現する。 QAマネージャーに求められるのは、現場の細かな不具合を追うことだけではなく、「どのレベルの品質を、いかに持続可能な仕組みで担保するか」という全体設計です。 この記事で紹介した知見を、次の四半期の改善計画や、経営層・開発チームとの合意形成にぜひ役立ててください! QA業務効率化ならPractiTest テスト管理の効率化 についてお悩みではありませんか?そんなときはテスト資産の一元管理をすることで 工数を20%削減できる 総合テスト管理ツール「 PractiTest 」がおすすめです! PractiTest (プラクティテスト) に関する お問い合わせ トライアルアカウントお申し込みや、製品デモの依頼、 機能についての問い合わせなどお気軽にお問い合わせください。 お問い合わせ この記事の監修 Dr.T。テストエンジニア。 PractiTestエバンジェリスト。 大学卒業後、外車純正Navi開発のテストエンジニアとしてキャリアをスタート。DTVチューナ開発会社、第三者検証会社等、数々のプロダクトの検証業務に従事。 2017年株式会社モンテカンポへ入社し、マネージメント業務の傍ら、自らもテストエンジニアとしテストコンサルやPractiTestの導入サポートなどを担当している。 記事制作: 川上サトシ (マーケター、合同会社ぎあはーと代表)
はじめに 前回 はKubeBlocksの解説と他類似OSSDB管理ソリューションの比較を行いました。今回はKubeBlocksでサポートされているDBソリューションについて説明します。 KubeBlokcsがサポートしているDB KubeBlocksとはKubernetesクラスタ上にプライベートなDBaaS(Database as a Service)を構築するためのオープンソース基盤です。多種多様なDBソリューションを統一された方法で管理することができます。 また、KubeBlocksはDB以外にもメッセージキューやストレージシステムに対応しています。 ここではKubeBlocksがサポートしているDBソリューションの説明、そのDBソリューションがどのような場面で利用されるかといったユースケースの説明、KubeBlocksがサポートしているDBの種類について紹介します。 Relational Databases Relational Databases(リレーショナルデータベース)とは データを行と列で構成されるテーブルで整理・格納するデータベースシステムです。リレーショナルデータベースではSQLという言語を使ってデータを操作します。 ユースケース 在庫管理や顧客の情報管理など、一貫性のあるデータの管理、データ同士で連携が必要なシステムで使用できます。 サポート対象DB MySQL:世界で最も広く使われているオープンソースのリレーショナルデータベース MariaDB:MySQLから派生したオープンソースのリレーショナルデータベース PostgreSQL:高機能さと拡張性が特徴のオープンソースのリレーショナルデータベース Vanilla PostgreSQL:カスタマイズしていない素のPostgreSQL  OrioleDB:PostgreSQLの容量、機能、パフォーマンスを最新のアプローチで向上させるために設計された、新しいストレージエンジン NoSQL NoSQLとは リレーショナルデータベースではないデータベースの総称です。リレーショナルデータベースのような厳格な構造(スキーマ)を緩和することで処理を単純にできるため高速に大量のデータを処理できます。 ユースケース ソーシャルメディアやECサイトなど高速に大量のデータを処理する必要があるシステムに向いています。 サポート対象DB MongoDB:大容量データの保存に使用されるドキュメント指向の NoSQL データベース Redis:高速でオープンソースの、メモリ内のキーバリューデータストア etcd:強力な一貫性のある分散キーバリューストア ZooKeeper:分散システムをまとめる、信頼性の高い集中型サービス OLAP Systems OLAP Systems(オンライン分析処理)とは 複雑なデータベースのクエリを高速に処理する技術の一つです。大量に蓄積されたデータを多角的な視点から素早く分析、集計するために特化したシステム。以下の図は、オンライン分析処理の概念図です。 OLAP Systemsの概念図 ユースケース 売り上げの分析やWebサイトのアクセス解析などのビジネスに関わるリアルタイム性が必要なシステムに向いています。 サポート対象DB Elasticsearch:本番規模のワークロードに最適化されたRESTful検索エンジン ClickHouse:列指向データベース StarRocks:リアルタイム、多次元、高度な同時データ分析が可能な高性能分析データウェアハウス高速な列指向データベース OpenSearch:オープンソースの分散型およびRESTful検索エンジン Distributed SQL Databases Distributed SQL Databases(分散SQLデータベース)とは 複数のサーバー(ノード)にデータを分散した状態で保存する仕組みです。データを分散して保存するが単一のリレーショナルデータベースのように振る舞うことが可能で可用性が高く高負荷の処理に強いという特徴があります。 ユースケース 金融プラットフォームなどの特に高可用性が求められるシステム、ユーザーが世界中にいるグローバルなオンラインサービスなど地理的に広範囲で展開され、一貫性を保つ必要があるシステムに向いています。 サポート対象DB TiDB:MySQL互換の分散データベース OceanBase-CE:C++ で開発された MySQL 互換の分散データベース PolarDB-X:MySQLをベースとした水平スケーリングをサポートするMySQL互換の分散データベース Vector Databases Vector Databases(ベクトルデータベース)とは テキスト、画像、音声などの複雑なデータを「ベクトル」という数値の配列に変換して保管します。意味の近さや類似性に基づいて高速で複合検索をすることができます。以下の図はベクトルデータベースの解説図です。 Vector Databasesの解説図 ユースケース ネットショッピングなどでの類似アイテムの推薦、意味検索など類似性や意味で検索を行うシステムで使用されます。 サポート対象DB Qdrant:ベクトルデータベースおよびベクトル類似性検索エンジン Weaviate:オープンソースのベクトルデータベース Milvus:非常に高速なクラウドネイティブのオープンソースベクトルデータベース Time Series Databases Time Series Databases(時系列データベース)とは 時間の経過とともに記録される時系列データを扱うことに特化したデータベースであり、時間の経過とともに記録されるデータを効率的に管理します。高速な書き込みと、特定の時間範囲での集計・分析処理を効率的に行えるように最適化されています。 ユースケース 需要予測、異常検知など時間ベースの分析が必要なシステムなど様々な分野で使用されています。 サポート対象DB InfluxDB:大規模な時系列データの処理に最適化された専用データベース VictoriaMetrics:監視ソリューションとしての利用に特化した時系列データベース GreptimeDB:スケーラビリティ、分析機能、効率性を重視したオープンソース時系列データベース TDengine:データベース、メッセージキュー、キャッシュ等の機能を統合した産業用IoT向けのデータプラットフォーム Graph Databases Graph Databases(グラフデータベース)とは データをノード(点)とエッジ(線)の集合体(グラフ)として捉えて格納するデータベースです。リレーショナルデータベースでは、テーブル同士の繋がりが増えるほど応答速度が低下します。一方、グラフデータベースは繋がりが増えても応答速度があまり低下しないというメリットがあります。以下の図は、グラフデータベースの概念図です。 Graph Databaseの概念図 ユースケース ソーシャルネットワーク、レコメンデーションなど繋がりがあるデータの検索などに向いています。 サポート対象DB Nebula:数兆のエッジと頂点を持つグラフを保存および処理できるオープンソースのグラフデータベース Message Queues Message Queues(メッセージキュー)とは アプリケーション間でデータを非同期で送受信するための中継役をするデータストレージです。キューがあることでデータを送る側も受け取る側も任意のタイミングで処理を行うことができます。以下の図はメッセージキューの概念図です。 Message Queuesの概念図 ユースケース 非同期処理の実装、マイクロサービス間の疎結合化など、システムの応答性・信頼性などを向上させるために様々な場面で使用されています。 サポート対象ソリューション RabbitMQ:オープンソースの分散イベント ストリーミングプラットフォーム Apache Kafka:信頼性が高いメッセージングおよびストリーミングブローカー Apache Pulsar:オープンソースの分散メッセージングおよびストリーミングプラットフォーム Storage System Storage Systemとは デジタルデータを物理的・論理的に保管、管理するための仕組みや製品全般を差します。 ユースケース データベースやアプリケーションのバックアップ先やAI / 機械学習のデータストレージなど様々なデータの保存や管理に使用されます。 サポート対象ソリューション MinIO:AWS S3互換APIを提供するオブジェクトストレージソリューション おわりに 今回の記事で見てきたように、KubeBlocksでは、多種多様なデータベースを、Kubernetesという共通の基盤の上で、統一された作法で管理することができるのがKubeBlocksの強みです。 KubeBlocksを利用することで開発者はインフラの細かな違いを意識することなく、アプリケーションの要件に最適なデータベースを利用できるようになります。 次回はKubeBlocksの導入としてKubernetes上にDBaaSを構築する手順を解説します。 参考文献 KubeBlocks公式: https://kubeblocks.io/docs/preview/user_docs/overview/supported-addons リレーショナルデータベースとは?メリット・デメリットや活用例を紹介: https://primenumber.com/blog/relational-database NoSQLデータベースとは?メリット・デメリットや活用例を紹介: https://primenumber.com/blog/nosql OLAPとは?特徴や実装方式から他の分析手法との比較も解説: https://primenumber.com/blog/olap OLAPデータベースにおける高速化の技術: https://tech.plaid.co.jp/fundamentals_of_olap_db_technology#%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BE%8B 分散データベースとは?特徴とメリット・デメリットを解説: https://www.anken-navi.jp/news/work-freelance/distributed-database/ CockroachDB公式サイト: https://www.cockroachlabs.com/ TiDB公式サイト: https://pingcap.co.jp/ メッセージキューの基礎知識と活用方法: https://tech-education-nav.com/contents/educational-materials/backend-development/message-queues-explained Amazon SQSのユースケースとAWSサービスとの連携例: https://qiita.com/kenogi/items/ea6154a0fc3e2d81622b ベクトル・データベースとは: https://www.oracle.com/jp/database/vector-database/ Vector DB 入門: https://zenn.dev/atusi/articles/61b7f95b4df726 【2025年決定版】ベクトルDB完全比較とRAG最新活用: https://arpable.com/artificial-intelligence/rag/vector-database-rag/ 時系列データベースとは? 時系列データの活用例や専用DBの必要性について解説: https://www.ctc-g.co.jp/keys/blog/detail/what-is-a-time-series-database 時系列データベースとは?基本と活用のメリット: https://products.sint.co.jp/siob/blog/time-series-database グラフデータベースとは?RDBとの違いや主要4製品の比較まとめ: https://aerospike.co.jp/blog/what-is-graph-database/ グラフデータベースとは何か ~ネットワーク状のデータ構造から瞬時に情報を検索するDBを解説: https://www.imagazine.co.jp/12805-2/ いまさら聞けない、ストレージとサーバの違い: https://www.netapp.com/ja/blog/server-and-storage/ MinIO公式: https://www.min.io/   ご覧いただきありがとうございます! この投稿はお役に立ちましたか? 役に立った 役に立たなかった 0人がこの投稿は役に立ったと言っています。 The post KubeBlocksでサポートされるDBの種類を徹底解説! first appeared on SIOS Tech. Lab .

動画

該当するコンテンツが見つかりませんでした

書籍