In layman’s terms, Test Driven Development (TDD) is a software development practice that focuses on creating unit test cases before developing the actual code. It is an iterative approach that combines programming, the creation of unit tests, and refactoring.
Test Driven Development (TDD) is software development approach in which test cases are developed to specify and validate what the code will do.
Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases.
In TDD, you achieve 100% coverage test. Every single line of code is tested, unlike traditional testing.
It is customer focussed since test-cases are focussed on customer use-cases
Unit testing
Integration testing
Acceptance testing
Unit framework
Chaos monkey
Latency monkey
Janitor monkey
Treat test code like production code
Write Maintainable test-cases
+ve and -ve test cases both
Review test cases by team
Its good to write test-cases beforehand
Execution order of tests should not matter
Tests should focus on what not how. So, test-case should not focus implementation detail.
A test failure should not cause cascading failures/(false +ves)
Holes in the tests
Technical debt can creep into each of the three stages of the TDD process
https://en.wikipedia.org/wiki/Test-driven_development
https://images.app.goo.gl/uKypztMaLDGjsAkdA
https://www.guru99.com/test-driven-development.html
https://www.browserstack.com/guide/what-is-test-driven-development
https://www.sealights.io/agile-testing/test-driven-development-and-the-dangers-of-hidden-technical-debt/
https://images.app.goo.gl/V2DnX8NgtqRJJ9LU6
https://images.app.goo.gl/xh5r93FwgY5uJgmB9