• DocumentCode
    1958507
  • Title

    What Do the Asserts in a Unit Test Tell Us about Code Quality? A Study on Open Source and Industrial Projects

  • Author

    Aniche, Mauricio F. ; Oliva, Gustavo A. ; Gerosa, Marco A.

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Sao Paulo (USP), São Paulo, Brazil
  • fYear
    2013
  • fDate
    5-8 March 2013
  • Firstpage
    111
  • Lastpage
    120
  • Abstract
    Unit tests and production code are intrinsically connected. A class that is easy to test usually presents desirable characteristics, such as low coupling and high cohesion. Thus, finding hard-to-test classes may help developers identify problematic code. Many different test feedbacks that warn developers about problematic code were already catalogued. In this paper, we argue that analyzing assert instructions in unit tests also aid in identifying and reasoning about potentially problematic pieces of code. We report an analysis conducted with both open source and industry projects relating assert instructions in a unit test with quality measures of the code being tested. We observed that when a production method has a unit test that uses the "assert" instruction in more than one object instance, it often exhibits higher cyclomatic complexity, number of lines of code, or higher number of method invocations. It means that developers should monitor the number of asserts in a unit test as it may indicate problems in the production code.
  • Keywords
    program testing; software quality; assert instruction analysis; code quality; hard-to-test class; industrial project; open source; problematic code identification; production code; quality measure; test feedback; unit test; Complexity theory; Data mining; Industries; Measurement; Production; Software; Testing; code quality; code smells; mining software repositories; unit test feedback; unit testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on
  • Conference_Location
    Genova
  • ISSN
    1534-5351
  • Print_ISBN
    978-1-4673-5833-0
  • Type

    conf

  • DOI
    10.1109/CSMR.2013.21
  • Filename
    6498460