C'è un approccio alternativo da discutere: BDD
Si prega di considerare lo sviluppo guidato dal comportamento con le specifiche eseguibili. Le tue specifiche vengono semplificate in una serie di istruzioni Given - When - Then che sono memorizzate in file di testo. Uno strumento BDD come Cucumber o SpecFlow converte quei file di testo in test eseguibili, che il tuo strumento di compilazione può eseguire.
Cetriolo: link - BDD per Ruby
SpecFlow: link - BDD for .Net
Per una rapida demo del flusso di lavoro con uno strumento come SpecFlow, controlla il walk-through SpecFlow di Rob Conery: link
Ora, non solo stai facendo il versioning del tuo codice, ma le tue specifiche e lo strumento di Continuous Integration (pensa TeamCity, CruiseControl, Hudson, ecc.) impone che tutte le specifiche siano ancora valide su OGNI build ... È prezioso per voi?