Performance Analysis for JUnit Test Cases
This eBook is Chapter 5 from ‘Software Testing in the Cloud: Perspectives on an Emerging Discipline‘ by Scott Tilley and Tahida Parveen. This chapter, coauthored by Eric Bower, discusses a software testing framework called HadoopUnit that integrates Hadoop and JUnit to facilitate the distribution of unit tests to the nodes of a cluster for concurrent execution. It was conceived of the need to reduce test execution time for large collections of tests and has been shown to successfully accomplish this in a medium-size cluster of 150 nodes. This work considers its effectiveness on a small cluster (4 nodes) to determine any inefficiency present in the system and attempts to overcome them with the purpose of increasing performance. It was found that naïve use of HadoopUnit on a small cluster was slower than the best times achieved on a single machine, but by properly configuring the number of tests executed by each Hadoop Map task, a 75% reduction in execution time was achieved. These results show that, on a small scale, the original implementation of HadoopUnit may not be the best solution, but with the addition of a new feature, a significant increase in performance can be achieved.