• DocumentCode
    11932
  • Title

    Vroom: Faster Build Processes for Java

  • Author

    Bell, Jonathan ; Melski, Eric ; Dattatreya, Mohan ; Kaiser, Gail E.

  • Volume
    32
  • Issue
    2
  • fYear
    2015
  • fDate
    Mar.-Apr. 2015
  • Firstpage
    97
  • Lastpage
    104
  • Abstract
    Build processes are too slow. Because most of the build time for Java projects is spent executing tests, researchers have focused on speeding up testing. They\´ve integrated two complementary approaches into a system that seamlessly supports Ant and Maven JUnit build processes. The first approach, unit test virtualization, isolates in-memory dependencies among test cases, which otherwise are isolated inefficiently by restarting the Java Virtual Machine (JVM) before every test. The system supports just-in-time reinitialization of only the small portion of memory needed by the next test, reusing a single JVM. The implementation of this approach is called VMVM (Virtual Machine in the Virtual Machine, pronounced "vroom vroom"). In addition, simple setup and tear-down resource management methods designed for sequential execution lead to conflicts when the resources are accessed concurrently. So, the second approach, virtualized unit test virtualization, isolates external dependencies such as files and network ports while long-running tests execute in parallel. For this, the system distributes testing jobs in round-robin manner among OS-level virtual machines. The result is, on average, a 51 percent speedup of application build times. The implementation of this approach is called VMVMVM (Virtual Machine in a Virtual Machine on a Virtual Machine "vroom vroom vroom").
  • Keywords
    Java; operating systems (computers); resource allocation; virtual machines; virtualisation; Ant and Maven JUnit build processes; JVM; Java projects; Java virtual machine; OS-level virtual machines; VMVM; in-memory dependencies; just-in-time reinitialization; long-running tests; round-robin manner; tear-down resource management methods; unit test virtualization; virtual machine in a virtual machine on a virtual machine; virtualized unit test virtualization; vroom vroom vroom; Continuous production; Java; Open source software; Ports (Computers); Software development; Software engineering; Software testing; Virtual machining; software engineering; test execution; testing tools;
  • fLanguage
    English
  • Journal_Title
    Software, IEEE
  • Publisher
    ieee
  • ISSN
    0740-7459
  • Type

    jour

  • DOI
    10.1109/MS.2015.32
  • Filename
    7006344