A few months ago, I was invited to give a tech talk at Google about our testing practices. I finally got around to posting the slides, see below!
During the talk, I presented how we achieved our extreme iteration cycle of 5 minutes commit-to-production cycle. Starting at a high level, we looked the two fundamental aspects of software: transformations, which are stateless data operations, and interactions, which deal with state (such as a database, or an e-mail server). With this background we delved into practical matters and surveyed kaChing’s testing infrastructure by motivating each category of tests with different kind of problems often encountered. Finally, we looked at software patterns that lend themselves to testing and achieving separation of concerns allowing unparalleled software composability.