The Curious Engineer

All blogs / Testing / QA

Google Testing Blog

testing.googleblog.com

If it ain't broke, you're not trying hard enough.

Testing / QASoftware / engineering practice

Posts
405 from 21 Jan 2007 to 5 Oct 2026
Posting
monthly (8 in the last year)
Kind
company blog
Feed
http://feeds.feedburner.com/blogspot/RLXA

2026 8

  1. Two-Way Doors: Don’t Code Yourself into a Corner
  2. Prefactoring: Clear the Way for Your New Feature
  3. Choosing Values for Robust Tests
  4. Code Review Responses: Add Context When It Counts
  5. Construct with Collaborators, Call with Work
  6. One Map Key, One Lookup
  7. The Way of TDD
  8. Set Safe Defaults for Flags

2025 3

  1. Simplify Your Code: Functional Core, Imperative Shell
  2. Sort Lines in Source Code
  3. Arrange Your Code to Communicate Data Flow

2024 13

  1. Tech on the Toilet: Driving Software Excellence, One Bathroom Break at a Time
  2. SMURF: Beyond the Test Pyramid
  3. Write Change-Resilient Code With Domain Objects
  4. Less Is More: Principles for Simple Comments
  5. In Praise of Small Pull Requests
  6. Don't DRY Your Code Prematurely
  7. Avoid the Long Parameter List
  8. Test Failures Should Be Actionable
  9. isBooleanTooLongAndComplex
  10. How I Learned To Stop Writing Brittle Tests and Love Expressive APIs
  11. Prefer Narrow Assertions in Unit Tests
  12. What’s in a Name?
  13. Increase Test Fidelity By Avoiding Mocks

2023 14

  1. Let Code Speak for Itself
  2. Exceptional Exception Handling
  3. Clean Up Code Cruft
  4. Write Clean Code to Reduce Cognitive Load
  5. Include Only Relevant Details In Tests
  6. Simplify Your Control Flows
  7. Improve Readability With Positive Booleans
  8. Shell Scripts: Stay Small & Simple
  9. The Secret to Great Code Reviews: Respect Reviewers' Comments
  10. Communicate Design Tradeoffs Visually
  11. Else Nuances
  12. Use Abstraction to Improve Function Readability
  13. Better Feedback Makes for Faster Reviews
  14. Sensenmann: Code Deletion at Scale

2022 2

  1. Code Health: Now You're Thinking With Functions
  2. A Tale of Two Features

2021 3

  1. How Much Testing is Enough?
  2. Mutation Testing
  3. Test Flakiness - One of the main challenges of automated testing (Part II)

2020 8

  1. Test Flakiness - One of the main challenges of automated testing
  2. Testing on the Toilet: Separation of Concerns? That's a Wrap!
  3. Fixing a Test Hourglass
  4. Testing on the Toilet: Testing UI Logic? Follow the User!
  5. Testing on the Toilet: Avoid Hardcoding Values for Better Libraries
  6. Code Coverage Best Practices
  7. Testing on the Toilet: Don’t Mock Types You Don’t Own
  8. COOL to be a TE @ Google

2019 4

  1. Testing on the Toilet: Tests Too DRY? Make Them DAMP!
  2. Code Health: Respectful Reviews == Useful Reviews
  3. Truth 1.0: Fluent Assertions for Java and Android Tests
  4. Android Platform Testing Made Easy

2018 7

  1. Testing on the Toilet: Exercise Service Call Contracts in Tests
  2. Efficacy Presubmit
  3. Code Health: Make Interfaces Hard to Misuse
  4. Testing on the Toilet: Only Verify Relevant Method Arguments
  5. Testing on the Toilet: Keep Tests Focused
  6. Code Health: Understanding Code In Review
  7. Testing on the Toilet: Cleanly Create Test Data

