Esta pergunta é para testadores ou leads de teste experientes. Este é um cenário de um projeto de software:
Digamos que a equipe de desenvolvimento tenha concluído a primeira iteração de 10 recursos e a liberada para teste do sistema. A equipe de teste criou casos de teste para esses 10 recursos e estimou 5 dias para o teste. É claro que a equipe de desenvolvimento não pode ficar ociosa por 5 dias e começa a criar 10 novos recursos para a próxima iteração. Durante esse período, a equipe de teste encontrou defeitos e levantou alguns bugs. Os bugs são priorizados e alguns deles precisam ser corrigidos antes da próxima iteração. O problema é que eles não aceitariam a nova versão com novos recursos ou alterações nos recursos existentes até que todos esses erros fossem corrigidos. A equipe de teste diz que é assim que podemos garantir uma versão estável para o teste, se também introduzirmos novos recursos junto com a correção de erros. Eles também não podem fazer testes de regressão de todos os seus casos de teste a cada iteração.
Isso significa que a equipe de desenvolvimento precisa criar uma ramificação de código exclusivamente para correção de bugs e outra ramificação onde eles continuam o desenvolvimento. Há mais sobrecarga de mesclagem, especialmente com refatoração e alterações arquiteturais.
Você pode concordar se esse é um princípio comum de teste. A preocupação da equipe de teste é válida. Você já encontrou isso na prática em seu projeto.