Testing, in software development, is a very broad field, especially if you look at all of its history, too.

Today, in the field of developing modern web applications, it is a set of practices that helps writing better and less error prone software, and helps you be confident that your (or others’) changes won’t break your application.

Still, even today, if you ask 10 different programmers how to write good tests you’ll probably get 10 varying answers. However, there are a couple things that they’ll all have in common, too, and we’ll try to explore some of the answers in this book.