2017 17

  1. Testing on the Toilet: Only Verify State-Changing Method Calls
  2. Code Health: Obsessed With Primitives?
  3. Code Health: IdentifierNamingPostForWorldWideWebBlog
  4. Code Health: Providing Context with Commit Messages and Bug Reports
  5. Code Health: Eliminate YAGNI Smells
  6. Code Health: To Comment or Not to Comment?
  7. Evolution of GTAC and Engineering Productivity
  8. Code Health: Too Many Comments on Your Code Reviews?
  9. Code Health: Reduce Nesting, Reduce Complexity
  10. GTAC Diversity Scholarship
  11. GTAC 2017 - Registration is open!
  12. OSS-Fuzz: Five Months Later, and Rewarding Projects
  13. Where do our flaky tests come from?
  14. Code Health: Google's Internal Code Quality Efforts
  15. Discomfort as a Tool for Change
  16. Testing on the Toilet: Keep Cause and Effect Clear
  17. Happy 10th Birthday Google Testing Blog!

2016 15

  1. Announcing OSS-Fuzz: Continuous Fuzzing for Open Source Software
  2. What Test Engineers do at Google: Building Test Infrastructure
  3. Hackable Projects - Pillar 3: Infrastructure
  4. Hackable Projects - Pillar 2: Debuggability
  5. Testing on the Toilet: What Makes a Good End-to-End Test?
  6. What Test Engineers do at Google
  7. Hackable Projects - Pillar 1: Code Health
  8. The Inquiry Method for Test Planning
  9. GTAC 2016 Registration Deadline Extended
  10. Flaky Tests at Google and How We Mitigate Them
  11. GTAC Diversity Scholarship
  12. GTAC 2016 Registration is now open!
  13. GTAC 2016 - Save the Date
  14. From QA to Engineering Productivity
  15. EarlGrey - iOS Functional UI Testing Framework

2015 14

  1. GTAC 2015 Wrap Up
  2. GTAC 2015 is Next Week!
  3. Announcing the GTAC 2015 Agenda
  4. Audio Testing - Automatic Gain Control
  5. The Deadline to Apply for GTAC 2015 is Monday Aug 10
  6. GTAC 2015: Call for Proposals & Attendance
  7. GTAC 2015 Coming to Cambridge (Greater Boston) in November
  8. Multi-Repository Development
  9. Just Say No to More End-to-End Tests
  10. Quantum Quality
  11. Android UI Automated Testing
  12. The First Annual Testing on the Toilet Awards
  13. Testing on the Toilet: Change-Detector Tests Considered Harmful
  14. Testing on the Toilet: Prefer Testing Public APIs Over Implementation-Detail Classes

2014 24

  1. Testing on the Toilet: Truth: a fluent assertion framework
  2. GTAC 2014 Wrap-up
  3. Protractor: Angular testing made easy
  4. GTAC 2014 is this Week!
  5. Testing on the Toilet: Writing Descriptive Test Names
  6. Announcing the GTAC 2014 Agenda
  7. Chrome - Firefox WebRTC Interop Test - Pt 2
  8. Chrome - Firefox WebRTC Interop Test - Pt 1
  9. Testing on the Toilet: Web Testing Made Easier: Debug IDs
  10. Testing on the Toilet: Don't Put Logic in Tests
  11. The Deadline to Sign up for GTAC 2014 is Jul 28
  12. Measuring Coverage at Google
  13. ThreadSanitizer: Slaughtering Data Races
  14. GTAC 2014: Call for Proposals & Attendance
  15. GTAC 2014 Coming to Seattle/Kirkland in October
  16. Testing on the Toilet: Risk-Driven Testing
  17. Testing on the Toilet: Effective Testing
  18. Testing on the Toilet: Test Behaviors, Not Methods
  19. The *Real* Test Driven Development
  20. Testing on the Toilet: What Makes a Good Test?
  21. When/how to use Mockito Answer
  22. Minimizing Unreproducible Bugs
  23. The Google Test and Development Environment - Pt. 3: Code, Build, and Test
  24. The Google Test and Development Environment - Pt. 2: Dogfooding and Office Software

