Testing Blog

What Test Engineers do at Google: Building Test Infrastructure

fredag, november 18, 2016
Share on Twitter Share on Facebook
Google
Etiketter: Jobs , Jochen Wuttke

12 kommentarer :

  1. sul4bh18. november 2016 kl. 13.55.00 GMT-8

    How do you mark a test failure as flaky? Do you have an automated/intelligent system that flags a test run failure as flaky or do you do it manually?

    SvarSlet
    Svar
      Svar
  2. Anonym19. november 2016 kl. 00.54.00 GMT-8

    Yes, pacts were a strong influence on what we did.
    However, we never went quite as far as they did, and cut out some of the stuff that makes pacts very powerful in theory, but hard to write in practice. Most importantly, instead of writing the contracts in code, we simply store the exchanged data as protocol buffers (https://developers.google.com/protocol-buffers/). That has the advantage of being far simpler, but also restricts what contracts can do, since you have a "passive" contract, instead of code that gets executed.

    SvarSlet
    Svar
      Svar
  3. Anonym21. november 2016 kl. 08.28.00 GMT-8

    This is really interesting, thanks for sharing. Will you be open sourcing your tool?

    SvarSlet
    Svar
      Svar
  4. testhacker24. november 2016 kl. 19.59.00 GMT-8

    Understood that integration testing is now carried out as part of unit testing. Just wondering, is functional testing also being covered as part of unit tests? Wouldn't functional testing require some of E2E tests be retained?

    SvarSlet
    Svar
    1. Anonym6. december 2016 kl. 00.34.00 GMT-8

      Yes, functional and system testing do require some E2E tests to be retained. But these tests do not have to run during the developer cycle, which basic integration tests are quite important in SOA systems that change rapidly.

      Slet
      Svar
        Svar
    2. Svar
  5. Pratik Shah27. november 2016 kl. 15.26.00 GMT-8

    any chance this will be open sourced? We would love to contribute!

    SvarSlet
    Svar
      Svar
  6. Unknown29. november 2016 kl. 03.34.00 GMT-8

    This is interesting approach. We are nearly in the same situation, but in the beginning. Could you share how did you solve connection to databases (and other services with different protocols). Do you have started DBs for tests or do you mock them as well?

    Another thing we need to cope with is order of returned data. Some of our methods are allowed to return items in array in random order (this random order originates form DB without order specification).
    Did you see such a problems?

    SvarSlet
    Svar
    1. Anonym6. december 2016 kl. 00.30.00 GMT-8

      So, generally speaking, at Google DBs are also services that "speak" protocol buffer. But for most tests and languages, we also have very lightweight in-memory implementations that are more convenient to use where a DB is needed.

      For sorted/unsorted stuff in arrays, that's a common problem. In the final version we opted for always treating arrays as unsorted, so our matching algorithm just checks if each element (and duplicates) occur, but not in which position. In a previous version we tried to add a markup language to the stored data to modify the way things are matched, but in this particular case, it turned out that just un-ordered lists work well practically always.

      Slet
      Svar
        Svar
    2. Svar
  7. Anonym6. december 2016 kl. 00.33.00 GMT-8

    There have been several questions about open-sourcing the implementation of the library we built.

    There are currently no plans to do that. The two main reasons are:
    * A lot of what we did in the implementation is Google specific. Once we split of the parts that make sense in open source, there wouldn't be much left.
    * There are very good implementations of these principles out there that work well with common languages and OS stacks. For example https://docs.pact.io/.

    SvarSlet
    Svar
      Svar
  8. Anurag6. februar 2017 kl. 20.55.00 GMT-8

    Hi, thank you for this post I agree with you that Tight coupling and insufficient abstraction made unit testing very hard, and as a consequence, a lot of end-to-end tests served as functional tests of that code.very useful information

    SvarSlet
    Svar
      Svar
  9. divp22. marts 2017 kl. 23.56.00 GMT-7

    This is really interesting, thanks for sharing....Automation engineers design, program, simulate and test automated machinery and processes in order to complete exact tasks. They typically are employed in industries such as car manufacturing or food processing plants, where robots or machines are used to perform specific functions.i agree that a testing Engineer is required to fully test the product or system to ensure it functions properly and meets the business needs..worth reading

    SvarSlet
    Svar
      Svar
  10. jianfeng20. april 2017 kl. 21.37.00 GMT-7

    Thanks for sharing. if integration test need to prepare some data, such as: get account by id, integration test may need to create one first, so question is : how to handle the preparation when replay?

    SvarSlet
    Svar
      Svar
Tilføj kommentar
Indlæs flere...

The comments you read and contribute here belong only to the person who posted them. We reserve the right to remove off-topic comments.

  

Labels


  • TotT 108
  • GTAC 61
  • James Whittaker 42
  • Misko Hevery 32
  • Code Health 31
  • Anthony Vallone 27
  • Patrick Copeland 23
  • Jobs 18
  • Andrew Trenk 13
  • C++ 11
  • Patrik Höglund 8
  • JavaScript 7
  • Allen Hutchison 6
  • George Pirocanac 6
  • Zhanyong Wan 6
  • Harry Robinson 5
  • Java 5
  • Julian Harty 5
  • Adam Bender 4
  • Alberto Savoia 4
  • Ben Yu 4
  • Erik Kuefler 4
  • Philip Zembrod 4
  • Shyam Seshadri 4
  • Chrome 3
  • Dillon Bly 3
  • John Thomas 3
  • Lesley Katzen 3
  • Marc Kaplan 3
  • Markus Clermont 3
  • Max Kanat-Alexander 3
  • Sonal Shah 3
  • APIs 2
  • Abhishek Arya 2
  • Alan Myrvold 2
  • Alek Icev 2
  • Android 2
  • April Fools 2
  • Chaitali Narla 2
  • Chris Lewis 2
  • Chrome OS 2
  • Diego Salas 2
  • Dori Reuveni 2
  • Jason Arbon 2
  • Jochen Wuttke 2
  • Kostya Serebryany 2
  • Marc Eaddy 2
  • Marko Ivanković 2
  • Mobile 2
  • Oliver Chang 2
  • Simon Stewart 2
  • Stefan Kennedy 2
  • Test Flakiness 2
  • Titus Winters 2
  • Tony Voellm 2
  • WebRTC 2
  • Yiming Sun 2
  • Yvette Nameth 2
  • Zuri Kemp 2
  • Aaron Jacobs 1
  • Adam Porter 1
  • Adam Raider 1
  • Adel Saoud 1
  • Alan Faulkner 1
  • Alex Eagle 1
  • Amy Fu 1
  • Anantha Keesara 1
  • Antoine Picard 1
  • App Engine 1
  • Arham Jain 1
  • Ari Shamash 1
  • Arif Sukoco 1
  • Bartosz Papis 1
  • Benjamin Pick 1
  • Bob Nystrom 1
  • Bruce Leban 1
  • Carlos Arguelles 1
  • Carlos Israel Ortiz García 1
  • Cathal Weakliam 1
  • Christopher Semturs 1
  • Clay Murphy 1
  • Dagang Wei 1
  • Dan Maksimovich 1
  • Dan Shi 1
  • Dan Willemsen 1
  • Dave Chen 1
  • Dave Gladfelter 1
  • David Bendory 1
  • David Mandelberg 1
  • Derek Snyder 1
  • Diego Cavalcanti 1
  • Dmitry Vyukov 1
  • Eduardo Bravo Ortiz 1
  • Ekaterina Kamenskaya 1
  • Elliott Karpilovsky 1
  • Elliotte Rusty Harold 1
  • Espresso 1
  • Felipe Sodré 1
  • Francois Aube 1
  • Gene Volovich 1
  • Google+ 1
  • Goran Petrovic 1
  • Goranka Bjedov 1
  • Hank Duan 1
  • Havard Rast Blok 1
  • Hongfei Ding 1
  • Jason Elbaum 1
  • Jason Huggins 1
  • Jay Han 1
  • Jeff Hoy 1
  • Jeff Listfield 1
  • Jessica Tomechak 1
  • Jim Reardon 1
  • Joe Allan Muharsky 1
  • Joel Hynoski 1
  • John Micco 1
  • John Penix 1
  • Jonathan Rockway 1
  • Jonathan Velasquez 1
  • Josh Armour 1
  • Julie Ralph 1
  • Kai Kent 1
  • Kanu Tewary 1
  • Karin Lundberg 1
  • Kaue Silveira 1
  • Kevin Bourrillion 1
  • Kevin Graney 1
  • Kirkland 1
  • Kurt Alfred Kluever 1
  • Kyle Freeman 1
  • Manjusha Parvathaneni 1
  • Marek Kiszkis 1
  • Marius Latinis 1
  • Mark Ivey 1
  • Mark Manley 1
  • Mark Striebeck 1
  • Matt Lowrie 1
  • Meredith Whittaker 1
  • Michael Bachman 1
  • Michael Klepikov 1
  • Mike Aizatsky 1
  • Mike Wacker 1
  • Mona El Mahdy 1
  • Noel Yap 1
  • Palak Bansal 1
  • Patricia Legaspi 1
  • Per Jacobsson 1
  • Peter Arrenbrecht 1
  • Peter Spragins 1
  • Phil Norman 1
  • Phil Rollet 1
  • Pooja Gupta 1
  • Project Showcase 1
  • Radoslav Vasilev 1
  • Rajat Dewan 1
  • Rajat Jain 1
  • Rich Martin 1
  • Richard Bustamante 1
  • Roshan Sembacuttiaratchy 1
  • Ruslan Khamitov 1
  • Sam Lee 1
  • Sean Jordan 1
  • Sebastian Dörner 1
  • Sharon Zhou 1
  • Shiva Garg 1
  • Siddartha Janga 1
  • Simran Basi 1
  • Stan Chan 1
  • Stephen Ng 1
  • Tejas Shah 1
  • Test Analytics 1
  • Test Engineer 1
  • Tim Lyakhovetskiy 1
  • Tom O'Neill 1
  • Vojta Jína 1
  • Zhe Lu 1
  • automation 1
  • dead code 1
  • iOS 1
  • mutation testing 1


Archive


  • ►  2026 (2)
    • ►  mar. (2)
  • ►  2025 (3)
    • ►  okt. (1)
    • ►  sep. (1)
    • ►  jan. (1)
  • ►  2024 (13)
    • ►  dec. (1)
    • ►  okt. (1)
    • ►  sep. (1)
    • ►  aug. (1)
    • ►  jul. (1)
    • ►  maj (3)
    • ►  apr. (3)
    • ►  mar. (1)
    • ►  feb. (1)
  • ►  2023 (14)
    • ►  dec. (2)
    • ►  nov. (2)
    • ►  okt. (5)
    • ►  sep. (3)
    • ►  aug. (1)
    • ►  apr. (1)
  • ►  2022 (2)
    • ►  feb. (2)
  • ►  2021 (3)
    • ►  jun. (1)
    • ►  apr. (1)
    • ►  mar. (1)
  • ►  2020 (8)
    • ►  dec. (2)
    • ►  nov. (1)
    • ►  okt. (1)
    • ►  aug. (2)
    • ►  jul. (1)
    • ►  maj (1)
  • ►  2019 (4)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  jul. (1)
    • ►  jan. (1)
  • ►  2018 (7)
    • ►  nov. (1)
    • ►  sep. (1)
    • ►  jul. (1)
    • ►  jun. (2)
    • ►  maj (1)
    • ►  feb. (1)
  • ►  2017 (17)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  okt. (1)
    • ►  sep. (1)
    • ►  aug. (1)
    • ►  jul. (2)
    • ►  jun. (2)
    • ►  maj (3)
    • ►  apr. (2)
    • ►  feb. (1)
    • ►  jan. (2)
  • ▼  2016 (15)
    • ►  dec. (1)
    • ▼  nov. (2)
      • What Test Engineers do at Google: Building Test In...
      • Hackable Projects - Pillar 3: Infrastructure
    • ►  okt. (1)
    • ►  sep. (2)
    • ►  aug. (1)
    • ►  jun. (2)
    • ►  maj (3)
    • ►  apr. (1)
    • ►  mar. (1)
    • ►  feb. (1)
  • ►  2015 (14)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  okt. (2)
    • ►  aug. (1)
    • ►  jun. (1)
    • ►  maj (2)
    • ►  apr. (2)
    • ►  mar. (1)
    • ►  feb. (1)
    • ►  jan. (2)
  • ►  2014 (24)
    • ►  dec. (2)
    • ►  nov. (1)
    • ►  okt. (2)
    • ►  sep. (2)
    • ►  aug. (2)
    • ►  jul. (3)
    • ►  jun. (3)
    • ►  maj (2)
    • ►  apr. (2)
    • ►  mar. (2)
    • ►  feb. (1)
    • ►  jan. (2)
  • ►  2013 (16)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  okt. (1)
    • ►  aug. (2)
    • ►  jul. (1)
    • ►  jun. (2)
    • ►  maj (2)
    • ►  apr. (2)
    • ►  mar. (2)
    • ►  jan. (2)
  • ►  2012 (11)
    • ►  dec. (1)
    • ►  nov. (2)
    • ►  okt. (3)
    • ►  sep. (1)
    • ►  aug. (4)
  • ►  2011 (39)
    • ►  nov. (2)
    • ►  okt. (5)
    • ►  sep. (2)
    • ►  aug. (4)
    • ►  jul. (2)
    • ►  jun. (5)
    • ►  maj (4)
    • ►  apr. (3)
    • ►  mar. (4)
    • ►  feb. (5)
    • ►  jan. (3)
  • ►  2010 (37)
    • ►  dec. (3)
    • ►  nov. (3)
    • ►  okt. (4)
    • ►  sep. (8)
    • ►  aug. (3)
    • ►  jul. (3)
    • ►  jun. (2)
    • ►  maj (2)
    • ►  apr. (3)
    • ►  mar. (3)
    • ►  feb. (2)
    • ►  jan. (1)
  • ►  2009 (54)
    • ►  dec. (3)
    • ►  nov. (2)
    • ►  okt. (3)
    • ►  sep. (5)
    • ►  aug. (4)
    • ►  jul. (15)
    • ►  jun. (8)
    • ►  maj (3)
    • ►  apr. (2)
    • ►  feb. (5)
    • ►  jan. (4)
  • ►  2008 (75)
    • ►  dec. (6)
    • ►  nov. (8)
    • ►  okt. (9)
    • ►  sep. (8)
    • ►  aug. (9)
    • ►  jul. (9)
    • ►  jun. (6)
    • ►  maj (6)
    • ►  apr. (4)
    • ►  mar. (4)
    • ►  feb. (4)
    • ►  jan. (2)
  • ►  2007 (41)
    • ►  okt. (6)
    • ►  sep. (5)
    • ►  aug. (3)
    • ►  jul. (2)
    • ►  jun. (2)
    • ►  maj (2)
    • ►  apr. (7)
    • ►  mar. (5)
    • ►  feb. (5)
    • ►  jan. (4)

Feed

  • Google
  • Privacy
  • Terms