私のプロジェクトでは、継続的インテグレーション環境をセットアップしており、このプロセスの一環として、QA テスト サイクル中に欠陥を同時に修正することを提案しています。
これを QA 環境にリリースする場合、一般的に行われているプロセスは何ですか? これらの修正は (統合テストの後) QA 環境にすぐに展開されますか、それとも現在のテスト サイクルが完了するまで累積されますか。
私のプロジェクトでは、継続的インテグレーション環境をセットアップしており、このプロセスの一環として、QA テスト サイクル中に欠陥を同時に修正することを提案しています。
これを QA 環境にリリースする場合、一般的に行われているプロセスは何ですか? これらの修正は (統合テストの後) QA 環境にすぐに展開されますか、それとも現在のテスト サイクルが完了するまで累積されますか。
テスト サイクルの開始時には、解決されたブロック バグがある場合にのみ、新しいビルドを使用する傾向があります。これにより、私のチームは、新しいビルドと予想外のリグレッションによって引き起こされるスラッシュを回避できます。多くの場合、リリースの初期段階では、機能が実際にどのように実装されたか、製品が最低限の承認基準を満たしているかどうかを理解することに費やされます。
テスト サイクルの途中では、修正ができるだけ多く公開されるようにし、不適切に修正されたバグをできるだけ早く特定するために、より頻繁にビルドを受け入れます。これは通常、長期のストレス テストまたはパフォーマンス テストを実行している環境を除き、毎日行われます。
リリースが近づき、どのバグを修正するかをより細かく制御できるようになります (つまり、現在のリリースはブランチ化されており、より厳格なコード ライン ポリシーを採用しています)。リリースを妨げるバグが見つかった場合にのみ、ビルドを継続します。現時点では、ビルドはベータまたはリリース候補と呼ばれることがよくあります。
CI ビルド中に見つかったバグは、開発チームが見つけ次第修正する必要があります。一方、QA チームは、CI ビルドの問題ではなく、通常のリリース サイクルまたはパッチ サイクル中に通常のビルドを受け取ります。
CI ビルドの自動テストでは、多くの QA および非 QA 関連のバグが検出されるため、他の QA アクティビティのパフォーマンスに大きな負荷がかかることに直接つながります。
すべては会社のQAポリシーに依存します。私の主張に同意するものもあれば、同意しないものもあります:)
これらの修正は (統合テストの後) QA 環境にすぐに展開されますか、それとも現在のテスト サイクルが完了するまで累積されますか。
場合によります。問題がブロックされていて、テスターがテスト計画全体を完了する (つまり、仕事をする) ためにそれ以上テストを実行できない場合は、修正をすぐにリリースする必要があることは明らかです。問題がブロックされていない場合は、修正をキューに入れ、次のリリースで利用できるようにすることをお勧めします。しかし、これには多くの管理作業 (問題のログ記録、テスト ケースへの注釈付けなど) が必要です。
ここで、QA が開発の非常に早い段階で行われる場合 (つまり、非常に連続した開発サイクルを使用していない場合)、テスターが開発者と緊密に協力している場合は、問題が発見されたらすぐに修正し、回避することもできます。バグの目録を作成する (大きな無駄)。
nitzmahon の答えは、CI システムから得られるより頻繁なビルドと、QA がテスト用の既知のターゲットを必要とする必要性とのバランスをとるための優れたアドバイスです。
継続的インテグレーションを利用して、各ビルドの一部として実行されるユニット/スモーク テストの上に追加のテストを取得できます。ここに私がやったことのいくつかがあります:
プロジェクトの開発スタイルによって異なります。あなたがアジャイルチームであると仮定します。
上記は一般的なアプローチです。もちろん、ソフトウェアとチームの性質に大きく依存します
これは、QA チームを内部チームと外部チームというサブチームに分割することで実現できます。内部 QA は開発マネージャーの下で開発チームの一員として働き、外部 QA は開発中の製品のテストを行います。
内部 QA チームは、製品のサニティ テストを担当します。サニティ フローを実行して、ビルドの基本的なヘルス チェックを評価します。健全性フローが失敗した場合、またはメジャー/新しく作成されたモジュールがクラッシュした場合、IQA は電子メールをリリース マネージャー/開発マネージャーにルーティングして、新しいビルドを開発します。健全性フローが渡されると、ビルドは適切なテスト。
ビルドは毎日計画され、障害は外部 QA によって報告されます。内部 QA は、健全性フローと、開発者との迅速なコミュニケーションとディスカッションのために存在します。このようにして、プロセス全体を後押しし、開発チームにそれらを追加することで QA-Dev ギャップを縮小できます。
これがあなたの質問に答えることを願っています! 乾杯 :)