Slide 1

Slide 1 text

©2025 10X, Inc. シフトライトなテスト活動を適切に行うことで、 無理な開発をせず、過剰にテストせず、 顧客をビックリさせないプロダクトを作り上げているお話 Regional Scrum Gathering Tokyo 2025 風間 裕也(ブロッコリー)

Slide 2

Slide 2 text

©2025 10X, Inc. 2 自己紹介 ● 風間裕也(ブロッコリー) ● 株式会社10X 品質管理チーム ● 副業:B-Testing(個人事業主)として ○ 株式会社MonotaRO (テストコンサルタント) ○ グロース・アーキテクチャ&チームス株式会社  他数社でお手伝い ● 社外活動 ○ JaSST Review(ソフトウェアレビューシンポジウム)実行委員長 ○ WACATE(テストの合宿型ワークショップ形式勉強会)実行委員長 ○ Developers Summit 2025 コンテンツ委員

Slide 3

Slide 3 text

©2025 10X, Inc. 翻訳書籍 3 今日のメイン

Slide 4

Slide 4 text

©2025 10X, Inc. 4 はじめに

Slide 5

Slide 5 text

©2025 10X, Inc. 5 はじめに こんな経験はありませんか? 手間暇かけて実装し、 沢山のケースをテスト実行し、 やっとの思いでリリースした

Slide 6

Slide 6 text

©2025 10X, Inc. 6 はじめに こんな経験はありませんか? 顧客に受け入れられなかった

Slide 7

Slide 7 text

©2025 10X, Inc. 7 はじめに こんな経験はありませんか? そして誰も使わなかった…

Slide 8

Slide 8 text

©2025 10X, Inc. 8 はじめに 目指したい未来 顧客をビックリさせない 顧客に受け入れられて 利用してもらえるプロダクト作りへ

Slide 9

Slide 9 text

©2025 10X, Inc. 9 はじめに アジェンダ ● はじめに ● 複数のテスト活動を組み合わせてプロダクトを作り上げる ● 継続的テストモデル ● 事業概要 ● 現場リサーチ ● フィーチャーフラグと活用例の紹介 ● フィーチャーフラグ活用時の注意点 ● 継続的テストモデルとの関係性 ● おわりに

Slide 10

Slide 10 text

©2025 10X, Inc. 10 テスト活動は1つだけではない 複数のテスト活動を組み合わせて プロダクトを作り上げる

Slide 11

Slide 11 text

©2025 10X, Inc. 高速道路の出口標識のようなテスト活動を目指す 11 複数のテスト活動を組み合わせてプロダクトを作り上げる

Slide 12

Slide 12 text

©2025 10X, Inc. 高速道路の出口の手前には予告標識がある 12 複数のテスト活動を組み合わせてプロダクトを作り上げる 葛西 2km Kasai 3-1

Slide 13

Slide 13 text

©2025 10X, Inc. 予告標識は出口の手前に複数回表示される 13 複数のテスト活動を組み合わせてプロダクトを作り上げる

Slide 14

Slide 14 text

©2025 10X, Inc. 予告標識は出口の手前に複数回表示される ● もしも予告標識が無く、出口が突然現れると… ○ 急な車線変更をする車がたくさん出てくる ○ きっと出口周辺で事故が多発する ○ 減速をして通過する必要が出てくる ● 予告標識があるので、 出口に行こうと思っている車両はスムーズに向かえる ○ 左車線に寄っておくことができる ○ 急な減速をせずに済む 14 複数のテスト活動を組み合わせてプロダクトを作り上げる

Slide 15

Slide 15 text

©2025 10X, Inc. 価値を届けるまでにテスト活動も複数回行う ● リリース直前のみにテスト活動があると… ○ 沢山のバグが見つかる ○ 修正に時間がかかるので、開発のスピードが落ちる ● リリース前やリリース後に複数回テスト活動をすると… ○ 小刻みにバグが見つかる ○ 修正に時間がかからないので、スムーズに価値を届けられる 15 複数のテスト活動を組み合わせてプロダクトを作り上げる

Slide 16

Slide 16 text

©2025 10X, Inc. 16 「複数回テスト活動をする」を表現している 継続的テストモデル

Slide 17

Slide 17 text

©2025 10X, Inc. 継続的テストモデル 17 継続的テストモデル Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳

