TestIstanbul Conferences 2012 Test Automation at the Scale of Google Baran Ozgul Sr. Test Engineer - Google AdSense Olivier Gaillard Sr. Software Engineer.

Slides:



Advertisements
Similar presentations
Are Parametric Techniques Relevant for Agile Development Projects?
Advertisements

Test process essentials Riitta Viitamäki,
West of England Academic Health Science Network - launch
TestIstanbul Conferences 2012 TESTISTANBUL 2011 KEYNOTE SPEAKERS.
Being a QA Engineer at Telerik Snejina Lazarova Dimo Mitev Telerik Corporation
In Search of a State IT Audit Paradigm SAI Poland 北京 April 2010.
Prashant Lambat Sr. Manager SQA Engineering Symantec Corporation, Pune Date: 29 th January 2011.
Michael Lepine Agile2013 Recap. What is DevOps?
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
SE 450 Software Processes & Product Metrics Reliability Engineering.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
It’s tough out there … Outperforming teams are collaborate extensively with their counterparts 54 % more likely to Developers 26.7% No executive.
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
EC Review – 01/03/2002 – G. Zaquine – Quality Assurance – WP12 – CS-SI – n° 1 DataGrid Quality Assurance Gabriel Zaquine Quality Engineer - WP12 – CS-SI.
Introduction to Continuous Integration Mike Roberts.
October 15, 2004 – 1 Welcome IPMA and SolutionsIQ Professional Event Testing, Testing, 1…2…3… Improving software quality -- one bug at a time.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
When is a Project Ready for Software Automation? Michael Christesen Mat Krueper Ty Henson 1.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Test Organization and Management
N By: Md Rezaul Huda Reza n
Chapter 3 Agile Software Development (2/2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
© Blackboard, Inc. All rights reserved. Back to the Feature: An Agile, User-centric Software Development Lifecycle Cindy Barry Senior Product Manager Martha.
Software Testing Life Cycle
1 Microsoft’s Process Redmond in the 90’s Article by Roger Sherman, Director of Testing, Worldwide Products Group, Microsoft.
The Joel Test 12 Steps to Better Code. Readings The Joel Test (by Joel Spolsky) 043.html.
1.  Project: temporary endeavor to achieve some specific objectives in a defined time  Project management ◦ Dynamic process ◦ Controlled and structured.
1 G A A new Document Control System “A new system to manage LIGO documents” Stuart Anderson Melody Araya David Shoemaker 29 September, 2008
May 29 th, 2003 Curtis Anderson Sivaprasad Padisetty.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
(A radical interpretation) Tomo Lennox Bow Tie computer services Why Agile Works.
Project Tracking Why and How to Do It. The Dilbert View.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Theories of Agile, Fails of Security Daniel Liber CyberArk.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
1 confidential | ©2015 Sabre GLBL Inc. All rights reserved. Implementing Kanban at Different Levels During Agile Adoption Krishnakumar C Principal Agile.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Joy Shafer October, 2011  Why am I here?  Why are you here?
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
It’s tough out there … Software delivery challenges.
Planning Extreme programming
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Cisco Consulting Services for Application-Centric Cloud Your Company Needs Fast IT Cisco Application-Centric Cloud Can Help.
The Next Level Of Agile: DevOps and CD אוקטובר 2015.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
R0 G74 B141 R221 G221 B221 R114 G114 B114 R0 G93 B91 R165 G33 B53 R207 G151 B27 CO PowerPoint colour palette RGB breakdown R189 G208 B238 HP Operations.
Software Testing History, Trends, Perspectives – a Brief Overview.
CS223: Software Engineering
Effective Performance Testing in Agile and DevOps
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Implementing Cloud-based Agile Team Development - Lessons Learned
DataGrid Quality Assurance
Chapter 18 Maintaining Information Systems
Continuous Integration and Testing
Владимир Гусаров Директор R&D, Dell Visual Studio ALM MVP ALM Ranger
SAFe Workshop - Oct 17 Presenter: Ray Brederode
Some Important Techniques For Regression Testing That You Must Know.
X in [Integration, Delivery, Deployment]
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
Baisc Of Software Testing
Continuous Integration
Extreme Programming.
that focus first on areas of risk.
Setup QA Process Software Quality Assurance Telerik Software Academy
Applying 3C DevOps approach in Mobility World
Presentation transcript:

TestIstanbul Conferences 2012 Test Automation at the Scale of Google Baran Ozgul Sr. Test Engineer - Google AdSense Olivier Gaillard Sr. Software Engineer in Test - Google AdSense

Guessing Game How many test cases are executed per year at Google? 100 x 10^9 ~ years of test execution per year

TestIstanbul Conferences 2012 Agenda Case study: AdSense Frontend Google's Innovation Culture The Google Scale Developer Engagement Testing Infrastructure Web Testing at Google Key learnings Q&A

G OOGLE ' S I NNOVATION C ULTURE

TestIstanbul Conferences 2012 Google's Innovation Culture "Launch early, launch often" "The only true failure is not attempting the audacious." Take risks Launch and iterate

TestIstanbul Conferences 2012 Launch and iterate Google+: 100 new features in first 90 days Search: Idea-to-user in less than 48 hours Chrome: A new version every 6 weeks

T HE G OOGLE S CALE

TestIstanbul Conferences 2012 The "Google Scale" 60 offices, 30+ countries 1 giant code base everything built at latest check-in 11K people in R&D 10s of thousands of changed code lines / day 10s of products, 100s of feature teams Weekly to sub-daily release cycles How is this possible?

TestIstanbul Conferences 2012 Paradigm Shifts! Developer owns code Test engineering = quality assurance Reliance on people to scale Test to prevent bugs Spread thinly Developer owns code + test Test engineering = Productivity enablers Reliance on common test infrastructure to scale Capacity to fix bugs fast Staff high impact projects

D EVELOPER E NGAGEMENT

TestIstanbul Conferences 2012 Developer engagement

TestIstanbul Conferences 2012 Developer engagement

TestIstanbul Conferences 2012 Developer engagement

TestIstanbul Conferences 2012 Test Engineering "Engineering productivity" Test leadership Process automation Code health signals Test evangelism

TestIstanbul Conferences 2012 Test Leadership Make existing code testable Implement the first N tests, lead by example Use data to define testing priorities Remove testing bottlenecks Make it faster to write and run the tests

TestIstanbul Conferences 2012 Process automation Continuous integration Automated releases Release tracking Production monitoring Automated code quality checks

TestIstanbul Conferences 2012 Code health signals Latency (ms) Code coverage If you don't measure it, you can't control it.

TestIstanbul Conferences 2012 Metrics: Incremental Code Coverage

TestIstanbul Conferences 2012 Test Evangelism Codelabs & Techtalks ("yt: code health talks") Testing on the Toilet (TotT) Internal & external test automation events (GTAC) Testing intergrouplet Test certification Make testing part of the development culture

TestIstanbul Conferences 2012 Test Certified Programme An indication test automation maturity Show value every stage Test Certified Levels 1: Setup tools – get familiar with testing 2: Write tests for all new code 3: Get all code under test 4: Improve test coverage 5: Invest in testable code

A D S ENSE F RONTEND Case Study

TestIstanbul Conferences 2012 Case Study: AdSense Frontend Before Time until next release: months Build broken for weeks 5+ release candidates Reliance on manual testing for release confidence Near absent test automation coverage One man to release them all

TestIstanbul Conferences 2012 Case Study: AdSense Frontend Now Developers write tests for their features Affected tests run at every code change Manual testing: only exploratory Build gets fixed in hours weekly releases <2 release candidates per release 6 auto-staging releases per day Push-button releases

T EST I NFRASTRUCTURE

TestIstanbul Conferences 2012 Life of a code change (AdSense Frontend) minuteshoursdays code review Push to production

TestIstanbul Conferences 2012 Life of a code change (AdSense Frontend) code ready for submission Submit code through presubmit queue tests fail? minuteshoursdays Push to production code review

TestIstanbul Conferences 2012 Life of a code change (AdSense Frontend) code ready for submission Submit code through presubmit queue tests fail? code submitted impacted tests run minuteshoursdays Push to production builcops/build breakers notified code review

TestIstanbul Conferences 2012 Life of a code change (AdSense Frontend) code ready for submission Submit code through presubmit queue tests fail? code submitted impacted tests run minuteshoursdays Push to production builcops/build breakers notified push to production dry run code review

TestIstanbul Conferences 2012 Test enablers test engineers worked on optimizing this process makes it easier to create/maintain tests o developers are more likely to create more tests lots of these steps are using a common infrastructure o search for "continuous integration google"

W EB T ESTING

TestIstanbul Conferences 2012 Browser Automation Selenium 2.0/WebDriver Core browser automation platform (others exist) A collection of language specific bindings to control a browser Emulate true user actions Support for major browser manufacturers

TestIstanbul Conferences 2012 Browser Automation WebDriver driver = new FirefoxDriver(); driver.get(" WebElement element = driver.findElement(By.name("q")); element.sendKeys("Cheese!"); element.submit(); assertTrue(driver.getTitle().contains("Cheese")); How does this scale?

TestIstanbul Conferences 2012 Browser automation Test Runner Shard 1 Browser 1 TestBrowser Shard 1 Browser 2 TestBrowser Shard N Browser M TestBrowser Shard N Browser1 TestBrowser Output Aggregator

TestIstanbul Conferences 2012 Browser automation (AdSense Frontend) Test Runner Shard 1 Chrome Test(s)Browser(s) Server Database... Shard 1 Firefox Test(s)Browser(s) Server Database... Shard 1 Internet Explorer Test(s)Browser(s) Server Database...

TestIstanbul Conferences 2012 Browser Automation: Test enablers Test engineers worked on making it easy to write/maintain browser tests o developers are more likely to more tests Browser tests run at every affecting code change some costly tests are throttled

K EY L EARNINGS

TestIstanbul Conferences 2012 Key Learnings Push testing up-stream o Early developer testing brings biggest wins o Position ourselves as productivity enablers o Make/Hire developers passionate about testing Invest in a great testing infrastructure o Reduce the cost of writing tests to zero o Automate as much as possible

TestIstanbul Conferences 2012 Thanks "Google Testing Blog" "Google Test Automation Conference (GTAC)" "Google Engineering Tools" "WebDriver" or "Selenium" "GTAC" "Clean code talks" "Web Testing at Google GTAC" "Build Software at Google Scale GTAC"