The best place to start is with this book: TDD by Examle
One important thing to clarify here is that TDD and Unit Testing have little to do with Software QA Testing. Unit Testing and TDD are practices performed by developers to help decrease bug density in the code base and to write more flexible designs.
The main idea behind Unit Test is that it provides quick feedback on the behavior of your code, so you can quickly know if any module or method is not doing what it is supposed to. This same idea is the principle behind CI/CD process. whenever you or a team member pushes code to the code repo, the automated CI runs a build and a set of configured checks(Unit Tests, e2e Tests, etc) to ensure the application works, if it doesn't then it will revert the merge until the last stable build, thus preventing broken code into the main repo and into production systems.
TDD is a process to help you out to write good unit tests and design better code by focusing on "Test First". It is like when you where at school and your teachers put exams/tests to you. They give you a piece of paper with questions and you had to read and fill the right answers. In our case we write the questions for our code first, and then code the answer.
For more details on how to approach TDD please read:
medium.com/@MarcFly1103/buckle-up-with-tape-1bd5e… medium.com/javascript-scene/what-every-unit-test-…