2013 16

  1. The Google Test and Development Environment - Pt. 1: Office and Equipment
  2. WebRTC Audio Quality Testing
  3. Espresso for Android is here!
  4. How the Google+ Team Tests Mobile Apps
  5. Testing on the Toilet: Test Behavior, Not Implementation
  6. Testing on the Toilet: Know Your Test Doubles
  7. Testing on the Toilet: Fake Your Way to Better Tests
  8. Optimal Logging
  9. Testing on the Toilet: Don’t Overuse Mocks
  10. GTAC 2013 Wrap-up
  11. GTAC is Almost Here!
  12. Two New Videos About Testing at Google
  13. Testing on the Toilet: Testing State vs. Testing Interactions
  14. Announcing the GTAC 2013 Agenda
  15. The Deadline to Signup for GTAC is Jan 23
  16. Test Engineers @ Google

2012 11

  1. GTAC: Call for Proposals & Attendance
  2. Testacular - Spectacular Test Runner for JavaScript
  3. A Virtual Battlefield... with Bugs: Ship Wars @ Google Kirkland
  4. GTAC Coming to New York in the Spring
  5. Why Are There So Many C++ Testing Frameworks?
  6. Hermetic Servers
  7. Conversation with a Test Engineer
  8. Testing 2.0
  9. Testing Google's New API Infrastructure
  10. Covering all your codebases: A conversation with a Software Engineer in Test
  11. Welcome to the Next Generation of Google Testing

2011 39

  1. RPF: Google's Record Playback Framework
  2. GTAC Videos Now Available
  3. ScriptCover makes Javascript coverage analysis easy
  4. Google Test Analytics - Now in Open Source
  5. Google JS Test, now in Open Source
  6. Take a BITE out of Bugs and Redundant Labor
  7. Unleash the QualityBots
  8. Announcing the Final GTAC Agenda
  9. The 10 Minute Test Plan
  10. Google Developer Day 2011
  11. GTAC Speakers and Attendees Finalized
  12. Pretotyping: A Different Type of Testing
  13. Keynote Lineup for GTAC 2011
  14. How We Tested Google Instant Pages
  15. GTAC: Call for Team Attendance
  16. Google at STAR West 2011
  17. Lessons in a 21st Century Tech Career: Failing Fast, 20% Time and Project Mobility
  18. Introducing DOM Snitch, our passive in-the-browser reconnaissance tool
  19. GTAC 2011 Keynotes
  20. Testing at speed and scale of google
  21. How Google Tests Software - Part Seven
  22. GTAC 2011 Open for Submission
  23. How Google Tests Software - A Break for Q&A
  24. How Google Tests Software - Part Six
  25. GTAC 2011: Cloudy with a Chance of Tests
  26. Entrepreneurial Innovation at Google
  27. The SET Career Path
  28. We're back live on twitter
  29. How Google Tests Software - Part Five
  30. Innovation at Google
  31. How Google Tests Software - Part Four
  32. This Code is CRAP
  33. How Google Tests Software - A Brief Interlude
  34. Who reads this blog?
  35. How Google Tests Software - Part Three
  36. How Google Tests Software - Part Two
  37. How Google Tests Software - Part One
  38. Google Innovation and The Pretotyping Manifesto
  39. New Year's Resolutions

2010 37

  1. GTAC #5: videos, slides, abstracts
  2. Test Sizes
  3. Chrome OS Pilot Program Announced
  4. An Ingredients List for Testing - Part Seven (of Seven)
  5. An Ingredients List for Testing - Part Six
  6. Test your app from right to left
  7. India Withdrawals
  8. Keynote at QCon SFO
  9. GTAC starts tomorrow!
  10. An Ingredients List for Testing - Part Five
  11. Update speakers talks for gtac 2010 we
  12. Aftermath of the Google NY event
  13. An Ingredients List for Testing - Part Four
  14. Our Culture
  15. Our Impact
  16. It's not QA
  17. Test Open House in New York
  18. An Ingredients List for Testing - Part Three
  19. An Ingredients List for Testing - Part Two
  20. An Ingredients List for Testing - Part One
  21. Test Driven Code Review
  22. Code coverage goal: 80% and no less!
  23. There, but for the grace of testing, go I
  24. Testivus, Testability and Dr. Jekyll and Mr. Hyde
  25. Update! GTAC 2010 Keynote Speakers
  26. Test Driven Integration
  27. GTAC: Call for Attendance & Proposals
  28. Do Know Evil
  29. Gtac
  30. Google Test Automation Conference 2010 - Hyderabad, India
  31. Google's Innovation Factory (and how testing adapts)
  32. Google is hiring SETs
  33. Google @ ICST 2010
  34. Still Stuck in the 90s
  35. Interview with Copeland
  36. Testing in the Data Center (Manufacturing No More)
  37. Interviewing Insights and Test Frameworks

