In ATDD, we are driven by behavioral specifications from the end user perspective.
In TDD, we are driven by behavioral specifications from the developer perspective.
Acceptance Tests specify system-level behavior.
Component Tests specify component-level behavior, for example, the behavior of frontend, the behavior of each microservice.
Unit Tests specify unit-level behavior, for example, the behavior exposed by a module (which is exposed through some class public API in OOP).
We start with behavior at the system level (Acceptance Tests) and then decompose it down at different levels.
Want to apply TDD in practice?
You tried TDD, but it didn’t work. That's why I'm going to help you practice TDD step-by-step. Apply TDD on a sandbox project, and get my feedback and answers to your questions. Access TDD in Legacy Code.