This is a software development process that helps us avoid duplicate code, making it clearer and easier to read and comprehend, facilitating early bug detection. This is a process that is repeated several times during very short development cycles. With this, you need to transform your requirements into test cases, and with each cycle, your software is improved and is now ready to take on a new set of tests. With this, you’re always making sure that you software meets all the requirements.


For each new piece of functionality of an application, a new test is created to make sure that it works as intended. Each test represents a new requirement that our program needs to fulfill. In case a test fails, the developers are forbidden from writing new code before the existing one is corrected. The idea of this is to develop and run the tests before the actual development of our application.

Adding a new test

Fail a test

Running previous and new tests

Writing just enough code


Re-run tests

Refactor code

Now all that’s left is to repeat this cycle as many times as it’s needed. By repeating this process, you make sure that your code is always well-written and well-implemented, so that you can make changes whenever needed without having to change the whole logic of your program.

Decently-fed student majoring in Computer Science. You probably don’t know me, but you will.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store