• DocumentCode
    155182
  • Title

    An Empirical Study on the Usage of Mocking Frameworks in Software Testing

  • Author

    Mostafa, Shaikh ; Xiaoyin Wang

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Texas at San Antonio, San Antonio, TX, USA
  • fYear
    2014
  • fDate
    2-3 Oct. 2014
  • Firstpage
    127
  • Lastpage
    132
  • Abstract
    In software testing, especially unit testing, it is very common that software testers need to test a class or a component without integration with some of its dependencies. Typical reasons for excluding dependencies in testing include the unavailability of some dependency due to concurrent software development and callbacks in frameworks, high cost of invoking some dependencies (e.g., slow network or database operations, commercial third-party web services), and the potential interference of bugs in the dependencies. In practice, mock objects have been used in software testing to simulate such missing dependencies, and a number of popular mocking frameworks (e.g., Mockito, EasyMock) have been developed for software testers to generate mock objects more conveniently. However, despite the wide usage of mocking frameworks in software practice, there have been very few academic studies to observe and understand the usage status of mocking frameworks, and the major issues software testers are facing when using such mocking frameworks. In this paper, we report on an empirical study on the usage of four most popular mock frameworks (Mockito, EasyMock, JMock, and JMockit) in 5,000 open source software projects from GitHub. The results of our study show that the above mentioned mocking frameworks are used in a large portion (about 23%) of software projects that have test code. We also find that software testers typically create mocks for only part of the software dependencies, and there are more mocking of source code classes than library classes.
  • Keywords
    concurrency control; program debugging; program testing; public domain software; software engineering; EasyMock; GitHub; JMockit; Mockito; bug interference; concurrent software development; missing dependency simulation; mocking frameworks; open source software projects; software dependencies; software testing; source code classes; unit testing; Electronic mail; Java; Libraries; Open source software; Servers; Testing; Mocking Frameworks; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Quality Software (QSIC), 2014 14th International Conference on
  • Conference_Location
    Dallas, TX
  • ISSN
    1550-6002
  • Print_ISBN
    978-1-4799-7197-8
  • Type

    conf

  • DOI
    10.1109/QSIC.2014.19
  • Filename
    6958396