-
Notifications
You must be signed in to change notification settings - Fork 1
Technical Documentation
- 1. Introduction
- 2. Project Mission
- 3. Project Vision
- 4. Software Architecture
- 5. Technology Stack
- 6. TeamMember
- 7. Significant milestones
- 8. Conclusion
Our mission is to enhance software mutation testing within the IntelliJ IDE by implementing a specifically designed plugin that integrates with PiTest. The approach involves several key steps:
Integration Development: We will develop an plugin that integrates with IntelliJ IDE, ensuring that PiTest's functionalities are easily accessible within the developer's primary workspace.
Dynamic Test Configuration: A core feature of our plugin will be to enable dynamic configuration of test scopes. This will allow developers to selectively fine-tune their testing efforts, focusing on specific classes or modules.
Result Visualization: The plugin will provide visualizations of Mutation Testing results. This will make it more comfortable for developers to interpret PiTest outputs.
User-Centric Design: The interface and functionality of the plugin will be designed with a strong focus on user experience, ensuring that it is both powerful and easy to use.
By following these steps, we aim to not only enhance PiTest’s functionality within IntelliJ IDE but also empower developers with more efficient, precise, and user-friendly software testing tools, ultimately leading to higher quality software development.
Software quality hinges on robust testing practices. While code coverage remains a prevalent metric, evaluating the true effectiveness of tests in ensuring expected behavior often gets overlooked. This is where Mutation Testing steps in—a method that generates code variations to evaluate the ability of tests to detect changes.
PiTest, a leading tool in Mutation Testing, falls short due to its limited integration capabilities. It lacks the functionality to display test run results and configure test scope dynamically, creating a gap in assessing test effectiveness within the environment best known to the developer.
Our product vision is to introduce an IntelliJ IDE plugin that not only presents PiTest results but also empowers users to seamlessly fine-tune test scopes, even down to specific classes. By integrating these features, we aim to bridge the existing gap, providing enhanced visibility and control within the familiar IntelliJ environment, thereby ensuring higher-quality test outcomes.
Programming Language: Kotlin. Java can be used if strictly necessary for certain tasks and no statisfying kotlin solution is avaliable.
Intellij IDE: The user will interface with the plugin through the Intellij IDEA IDE or Android Studio. Intellij Plugin SDK: main framework for development of the actual plugin PITest: The targeted tool is the PIT Mutation Testing system. Gradle: as the build system Pitest-Gradle/Maven-Plugin: Setup by the user to integrate running their mutation tests into the build environment Git/Github: for source code management & collaboration JUnit: as a test framework Frontend: The UI for the plugin will be developed using Swing or JavaFX Plugin dependencies: The developed plugin will have the following dependencies: GradleConnector: Allows the plugin to run a gradle task, which in turn will execute the pitest mutation testing. Alternatively Maven Invoker API if maven is used as a build system.