@article{oai:ipsj.ixsq.nii.ac.jp:00214571,
 author = {Patrick, Finnerty and Yoshiki, Kawanishi and Tomio, Kamada and Chikara, Ohta and Patrick, Finnerty and Yoshiki, Kawanishi and Tomio, Kamada and Chikara, Ohta},
 issue = {1},
 journal = {情報処理学会論文誌プログラミング(PRO)},
 month = {Jan},
 note = {Testing is a vital part of software development, with many frameworks available for popular programming languages. JUnit is among the most popular frameworks for Java, with excellent integration into current IDEs and Java build and reporting tools. As part of the ongoing development of a Java distributed collection library, we started using this framework to test our software. While many parts of our program can be tested using a single process, we were unable to test the distributed features of our library that rely on MPI with the standard JUnit framework. This was particularly problematic as these parts of the program are the most error-prone due to the distributed and undeterministic nature of the runtime we use. To remediate this situation we developed MPI-JUnit, a custom “JUnit Runner” that allows us to run JUnit tests in an MPI multi-process environment. In this presentation, we succinctly present the implementation of this custom “Runner” and how it seamlessly integrates with existing Java tools such as the Eclipse IDE, Maven, and GitLab Continuous Integration. We also demonstrate how we use these tools as well as a distributed logging system to address the difficult nature of distributed and multithreaded environments., Testing is a vital part of software development, with many frameworks available for popular programming languages. JUnit is among the most popular frameworks for Java, with excellent integration into current IDEs and Java build and reporting tools. As part of the ongoing development of a Java distributed collection library, we started using this framework to test our software. While many parts of our program can be tested using a single process, we were unable to test the distributed features of our library that rely on MPI with the standard JUnit framework. This was particularly problematic as these parts of the program are the most error-prone due to the distributed and undeterministic nature of the runtime we use. To remediate this situation we developed MPI-JUnit, a custom “JUnit Runner” that allows us to run JUnit tests in an MPI multi-process environment. In this presentation, we succinctly present the implementation of this custom “Runner” and how it seamlessly integrates with existing Java tools such as the Eclipse IDE, Maven, and GitLab Continuous Integration. We also demonstrate how we use these tools as well as a distributed logging system to address the difficult nature of distributed and multithreaded environments.},
 pages = {12--12},
 title = {Experience in Testing MPI+Java Parallel and Distributed Programs with JUnit},
 volume = {15},
 year = {2022}
}