Google Testing Blog
If it ain't broke, you're not trying hard enough.
- 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
2025 3
2024 13
- Tech on the Toilet: Driving Software Excellence, One Bathroom Break at a Time
- SMURF: Beyond the Test Pyramid
- Write Change-Resilient Code With Domain Objects
- Less Is More: Principles for Simple Comments
- In Praise of Small Pull Requests
- Don't DRY Your Code Prematurely
- Avoid the Long Parameter List
- Test Failures Should Be Actionable
- isBooleanTooLongAndComplex
- How I Learned To Stop Writing Brittle Tests and Love Expressive APIs
- Prefer Narrow Assertions in Unit Tests
- What’s in a Name?
- Increase Test Fidelity By Avoiding Mocks
2023 14
- Let Code Speak for Itself
- Exceptional Exception Handling
- Clean Up Code Cruft
- Write Clean Code to Reduce Cognitive Load
- Include Only Relevant Details In Tests
- Simplify Your Control Flows
- Improve Readability With Positive Booleans
- Shell Scripts: Stay Small & Simple
- The Secret to Great Code Reviews: Respect Reviewers' Comments
- Communicate Design Tradeoffs Visually
- Else Nuances
- Use Abstraction to Improve Function Readability
- Better Feedback Makes for Faster Reviews
- Sensenmann: Code Deletion at Scale
2022 2
2021 3
2020 8
- Test Flakiness - One of the main challenges of automated testing
- Testing on the Toilet: Separation of Concerns? That's a Wrap!
- Fixing a Test Hourglass
- Testing on the Toilet: Testing UI Logic? Follow the User!
- Testing on the Toilet: Avoid Hardcoding Values for Better Libraries
- Code Coverage Best Practices
- Testing on the Toilet: Don’t Mock Types You Don’t Own
- COOL to be a TE @ Google
2019 4
2018 7
- Testing on the Toilet: Exercise Service Call Contracts in Tests
- Efficacy Presubmit
- Code Health: Make Interfaces Hard to Misuse
- Testing on the Toilet: Only Verify Relevant Method Arguments
- Testing on the Toilet: Keep Tests Focused
- Code Health: Understanding Code In Review
- Testing on the Toilet: Cleanly Create Test Data
2017 17
- Testing on the Toilet: Only Verify State-Changing Method Calls
- Code Health: Obsessed With Primitives?
- Code Health: IdentifierNamingPostForWorldWideWebBlog
- Code Health: Providing Context with Commit Messages and Bug Reports
- Code Health: Eliminate YAGNI Smells
- Code Health: To Comment or Not to Comment?
- Evolution of GTAC and Engineering Productivity
- Code Health: Too Many Comments on Your Code Reviews?
- Code Health: Reduce Nesting, Reduce Complexity
- GTAC Diversity Scholarship
- GTAC 2017 - Registration is open!
- OSS-Fuzz: Five Months Later, and Rewarding Projects
- Where do our flaky tests come from?
- Code Health: Google's Internal Code Quality Efforts
- Discomfort as a Tool for Change
- Testing on the Toilet: Keep Cause and Effect Clear
- Happy 10th Birthday Google Testing Blog!
2016 15
- Announcing OSS-Fuzz: Continuous Fuzzing for Open Source Software
- What Test Engineers do at Google: Building Test Infrastructure
- Hackable Projects - Pillar 3: Infrastructure
- Hackable Projects - Pillar 2: Debuggability
- Testing on the Toilet: What Makes a Good End-to-End Test?
- What Test Engineers do at Google
- Hackable Projects - Pillar 1: Code Health
- The Inquiry Method for Test Planning
- GTAC 2016 Registration Deadline Extended
- Flaky Tests at Google and How We Mitigate Them
- GTAC Diversity Scholarship
- GTAC 2016 Registration is now open!
- GTAC 2016 - Save the Date
- From QA to Engineering Productivity
- EarlGrey - iOS Functional UI Testing Framework
2015 14
- GTAC 2015 Wrap Up
- GTAC 2015 is Next Week!
- Announcing the GTAC 2015 Agenda
- Audio Testing - Automatic Gain Control
- The Deadline to Apply for GTAC 2015 is Monday Aug 10
- GTAC 2015: Call for Proposals & Attendance
- GTAC 2015 Coming to Cambridge (Greater Boston) in November
- Multi-Repository Development
- Just Say No to More End-to-End Tests
- Quantum Quality
- Android UI Automated Testing
- The First Annual Testing on the Toilet Awards
- Testing on the Toilet: Change-Detector Tests Considered Harmful
- Testing on the Toilet: Prefer Testing Public APIs Over Implementation-Detail Classes
2014 24
- Testing on the Toilet: Truth: a fluent assertion framework
- GTAC 2014 Wrap-up
- Protractor: Angular testing made easy
- GTAC 2014 is this Week!
- Testing on the Toilet: Writing Descriptive Test Names
- Announcing the GTAC 2014 Agenda
- Chrome - Firefox WebRTC Interop Test - Pt 2
- Chrome - Firefox WebRTC Interop Test - Pt 1
- Testing on the Toilet: Web Testing Made Easier: Debug IDs
- Testing on the Toilet: Don't Put Logic in Tests
- The Deadline to Sign up for GTAC 2014 is Jul 28
- Measuring Coverage at Google
- ThreadSanitizer: Slaughtering Data Races
- GTAC 2014: Call for Proposals & Attendance
- GTAC 2014 Coming to Seattle/Kirkland in October
- Testing on the Toilet: Risk-Driven Testing
- Testing on the Toilet: Effective Testing
- Testing on the Toilet: Test Behaviors, Not Methods
- The *Real* Test Driven Development
- Testing on the Toilet: What Makes a Good Test?
- When/how to use Mockito Answer
- Minimizing Unreproducible Bugs
- The Google Test and Development Environment - Pt. 3: Code, Build, and Test
- The Google Test and Development Environment - Pt. 2: Dogfooding and Office Software
2013 16
- The Google Test and Development Environment - Pt. 1: Office and Equipment
- WebRTC Audio Quality Testing
- Espresso for Android is here!
- How the Google+ Team Tests Mobile Apps
- Testing on the Toilet: Test Behavior, Not Implementation
- Testing on the Toilet: Know Your Test Doubles
- Testing on the Toilet: Fake Your Way to Better Tests
- Optimal Logging
- Testing on the Toilet: Don’t Overuse Mocks
- GTAC 2013 Wrap-up
- GTAC is Almost Here!
- Two New Videos About Testing at Google
- Testing on the Toilet: Testing State vs. Testing Interactions
- Announcing the GTAC 2013 Agenda
- The Deadline to Signup for GTAC is Jan 23
- Test Engineers @ Google
2012 11
- GTAC: Call for Proposals & Attendance
- Testacular - Spectacular Test Runner for JavaScript
- A Virtual Battlefield... with Bugs: Ship Wars @ Google Kirkland
- GTAC Coming to New York in the Spring
- Why Are There So Many C++ Testing Frameworks?
- Hermetic Servers
- Conversation with a Test Engineer
- Testing 2.0
- Testing Google's New API Infrastructure
- Covering all your codebases: A conversation with a Software Engineer in Test
- Welcome to the Next Generation of Google Testing
2011 39
- RPF: Google's Record Playback Framework
- GTAC Videos Now Available
- ScriptCover makes Javascript coverage analysis easy
- Google Test Analytics - Now in Open Source
- Google JS Test, now in Open Source
- Take a BITE out of Bugs and Redundant Labor
- Unleash the QualityBots
- Announcing the Final GTAC Agenda
- The 10 Minute Test Plan
- Google Developer Day 2011
- GTAC Speakers and Attendees Finalized
- Pretotyping: A Different Type of Testing
- Keynote Lineup for GTAC 2011
- How We Tested Google Instant Pages
- GTAC: Call for Team Attendance
- Google at STAR West 2011
- Lessons in a 21st Century Tech Career: Failing Fast, 20% Time and Project Mobility
- Introducing DOM Snitch, our passive in-the-browser reconnaissance tool
- GTAC 2011 Keynotes
- Testing at speed and scale of google
- How Google Tests Software - Part Seven
- GTAC 2011 Open for Submission
- How Google Tests Software - A Break for Q&A
- How Google Tests Software - Part Six
- GTAC 2011: Cloudy with a Chance of Tests
- Entrepreneurial Innovation at Google
- The SET Career Path
- We're back live on twitter
- How Google Tests Software - Part Five
- Innovation at Google
- How Google Tests Software - Part Four
- This Code is CRAP
- How Google Tests Software - A Brief Interlude
- Who reads this blog?
- How Google Tests Software - Part Three
- How Google Tests Software - Part Two
- How Google Tests Software - Part One
- Google Innovation and The Pretotyping Manifesto
- New Year's Resolutions
2010 37
- GTAC #5: videos, slides, abstracts
- Test Sizes
- Chrome OS Pilot Program Announced
- An Ingredients List for Testing - Part Seven (of Seven)
- An Ingredients List for Testing - Part Six
- Test your app from right to left
- India Withdrawals
- Keynote at QCon SFO
- GTAC starts tomorrow!
- An Ingredients List for Testing - Part Five
- Update speakers talks for gtac 2010 we
- Aftermath of the Google NY event
- An Ingredients List for Testing - Part Four
- Our Culture
- Our Impact
- It's not QA
- Test Open House in New York
- An Ingredients List for Testing - Part Three
- An Ingredients List for Testing - Part Two
- An Ingredients List for Testing - Part One
- Test Driven Code Review
- Code coverage goal: 80% and no less!
- There, but for the grace of testing, go I
- Testivus, Testability and Dr. Jekyll and Mr. Hyde
- Update! GTAC 2010 Keynote Speakers
- Test Driven Integration
- GTAC: Call for Attendance & Proposals
- Do Know Evil
- Gtac
- Google Test Automation Conference 2010 - Hyderabad, India
- Google's Innovation Factory (and how testing adapts)
- Google is hiring SETs
- Google @ ICST 2010
- Still Stuck in the 90s
- Interview with Copeland
- Testing in the Data Center (Manufacturing No More)
- Interviewing Insights and Test Frameworks
2009 54
- http://twitter.com/googletesting
- "If you were a brand new QA manager ..." (cont)
- "If you were a brand new QA manager ..."
- Testing Chrome OS
- How to get Started with TDD
- The FedEx Tour
- TotT: Making a Perfect Matcher
- Cost of Testing
- TotT: Literate Testing With Matchers
- Checked exceptions I love you, but you have to go
- The Plague of Entropy
- It is not about writing tests, its about writing stories
- The 7th Plague and Beyond
- Update! Speakers & Talks for GTAC
- Super Fast JS Testing
- The 7th Plague?
- TotT: Testing GWT without GwtTestCase
- How to think about OO
- Call for Attendance: Google Test Automation Conference (GTAC) 2009
- The Plague of Blindness
- Update! GTAC Keynote Speakers: Niklaus Wirth and Alberto di Meglio
- The Plague of Homelessness
- Blog Stats
- The Plague of Boredom
- Blog Editor: Moderating Comments
- The Advantages of Unit Testing Early
- Software Testing Categorization
- The Plague of Amnesia
- Update! Google Test Automation Conference: Website available
- Old habits die hard
- Why are we embarrassed to admit that we don't know how to write tests?
- Separation anxiety?
- The plague of repetitiveness
- The 7 Plagues of Software Testing
- GTAC: Call for Proposals
- Google Test Automation Conference 2009 - Zurich, Switzerland
- Burning Test Questions at Google
- I'm a Googler now
- James Whittaker joins Google
- My Selenium Tests Aren't Stable!
- Yet Another JavaScript Testing Framework
- Web app acceptance test survival techniques, Part 3: Musings
- Survival techniques for web app acceptance tests, Part 2: increasing effectiveness and utility
- Survival techniques for acceptance tests of web applications (Part 1)
- Beyond Testing: Becoming Part of the Innovation Machine
- Fast exploratory tests with IFrames
- TotT: Partial Mocks using Forwarding Objects
- Constructor Injection vs. Setter Injection
- To Assert or Not To Assert
- TotT: Be an MVP of GUI Testing
- TotT: Keep Your Fakes Simple
- When to use Dependency Injection
- TotT: Use EasyMock
- Interfacing with hard-to-test third-party code
2008 75
- Static Methods are Death to Testability
- GTAC Videos and Slides Available
- TotT: Mockers of the (C++) World, Delight!
- Announcing Google C++ Mocking Framework
- Mockers of the (C++) World, Delight!
- Clean Code Talks - Inheritance, Polymorphism, & Testing
- Guide to Writing Testable Code
- Online Machine Learning Testing == Extreme Testing
- Clean Code Talks - Global State and Singletons
- My Unified Theory of Bugs
- TotT: Finding Data Races in C++
- Clean Code Talks - Dependency Injection
- Clean Code Talks - Unit Testing
- Partial Automation: Keeping humans in the loop
- TotT: Contain Your Environment
- GUI Testing: Don't Sleep Without Synchronization
- Testability Explorer: Measuring Testability
- Dependency Injection Myth: Reference Passing
- Test Engineering at Google
- TotT: Floating-Point Comparison
- To "new" or not to "new"...
- TotT: Simulating Time in jsUnit Tests
- Six Hats of Software Testing
- By miko hevery we talked about how it
- TotT: Mockin Ur Objectz
- Presubmit And Performance
- The Google Maps API Open Source Their Selenium Test Suite
- Where Have all the "new" Operators Gone?
- Test first is fun!
- My main() Method Is Better Than Yours
- TotT: Data Driven Traps!
- Taming the Beast (a.k.a. how to test AJAX applications) : Part 2
- Root Cause of Singletons
- TotT: Sleeping != Synchronization
- Where Have All the Singletons Gone?
- Singletons are Pathological Liars
- TotT: 100 and counting
- TotT: A Matter of Black and White
- Writing Testable Code
- GTAC Attendance Application deadline Aug15
- Circular Dependency in constructors and Dependency Injection
- TotT: Testing Against Interfaces
- How to Write 3v1L, Untestable Code
- Breaking the Law of Demeter is Like Looking for a Needle in the Haystack
- YUI and GWT... How do you test?
- Call for Attendance: GTAC 2008
- How to Think About the "new" Operator with Respect to Unit Testing
- TotT: EXPECT vs. ASSERT
- Announcing: New Google C++ Testing Framework
- TotT: Defeat "Static Cling"
- Test Engineering Class Project at UC-Irivine
- Productivity Games – Using Games to Improve Quality
- Taming the Beast (a.k.a. how to test AJAX applications) : Part 1
- TotT: Friends You Can Depend On
- 3 days left for GTAC Proposals!
- Performance Testing of Distributed File Systems at Google
- TotT: The Invisible Branch
- Intro to Ad Quality Test Challenges
- Exploratory Testing on Chat
- TotT: Using Dependancy Injection to Avoid Singletons
- TotT: Testable Contracts Make Exceptional Neighbors
- GTAC: Call for Proposals
- GTAC 2008 in Seattle
- TotT: Avoiding Flakey Tests
- TotT: Time is Random
- TotT: TestNG on the Toilet
- Watching movies to find localization bugs
- Cost-Benefit Analysis of a Test
- TotT: Understanding Your Coverage Data
- IEEE Article
- TotT: Too Many Tests
- TotT: The Stroop Effect
- Announcing the Google Testing Blog - German Version!
- Testing systems with large and complex test spaces
- A Primer in Testing Mobile Phone Applications
2007 41
- TotT: Avoiding friend Twister in C++
- Automating tests vs. test-automation
- Overview of Infrastructure Testing
- Testing Google Mashup Editor Class
- Performance Testing
- Post Release: Closing the loop
- But it works on my machine!
- Selenium's Inventor
- Testing Applications and APIs
- University of Arizona Tech Talk
- More feedback from Google Interns
- GTAC videos now online
- GTAC Community Thread
- Abdul's Summer Intern Testimonial
- Contributing to an all-star CAST
- Google New York Test Engineering Forum July 25
- GTAC registration closed
- TotT: Extracting Methods to Simplify Testing
- Sign up to attend our Test Automation Conference
- 8-year-old exploratory testing
- TotT: Refactoring Tests in the Red
- Test Engineering in Zurich
- Test Engineering around the world
- GTAC Speaker Submission Window Closed
- Test Engineering Internships
- TotT: Stubs Speed up Your Unit Tests
- Google Test Automation Conference submission deadline coming soon
- TotT: JavaScript: Simulating Time in jsUnit Tests
- Robot testers invade Portland
- Developer-Tester/Tester-Developer Summit
- 2nd Annual Google Test Automation Conference
- The difference between QA, QC, and Test Engineering
- Testapalooza
- Seattle conference on scalability
- Improving the accuracy of tests by weighting the results
- Life's too short to worry about slogans
- TotT: Naming Unit Tests Responsibly
- Where are the developer-testers and tester-developers?
- TotT: Better Stubbing in Python
- Welcome to the Google Testing Blog
- Introducing "Testing on the Toilet"