2009 54

  1. http://twitter.com/googletesting
  2. "If you were a brand new QA manager ..." (cont)
  3. "If you were a brand new QA manager ..."
  4. Testing Chrome OS
  5. How to get Started with TDD
  6. The FedEx Tour
  7. TotT: Making a Perfect Matcher
  8. Cost of Testing
  9. TotT: Literate Testing With Matchers
  10. Checked exceptions I love you, but you have to go
  11. The Plague of Entropy
  12. It is not about writing tests, its about writing stories
  13. The 7th Plague and Beyond
  14. Update! Speakers & Talks for GTAC
  15. Super Fast JS Testing
  16. The 7th Plague?
  17. TotT: Testing GWT without GwtTestCase
  18. How to think about OO
  19. Call for Attendance: Google Test Automation Conference (GTAC) 2009
  20. The Plague of Blindness
  21. Update! GTAC Keynote Speakers: Niklaus Wirth and Alberto di Meglio
  22. The Plague of Homelessness
  23. Blog Stats
  24. The Plague of Boredom
  25. Blog Editor: Moderating Comments
  26. The Advantages of Unit Testing Early
  27. Software Testing Categorization
  28. The Plague of Amnesia
  29. Update! Google Test Automation Conference: Website available
  30. Old habits die hard
  31. Why are we embarrassed to admit that we don't know how to write tests?
  32. Separation anxiety?
  33. The plague of repetitiveness
  34. The 7 Plagues of Software Testing
  35. GTAC: Call for Proposals
  36. Google Test Automation Conference 2009 - Zurich, Switzerland
  37. Burning Test Questions at Google
  38. I'm a Googler now
  39. James Whittaker joins Google
  40. My Selenium Tests Aren't Stable!
  41. Yet Another JavaScript Testing Framework
  42. Web app acceptance test survival techniques, Part 3: Musings
  43. Survival techniques for web app acceptance tests, Part 2: increasing effectiveness and utility
  44. Survival techniques for acceptance tests of web applications (Part 1)
  45. Beyond Testing: Becoming Part of the Innovation Machine
  46. Fast exploratory tests with IFrames
  47. TotT: Partial Mocks using Forwarding Objects
  48. Constructor Injection vs. Setter Injection
  49. To Assert or Not To Assert
  50. TotT: Be an MVP of GUI Testing
  51. TotT: Keep Your Fakes Simple
  52. When to use Dependency Injection
  53. TotT: Use EasyMock
  54. Interfacing with hard-to-test third-party code

