Testing Blog

вівторок, червня 14, 2011
Share on Twitter Share on Facebook
Google
Мітки: John Penix , Mark Ivey , Pooja Gupta

14 коментарів :

  1. Анонім14 червня 2011 р. о 15:00:00 GMT-7

    This is a great concept, and one that I've had a lot of questions about in my test role in a CI-focused team.

    Two specific questions:
    1) How well does this scale when you have a much more larger and more complicated graph of test (i.e. orders of magnitude)?
    2) When running system-level, rather than unit-level tests, can one really map tests to limited domains enough to significantly cut down the test fanout for a given set of changes?

    Thanks for any feedback.

    ВідповістиВидалити
    Відповіді
      Відповісти
  2. Анонім14 червня 2011 р. о 15:38:00 GMT-7

    Great concept; one that has been discussed in my team more than once.

    Two questions:
    o Does this really work when the number of tests, number of software modules and the corresponding graph complexity gets orders of magnitude bigger?
    o Any thoughts on if/how this can apply when the tests are more system-oriented and hence most tests have a transitive relationship with most software modules?

    Thanks for this post...love reading the Google testing blog.

    ВідповістиВидалити
    Відповіді
      Відповісти
  3. Unknown15 червня 2011 р. о 23:07:00 GMT-7

    That's amazing. But, how do you maintain the dependencies? Is it each individual test owner's responsibility to set his/her tests dependencies?

    ВідповістиВидалити
    Відповіді
      Відповісти
  4. PJayTycy16 червня 2011 р. о 00:49:00 GMT-7

    Can you give more info about the dependency graph generation?
    Is it an automated process (ie: based on build system / makefiles / ...) or do the developers need to manually specify the dependencies?

    ВідповістиВидалити
    Відповіді
      Відповісти
  5. krisskross16 червня 2011 р. о 02:29:00 GMT-7

    Intresting, i have been thinking about this idea for a long time. Could be useful for upgrades aswell.

    How does the framework handle callback interfaces?

    -Kristoffer

    ВідповістиВидалити
    Відповіді
      Відповісти
  6. MP17 червня 2011 р. о 03:08:00 GMT-7

    It's an interesting idea, applying the dependency management to the test runs and not only the builds.

    But I have a question: in the first example you can track down that both change #2 and change #3 are breaking gmail_server_tests independently.

    But how do you go back in the version control system and fix those changes individually? Do you go back to pre-change #2 and then serialize the (fixed) changes?

    Another question is that now you can know earlier if it was change #2 or #3 that broke the tests, but you will not know (till later) if the combination of change #2 and #3 (also) breaks the tests.

    Is this a tradeoff you agree upon since maybe individual changes breaking the build are more common than combination of changes?

    Thanks for the interesting post!

    ВідповістиВидалити
    Відповіді
      Відповісти
  7. Анонім17 червня 2011 р. о 22:34:00 GMT-7

    I do not quite understand, but I'll learn it. Thank you for this interesting information.

    ВідповістиВидалити
    Відповіді
      Відповісти
  8. PJ20 червня 2011 р. о 12:04:00 GMT-7

    Does the dependency graph get updated by the compiler at compile time ?

    This would work great for currently extant/new features tied to the current dependency graph/map but how do the dependencies tie in with third party or external systems (same as the call back question posted by an earlier comment) that could get impacted by a change made within google's code base? Are their dependencies also mapped into this graph?

    Honestly, do you guys ever miss any tests that should have been run - how often are these a result of machine error vs human error?

    ВідповістиВидалити
    Відповіді
      Відповісти
  9. Pooja Gupta21 червня 2011 р. о 23:20:00 GMT-7

    @John

    1. This scales pretty well at the current scale as described in http://google-engtools.blogspot.com/2011/05/welcome-to-google-engineering-tools where all these numbers correspond to same code repository. Yes, it works! :)
    2. System level tests are the ones that tend to be flaky, so even when they cannot be cut down to an extent as much as the unit tests, running them fewer that at every change definitely helps.

    @Alex/@PJayTycy : Build rules are used to maintain dependencies. See similar discussion in: http://google-engtools.blogspot.com/2011/06/testing-at-speed-and-scale-of-google.html. The build rules are defined as per compiler specifications, and then the dependency graph generation is automatic.

    @krisskross Can you elaborate more?

    @PJ: There are occasional instances when we do miss tests because of software bug, but it is rare enough that teams can continue to rely on the system.

    ВідповістиВидалити
    Відповіді
      Відповісти
  10. eduardo10 липня 2011 р. о 04:02:00 GMT-7

    doit is an open-source project that was created to be able to handle this kind of "runs only those tests for every change".

    For running python unittests, there is py.test plugin that integrates with doit to automatically find imports for python files and keep track of dependencies.

    ВідповістиВидалити
    Відповіді
      Відповісти
  11. Adi27 липня 2011 р. о 06:23:00 GMT-7

    It sounds like this is more about helping the RCA process than saving time/resources in running the tests. It's great to have a quick feedback about how your single change passed/failed the regression suite, but like John mentioned, the system-level tests never map to a single component, and so the graph becomes much more complex.

    In our previous build system we had a similar system which was based on code coverage data. Test selection was automatic based on the code every changeset changed.

    ВідповістиВидалити
    Відповіді
      Відповісти
  12. Vanken13 листопада 2011 р. о 06:04:00 GMT-8

    nice..its really usefull, i have try n make it like a personal barometer.

    ВідповістиВидалити
    Відповіді
      Відповісти
  13. Анонім18 травня 2017 р. о 09:07:00 GMT-7

    Images are broken. It would be really nice if these are fixed!

    ВідповістиВидалити
    Відповіді
      Відповісти
  14. Mark Nowacki23 серпня 2017 р. о 14:16:00 GMT-7

    With all the testing going on, how do you maintain your test results? Do you keep track of them somewhere that can be data-mined, to see trends or particularly unstable tests? What kind of audit-ability does it have? Do you have a requirement for 'test evidence' which means you have to keep & store your results? Thanks.

    ВідповістиВидалити
    Відповіді
      Відповісти
