2. Google Says..
“Quality is a development issue, not a testing issue. To the extent that we are
able to embed testing practice inside development, we have created a process
that is hyper incremental where mistakes can be rolled back if any one increment
turns out to be too buggy. We’ve not only prevented a lot of customer issues,
we have greatly reduced the number of testers necessary to ensure the absence
of recall-class bugs.”
3. • Google is used by billions of people worldwide.
• If a bug affects 0.01% of the user base in a small app, it’s not worth the energy.
• But if it affects 0.01% for Google, that’s thousands of complaints, And the price of
that can be very expensive.
• So, when it comes to studying quality assurance there’s no better examples than
one of the biggest Internet company in the world.
• Therefore Google should develop software that doesn’t break down, that doesn’t
cost you more money, and that doesn't cause frustration for its customers.
Google
4. Functional Testing types used by Google to ensure
the quality of the end product.
1) Unit Testing.
2) Functional Testing.
3) System Testing.
4) Regression Testing.
5) System Integration Testing.
6) Acceptance Testing.
7) Code coverage.
6. Code Coverage is expressed as a percentage, so if you have tests written for 50% of the code base,
you have 50% code coverage. This includes:
• Statement coverage: is this one line broken?
• Branch coverage: can the application jump without breaking (e.g. if, switch)
• Path coverage: all paths through the program can be taken without error
And so, 100% branch coverage implies 100% statement coverage, as 100% path coverage implies
100% branch and statement coverage
The deceptive thing about code coverage is that as soon as you start combining chunks of code and
testing all possible paths and outcomes, you quickly rack up a near infinite number of tests to run, even
on medium sized projects.
7. Code Coverage at Google
• To provide an answer to the importance of code coverage and how it should be acted on,
Google tested implementing two types of coverages: Daily, and Per-Commit.
• Daily coverage tests the work-in-progress code of the day, and helps engineers fix
errors before they get too far along in a project.
• Per-commit focuses down on only the tests that need to be run to allow for the commit to
go smoothly.
• later — with this simple implementation, Google increased code coverage by 10% over
all projects.
• It’s also important to note that this part of their QC process is Purely Automated
Testing.
8. Here’s a screenshot of the internal tool they use to flag
up erroneous lines:
9. How Google Tests software
• Google’s testing department is relatively small for the amount of developers
but works well because, like Facebook, every engineer is responsible for their
own code’s tests.
• Google achieved this by creating a culture of testing,
• “And they have 2 billion lines of codes to work with, this alone is a huge
accomplishment.”
10. The benefits
• Developers and testers are on equal footing
• A many-to-one dev-to-test ratio
• Developers can just code and don’t have to spend too much time on testing
As you might expect from a company known to build Anything and Everything,
Google uses its own tool for tracking tests, the Google Test Case Manager, as well as
automated tests.