Slide 18

Slide 18 text

©2025 10X, Inc. 継続的テストモデル 18 継続的テストモデル Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 テストの 範囲に なりがち

Slide 19

Slide 19 text

©2025 10X, Inc. シフトレフトなテスト活動 19 継続的テストモデル Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 早い段階 に行う テストがある

Slide 20

Slide 20 text

©2025 10X, Inc. シフトライトなテスト活動 20 継続的テストモデル Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 リリース後 に行う テストがある

Slide 21

Slide 21 text

©2025 10X, Inc. 継続的テストモデル 21 継続的テストモデル テストはフェーズ ではなく アクティビティである

Slide 22

Slide 22 text

©2025 10X, Inc. シフトレフトなテスト活動とシフトライトなテスト活動 22 継続的テストモデル シフトレフトなテスト活動例 ● リファインメントでの 受け入れ基準作成 ● リリースフラグの活用 シフトライトなテスト活動例 ● ログ仕込み ● 現場リサーチ ● 運用フラグの活用

Slide 23

Slide 23 text

©2025 10X, Inc. シフトレフトなテスト活動とシフトライトなテスト活動 23 継続的テストモデル 今回の発表内容

Slide 24

Slide 24 text

©2025 10X, Inc. シフトレフトなテスト活動とシフトライトなテスト活動 24 継続的テストモデル フィーチャーフラグ (発表後半で紹介)

Slide 25

Slide 25 text

©2025 10X, Inc. 25 事例紹介を より理解してもらうための前提知識: 事業概要

Slide 26

Slide 26 text

26

Slide 27

Slide 27 text

27

Slide 28

Slide 28 text

28 今回のお話

Slide 29

Slide 29 text

©2025 10X, Inc. ネットスーパーのサービスの一連の流れ 29 事例紹介をより理解してもらうための前提知識:ピッキング・パッキングとは何か? お客様 店舗 スタッフ 配達 スタッフ 注文実行 注文変更 締め切り ピッキング パッキング 配達 売り場から 商品を集める 注文ごとに 商品を梱包する

Slide 30

Slide 30 text

©2025 10X, Inc. ネットスーパーのサービスの一連の流れ 30 事例紹介をより理解してもらうための前提知識:ピッキング・パッキングとは何か? お客様 店舗 スタッフ 配達 スタッフ 注文実行 注文変更 締め切り ピッキング パッキング 配達 売り場から 商品を集める 注文ごとに 商品を梱包する 注文実行 注文変更 締め切り

Slide 31

Slide 31 text

©2025 10X, Inc. ネットスーパーのサービスの一連の流れ 31 事例紹介をより理解してもらうための前提知識:ピッキング・パッキングとは何か? お客様 店舗 スタッフ 配達 スタッフ 注文実行 注文変更 締め切り ピッキング パッキング 配達 売り場から 商品を集める 注文ごとに 商品を梱包する ピッキング 売り場から 商品を集める

Slide 32

Slide 32 text

©2025 10X, Inc. ピッキングする様子 32 事例紹介をより理解してもらうための前提知識 ● カメラを用いて、 バーコードをスキャンする ● 注文の商品と異なる場合は すぐに分かる仕組み

Slide 33

Slide 33 text

©2025 10X, Inc. ネットスーパーのサービスの一連の流れ 33 事例紹介をより理解してもらうための前提知識:ピッキング・パッキングとは何か? お客様 店舗 スタッフ 配達 スタッフ 注文実行 注文変更 締め切り ピッキング パッキング 配達 売り場から 商品を集める 注文ごとに 商品を梱包する パッキング 注文ごとに 商品を梱包する

Slide 34

Slide 34 text

©2025 10X, Inc. 注文ごとに 商品を梱包する ネットスーパーのサービスの一連の流れ 34 事例紹介をより理解してもらうための前提知識:ピッキング・パッキングとは何か? お客様 店舗 スタッフ 配達 スタッフ 注文実行 注文変更 締め切り ピッキング パッキング 配達 売り場から 商品を集める 注文ごとに 商品を梱包する 配達

Slide 35

Slide 35 text

