• DocumentCode
    3407061
  • Title

    Discovering, reporting, and fixing performance bugs

  • Author

    Nistor, Adrian ; Tian Jiang ; Lin Tan

  • fYear
    2013
  • fDate
    18-19 May 2013
  • Firstpage
    237
  • Lastpage
    246
  • Abstract
    Software performance is critical for how users perceive the quality of software products. Performance bugs - programming errors that cause significant performance degradation - lead to poor user experience and low system throughput. Designing effective techniques to address performance bugs requires a deep understanding of how performance bugs are discovered, reported, and fixed. In this paper, we study how performance bugs are discovered, reported to developers, and fixed by developers, and compare the results with those for non-performance bugs. We study performance and non-performance bugs from three popular code bases: Eclipse JDT, Eclipse SWT, and Mozilla. First, we find little evidence that fixing performance bugs has a higher chance to introduce new functional bugs than fixing non-performance bugs, which implies that developers may not need to be over-concerned about fixing performance bugs. Second, although fixing performance bugs is about as error-prone as fixing nonperformance bugs, fixing performance bugs is more difficult than fixing non-performance bugs, indicating that developers need better tool support for fixing performance bugs and testing performance bug patches. Third, unlike many non-performance bugs, a large percentage of performance bugs are discovered through code reasoning, not through users observing the negative effects of the bugs (e.g., performance degradation) or through profiling. The result suggests that techniques to help developers reason about performance, better test oracles, and better profiling techniques are needed for discovering performance bugs.
  • Keywords
    program debugging; program testing; reasoning about programs; software performance evaluation; software prototyping; software quality; Eclipse JDT; Eclipse SWT; Mozilla; code reasoning; nonperformance bugs; performance bug discovery; performance bug fixing; performance bug patch testing; performance bug reporting; performance bug-programming errors; profiling techniques; software performance; software product quality; Cognition; Computer bugs; Inspection; Manuals; Sociology; Software; Statistics;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Mining Software Repositories (MSR), 2013 10th IEEE Working Conference on
  • Conference_Location
    San Francisco, CA
  • ISSN
    2160-1852
  • Print_ISBN
    978-1-4799-0345-0
  • Type

    conf

  • DOI
    10.1109/MSR.2013.6624035
  • Filename
    6624035