Files
gh-openshift-eng-ai-helpers…/commands/generate-test-plan.md
2025-11-30 08:46:00 +08:00

187 lines
7.2 KiB
Markdown

---
description: Generate test steps for a JIRA issue
argument-hint: [JIRA issue key] [GitHub PR URLs]
---
## Name
jira:generate-test-plan
## Synopsis
/jira:generate-test-plan [JIRA issue key] [GitHub PR URLs]
## Description
The 'jira:generate-test-plan' command takes a JIRA issue key and optionally a list of PR URLs. It fetches the JIRA issue details, retrieves all related PRs (or uses the provided PR list), analyzes the changes, and generates a comprehensive manual testing guide.
**JIRA Issue Test Guide Generator**
## Implementation
- The command uses curl to fetch JIRA data via REST API: https://issues.redhat.com/rest/api/2/issue/{$1}
- Uses WebFetch to extract PR links from JIRA issue if no PRs provided
- Uses `gh pr view` to fetch PR details for each PR
- Analyzes changes across all PRs to understand implementation
- Generates comprehensive manual test scenarios
## Process Flow:
1. **JIRA Analysis**: Fetch and parse JIRA issue details:
- Use curl to fetch JIRA issue data: `curl -s "https://issues.redhat.com/rest/api/2/issue/{$1}"`
- Parse JSON response to extract:
- Issue summary and description
- Context and acceptance criteria
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Extract issue type (Story, Bug, Task, etc.)
2. **PR Discovery**: Get list of PRs to analyze:
- **If no PRs provided in arguments** ($2, $3, etc. are empty):
- Use WebFetch on https://issues.redhat.com/browse/{$1}
- Extract all GitHub PR links from:
- "Issue Links" section
- "Development" section
- PR links in comments
- **If PRs provided in arguments**:
- Use only the PRs provided in $2, $3, $4, etc.
- Ignore any other PRs linked to the JIRA
3. **PR Analysis**: For each PR, fetch and analyze:
- Use `gh pr view {PR_NUMBER} --repo <your repo> --json title,body,commits,files,labels`
- Extract:
- PR title and description
- Changed files and their diffs
- Commit messages
- PR status (merged, open, closed)
- Read changed files to understand implementation details
- Use Grep and Glob tools to:
- Find related test files
- Locate configuration or documentation
- Identify dependencies
4. **Change Analysis**: Understand what was changed across all PRs:
- Identify the overall objective (bug fix, feature, refactor)
- Determine affected components (API, CLI, operator, control-plane, etc.)
- Find platform-specific changes (AWS, Azure, KubeVirt, etc.)
- Map which PR addresses which aspect of the JIRA
- Identify any dependencies between PRs
5. **Test Scenario Generation**: Create comprehensive test plan:
- Map JIRA acceptance criteria to test scenarios
- For bugs: Use reproduction steps as test cases
- Generate test scenarios covering:
- Happy path scenarios (based on acceptance criteria)
- Edge cases and error handling
- Platform-specific variations if applicable
- Regression scenarios
- For multiple PRs:
- Create integrated test scenarios
- Verify PRs work correctly together
- Test each PR's contribution to the overall solution
6. **Test Guide Creation**: Generate detailed manual testing document:
- **Filename**: Always use JIRA key format: `test-{JIRA_KEY}.md`
- Convert JIRA key to lowercase
- Examples: `test-cntrlplane-205.md`, `test-ocpbugs-12345.md`
- **Structure**:
- **JIRA Summary**: Include JIRA key, title, description, acceptance criteria
- **PR Summary**: List all PRs with titles and how they relate to the JIRA
- **Prerequisites**:
- Required infrastructure and tools
- Environment setup requirements
- Access requirements
- **Test Scenarios**:
- Map each test to JIRA acceptance criteria
- Numbered test cases with clear steps
- Expected results with verification commands
- Platform-specific test variations
- **Regression Testing**:
- Related features to verify
- Areas that might be affected
- **Success Criteria**:
- Checklist mapping to JIRA acceptance criteria
- **Troubleshooting**:
- Common issues and debug steps
- **Notes**:
- Known limitations
- Links to JIRA and all PRs
- Critical test cases highlighted
7. **Exclusions**: Apply smart filtering:
- **Skip PRs that don't require testing**:
- PRs that only add documentation (.md files only)
- PRs that only add CI/tooling (.github/, .claude/ directories)
- PRs marked with labels like "skip-testing" or "docs-only"
- **Note skipped PRs** in the test guide with reasoning
- Focus test scenarios on PRs with actual code changes
8. **Output**: Display the testing guide:
- Show the file path where the guide was saved
- Provide a summary of:
- JIRA issue being tested
- Number of PRs included
- Number of test scenarios generated
- Critical test cases to focus on
- Highlight any PRs that were skipped and why
- Ask if the user would like any modifications to the test guide
## Examples:
1. **Generate test steps for JIRA with auto-discovered PRs**:
`/jira:generate-test-plan CNTRLPLANE-205`
2. **Generate test steps for JIRA with specific PRs only**:
`/jira:generate-test-plan CNTRLPLANE-205 https://github.com/openshift/hypershift/pull/6888`
3. **Generate test steps for multiple specific PRs**:
`/jira:generate-test-plan CNTRLPLANE-205 https://github.com/openshift/hypershift/pull/6888 https://github.com/openshift/hypershift/pull/6889`
## Arguments:
- **$1**: JIRA issue key (required) - e.g., CNTRLPLANE-205, OCPBUGS-12345
- **$2, $3, ..., $N**: Optional GitHub PR URLs
- If provided: Only these PRs will be analyzed
- If omitted: All PRs linked to the JIRA will be discovered and analyzed
## Smart Features:
1. **Automatic PR Discovery**:
- Scans JIRA issue for all related PRs
- Identifies PRs in "Issue Links", "Development" section, and comments
2. **Selective PR Testing**:
- Allows manual override to test specific PRs only
- Useful when JIRA has many PRs but only some need testing
3. **Context-Aware Test Generation**:
- Bug fixes: Focus on reproduction steps and verification
- Features: Focus on acceptance criteria and user workflows
- Refactors: Focus on regression and functional equivalence
4. **Multi-PR Integration**:
- Understands how multiple PRs work together
- Creates integration test scenarios
- Identifies dependencies and testing order
5. **Build/Deploy Section Exclusion**:
- Does NOT include build or deployment steps
- Assumes environment is already set up
- Focuses purely on testing procedures
6. **Cleanup Section Exclusion**:
- Does NOT include cleanup steps
- Focuses on test execution and verification
## Example Workflow:
```bash
# Auto-discover all PRs from JIRA
/jira:generate-test-plan CNTRLPLANE-205
# Test only specific PRs
/jira:generate-test-plan CNTRLPLANE-205 https://github.com/openshift/hypershift/pull/6888
# Test multiple specific PRs
/jira:generate-test-plan OCPBUGS-12345 https://github.com/openshift/hypershift/pull/1234 https://github.com/openshift/hypershift/pull/1235
```
The command will provide a comprehensive manual testing guide that QE or developers can use to thoroughly test the JIRA issue implementation.