Search papers, labs, and topics across Lattice.
TestMiner is a novel tool designed to analyze and visualize software testing practices within GitHub repositories, addressing the diverse testing characteristics that vary across programming languages. By enabling users to explore test statistics, locations, metrics, and dependencies, TestMiner enhances understanding of how different projects approach testing. In an educational setting, 50 students utilized TestMiner to critically assess real-world repositories, resulting in positive feedback and deeper insights into testing methodologies.
Students using TestMiner gained critical insights into diverse software testing practices, revealing the complexities of test organization and evolution across languages.
Software systems have unique testing characteristics. Some projects can emphasize unit tests, while others may focus on end-to-end testing. Test organization may vary across ecosystems: in languages like Python and Java, tests are typically placed in dedicated folders, whereas Go and Rust projects commonly co-locate tests with source code. These distinctions make it harder to understand how a project approaches testing. In this paper, we present TestMiner, a tool for exploring software testing in GitHub repositories. TestMiner provides an overview of a project's testing practices, including test statistics, test location, test metrics across releases, and dependencies related to testing. We used TestMiner in an undergraduate Software Testing course, where 50 students explored the testing practices of real-world GitHub repositories. Overall, students expressed positive feedback regarding TestMiner. They were able to critically explore a variety of testing practices, including test organization, test evolution, test fixtures, mocking, and edge-case testing. TestMiner is available at: https://andrehora.github.io/testminer. Screencast: https://youtu.be/w1sBgLTq-7Y.