2008 75

  1. Static Methods are Death to Testability
  2. GTAC Videos and Slides Available
  3. TotT: Mockers of the (C++) World, Delight!
  4. Announcing Google C++ Mocking Framework
  5. Mockers of the (C++) World, Delight!
  6. Clean Code Talks - Inheritance, Polymorphism, & Testing
  7. Guide to Writing Testable Code
  8. Online Machine Learning Testing == Extreme Testing
  9. Clean Code Talks - Global State and Singletons
  10. My Unified Theory of Bugs
  11. TotT: Finding Data Races in C++
  12. Clean Code Talks - Dependency Injection
  13. Clean Code Talks - Unit Testing
  14. Partial Automation: Keeping humans in the loop
  15. TotT: Contain Your Environment
  16. GUI Testing: Don't Sleep Without Synchronization
  17. Testability Explorer: Measuring Testability
  18. Dependency Injection Myth: Reference Passing
  19. Test Engineering at Google
  20. TotT: Floating-Point Comparison
  21. To "new" or not to "new"...
  22. TotT: Simulating Time in jsUnit Tests
  23. Six Hats of Software Testing
  24. By miko hevery we talked about how it
  25. TotT: Mockin Ur Objectz
  26. Presubmit And Performance
  27. The Google Maps API Open Source Their Selenium Test Suite
  28. Where Have all the "new" Operators Gone?
  29. Test first is fun!
  30. My main() Method Is Better Than Yours
  31. TotT: Data Driven Traps!
  32. Taming the Beast (a.k.a. how to test AJAX applications) : Part 2
  33. Root Cause of Singletons
  34. TotT: Sleeping != Synchronization
  35. Where Have All the Singletons Gone?
  36. Singletons are Pathological Liars
  37. TotT: 100 and counting
  38. TotT: A Matter of Black and White
  39. Writing Testable Code
  40. GTAC Attendance Application deadline Aug15
  41. Circular Dependency in constructors and Dependency Injection
  42. TotT: Testing Against Interfaces
  43. How to Write 3v1L, Untestable Code
  44. Breaking the Law of Demeter is Like Looking for a Needle in the Haystack
  45. YUI and GWT... How do you test?
  46. Call for Attendance: GTAC 2008
  47. How to Think About the "new" Operator with Respect to Unit Testing
  48. TotT: EXPECT vs. ASSERT
  49. Announcing: New Google C++ Testing Framework
  50. TotT: Defeat "Static Cling"
  51. Test Engineering Class Project at UC-Irivine
  52. Productivity Games – Using Games to Improve Quality
  53. Taming the Beast (a.k.a. how to test AJAX applications) : Part 1
  54. TotT: Friends You Can Depend On
  55. 3 days left for GTAC Proposals!
  56. Performance Testing of Distributed File Systems at Google
  57. TotT: The Invisible Branch
  58. Intro to Ad Quality Test Challenges
  59. Exploratory Testing on Chat
  60. TotT: Using Dependancy Injection to Avoid Singletons
  61. TotT: Testable Contracts Make Exceptional Neighbors
  62. GTAC: Call for Proposals
  63. GTAC 2008 in Seattle
  64. TotT: Avoiding Flakey Tests
  65. TotT: Time is Random
  66. TotT: TestNG on the Toilet
  67. Watching movies to find localization bugs
  68. Cost-Benefit Analysis of a Test
  69. TotT: Understanding Your Coverage Data
  70. IEEE Article
  71. TotT: Too Many Tests
  72. TotT: The Stroop Effect
  73. Announcing the Google Testing Blog - German Version!
  74. Testing systems with large and complex test spaces
  75. A Primer in Testing Mobile Phone Applications

2007 41

  1. TotT: Avoiding friend Twister in C++
  2. Automating tests vs. test-automation
  3. Overview of Infrastructure Testing
  4. Testing Google Mashup Editor Class
  5. Performance Testing
  6. Post Release: Closing the loop
  7. But it works on my machine!
  8. Selenium's Inventor
  9. Testing Applications and APIs
  10. University of Arizona Tech Talk
  11. More feedback from Google Interns
  12. GTAC videos now online
  13. GTAC Community Thread
  14. Abdul's Summer Intern Testimonial
  15. Contributing to an all-star CAST
  16. Google New York Test Engineering Forum July 25
  17. GTAC registration closed
  18. TotT: Extracting Methods to Simplify Testing
  19. Sign up to attend our Test Automation Conference
  20. 8-year-old exploratory testing
  21. TotT: Refactoring Tests in the Red
  22. Test Engineering in Zurich
  23. Test Engineering around the world
  24. GTAC Speaker Submission Window Closed
  25. Test Engineering Internships
  26. TotT: Stubs Speed up Your Unit Tests
  27. Google Test Automation Conference submission deadline coming soon
  28. TotT: JavaScript: Simulating Time in jsUnit Tests
  29. Robot testers invade Portland
  30. Developer-Tester/Tester-Developer Summit
  31. 2nd Annual Google Test Automation Conference
  32. The difference between QA, QC, and Test Engineering
  33. Testapalooza
  34. Seattle conference on scalability
  35. Improving the accuracy of tests by weighting the results
  36. Life's too short to worry about slogans
  37. TotT: Naming Unit Tests Responsibly
  38. Where are the developer-testers and tester-developers?
  39. TotT: Better Stubbing in Python
  40. Welcome to the Google Testing Blog
  41. Introducing "Testing on the Toilet"