©2025 10X, Inc. 事例紹介をより理解してもらうための前提知識まとめ ● チェーンストアECに特化したEC/DXプラットフォーム 「Stailer」を開発している ● 今回は店舗スタッフ向けアプリの事例 ● ピッキング…実店舗の陳列棚から、       注文のあった商品を選ぶこと       →選んだ商品はバックヤードへ運ぶ ● パッキング…商品を注文ごとに梱包すること 35 事例紹介をより理解してもらうための前提知識

Slide 36

Slide 36 text

©2025 10X, Inc. 36 実際のオペレーションの様子を観察する 現場リサーチ

Slide 37

Slide 37 text

©2025 10X, Inc. 現場リサーチという取り組み ● いわゆるフィールド調査やユーザーインタビューを ミックスした形式 37 現場リサーチ

Slide 38

Slide 38 text

©2025 10X, Inc. 現場リサーチの様子 ● 店舗スタッフが ピッキングやパッキングを 行っている様子を、 すぐそばから観察 ● 気になった点をメモする ○ 時には録画・録音もする ● 使い方を教えない 38 現場リサーチ ←10X社員 ↑店舗スタッフ

Slide 39

Slide 39 text

©2025 10X, Inc. ● 全く同じ商品の2ℓペットボトルのお茶1ケースが 入ったダンボールが2つ置かれていた。 現場リサーチで気付いた例 39 現場リサーチ

Slide 40

Slide 40 text

©2025 10X, Inc. 現場リサーチで気付いた例 40 現場リサーチ ● 一方のダンボールには「大型」が貼られていた ○ 大型…配達用のコンテナに入らないような大きな商品の区分 ● もう一方のダンボールには「常温」が貼られていた。 ○ 常温…冷やす必要のない、コンテナに入る大きさの商品の区分

Slide 41

Slide 41 text

©2025 10X, Inc. 現場リサーチで気付いた例 41 現場リサーチ ● 「大型」…お茶1ケースを注文した ● 「常温」…お茶6本を注文した ○ 1ケースと同じため、配達ではダンボールごと運ぶ

Slide 42

Slide 42 text

©2025 10X, Inc. 現場リサーチで気付いた例 42 現場リサーチ ● 「大型」…お茶1ケースを注文した ● 「常温」…お茶6本を注文した ○ 1ケースと同じため、配達ではダンボールごと運ぶ Stailerのデータだけでは 気付けない運用時の工夫だった

Slide 43

Slide 43 text

©2025 10X, Inc. 現場リサーチで見えてくるもの ● 運用でカバーしている点 ○ アプリでは解決が難しいものも含む ○ プロダクトの仕様やプロダクトに残るin/outのデータだけ 見ても、極めて断片的な理解・情報にしかならない ● リサーチした店舗特有の課題点 ○ 同じパートナーであっても、店舗によって課題は異なる ● 自分たちが開発した機能がどのように使われているか 43 現場リサーチ

Slide 44

Slide 44 text

©2025 10X, Inc. 以前に発表した際に貰った質問 現場リサーチは、特定の店舗やユーザーに着目した手法 複数の店舗で共通の運用課題を見つけるには 別のアプローチが必要 44 現場リサーチ 現場リサーチはすごい良いと思ったけど、 お客様が増えた場合にはどうするの?

Slide 45

Slide 45 text

©2025 10X, Inc. 45 コードを変更せずにシステムの振る舞いを変更する フィーチャーフラグ

Slide 46

Slide 46 text

©2025 10X, Inc. フィーチャーフラグとは何か ● フィーチャーフラグ ○ Feature Flag、もしくはFeature Toggle ○ コードを変更せずにシステムの振る舞いを変更できる手法 46 フィーチャーフラグ

Slide 47

Slide 47 text

©2025 10X, Inc. 4種類のフィーチャーフラグ 記事「Feature Toggles (aka Feature Flags)」の中で フィーチャーフラグを4種類に分類して説明している ● アクセス許可フラグ(Permissioning Toggles) ● 実験フラグ(Experiment Toggles) ● 運用フラグ(Ops Toggles) ● リリースフラグ(Release Toggles) 47 フィーチャーフラグ

Slide 48

Slide 48 text

©2025 10X, Inc. 4種類のフィーチャーフラグ 48 フィーチャーフラグ 記事 「Feature Toggles (aka Feature Flags)」 内にある画像を筆者が翻訳

Slide 49

Slide 49 text

