The field of software testing has made some really interesting strides in recent years, primarily in the fields of test-driven development (TDD) and behavioral-driven development (BDD).
I'm not going to get into TDD and BDD too much in this article, but I would like to share some resources about each subject.
Test-driven development (TDD)
TDD was spawned from the Java JUnit tool and eXtreme Programming. In short, TDD can be described this way:
Write the test, then write the code.