Tuesday, December 9, 2014

Testing & Pooping at Google

"Testers are paid to break stuff."

I've heard this line a dozen times from a dozen different people, most recently during a presentation by IU alum and current Googler Mark Meiss. Breaking things is fun, so I decided to look into Testing more, specifically Test at Google.

Google has a great blog on testing there and has an especially nice overview series of Google testing, but I'd like to share a few interesting or quirky things I've learned in the past week about Test at Google.




Learn & Poop

Don't you just love sitting down on that porcelain throne and taking a good...look at the testing tips on the walls? Google has a program called Testing on the Toilet (TotT). Bathroom stalls are plastered with best practices and tricks. Sure, it's old news (the program started back in 2007), but it's still interesting and effective.* I'm also struck that the program is a good reflection of testing in general- like a bathroom, Test isn't exactly sexy, but without it things at scale would get real shitty real fast.

The topics range from simple things like effectively naming tests to more technical specifics for Web Toolkit, but nearly all are very accessible concepts if you know basic coding. So next time you're "backing the bus outta the garage" (ew/lol), I recommend scrolling through the TotT tag on your phone to pick up a few tips. 


SET vs TE

(Software Engineer in Test vs Test Engineer)

A nuance I wasn't previously aware of was the fact that Software Engineer in Test and Test Engineer are not synonyms. From what I understand, the two roles can be very similar, but do have different focuses. Pulled from this 2012 interview with a Google TE;
As a Test Engineer, you’re more focused on the overall quality of the product and speed of releases, while a Software Engineer in Test might focus more on test frameworks, automation, and refactoring code for testability. I think of the difference as more of a shift in focus and not capabilities, since both roles at Google need to be able to write production quality code. Example test engineering tasks I worked on are introducing an automated release process, identifying areas for the team to improve code coverage, and reducing the manual steps needed to validate data correctness.
If it matters to you, looking at the oh-so-scientific Glassdoor pages gives salary estimates for each. SET's and TE's make roughly the same $111,000 and $108,700 respectively at the time of this writing. And according to this Google Testing post, the opportunities for career advancement were similar.


Orbs

In the early 2000s, different Google teams tried out different ways of monitoring their test builds to make sure everything was running smoothly. Each team has a centralized, web dashboard for their builds. The centralization is nice but is not a particularly vigorous. As Mike Bland pointed out in a really interesting post on the development of builds at Google,
"...a build system’s value is proportional to the rapidity with which a team can identify breakages and fix them, and having every engineer keep a web page open and refresh it all the time doesn’t scale."
A green and brown Statue of Liberty figurine has its torch replaced with a small orb that glows green.
"Statue of LORBerty" taken from
the Google Testing Blog
So a few teams turned to casual, at-a-glance methods of identifying build fail moments of "Oh shoot, we done messed up." Bland talks about teams using a literal traffic light, browser plugins, and (his project) Ambient orbs. 

Ambient builds devices that center around relaying information in an effortless way. Bland threw together some scripts that used one of their products, Orb, to change color based on the status of a build. Hence the birth of the Statue of LORBerty, providing liberty and justice and peace of mind to testers everywhere.















*[Funnily enough, we use the same technique for event advertising or  awareness campaigns pretty frequently in the residence halls at IU. Communal bathrooms are places that receive high traffic with pretty captive audiences. Other places I like are inside elevators or next to clocks in lecture halls. Flyering bulletin boards just doesn't cut it.]