©2025 10X, Inc. アクセス許可フラグ 49 フィーチャーフラグ 記事 「Feature Toggles (aka Feature Flags)」 内にある画像を筆者が翻訳

Slide 50

Slide 50 text

©2025 10X, Inc. アクセス許可フラグ ● ユーザーの状態によって アクセスの許可を切り分ける際に利用するフラグ ● 具体的なプラクティス例 ○ 有料会員のみ表示されるメニュー ● リクエスト毎にフラグが変更される ○ 毎回、判定が行われる ● 機能が廃止になるまで半永久的に利用する 50 フィーチャーフラグ

Slide 51

Slide 51 text

©2025 10X, Inc. 実験フラグ 51 フィーチャーフラグ 記事 「Feature Toggles (aka Feature Flags)」 内にある画像を筆者が翻訳

Slide 52

Slide 52 text

©2025 10X, Inc. 実験フラグ ● 新機能の有効性を確かめるために 試験的に機能を導入する際に利用するフラグ ● シフトライトなテスト活動と見なすことができる ● 具体的なプラクティス例 ○ A/Bテスト ● リクエスト毎にフラグが変更される ○ 毎回判定が行われる ● 有効性の確認が終わるまで利用する ○ 新機能を全ユーザーに適用する or 新機能を破棄する 52 フィーチャーフラグ

Slide 53

Slide 53 text

©2025 10X, Inc. 運用フラグ 53 フィーチャーフラグ 記事 「Feature Toggles (aka Feature Flags)」 内にある画像を筆者が翻訳

Slide 54

Slide 54 text

©2025 10X, Inc. 運用フラグ ● 運用が劇的に変わった時に発生する 負荷を軽減するために利用するフラグ ○ 問い合わせの急増 ○ パフォーマンスの急増 ● シフトライトなテスト活動と見なすことができる ● 具体的なプラクティス例 ○ カナリアリリース ■ 段階的かつ計画的なリリース ● リクエスト毎や再構成毎にフラグが変更される ○ 決まったタイミングで判定が変わる ● フラグの切り替えの必要性がなくなるまで利用する 54 フィーチャーフラグ 後ほど 詳しく紹介

Slide 55

Slide 55 text

©2025 10X, Inc. リリースフラグ 55 フィーチャーフラグ 記事 「Feature Toggles (aka Feature Flags)」 内にある画像を筆者が翻訳

Slide 56

Slide 56 text

©2025 10X, Inc. リリースフラグ ● 大規模なソースコードの変更とならないように 制御するために利用するフラグ ● 機能リリースとコードデプロイの分離が可能になる ● シフトレフトなテスト活動と見なすことができる ● 具体的なプラクティス例 ○ リリース戦略への活用 ● デプロイ毎にフラグが変更される ○ 日々のリクエストの中で判定が変わることは基本的にない ● 実際にリリースするまで利用する 56 フィーチャーフラグ 次ページから 詳しく紹介

Slide 57

Slide 57 text

©2025 10X, Inc. 57 mainブランチにマージしつつ本番環境に影響を与えない リリースフラグの活用

Slide 58

Slide 58 text

©2025 10X, Inc. リリースフラグ活用なしの場合のリリース戦略例 58 リリースフラグの活用 今までの開発した コードをいっぺんに マージ 開発中にマージ しないため 差分が溜まり続ける feature main マージ ※mainブランチに入っているものを本番環境にデプロイ

Slide 59

Slide 59 text

©2025 10X, Inc. リリースフラグ活用なしの場合のリリース戦略例 59 リリースフラグの活用 今までの開発した コードをいっぺんに マージ 開発中にマージ しないため 差分が溜まり続ける feature main マージ 最後のマージ部分でテスト実施

Slide 60

Slide 60 text

©2025 10X, Inc. リリースフラグ活用ありの場合のリリース戦略例 60 リリースフラグの活用 本番環境での リリース フラグをOFF feature main マージ

Slide 61

Slide 61 text

©2025 10X, Inc. リリースフラグ活用ありの場合のリリース戦略例 61 リリースフラグの活用 本番環境での リリース フラグをOFF feature main マージ フラグがOFFの間 ユーザーには 見えていない

Slide 62

Slide 62 text

