Continuous Testing (CT) is a developer practice that shortens the feedback loops established by test-driven development and continuous integration. Building on techniques used by Agile software development practitioners, Continuous Testing with Ruby shows you how to get instant feedback about both the quality of your code, and the quality of your tests.
Automated testing is an increasingly common practice in the software development industry. However, many companies struggle to gain all the benefits of automated testing, due to poorly written or incomplete tests. Continuous Testing with Ruby shows how these companies can get the most value out of their existing tests. It also helps you improve the quality of the new tests you write, by giving you instant feedback about problem areas, and creating a visceral feedback loop for test quality that you can actually feel as you work.
Just as continuous integration and test-driven development have changed the definition of software development in the last ten years, Continuous Testing is poised to become a standard practice for development teams in the next decade.
Review By: John Snuggs 03/21/2012Continuous Testing is a very good book. Although it was challenging to set up the environment (I work on Windows systems, so tools native to OS X require a few tweaks to be able to run), I learned a lot in the process. I had no idea that Ruby was surrounded by so many helper tools.
While the book is based on understanding and using RSpec and Autotest, I felt intrigued by the topic of behavior-driven development (BDD). I spent some time exploring BDD, following the suggestions of the authors.
As the authors say, continuous testing and test-driven development (TDD) in general lead developers to introduce short-term technical debt. I found the suggestions for handling this debt to be very appealing. They provide a systematic way of capturing and reporting on the work that still needs to be done. This is a very practical approach that I can use elsewhere.
The book is well suited to people like me who want to learn about TDD and those who are using TDD and want a deeper understanding of the foundation and how to get the most out of it. There are great descriptions of how and why to use tools including Autotest, Watchr, Node.js, Spork. I appreciated the collection of tools and the explanations of when and why you should use them to get the most out of your environment.