• DocumentCode
    635246
  • Title

    Understanding regression failures through test-passing and test-failing code changes

  • Author

    Sukkerd, Roykrong ; Beschastnikh, Ivan ; Wuttke, Jochen ; Sai Zhang ; Brun, Yuriy

  • Author_Institution
    Univ. of Washington, Seattle, WA, USA
  • fYear
    2013
  • fDate
    18-26 May 2013
  • Firstpage
    1177
  • Lastpage
    1180
  • Abstract
    Debugging and isolating changes responsible for regression test failures are some of the most challenging aspects of modern software development. Automatic bug localization techniques reduce the manual effort developers spend examining code, for example, by focusing attention on the minimal subset of recent changes that results in the test failure, or on changes to components with most dependencies or highest churn. We observe that another subset of changes is worth the developers´ attention: the complement of the maximal set of changes that does not produce the failure. While for simple, independent source-code changes, existing techniques localize the failure cause to a small subset of those changes, we find that when changes interact, the failure cause is often in our proposed subset and not in the subset existing techniques identify. In studying 45 regression failures in a large, open-source project, we find that for 87% of those failures, the complement of the maximal passing set of changes is different from the minimal failing set of changes, and that for 78% of the failures, our technique identifies relevant changes ignored by existing work. These preliminary results suggest that combining our ideas with existing techniques, as opposed to using either in isolation, can improve the effectiveness of bug localization tools.
  • Keywords
    program debugging; program testing; public domain software; set theory; system recovery; automatic bug localization techniques; failure cause localization; independent source-code changes; maximal passing change set; minimal failing change set; open-source project; regression test failures; software debugging change; software development; software isolation change; test-failing code changes; test-passing code changes; Debugging; Educational institutions; History; Interference; Java; Open source software;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2013 35th International Conference on
  • Conference_Location
    San Francisco, CA
  • Print_ISBN
    978-1-4673-3073-2
  • Type

    conf

  • DOI
    10.1109/ICSE.2013.6606672
  • Filename
    6606672