Step 1: Gathering Inputs
RoostGPT's journey starts with collecting the essential ingredients for test case generation:
Source Code: The platform seamlessly integrates with many code repositories, including GitHub, GitLab, Bitbucket, and Azure DevOps. By accessing the source code, RoostGPT can see the application's architecture, functionality, and intricacies firsthand.
User Stories: Understanding what the software aims to achieve is crucial. Through integrations with platforms like Jira, RoostGPT gleans insights from user stories, ensuring the generated tests align with the software's intended use cases.
Application Logs: Roost.ai taps into application logs from sources like Elasticsearch or Amazon CloudWatch. These logs provide a treasure trove of real-world usage patterns, potential errors, and operational data, all guiding the test generation process.
Step 2: Analysis and Synthesis
With the data in hand, RoostGPT delves into deep analysis:
Data Processing: The gathered data undergoes a thorough preprocessing phase, wherein it's cleaned, structured, and made ready for AI modeling.
Sending to Generative AI Models: Post-analysis, the refined data is relayed to state-of-the-art generative AI models like Google Vertex or Azure OpenAI. These models, trained on vast datasets and designed for tasks like this, create test cases tailored to the provided inputs.
Step 3: Review and Refinement
The Generative AI's output marks a pivotal step, not the end of the journey:
Test Case Review: Once the initial test cases are generated, developers and QA professionals can review them. This human touch ensures that the AI's output aligns with the project's specific nuances and requirements.
Feedback Loop: Any feedback or modifications made during the review process are noted by RoostGPT. This feedback is invaluable, as it's used to refine and enhance subsequent test case generations, making the AI model even more effective over time.
Step 4: Committing to Repositories
Once the test cases are refined and approved:
Automatic Commit: RoostGPT can automatically commit the refined test cases to the respective source or test code repositories. This ensures the test suite remains updated and synchronized with the evolving codebase.
RoostGPT offers a harmonious blend of automation and human touch, streamlining the test case generation process while ensuring quality and relevance.