
How Google Tests Software

Here’s the overall flow: 1. Write a class or set of functions for a service in one or more source files and make sure all the code compiles. 2. Identify a library build target for this new service. 3. Write a unit test that imports the library, mocks out its nontrivial dependencies, and executes the most interesting code paths with the most interes
... See moreJason Arbon • How Google Tests Software
Instead of distinguishing between code, integration, and system testing, Google uses the language of small, medium, and large tests
Jason Arbon • How Google Tests Software
“Quality cannot be tested in” is so cliché it has to be true. From automobiles to software, if it isn’t built right in the first place, then it is never going to be right. Ask any car company that has ever had to do a mass recall how expensive it is to bolt on quality after the fact. Get it right from the beginning or you’ve created a permanent mes
... See moreJason Arbon • How Google Tests Software
For feature code, the mindset is creating and considering users, use cases, and workflow. For test code, the mindset is about breaking and writing code that will draw out cases that disrupt the user and his workflow.
Jason Arbon • How Google Tests Software
Google was at that point. Testing had become one of the biggest barriers to continued success and coming up with the right testing strategy to keep up with our ultra-rapid growth in users,
Jason Arbon • How Google Tests Software
The question a medium test attempts to answer is, “Does a set of near neighbor functions interoperate with each other the way they are supposed to?”
Jason Arbon • How Google Tests Software
The question a large test attempts to answer is, “Does the product operate the way a user would expect and produce the desired results?”
Jason Arbon • How Google Tests Software
Of course, there is risk in the opposite direction too. If a product goes too long without testing involvement, it can be difficult to undo a series of design decisions that reduce testability to the point that automation is too hard and resulting test tools too brittle.
Jason Arbon • How Google Tests Software
At Google, we have created roles in which some engineers are responsible for making other engineers more productive and more quality-minded. These engineers often identify themselves as testers, but their actual mission is one of productivity.