testes de software e método científico

cientistas testam e medem os resultados das suas experiências. assim podem reproduzir os mesmos resultados e validar o conjunto como um todo. no desenvolvimento de software é praticamente a mesma coisa, não acham?!
se você não testa o software, não tem prova empírica.
a Wikipédia tem essas definições:
No método científico (mais especificamente no método experimental), uma experiência [...]

escopo negociável

criar um contrato fixo e engessado com tudo que deve ser criado no sistema desde do início do projeto é uma armadilha para o desenvolvedor e cliente. veja mais em:
http://www.improveit.com.br/xp/praticas/contrato

12 razões para escrever testes unitários

http://www.onjava.com/pub/a/onjava/2003/04/02/javaxpckbk.html