私は次のパターンをよく耳にします:バグは、まだオープン/未修正の別のバグの複製として解決/クローズされます。
この戦略の背後にある理由を理解するのに苦労しています。私の素朴な観点からは、少なくとも1つの大きな欠点があります。これが本当に重複していることを確認する簡単な方法はありません。
通常、バグが修正されているかどうかを確認するための非常に優れたヒューリスティックがあります。再生器/壊れたテストを実行し、結果が正しいかどうかを確認します-ほとんどの人が実行できます。ただし、重複した閉鎖の場合(元のバグが修正されていない限り)、検証は、コードを理解し、それについて推論することによってのみ行うことができます。重複としてバグをクローズする人。
より賢明なアプローチは、バグを重複としてマークし、重複ターゲットを解決/クローズし、その後、重複を解決/クローズすることです。これで、テスターは、リプロデューサーを実行することにより、すべての問題が解決されたことを簡単に確認できます。
未修正のバグの複製としてバグを閉じることは、重複するバグを処理する標準的な方法と見なされていますか?もしそうなら、なぜそれが合法であると考えられるのですか?
問題/根本原因が同じであることが完全に明らかである場合(たとえば、同じトレースバックが同じ条件で発生し、異なる顧客から報告されただけでクラッシュする)はい、複製として閉じることは完全に無理です- 2つ(またはそれ以上)の問題を個別に追跡することは、時間/リソースの無駄遣いです。
他の場合では、重複としてマークすることは、それぞれのコードを熟知していて、問題が実際に重複であると理解している開発者が行うことができます。しかし、議論の余地があります-人間は間違いを犯します。
完全に正しくなるには、元の問題が修正され、修正が候補の重複問題も修正することが確認された場合にのみ、問題を重複としてクローズするだけです。ただし、特に追跡システムがそのような機能を特にサポートしていない場合は、コストがかかる可能性があります。たとえば、未解決の問題の実際のバックログを追跡することは、「元の」と重複を区別できないと困難です。
場合によっては、許容できる妥協案(これも少し議論の余地があります)で、問題を重複としてマークできるようになります(コスト削減のため)。ただし、元の問題が修正された場合は、提出者は常に問題を再開する権利を保持しますが、問題は問題ではありません。通常、これはリリースゲーティングチェック(該当する場合)として(通常は元の送信者によって)検証されます。
ソフトウェアの問題を明確に把握したい。
システムに10の問題がある場合、10の未解決のバグが必要です。重複の10.000オープンバグではありません。
また、最小量の管理も必要です。したがって、誰かがそれを見つけたときにバグを重複としてクローズすることは、賢明なことです。時間は高価であり、複製にはできるだけ時間をかけたくない。
ただし、重複がそれほど重複していないことが判明した場合は、問題を再開するためのプロセスが必要です。
問題について話し合うための、明確で明確な単一の場所が必要です。 2番目のチケットを開くと、実際に使用されているチケットを特定するのが難しくなります。開発者Aが問題を調べ始め、進行状況についてコメントを残した場合、開発者B(または開発者Aの1週間)を確認する必要があります。後で、その問題について)は、同じ問題を説明する別のチケットを見ていたため、コメントを見逃すのではなく、そのコメントを確認します。
理想的には、複製が閉じられたときに、最終的に複製された新しい情報を元のチケットにコピーする必要があります。