This is the most current errata. It contains both corrections of actual errors and proposed rephrasing/rewrites.

Page Change
6 This isn’t really an error as such, but I’d like to replace:

“Developer testing is an umbrella term for all test-related activities a developer engages in. This particular book is about building quality into the code (and in the longer run, the software), which narrows the scope.”


“Developer testing is the developers’ intentional and systematic employment of testing tools and techniques with the purpose of achieving the highest possible correctness of the software that they create.”

 15 Change “errors” to “defects”.
 68 Clarify sentence by changing to “operates only on indirect input, and produces only indirect output, so testing it..”
 73 Change “candidates for this type of behavior” to “concepts that are often implemented using primitive data types.”
 76 Code sample: Remove dangling “>”
 91 Put “split” in monospaced font
 93 Missing “the” before “Command/Query Separation principle”
 94 Change “quite acceptable” to “a better option”
 109 Code sample: The cat seems to have eaten the last line, which should be throw new IllegalArgumentException("Age out of range");.
 113 While I did try to emulate legacy code, the complexity of the loop in the second snippet cannot be motivated. It should just be for (Customer customer : query.list()) {
Also, Query should be typed (Query<Customer>)
The placement of an image has made a reference using “previous” incorrect.
 120 Change “bad idea” to “unrewarding, to say the least”
 127 Code sample: Indent IOException by 8 spaces
 138 Code sample: Remove blank line after @Unroll
 139 Replace “countries” with “continents”
 152 Code sample: add space before “+”
 155 Code sample: remove “;”
 164 The text probably reads better without the confusing “.” after a line of code
 172 Code sample: indent argument by 4 spaces
 182 In footnote: “equals” in monospaced font
 183 Code sample: if the values were changed to [10, 99], potential confusion would be avoided
 200 Code sample: Add missing “}”
 201 Make “count” monospaced
 231 Code sample: It would probably look better if the method was still called diffTime, not diffTime_revised.
 238 Code sample: Add space before “,”
 251 Change “end-to-end test” to “a larger test”