• DocumentCode
    2865816
  • Title

    An empirical analysis of the distribution of unit test smells and their impact on software maintenance

  • Author

    Bavota, Gabriele ; Qusef, Abdallah ; Oliveto, Rocco ; De Lucia, Andrea ; Binkley, David

  • Author_Institution
    Univ. of Salerno, Fisciano, Italy
  • fYear
    2012
  • fDate
    23-28 Sept. 2012
  • Firstpage
    56
  • Lastpage
    65
  • Abstract
    Unit testing represents a key activity in software development and maintenance. Test suites with high internal quality facilitate maintenance activities, such as code comprehension and regression testing. Several guidelines have been proposed to help developers write good test suites. Unfortunately, such rules are not always followed resulting in the presence of bad test code smells (or simply test smells). Test smells have been defined as poorly designed tests and their presence may negatively affect the maintainability of test suites and production code. Despite the many studies that address code smells in general, until now there has been no empirical evidence regarding test smells (i) distribution in software systems nor (ii) their impact on the maintainability of software systems. This paper fills this gap by presenting two empirical studies. The first study is an exploratory analysis of 18 software systems (two industrial and 16 open source) aimed at analyzing the distribution of test smells in source code. The second study, a controlled experiment involving twenty master students, is aimed at analyzing whether the presence of test smells affects the comprehension of source code during software maintenance. The results show that (i) test smells are widely spread throughout the software systems studied and (ii) most of the test smells have a strong negative impact on the comprehensibility of test suites and production code.
  • Keywords
    program testing; public domain software; software maintenance; bad test code smell; code comprehension; empirical analysis; industrial software; maintenance activity; open source software; production code; regression testing; software development; software maintenance; software system maintainability; source code; test suite maintainability; unit test smell distribution; Conferences; Fixtures; Maintenance engineering; Software maintenance; Software systems; Testing; Controlled experiments; Mining software repositories; Test smells; Unit testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2012 28th IEEE International Conference on
  • Conference_Location
    Trento
  • ISSN
    1063-6773
  • Print_ISBN
    978-1-4673-2313-0
  • Type

    conf

  • DOI
    10.1109/ICSM.2012.6405253
  • Filename
    6405253