AI Skill Report Card
Generated Skill
PlannerVersi E2E QA Testing
Quick Start
YAMLTest Configuration: - Page: [Required - name of PlannerVersi page to test] - Scope: FRONTEND | BACKEND | BOTH (default: BOTH) - Credentials: email/password (default: teste@vp6.com.br/teste2026) - Organization: [Optional - for multi-tenant portals] - Features: [Optional - defaults to full CRUD + version/module switching]
Example Usage: "Test the Associativo page frontend only with user admin@test.com"
Recommendation▾
Consider adding more specific examples
Workflow
Phase 1: Configuration & Parsing
- Parse page name (required)
- Parse scope (FRONTEND/BACKEND/BOTH)
- Parse credentials (default: teste@vp6.com.br/teste2026)
- Parse organization (for multi-tenant)
- Parse features to test
- Display confirmation table
Phase 2: Environment Setup
- Authenticate (UI login for FRONTEND/BOTH, API for BACKEND)
- Map route in
config/routes.ts - Identify component file
- Extract all endpoints and Redux dispatches
- Navigate to page (FRONTEND/BOTH only)
Phase 3: Context Selection
- Select enterprise (when applicable)
- Select version (when applicable)
- Select module (when applicable)
- Validate Redux state updates
Phase 4: Initial Load Validation
- Verify all GET requests return 200
- Validate Redux state population
- Confirm DOM rendering matches data
- Check table row count vs API response
- Identify any blocking issues
Phase 5: Functional Testing
- Create: Test add functionality with drawer/modal
- Read: Validate data display and filtering
- Update: Test edit with persistence validation
- Delete: Test removal with Popconfirm
- Main Form Save: Test primary form submission
Phase 6: Data Persistence
- Force fresh refetch (version switch or navigation)
- Verify all changes persist after refetch
- Test version/module switching without stale data
Phase 7: Reporting
- Generate structured report
- Create bug corrections file (if issues found)
- Capture evidence screenshots
- Update learning artifacts
Recommendation▾
Include edge cases
Examples
Example 1: Frontend Testing
Input: "Test Taxa de Administração page frontend only"
Output:
- UI login and navigation
- Component mapping and endpoint extraction
- Form validation and Redux state checking
- CRUD operations through UI
- Persistence verification via refetch
Example 2: Backend API Testing
Input: "Test Curva de Vendas backend only with credentials admin@test.com/password"
Output:
- Direct API authentication
- HTTP CRUD operations validation
- Response schema verification
- Error handling (400/401/403/404)
- Data persistence confirmation
Example 3: Full E2E Testing
Input: "Test Associativo page with user test@vp6.com.br, validate adding and editing"
Output:
- Complete UI + API validation
- Frontend/backend contract verification
- Cross-validation of UI state vs API responses
- Full persistence chain validation
Best Practices
Performance Helpers
JavaScript// React input helper for masked fields window.__setMaskedCurrency = (selector, valueFloat) => { const el = document.querySelector(selector); const setter = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set; setter.call(el, Math.round(Number(valueFloat) * 100).toString()); el.dispatchEvent(new Event('input', { bubbles: true })); el.dispatchEvent(new Event('change', { bubbles: true })); }; // Quick table reading const readTable = () => Array.from(document.querySelectorAll('.ant-table-row')).map(row => ({ key: row.getAttribute('data-row-key'), cells: Array.from(row.querySelectorAll('td')).map(cell => cell.innerText.trim()) }));
Validation Rules
- Never approve tests without fresh refetch validation
- Cross-validate Network + Redux + DOM state
- Test data persistence, not just UI feedback
- Always use Popconfirm for deletions
- Validate version/module switching without stale data
Bug Classification
- HIGH: Data loss, save failures, 500 errors, blocking issues
- MEDIUM: Stale Redux, visual inconsistencies, incomplete updates
- LOW: Layout issues, minor UX problems, cosmetic fixes
Common Pitfalls
- Don't trust success messages alone - always verify persistence
- Don't skip refetch validation - UI updates don't guarantee backend persistence
- Don't use fixed waits - wait for specific elements/requests instead
- Don't test on production data - create and clean up test records
- Don't ignore Redux state - UI might show correct data while state is stale
- Don't assume 200 status means success - verify actual data changes
Anti-Patterns
JavaScript// BAD: Only checking UI feedback if (successMessage.isVisible) return "PASSED"; // GOOD: Verify persistence await saveRecord(); await switchVersion(); // Force refetch const persistedData = await getCurrentData(); assert(persistedData.field === expectedValue);
The agent operates as a senior QA specialist, delivering objective, evidence-based testing reports with technical correction instructions for any identified issues.