TDD e princípios SOLID estão interligados?

Atualmente estou procurando entender mais sobre boas práticas de programação (codificar de forma profissional). Me deparei com TDD e princípios SOLID. A pergunta que eu faço é: estudando a fundo TDD, indiretamente estarei estudando princípios SOLID?

Dicas de livros e sites são bem vindos.

Bem, eles não estão ligados diretamente, dentre os objetivos de ambos, eles tem um objetivo em comum: desenvolvimento de código com qualidade.

O SOLID é um tanto mais abrangente que o TDD, por mais que você estude a fundo o TDD você pode não compreender todos os conceitos do SOLID. O TDD no entanto fala de duas das letras do SOLID, que é o caso do S e o D: Single responsibility e Dependency inversion, onde esses dois conceitos são praticamente a base do TDD.

Por mais que existem N tutoriais na internet sobre TDD e SOLID, existem alguns livros bons como por exemplo o da casa do código: http://www.casadocodigo.com.br/products/livro-tdd e também o mais famoso que é o TDD By Example: http://www.amazon.com/Test-Driven-Development-By-Example/dp/0321146530

Mas eu acho que vale a pena você dar uma olhada em artigos que você pode achar na própria internet: http://www.devmedia.com.br/introducao-ao-desenvolvimento-guiado-por-teste-tdd-com-junit/26559 http://zeroturnaround.com/rebellabs/object-oriented-design-principles-and-the-5-ways-of-creating-solid-applications/ http://ivarconr.wordpress.com/2012/01/26/tdd-by-example-factorial/

Não conheço nenhum livro que fala sobre SOLID, mas, tendo em vista que o SOLID são um conjunto de várias boas práticas, você acha cada uma separada em artigos, ou até esse que eu mandei, onde fala de praticamente tudo.

Abraços.