TDD (Test Driven Development)
A more recent approach is TDD (Test Driven Development). Test Driven Development starts with designing and developing tests for every small functionality of an application. In TDD approach, first, the test is developed which specifies and validates what the code will do.
The simple concept of TDD is to write and correct the failed tests before writing new code (before development). This helps to avoid duplication of code as we write a small amount of code at a time in order to pass tests. (Tests are nothing but requirement conditions that we need to test to fulfill them).
Test Driven development is a process of developing and running automated test before actual development of the application.
Selenium can be used to create the tests, with an IDE such as Eclipse or IntelliJ (both open source). Selenium, not being a record and replay tool, is capable of creating tests without requiring a GUI and can create tests using just the requirements