VRTestSniffer is a static analysis tool specifically designed to detect test smells (anti-patterns in test code) within Virtual Reality (VR) software projects, particularly those developed using the Unity engine.
By automatically identifying common weaknesses and maintainability issues in VR test suites, VRTestSniffer helps developers improve the quality, reliability, and long-term maintainability of their VR testing efforts.
- VR-Specific Smells: Focuses on a catalog of test smells that are uniquely challenging or prevalent in VR/Unity testing environments.
- Static Analysis: Analyzes source code without requiring test execution, making it fast and efficient.
- Unity Compatibility: Built to seamlessly process and analyze Unity-based projects.
- Quality Improvement: Pinpoints areas for refactoring, leading to more robust, understandable, and less flaky test suites.
As a static analysis tool, the installation typically involves building the project from source.
- .NET SDK (Required for building and running C# projects)
- Git for cloning the repository.
- A Unity Project containing the test code you wish to analyze.
- Clone the Repository:
git clone https://github.com/smilevo/VRTestSniffer.git cd VRTestSniffer - Build the Project:
(The specific build command may vary, but typically uses the .NET CLI for C# projects)
dotnet build VRTestSniffer.sln
Once built, you can run VRTestSniffer from your command line, pointing it to the directory of your Unity project's test files.
# Run the tool, specifying the path to your Unity project's test directory
./VRTestSniffer --project-path /path/to/your/Unity/Project/Assets/Tests
# Example: Run analysis and output results to a JSON file
./VRTestSniffer -p C:\Users\user\MyVRGame\Assets\Tests -o vr_smell_report.json| Argument | Description | Default |
|---|---|---|
-p, --project-path |
Required. Path to the root or test directory of the Unity project. | |
-o, --output |
File path for the generated smell report (e.g., JSON, XML). | report.json |
-v, --verbose |
Enable verbose output for detailed analysis logs. | false |
We welcome contributions! If you have suggestions for new smell detectors, bug reports, or feature enhancements, please follow these steps:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/NewSmellDetector). - Commit your changes (
git commit -m 'feat: Added detection for FlakyVRTest smell'). - Push to the branch (
git push origin feature/NewSmellDetector). - Open a Pull Request detailing your changes.
If you use VRTestSniffer in an academic context or research, please cite the associated research paper:
@inproceedings{Gurramkonda2025VRTestSniffer,
title={{VRTestSniffer}: Test Smell Detector for Virtual Reality (VR) Software Projects},
author={Gurramkonda, Faraz and others},
booktitle={Proceedings of the 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)},
year={2025}
}
- Faraz Gurramkonda - Initial Author - GitHub: faraz07-AI
This project is licensed under the MIT License - see the LICENSE file for details.