©2025 10X, Inc. リリースフラグ活用ありの場合のリリース戦略例 62 リリースフラグの活用 本番環境での リリース フラグをOFF 本番環境での リリース フラグをON feature main マージ

Slide 63

Slide 63 text

©2025 10X, Inc. 本番環境での リリース フラグをOFF リリースフラグ活用ありの場合のリリース戦略例 63 リリースフラグの活用 本番環境での リリース フラグをON feature main マージ 検証環境でリリースフラグをONにすることで 細かい差分でテスト可能

Slide 64

Slide 64 text

©2025 10X, Inc. リリースフラグがシフトレフトなテスト活動と考える理由 ● リリースフラグなしの場合 ○ 必要な変更が全て入ったタイミングでテスト実施 ■ 開発終了後、リリース直前にテストすることになる ■ 差分も大きくなる ● リリースフラグありの場合 ○ mainブランチに変更が入るタイミングでテスト実施 ■ リリースフラグなしの場合に比べて早い段階でテスト可能 ● シフトレフトしていると言える ■ 1回の差分が小さいため、テスト対象範囲も小さい 64 リリースフラグの活用

Slide 65

Slide 65 text

©2025 10X, Inc. 継続的テストモデルに照らし合わせると… 65 リリースフラグの活用 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 リリースフラグ なしの場合

Slide 66

Slide 66 text

©2025 10X, Inc. 継続的テストモデルに照らし合わせると… 66 リリースフラグの活用 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 リリースフラグ ありの場合

Slide 67

Slide 67 text

©2025 10X, Inc. リリースフラグの活用例 ● 新機能の開発 ● データベースの再構成を伴わないリアーキテクチャ ○ 例)表示ロジックをアプリ側からサーバー側に移植する 67 リリースフラグの活用

Slide 68

Slide 68 text

©2025 10X, Inc. 68 運用が劇的に変わった時に発生する負荷を軽減させる 運用フラグの活用

Slide 69

Slide 69 text

©2025 10X, Inc. 運用フラグ(再掲) ● 運用が劇的に変わった時に発生する 負荷を軽減するために利用するフラグ ○ 問い合わせの急増 ○ パフォーマンスの急増 ● シフトライトなテスト活動と見なすことができる ● 具体的なプラクティス例 ○ カナリアリリース ■ 段階的かつ計画的なリリース 69 運用フラグの活用

Slide 70

Slide 70 text

©2025 10X, Inc. 運用フラグ(再掲) ● 運用が劇的に変わった時に発生する 負荷を軽減するために利用するフラグ ○ 問い合わせの急増 ○ パフォーマンスの急増 ● シフトライトなテスト活動と見なすことができる ● 具体的なプラクティス例 ○ カナリアリリース ■ 段階的かつ計画的なリリース 70 運用フラグの活用

Slide 71

Slide 71 text

©2025 10X, Inc. カナリアリリース ● 利用者の一部にリリースして、 状況を見て全体に対象を広げるかどうかを判断する方法 71 運用フラグの活用

Slide 72

Slide 72 text

©2025 10X, Inc. なぜ「カナリアリリース」というのか? 昔、イギリスとアメリカの炭鉱員が地下に降りるとき、 行列の先頭がカナリアのカゴを持って炭鉱に入った。 カナリアの歌声が止まったり、力を失って死ぬなら、 炭鉱内にメタンガスのような有害ガスが多いと判断し、 炭鉱員をいち早く危険地域から 逃げさせる役割を持たせた。 炭鉱の中のカナリア - 山形大学環境保全センター    72 運用フラグの活用 炭鉱のカナリア-毒ガスに反応するカナリア イラスト素材 [ 6512744 ] - フォトライブラリー photolibrary

Slide 73

Slide 73 text

©2025 10X, Inc. カナリアリリース ● 利用者の一部にリリースして、 状況を見て全体に対象を広げるかどうかを判断する方法 ● 計画例 ○ リリース初日 → 全体の10%に適用 ○ リリース2日目 → 全体の30%に適用 ○ リリース3日目 → 全体の50%に適用 ○ リリース4日目 → 全体の80%に適用 ○ リリース5日目 → 全体(100%)に適用 73 運用フラグの活用 少 多

Slide 74

Slide 74 text