Додати коментар
Завантажити більше...

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 114
  • 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
  • Chris Kennelly 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
  • Nimit Khandelwal 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
  • Radion Khait 1
  • Radoslav Vasilev 1
  • Rahul Singal 1
  • Rajat Dewan 1
  • Rajat Jain 1
  • Rich Martin 1
  • Richard Bustamante 1
  • Roman Govsheev 1
  • Roshan Sembacuttiaratchy 1
  • Ruslan Khamitov 1
  • Saicharan Nimmala 1
  • Sam Lee 1
  • Sean Jordan 1
  • Sebastian Dörner 1
  • Shahar Roth 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 (8)
    • ►  жовт. (1)
    • ►  лип. (1)
    • ►  черв. (1)
    • ►  трав. (2)
    • ►  квіт. (1)
    • ►  бер. (2)
  • ►  2025 (3)
    • ►  жовт. (1)
    • ►  вер. (1)
    • ►  січ. (1)
  • ►  2024 (13)
    • ►  груд. (1)
    • ►  жовт. (1)
    • ►  вер. (1)
    • ►  серп. (1)
    • ►  лип. (1)
    • ►  трав. (3)
    • ►  квіт. (3)
    • ►  бер. (1)
    • ►  лют. (1)
  • ►  2023 (14)
    • ►  груд. (2)
    • ►  лист. (2)
    • ►  жовт. (5)
    • ►  вер. (3)
    • ►  серп. (1)
    • ►  квіт. (1)
  • ►  2022 (2)
    • ►  лют. (2)
  • ►  2021 (3)
    • ►  черв. (1)
    • ►  квіт. (1)
    • ►  бер. (1)
  • ►  2020 (8)
    • ►  груд. (2)
    • ►  лист. (1)
    • ►  жовт. (1)
    • ►  серп. (2)
    • ►  лип. (1)
    • ►  трав. (1)
  • ►  2019 (4)
    • ►  груд. (1)
    • ►  лист. (1)
    • ►  лип. (1)
    • ►  січ. (1)
  • ►  2018 (7)
    • ►  лист. (1)
    • ►  вер. (1)
    • ►  лип. (1)
    • ►  черв. (2)
    • ►  трав. (1)
    • ►  лют. (1)
  • ►  2017 (17)
    • ►  груд. (1)
    • ►  лист. (1)
    • ►  жовт. (1)
    • ►  вер. (1)
    • ►  серп. (1)
    • ►  лип. (2)
    • ►  черв. (2)
    • ►  трав. (3)
    • ►  квіт. (2)
    • ►  лют. (1)
    • ►  січ. (2)
  • ►  2016 (15)
    • ►  груд. (1)
    • ►  лист. (2)
    • ►  жовт. (1)
    • ►  вер. (2)
    • ►  серп. (1)
    • ►  черв. (2)
    • ►  трав. (3)
    • ►  квіт. (1)
    • ►  бер. (1)
    • ►  лют. (1)
  • ►  2015 (14)
    • ►  груд. (1)
    • ►  лист. (1)
    • ►  жовт. (2)
    • ►  серп. (1)
    • ►  черв. (1)
    • ►  трав. (2)
    • ►  квіт. (2)
    • ►  бер. (1)
    • ►  лют. (1)
    • ►  січ. (2)
  • ►  2014 (24)
    • ►  груд. (2)
    • ►  лист. (1)
    • ►  жовт. (2)
    • ►  вер. (2)
    • ►  серп. (2)
    • ►  лип. (3)
    • ►  черв. (3)
    • ►  трав. (2)
    • ►  квіт. (2)
    • ►  бер. (2)
    • ►  лют. (1)
    • ►  січ. (2)
  • ►  2013 (16)
    • ►  груд. (1)
    • ►  лист. (1)
    • ►  жовт. (1)
    • ►  серп. (2)
    • ►  лип. (1)
    • ►  черв. (2)
    • ►  трав. (2)
    • ►  квіт. (2)
    • ►  бер. (2)
    • ►  січ. (2)
  • ►  2012 (11)
    • ►  груд. (1)
    • ►  лист. (2)
    • ►  жовт. (3)
    • ►  вер. (1)
    • ►  серп. (4)
  • ▼  2011 (39)
    • ►  лист. (2)
    • ►  жовт. (5)
    • ►  вер. (2)
    • ►  серп. (4)
    • ►  лип. (2)
    • ▼  черв. (5)
      • Google at STAR West 2011
      • Lessons in a 21st Century Tech Career: Failing Fas...
      • Introducing DOM Snitch, our passive in-the-browser...
      • GTAC 2011 Keynotes
      • (Cross-posted from the Google Engineering Tools b...
    • ►  трав. (4)
    • ►  квіт. (3)
    • ►  бер. (4)
    • ►  лют. (5)
    • ►  січ. (3)
  • ►  2010 (37)
    • ►  груд. (3)
    • ►  лист. (3)
    • ►  жовт. (4)
    • ►  вер. (8)
    • ►  серп. (3)
    • ►  лип. (3)
    • ►  черв. (2)
    • ►  трав. (2)
    • ►  квіт. (3)
    • ►  бер. (3)
    • ►  лют. (2)
    • ►  січ. (1)
  • ►  2009 (54)
    • ►  груд. (3)
    • ►  лист. (2)
    • ►  жовт. (3)
    • ►  вер. (5)
    • ►  серп. (4)
    • ►  лип. (15)
    • ►  черв. (8)
    • ►  трав. (3)
    • ►  квіт. (2)
    • ►  лют. (5)
    • ►  січ. (4)
  • ►  2008 (75)
    • ►  груд. (6)
    • ►  лист. (8)
    • ►  жовт. (9)
    • ►  вер. (8)
    • ►  серп. (9)
    • ►  лип. (9)
    • ►  черв. (6)
    • ►  трав. (6)
    • ►  квіт. (4)
    • ►  бер. (4)
    • ►  лют. (4)
    • ►  січ. (2)
  • ►  2007 (41)
    • ►  жовт. (6)
    • ►  вер. (5)
    • ►  серп. (3)
    • ►  лип. (2)
    • ►  черв. (2)
    • ►  трав. (2)
    • ►  квіт. (7)
    • ►  бер. (5)
    • ►  лют. (5)
    • ►  січ. (4)

Feed

  • Google
  • Privacy
  • Terms