Evolution of Business and Engineering Productivity (GTALK 2016)




As any other model, this doesn’t say this should fit to every company, but this is the typical idea and what Google follows. You can follow this, but you need to be aware that maybe this is not the best model for your company.

This pyramid shows how much of each type of tests you should focus more. So, in numbers this should be:

  • Unit – 70%
  • Component Regression – 20%
  • Acceptance Criteria – 10%

The top of the pyramid is about test the logs, this is not really a common test, but it is about making sure the behaviour is correct, testing the logs according to the action, the base of your system. For example, Google saves all the data from the users in the logs and keep all these information making sure the data is protected. From bottom to top each stage of test requires high level of domain knowledge, high amount of setup costs, investment, time, machine resources.

The canary tests approach is about pushing the release to a first batch of end users, who are unaware that they are receiving this new code. Because the canary is only distributed to a small number of users, if your company is global remember to have this small group of end users divided per each location, its impact is relatively small and changes can be reversed quickly should the new code prove to be buggy.



You need to consider all these aspects to build robust automation frameworks that have a utility and usability through the time. You need to consider the velocity of your tests and of course the quality that you can achieve with small and frequently releases, keep in mind they need to work together.


A bad model of test strategy


  • Never test in production environment;
  • Release as much as you can, possibly every time a new feature is aproved;
  • Focus first on unit/smoke tests not the whole system;
  • Create good metrics to show the evolution of the product quality



Google has grown on maturated taking into account different devices, platforms, features.


A good model of test strategy


  • Focus on quality of your product and the infrastructure;
  • Stable automation frameworks/tools;
  • Cross functional tools, don’t rely on only one tool for tests.



Take care of feature duplication. When a company grows, the number of tests with different goals grow together, but duplicating the same code. This leads to dead code and codes doing the same thing.



You can create metrics about defect leakage of your automation, how long is taking to run the tests, everything will help you to know where you can improve. So, try as much as possible to have clear objectives.


This is the test and release model that Google has at the moment, with some canary testing, monitoring step, frequent releases and feedbacks.


Most of the challenges that were said are the challenges of always, as a company you need to think constantly in growing and hire more people in different teams to work together, also every year we have hundreds of new devices to test and make sure your system is supported.

  • Integration tests between even more components;
  • Make multiple teams work together;
  • Support multiple platforms.



The complete video is herehttps://www.youtube.com/watch?v=2yN53k9jz3U

How can you relate software development phases to test life cycle ?

Hi guys, today I will expose the differences between Software Development Cycle and Software Test Life Cycle.


Phase SDLC – Software Development Life cycle STLC – Software Test Life Cycle
Requirements Gathering Gather as much information as possible about the details & specifications of the desired software from the client. This is nothing, but the Requirements gathering stage. QA team identify types of required testing and review the requirements for logical functional integration between features, so that any gaps can be caught at an early stage.
Design Plan the programming language. Which would be suited for the project, also some high-level functions & architecture. Test planning phase, high level of test points. Time to align the QA scenarios with requirements.
Coding Development It is built stage, that is nothing but actually code the software Create the QA scenarios here.
Testing Test phase, now you test the software to verify that it is built as per the specifications given by the client. Test Execution and bug reporting, manual testing, automation testing is done, defects found are reported.
Deployment Deploy the application in the respective environment Re-testing and regression testing is done in this phase. Here you can test the integration with different versions of different components and check the behaviour of the system.
Maintenance Basically, it includes, post production / deployment support & enhancements. Maintenance of the test plan and scenarios. Any other improvements should be done here.


Why QA should be involved since the beginning ?








Life Cycle Models