January 31, 2015

How Google Tests Software

For the past few years, I've made sure to take a few extra weeks off around the Christmas holidays to brush up on my skillset, do a bit of research on new technologies coming out, and try to get in shape -- software testing wise -- for the new year. Back in 2013 I kept hearing of one particular book that had been published the year before: How Google Tests Software.

I found the book to be interesting, but I wondered if it was entirely relevant. It talked about lessening the importance of traditional quality assurance engineers  and having the focus being on the software developers. Software Developers in Test (SET) to examine code quality, writing code 100% of the time. Then there were Test Engineers (TE) who write automated test scripts that would mimic how an end user would use the product. Where would they find all those software developers who actually wanted to stick with QA?, I thought.

For most of my career, QA Engineers didn't need to know how to code. Sure, it helped, especially doing database testing with SQL -- or if you had managed to get hands-on experience with the expensive automation testing toolsets such as Segue Software's Silk Test (Purchased by Borland in 2006), or Mercury Interactive's testing toolset (Purchased by Hewlett-Packard in 2006) or even Rational Software's Rational Rose (purchased by IBM in 2003) -- but coding wasn't something you used on a day-to-day basis.

Being a QA Engineer used to mean that you simply needed tech writing skills... maybe some critical analysis. Have both creative and logical thinking. Know all the ins and outs of the software development process. Work well with developers. Develop models of how the software works and find possible weak points. Write thorough test scripts in MS Word or MS Excel. And with Agile catching on, you had to be very good at what you did, because you had to force all this process into two week sprints.

When working well, it was a very symbiotic relationship between Developer and QA. Two distinct mind sets: One of creation, and one of examination, but not like the relationshop between an artist and an art critic. It was more like the relationship between a writer and a copyeditor. The developer focuses on the technology. The QA Engineer focuses on the business requirements and the end user.

I never thought one book could change a field so drastically in such a short period of time.

The premise of the book was that quality wasn't some other department's responsibility... it was the software development's job. "Quality is a Development Issue, not a testing issue". It talked about having a Software Developer in Test who could:

  • Go through the same questioning and examiniation process a traditional QA Engineer would go through
  • Be able to correct code that could be improved, such as having functions that are given vague names. 
  • Be able to refactor code that isn't testable
  • Try to focus on 100% test coverage, coming up with an automation plan
  • Look at poorly written APIs and rewrite them 
  • Be able to code with fluency in C++, Java, Python, and JavaScript 

With the Test Engineer, this was someone who:

  • Is more of a "user-developer" where they try to keep the end user of the product in mind.
  • They don't code as as much as the Software Developer in Test, but they need some fluency.  
  • They implement the automation plan and write the test scripts.

After reading this book, and seeing it mentioned more and more in the tech blogs, I was quite worried. What if this catches on? All of my experience would be obsolete.

The following year, I made sure to gain exposure to the automated testing world at my company.

-T.J. Maher
 Sr. QA Engineer
 Quincy, MA


Yasmeen Yas said...

Thank you for sharing valuable information. Nice post. I enjoyed reading this post. The whole blog is very nice found some good stuff and good information here Thanks.
Software Testing Services
Software Testing Company
Software Testing Companies in USA
QA Testing Companies
Software Testing Services in USA

Reshma said...

Nice blog! Thanks for sharing this valuable information
Python framework
Python Developer

dokanapps1 said...

I think this is an informative post and it is very useful and knowledgeable. Keep it up. A Marketplace local Delivery driver App for woocommerce, Dokan, WCFM, WC vendor etc.

Woocommerce APP developer

Eoxys IT Solution said...

Very useful Post. I found so many interesting stuff in your Blog especially its discussion. Really its Great Article. All our Mobile App development services come with exceptional technical support.

APP development company
best app development company in india

asmaferoz said...

Thanks for sharing this blog. It was so informative.
Things to bring to an interview
What to bring to job interview

T & H Software Private Limited said...

Hello! This post couldn’t be written any better! Reading this post reminds me of my previous roommate! He always kept chatting about this. I will forward this page to him. Fairly certain he will have a good read. Thank you for sharing!Cloth ERP Software company

Mohamedsalim said...

Such an informative post, Thank you for this wonderful blog learned many things from this post and I will share this to my friends, You can create a web application from Web application Development Company and promote your blog and things there. And you earn too

Anonymous said...

Very nice article. I enjoyed reading your post. very nice share. I want to twit this to my followers. Thanks !. fivem scripts

Anonymous said...

It is perfect time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I desire to suggest you few interesting things or tips. Perhaps you could write next articles referring to this article. I want to read more things about it! buy crypter

Tabat said...

Hi, I log on to your new stuff like every week. Your humoristic style is witty, keep it up RAT pc

Franticpro said...

Hi, I am John Smith I am Web Developer, It is an amazing blog thanks for the sharing the blog. Frantic infotech provide the java web development such as an information about software development for costumer service. Frantic infotech also provide the angularjs web development. Theve delopment of advanced web applications is Orient Software’s specialty and we will successfully fulfill all your web application development requirements, from small-sized to wider-ranged projects.

AR said...

If you are looking for Mobile app development company in chennai then contact BA Technology

Miawilliams said...

Interesting blog! Visit Carbon Credit Trading Marketplace Development