©2025 10X, Inc. カナリアリリース ● 利用者の一部にリリースして、 状況を見て全体に対象を広げるかどうかを判断する方法 ● 計画例 ○ リリース初日 → 全体の10%に適用 ○ リリース2日目 → 全体の30%に適用 ○ リリース3日目 → 全体の50%に適用 ○ リリース4日目 → 全体の80%に適用 ○ リリース5日目 → 全体(100%)に適用 74 運用フラグの活用 不具合多発! 切り戻し

Slide 75

Slide 75 text

©2025 10X, Inc. カナリアリリースの設定方法 ● Androidアプリの場合 ○ 段階的な公開(Staged rollout)機能を用いて設定可能 ■ 適用するユーザーの割合は自由に設定可能 ● iOSアプリの場合 ○ Phased Releases機能を用いて設定可能 ■ 適用するユーザーの割合は固定 75 運用フラグの活用

Slide 76

Slide 76 text

©2025 10X, Inc. 運用フラグ(再掲) ● 運用が劇的に変わった時に発生する 負荷を軽減するために利用するフラグ ○ 問い合わせの急増 ○ パフォーマンスの急増 ● シフトライトなテスト活動と見なすことができる ● 具体的なプラクティス例 ○ カナリアリリース ■ 段階的かつ計画的なリリース 76 運用フラグの活用

Slide 77

Slide 77 text

©2025 10X, Inc. 段階的かつ計画的なリリース ● カナリアリリースの一種 ● 適用する利用者のグループをより具体的に指定する方法 ● 計画例 ○ 第1弾 → 利用者数が少ないパートナー ○ 第2弾 → 利用者数が第1弾よりは少し多いパートナー ○ 第3弾 → 利用者数が多いパートナーのうち、店舗面積が小さめの店舗 ○ 第4弾 → 利用者数が多いパートナーのうち、店舗面積が大きめの店舗 ○ 第5弾 → 利用者数が多いパートナーのうち、運用が特殊な店舗 77 運用フラグの活用 少 多

Slide 78

Slide 78 text

©2025 10X, Inc. なぜ利用者数が少ないパートナーから適用するのか ● 我々が取り扱っている店舗スタッフ向けアプリは 毎日のピッキングやパッキングの業務をサポートしている ● リリースによってアプリが劇的に変化してしまうと… ○ 全利用者が混乱する ○ 相当数の問い合わせが届く ● 利用者数が少ないパートナーから適用していくと… ○ 運用上の問題を既に踏み抜いておける ○ 新機能に対する問い合わせが少ない状態を保てる 78 運用フラグの活用

Slide 79

Slide 79 text

©2025 10X, Inc. その他の運用フラグの活用例 ● リリースフラグとして利用していたフラグの再活用 ● 障害が起きると多くのユーザーに 悪影響を与えそうな新機能 実際に障害が発生した時に、すぐに元の状態に戻せる 79 運用フラグの活用

Slide 80

Slide 80 text

©2025 10X, Inc. 80 必ずしもフィーチャーフラグを活用すれば良いわけではない フィーチャーフラグ活用時の注意点

Slide 81

Slide 81 text

©2025 10X, Inc. フラグが正しく取得できると過信しない ● 通信環境に依存される ○ 特にクライアント側 ● フラグがOFFで動くことをデフォルトとして開発する ○ 例)アクセス許可フラグとしての有料会員のフラグ ■ 「有料会員の場合にON」となるようにする ● フラグを取得できなかった時に無料会員扱いにする ● 逆の設定(無料会員の場合にON)だと、 フラグを取得できなかった時に有料会員の機能が使えてしまう 81 フィーチャーフラグ活用時の注意点

Slide 82

Slide 82 text

©2025 10X, Inc. トラブルなどがあればOFFにできるように設計する ● トラブルが発生したらフィーチャーフラグをOFFにする ○ リリース前の状態にすぐに戻せる形にする ● フィーチャーフラグで分岐させる箇所は コピペ上等で実装する ○ 分岐先のコードで本来のやりたいこと以外も 色々と変更するのは避ける ■ 特にデータ構造の変更は極力避ける ○ フィーチャーフラグをONにしてトラブルが発生した時に OFFに戻せなくなる 82 フィーチャーフラグ活用時の注意点

Slide 83

Slide 83 text

