OK, então muitas revisões de código são bastante rotineiras. Mas, ocasionalmente, há mudanças que afetam amplamente o código complexo e frágil existente. Nessa situação, o tempo que levaria para verificar a segurança das alterações, a ausência de regressão etc. é excessivo. Talvez até excedendo o tempo necessário para fazer o próprio desenvolvimento.
O que fazer nessa situação? Mesclar e esperar que nada deslize? (Não defendo isso!) O melhor que se pode fazer e tentar detectar apenas falhas óbvias (talvez essa seja a melhor revisão de código que se deve procurar?) Mesclar e testar detalhadamente como uma alternativa melhor do que a revisão de código?
Isso não é especificamente uma questão de saber se o teste deve ser feito como parte de uma revisão de código. Esta é uma pergunta que pergunta quais são as melhores opções na situação descrita, especialmente com um prazo final, nenhum conjunto abrangente de testes de unidade disponíveis ou testes de unidade não viáveis para o código fragmentado alterado.
EDIT: Tenho a impressão de que algumas das respostas / comentários até agora captaram a minha frase "impacto amplo" e, possivelmente, isso significa que a mudança envolveu um grande número de linhas de código. Entendo que essa seja a interpretação, mas essa não era minha intenção. Por "impacto amplo", quero dizer, por exemplo, que o potencial de regressão é alto devido à interconectividade da base de código ou ao escopo dos efeitos indiretos, não necessariamente pelo fato de a mudança em si ser grande. Por exemplo, um desenvolvedor pode encontrar uma maneira de corrigir um bug com uma única linha chamando uma rotina de alto nível existente que envia em cascata as chamadas para muitas rotinas de nível inferior. Testar e verificar se a correção de bug funcionou é fácil. Validar manualmente (via revisão de código) o impacto de todos os efeitos indiretos é muito mais difícil.
what if there is no pre-existing test suite?
- Que tal escrever um?
Merge and hope nothing slips through?
Essa é uma ideia notoriamente ruim.