Initial commit
This commit is contained in:
79
commands/expand-test-case.md
Normal file
79
commands/expand-test-case.md
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
description: Expand basic test ideas or existing oc commands into comprehensive test scenarios with edge cases in oc CLI or Ginkgo format
|
||||
argument-hint: [test-idea-or-file-or-commands] [format]
|
||||
---
|
||||
|
||||
## Name
|
||||
openshift:expand-test-case
|
||||
|
||||
## Synopsis
|
||||
```
|
||||
/openshift:expand-test-case [test-idea-or-file-or-commands] [format]
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
The `expand-test-case` command transforms basic test ideas or existing oc commands into comprehensive test scenarios. It accepts three types of input:
|
||||
|
||||
1. **Test idea**: Simple description of what to test (e.g., "verify pod deployment")
|
||||
2. **File path**: Path to existing test file to expand (e.g., `/path/to/test.sh` or `/path/to/test.go`)
|
||||
3. **oc commands**: Direct oc CLI commands to analyze and expand (e.g., `oc create pod nginx`)
|
||||
|
||||
The command expands the input to cover positive flows, negative scenarios, edge cases, and boundary conditions, helping QE engineers ensure thorough test coverage.
|
||||
|
||||
Supports two output formats:
|
||||
- **oc CLI**: Shell scripts with oc commands for manual or automated execution
|
||||
- **Ginkgo**: Go test code using Ginkgo/Gomega framework for E2E tests
|
||||
|
||||
## Implementation
|
||||
|
||||
The command analyzes the input and generates comprehensive scenarios:
|
||||
|
||||
1. **Parse Input**: Determine if input is a test idea, file path, or oc commands
|
||||
- If file path: Read and analyze existing test code
|
||||
- If oc commands: Parse commands to understand what's being tested
|
||||
- If test idea: Understand the core feature or behavior
|
||||
2. **Identify Test Dimensions**: Determine coverage aspects (functionality, security, performance, edge cases)
|
||||
3. **Generate Positive Tests**: Happy path scenarios where everything works
|
||||
4. **Generate Negative Tests**: Error handling, invalid inputs, permission issues
|
||||
5. **Add Edge Cases**: Boundary values, race conditions, resource limits
|
||||
6. **Define Validation**: Clear success criteria and assertions
|
||||
7. **Format Output**: Generate in requested format (oc CLI or Ginkgo) - **MUST follow the standards in "Test Coverage Guidelines" section below**
|
||||
|
||||
**CRITICAL**: All generated test scenarios MUST adhere to the coverage dimensions, best practices, and standards defined in the **"Test Coverage Guidelines"** section below. Use the referenced examples and patterns from OpenShift origin repository.
|
||||
|
||||
## Test Coverage Guidelines
|
||||
|
||||
The command generates comprehensive test scenarios following industry best practices:
|
||||
|
||||
**Test Coverage Dimensions:**
|
||||
- **Positive Tests**: Valid inputs and expected workflows
|
||||
- **Negative Tests**: Invalid inputs, permission errors, missing dependencies
|
||||
- **Edge Cases**: Boundary values (0, max values, empty inputs, special characters)
|
||||
- **Security Tests**: RBAC validation, security context enforcement, privilege escalation
|
||||
- **Resource Tests**: Low memory, disk pressure, network issues, rate limiting
|
||||
- **Concurrency**: Multiple operations happening simultaneously
|
||||
- **Failure Recovery**: Restart behavior, cleanup on failure
|
||||
|
||||
**References:**
|
||||
- OpenShift Test Examples: https://github.com/openshift/origin/tree/master/test/extended
|
||||
- Ginkgo BDD Framework: https://onsi.github.io/ginkgo/
|
||||
- Test Pattern Catalog: https://github.com/openshift/origin/blob/master/test/extended/README.md
|
||||
- oc CLI Reference: https://docs.openshift.com/container-platform/latest/cli_reference/openshift_cli/developer-cli-commands.html
|
||||
|
||||
**Best Practices Applied:**
|
||||
- Use stable, descriptive test names (no dynamic IDs or timestamps)
|
||||
- Ensure proper resource cleanup (prevent resource leaks)
|
||||
- Include meaningful assertions with clear failure messages
|
||||
- Isolate tests (each test creates its own resources)
|
||||
- Add appropriate timeouts to prevent hanging tests
|
||||
- Follow Ginkgo patterns: Describe/Context/It hierarchy
|
||||
- Use framework helpers: e2epod, e2enode, e2enamespace
|
||||
|
||||
## Arguments
|
||||
|
||||
- **$1** (test-idea-or-file-or-commands): One of:
|
||||
- **Test idea**: Description of what to test
|
||||
- **File path**: Path to existing test file
|
||||
- **oc commands**: Set of oc CLI commands to analyze and expand
|
||||
- **$2** (format): Output format - "oc CLI" or "Ginkgo" (optional, will prompt if not provided)
|
||||
Reference in New Issue
Block a user