©2025 10X, Inc. フィーチャーフラグのONとOFFの両方をテストする ● フィーチャーフラグを用いて開発していると、 フィーチャーフラグがONのことばかり考えてしまいがち ● フィーチャーフラグがOFFの場合のテストも実施する ● リリースフラグでの開発時には特に注意! ○ フラグOFFの時に不具合が発生してしまうと、利用者にとっては 「何も機能追加されていないのに不具合が起きた」と 感じてしまう 83 フィーチャーフラグ活用時の注意点

Slide 84

Slide 84 text

©2025 10X, Inc. ログなどで操作やフラグ適用の様子を追えるようにする ● 期待した効果が得られない、問い合わせが発生した場合 どのような操作をしているのか見えるようにしておく ● フラグが適用されているか分かるようにしておく ○ 問い合わせが発生してないぞ!(←実は誰にも適用してない) ● 操作内容を追えないと… ○ 何か良く分からないけどうまくいってないみたい ○ この機能って提供しない方が良いのでは? 84 フィーチャーフラグ活用時の注意点

Slide 85

Slide 85 text

©2025 10X, Inc. A/Bテストと運用フラグを併用しない ● A/Bテストは統計を元に考えることが大事 ○ 統計的にランダムであることを保証する必要あり ○ 統計的に有意な差があることを確認する必要あり ● 運用フラグを用いるとランダム性が保証できないため、 併用するのは悪手 85 フィーチャーフラグ活用時の注意点

Slide 86

Slide 86 text

©2025 10X, Inc. 利用者はテスターではない ● 制限した上で適用された利用者はあくまでもお客様 ○ テスターではない ● シフトライトなテスト活動の目的は 「機能としては動くが、運用上不便である」 (妥当性確認)の発見 ○ 「不具合をお客様に見つけてもらう」(検証)が目的ではない ○ 不具合は従来のテスト活動で発見する必要がある 86 フィーチャーフラグ活用時の注意点

Slide 87

Slide 87 text

©2025 10X, Inc. 87 紹介したテスト活動を紐づけてみる 継続的テストモデルとの関係性

Slide 88

Slide 88 text

©2025 10X, Inc. 継続的テストモデル(再掲) 88 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳

Slide 89

Slide 89 text

©2025 10X, Inc. 継続的テストモデル(再掲) 89 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 リファインメントでの 受け入れ基準作成

Slide 90

Slide 90 text

©2025 10X, Inc. 継続的テストモデル(再掲) 90 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 テスト駆動開発

Slide 91

Slide 91 text

©2025 10X, Inc. 継続的テストモデル(再掲) 91 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 リリースフラグの活用

Slide 92

Slide 92 text

©2025 10X, Inc. 継続的テストモデル(再掲) 92 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 従来のテストや システムテスト

Slide 93

Slide 93 text

©2025 10X, Inc. 継続的テストモデル(再掲) 93 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 実験フラグの活用

Slide 94

Slide 94 text

©2025 10X, Inc. 継続的テストモデル(再掲) 94 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 運用フラグの活用

Slide 95

Slide 95 text

©2025 10X, Inc. 継続的テストモデル(再掲) 95 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 現場リサーチ

Slide 96

Slide 96 text

©2025 10X, Inc. 継続的テストモデル(再掲) 96 継続的テストモデルとの関係性 Continuous Testing in DevOps… に掲載の画像を元に発表者が翻訳 今回の紐付けはあくまでも一例 自組織に合わせて シフトレフト・シフトライトな テスト活動は何か考えよう!

Slide 97

Slide 97 text

©2025 10X, Inc. 97 おわりに

Slide 98

Slide 98 text

©2025 10X, Inc. まとめ ● プロダクトを作り上げるために 複数のテスト活動を組み合わせる ● シフトライトなテスト活動として現場リサーチがある ● シフトレフトなテスト活動および シフトライトなテスト活動として フィーチャーフラグがある ● フィーチャーフラグは4種類に分類できる ● フィーチャーフラグ適用時には注意点がある 98 おわりに

Slide 99

Slide 99 text

©2025 10X, Inc. 色々なテスト活動を駆使してプロダクトを作る 99 おわりに

Slide 100

Slide 100 text

©2025 10X, Inc. 一緒に働いてみませんか? 100 おわりに 10Xではソフトウェア エンジニアを募集中! 副業やってます! 仕事の依頼をお待ちしてます!