Ovviamente dipende dal tuo processo di revisione del codice ma personalmente direi che la completezza funzionale del requisito è più all'interno del mandato del team di controllo qualità che del revisore del codice.
Questo non vuol dire che un revisore del codice non dovrebbe essere in grado di cogliere problemi con la funzionalità in cui li trova (supponendo che abbiano le conoscenze per identificarli), solo che non è il loro obiettivo primario.
Normalmente vedo la revisione del codice come un tentativo di scoprire errori di codifica e inefficienze, vulnerabilità, perdite di memoria, che non sta controllando che ciò che è stato implementato sia corretto rispetto alle specifiche, ma che sia "corretto" dentro di sé.
Se desideri estenderlo oltre a includere più di una revisione funzionale, devi accettare che ciò avrà un impatto sul tempo necessario per il commit. Se vuoi che il revisore abbia piena familiarità con i requisiti funzionali e che li controlli, devi ovviamente dedicare molto più tempo alla lettura e alla comprensione dei requisiti e alla verifica del codice nei loro confronti.
Ma non dovrebbe essere visto come un sostituto del QA e dei test corretti, al massimo questo sarebbe un ulteriore livello.
In senso lato:
- Revisione del codice - è il codice che è stato prodotto efficiente, sicuro
e robusto
- QA: fa ciò che è lo schema nelle specifiche
- UAT: l'applicazione finale funziona effettivamente all'interno dell'azienda