2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

リリース直後のテストの目的と背景

Last updated at Posted at 2022-07-25

そもそも、テスト環境でテストしたのに、なぜリリース後の本番テストが必要なのでしょうか。
必要だとしたら、必要なテストとは何なのか、具体的に何をすればいいのか。
といった個人的な疑問があり、ここにまとめてみました。
また、必要に応じて情報を追加していきたいと思います。

目的まとめ

懸念 背景/例 軽減策 リリース後のテスト概要
本番のみに存在するエッジデータによる不具合未検出 本番環境とテスト環境では、データの数や性質が異なる場合がある。例) 加筆中.. 1.テスト環境での適切なデータ作成
2.コンバージョンデータのモニタリング
3.露出を絞ったA/Bテスト(1%->5%->10%など)
3.リリース後のテスト
そもそも想定外なので事前に検討はつかない
デプロイメントの失敗 例:ミドルウェア設定ミス、
DB更新ミス、デプロイの順序が守られていない、ライブラリなどの依存関係が正しくない、古いバージョンのソースコードをデプロイすることによるデグレードなど。
1.デプロイの自動化
2.デプロイ手順のレビュー
3.デプロイのリハーサル
4.ペアデプロイメント
5.リリース後のテスト
1.新機能
2.主な既存機能(高利用率のもの)
3.主な既存機能(高ビジネスインパクトのあるもの)
4.テスト環境で発見されたクリティカルバグを検出するテスト。
内部影響範囲調査の失敗 影響を受けるソースコードが適切に特定されなかった場合
例:変更したソースコードを使っている未テストな機能あった、リリース前のデータ移行が必要を見落とした、など)
1.正しい影響範囲調査
2.テスト環境の回帰テスト
3.リリース後のテスト
1.主な既存機能(高利用率のもの)
2.主な既存機能(高ビジネスインパクトのあるもの)
外部影響範囲調査の失敗 例: データやアーキテクチャを共有するクライアントサービス/サブシステムがあったのを見落としたなど 1.他のサービスやシステムとの適切なテスト
2.リリース後のテスト
1.クライアント/サービスの自システム主要関連機能
テスト環境でテスト不可能な領域の不具合未検出 例: 本番環境しか用意されていないAPIの関連機能、テスト環境で未実装の機能 1.適切なテスト環境の整備
2.リリース後のテスト
1.その領域のみに絞ったリリース後のテスト

リスクまとめ

懸念 具体例 軽減策
意図しないコンバージョン(購入、予約など) 本番稼働しているお店の商品を購入してしまう 1.本番テスト店舗を作る
2.データのクリーンアップ
意図しない副作用(閲覧履歴が残るなど) テストアカウントで足跡を残してしまう(例: LinkedInなどの足跡機能があるSNSの場合) 1.特殊なテストアカウントを作り、このアカウントでは副作用が発生しないようにする
2.万が一残ってしまった場合データのクリーンアップ方法の確立
KPIのノイズ テストにより売上増に見えてしまう 1.本番テスト店舗を作る
2.データのクリーンアップ
ログのノイズ ユーザのアクションログにノイズが入る 1.リリース後のテストでログを吐かないようにする
テストデータの本番露出によるユーザ体験の低下 テストデータが本番データに混ざり込む 1.テストデータが検索等通常動作でユーザの目に触れないようにする
2.検索エンジンのクロールを避ける

参考文献

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?