Separate QA departments were the norm until this TDD garbage came along. We have always tested our own work but the idea that we should bear sole responsibility for testing our work is lunacy. Anyone who doesn't see that has never written software or is mindlessly beholden to TDD. It doesn't work.
Whatever blind spots we had writing the code will also show up in our tests. This isn't a subtle point, it's elementary.
https://medium.com/p/test-driven-development-is-fundamentally-wrong-part-ii-604b9b99b0e4