$30 off During Our Annual Pro Sale. View Details »

Ques25

Avatar for nihonbuson nihonbuson PRO
November 21, 2025

 Ques25

Avatar for nihonbuson

nihonbuson PRO

November 21, 2025
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. 自己紹介 • 風間裕也(ブロッコリー) • 株式会社10X 品質管理チーム • 副業:B-Testing(個人事業主)として ◦ 株式会社MonotaRO

    (テストコンサルタント) ◦ 他数社でお手伝い • 社外活動 ◦ JaSST Review(ソフトウェアレビューシンポジウム) 実行委員長 ◦ WACATE(テストの合宿型ワークショップ形式勉強会) 実行委員長 ◦ SReEE(ソフトウェアレビューを エンジニアリングっぽく捉える会)リーダー SNS上の アイコン Whisk で作成
  2. #ques25 自己紹介 • 常盤香央里(ゆるぱし・かおりっと ) • @caori_t • 所属 ◦

    Graat(グロース・アーキテクチャ&チームス株式会社) ◦ 執行役員、ワークショップデザイナー • 社外活動 ◦ WACATE実行委員 (ソフトウェアテストの合宿形式勉強会コミュニティ) ◦ SigSQAメンバー(これからの品質保証を考える) • ワークショップデザインが趣味
  3. #ques25 本日のテーマ 講演テーマ:「品質の つくりこみ」と 「リリース後に 行うと よい テスト活動」を 体験する 「シフトレフト」と

    「シフトライト」を 短時間で 体験する ワーク ショップを 行います。 従来の テスト活動や 品質保証活動の タイミングを 前倒し・ 先送りする だけではなく、 本質的に 「不具合の 予防」や 「品質の つくりこみ」を 行ったり、 リリース後まで 見通して 戦略的に テスト活動を 組み込んで いく 流れを 体験いただきます。 ワークショップでの 体験を、 普段の テスト活動や、 これから 学ぶテスト技術の ヒントに していただけたら 嬉しいです!
  4. #ques25 タイムテーブル 時間 内容 18:30〜 受付開始 19:00〜19:05 オープニング 19:05〜19:50 ワークショップ(前半)

    19:50〜20:00 休憩 20:00〜20:45 ワークショップ(後半) 20:45~20:55 Techouse様お知らせ 20:55~21:00 アンケート回答、クロージング 21:05~21:45 懇親会
  5. #ques25 お題 • パッキング画面で 特定の 操作を する ときに ダイアログ を

    表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と 書かれていた
  6. #ques25 お題(配布用) • PBI① 「◦◦メソッドが 注文の 締切時間前に 呼ばれているので 対応する」と 書かれていた

    ◦ 「対応するって 何するの?」 「なんで 注文の 締切時間前に 呼ばれるのが よくないの?」と 質問した ら、今回満た すべき点 が 2つある ことが 分かったので、それぞれで対応策を考えた ◦ 満たすべき点の1つは設計の考慮漏れだったため設計に追記し、対応内容についてテスト駆動開発を用いて実装した ◦ 対応内容がアプリ上でも動作することを確認し、実際にリリースし、適切に動くことを確認した • PBI②パッキング画面で 特定の 操作を する ときに ダイアログを 表示したい ◦ ダイアログ表示が 頻発すると 業務の 妨げに なるのではないか? と気になったので確認した ◦ 全ユーザーにデプロイすると問い合わせが沢山来る可能性があるので、一部ユーザーにデプロイした ◦ テスト駆動開発をして仕込むログの内容を実装し、リリースした ◦ ダイアログ表示の 頻度が 想定よりも 少ない ことが 確認できたので、ダイアログ表示の 修正を 入れる ことを 決断した ◦ テスト駆動開発をしてダイアログ表示の修正を実装し、リリースした ◦ ダイアログ表示が、どれぐらいの 頻度で 呼び出されているのか把握できていないことが分かったので、修正を 入れる 前に、 その 部分に ログを 仕込むことに した • PBI③大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ◦ 既存の ロジックを 動かし続けながら 並行して 新しい ロジックを 動かし、既存と 新規の ロジックに 差異が ない ことを 確認した ◦ テスト駆動開発をして新しいロジックを書いたが、大規模リリースのため、リリースフラグを用いて少しずつリリースした ◦ ロジックを切り替える修正をテスト駆動開発で行い、ロジックを切り替えた後も動くことを確認した ◦ 以前までの修正コードにマージしても動くことを確認した ◦ 既存ロジックと新規ロジックを並行した状態でリリースし、既存と 新規の ロジックに 差異が ない ことを 確認した ◦ ロジックを 切り 替える 形で リリースした
  7. #ques25 お題 • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と

    書かれていた • パッキング画面で 特定の 操作を する ときに ダイアログ を 表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった
  8. #ques25 「対応するって 何す るの?」 「なんで 注 文の 締切時間前に 呼ばれるのが よくな

    いの?」と 質問した 質問の 回答から、 今回満た すべき点 が 2つある ことが 分 かった
  9. #ques25 お題 • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と

    書かれていた • パッキング画面で 特定の 操作を する ときに ダイアログ を 表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった
  10. #ques25 お題 • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と

    書かれていた • パッキング画面で 特定の 操作を する ときに ダイアログ を 表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった
  11. #ques25 お題 • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と

    書かれていた • パッキング画面で 特定の 操作を する ときに ダイアログ を 表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった
  12. #ques25 「対応するって 何す るの?」 「なんで 注 文の 締切時間前に 呼ばれるのが よくな

    いの?」と 質問した 質問の 回答から、 今回満た すべき点 が 2つある ことが 分 かった
  13. #ques25 お題 • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と

    書かれていた • パッキング画面で 特定の 操作を する ときに ダイアログ を 表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった
  14. #ques25 4種類のフィーチャーフラグ 記事「Feature Toggles (aka Feature Flags)」の中で フィーチャーフラグを4種類に分類して説明している • アクセス許可フラグ(Permissioning

    Toggles) • 実験フラグ(Experiment Toggles) • 運用フラグ(Ops Toggles) • リリースフラグ(Release Toggles) 参考:https://martinfowler.com/articles/feature-toggles.html
  15. #ques25 運用フラグ • 運用が劇的に変わった時に発生する 負荷を軽減するために利用するフラグ ◦ 問い合わせの急増 ◦ パフォーマンスの急増 •

    具体的なプラクティス例 ◦ カナリアリリース ▪ 利用者の一部にリリースして、状況を見て 全体に対象を広げるかどうかを判断する方法
  16. #ques25 カナリアリリースの計画例 計画例 • リリース初日 → 全体の10%に適用 • リリース2日目 →

    全体の30%に適用 • リリース3日目 → 全体の50%に適用 • リリース4日目 → 全体の80%に適用 • リリース5日目 → 全体(100%)に適用 少 多
  17. #ques25 カナリアリリースの計画例 計画例 • リリース初日 → 全体の10%に適用 • リリース2日目 →

    全体の30%に適用 • リリース3日目 → 全体の50%に適用 • リリース4日目 → 全体の80%に適用 • リリース5日目 → 全体(100%)に適用 少 多 不具合多発! 切り戻し
  18. #ques25 現場リサーチ • 店舗スタッフが ピッキングやパッキングを 行っている様子を、 すぐそばから観察 • 気になった点をメモする ◦

    時には録画・録音もする • 使い方を教えない 参考:https://speakerdeck.com/nihonbuson/shift-right?slide=38
  19. #ques25 お題 • PBIに 「◦◦メソッドが 注文の 締切時間前に 呼ばれてい るので 対応する」と

    書かれていた • パッキング画面で 特定の 操作を する ときに ダイアログ を 表示したい • 大幅なリアーキテクチャに よる ロジックの 入れ替えを 開発する ことになった
  20. #ques25 4種類のフィーチャーフラグ(再掲) 記事「Feature Toggles (aka Feature Flags)」の中で フィーチャーフラグを4種類に分類して説明している • アクセス許可フラグ(Permissioning

    Toggles) • 実験フラグ(Experiment Toggles) • 運用フラグ(Ops Toggles) • リリースフラグ(Release Toggles) 参考:https://martinfowler.com/articles/feature-toggles.html
  21. #ques25 リリースフラグがシフトレフトなテスト活動である理由 • リリースフラグなしの場合 ◦ 必要な変更が全て入った時にテスト実施 ▪ リリース直前にテストすることになる ▪ 差分も大きくなる

    • リリースフラグありの場合 ◦ mainブランチに変更が入る時にテスト実施 ▪ リリースフラグなしの場合に比べて 早い段階でテスト可能 ◦ シフトレフトしていると言える ◦ 1回の差分が小さいため、テスト対象範囲も小さい
  22. #ques25 チェックアウトワーク 準備ワーク • 付箋を1枚準備 • 持ち帰って取り組むことを一つ、サインペンで書きま す • 書けた方は付箋を持って立ち上がりましょう

    共有ワーク • 立ち上がっている人でペアをつくって、お互いに「こ れこれをやってみようと思います」と宣言します • 終わったら次の人を探して、どんどん共有しましょう
  23. #ques25 宣伝:WACATE 2025 冬 • ソフトウェアテストをテーマにした グループワーク形式の合宿型勉強会 • 日時:12/20(土)10:00 ~

    12/21(日)17:30 • 参加費:30,000円 ◦ 宿泊費、4食の食事代含む ◦ 35歳以下は27,000円 • 場所:トーセイホテル&セミナー幕張 ◦ JR京葉線 新習志野駅 徒歩約2分 • 締切:11月23日(日)まで • 申し込みは公式ページから