🧪 Test Strategy — peviitor.ro
Open source job search engine for Romania — the place to find your dream job, just one click away
1. Scope
1.1 Scope of Testing
Apache SOLR
Schema validation, diacritics search, CRUD operations, URL validation pipeline, expiration cleanup
CorePHP API (api.peviitor.ro)
Endpoint validation, query parameters, error handling, SOLR proxy behavior, backward compatibility
v0 / v1UI (search-engine)
Functional testing, UI/Figma compliance, automation (Playwright), regression, backward compatibility
ReactSearch Functionality
Full-text search, filters, relevance scoring, pagination, autocomplete, empty states
edismax1.2 Out of Scope
Individual scraper testing, Validator (admin.peviitor.ro), Mobile application (androidAPP), orase.peviitor.ro, firme.zira.ro and admin.zira.ro
1.3 Quality Benefits Targeted
2. Testing Approach
2.1 Requirements
Testers should consult SAD (sad.peviitor.ro) and IDD (idd.peviitor.ro) as the authoritative sources for functional and non-functional requirements.
2.2 Tools
Frontend Testing
Playwright, Jest, Vitest, Chrome DevTools, Sentry
API Testing
Postman, Bruno, JMeter, PHPUnit, Swagger UI
SOLR Testing
SOLR Admin UI, curl, PHP scripts (peviitor_core)
Performance
k6, JMeter, Lighthouse
Security
OWASP ZAP, GitHub Secret Scanning, CodeQL, Dependabot
Accessibility
axe DevTools, WAVE, Lighthouse
Test Management
GitHub Issues, TestLink, ROADMAP project
Cross-Browser
BrowserStack, Chrome DevTools device emulation
2.3 Testing by Area
Frontend
- Functional: search, filter, pagination, empty/error states
- UI/Figma compliance: layout, colors, responsive
- Automation: Playwright E2E (80% critical path)
- Regression: weekly per release
- Backward compatibility: v01, v02
API
- Endpoint validation (v0, v1)
- Query parameters (valid, invalid, empty, boundary)
- Error handling (400, 404, 500)
- SOLR proxy behavior (timeout, offline)
- Backward compatibility
SOLR Indexing
- Schema compliance (Job Model)
- Diacritics search (București ↔ Bucuresti)
- Full-text search, facet search
- CRUD operations, expiration cleanup
- URL validation pipeline (HEAD daily)
Data Validation
- Job status flow (scraped → tested/verified → published)
- Field validation (required, format, max length)
- Company matching (case insensitive)
- Duplicate detection (unique url)
2.4 Non-Functional Testing
Performance
P95 < 2s search, P95 < 500ms API, 50+ concurrent users
Security
OWASP Top 10, SOLR Basic Auth, CORS, XSS, SQL injection
Accessibility
WCAG 2.2 AA, keyboard nav, screen reader, color contrast 4.5:1
Reliability
99.5% uptime, Sentry + CloudFlare monitoring
Browser Compat.
Latest 2 versions Chrome, Firefox, Edge, Safari
Mobile
All pages functional on viewports ≥ 320px
3. Test Team
Manual QA ×5
Functional testing, regression, exploratory, bug reporting, cross-browser, data validation
Automation QA ×2
Playwright E2E, API test automation, CI/CD integration, regression automation
Performance Tester ×1
k6 load testing, SOLR query monitoring, Lighthouse audits, capacity planning
Security Tester ×1
OWASP ZAP, penetration testing, CodeQL, Dependabot, secret scanning
4. Test Levels
| Level | Scope | Frequency | Tools |
|---|---|---|---|
| Unit | PHP utility functions, Redux slices, selectors | Per PR/commit | PHPUnit, Jest, Vitest |
| Integration | API ↔ SOLR, Frontend ↔ API, Scrapers → Core | Weekly, before release | PHPUnit, Postman |
| System (E2E) | Full search flow, admin validation flow, cross-browser, mobile | Per release | Manual, Playwright |
| Regression | Critical paths: search, filter, pagination, job detail, company | Per release (~weekly) | Manual checklists, Postman, smoke suite |
| Acceptance | Validate against acceptance criteria | Per release | Manual |
5. Test Environments
| Environment | URL | Purpose |
|---|---|---|
| Production | peviitor.ro | Live platform |
| Test | test.peviitor.ro | Integration, UAT, regression |
| Local | http://localhost:3000 | Development, unit testing (Docker) |
SOLR Test: testsolr.peviitor.ro — API Swagger: test.peviitor.ro/swagger-ui
6. Deliverables & Metrics
Artifacts
| Artifact | Frequency |
|---|---|
| Test cases & checklists | Per release |
| Bug reports (GitHub Issues) | Daily |
| Test Summary Report | Per release |
KPIs
| KPI | Target |
|---|---|
| Test Pass Rate | ≥ 95% |
| Automation Coverage | ≥ 80% critical path |
| Defect Escape Rate | ≤ 3 high-severity/quarter |
| Search Response Time | P95 < 2s |
7. Bug Lifecycle
[New] → [Assigned] → [In Progress] → [Fixed] → [Verified] → [Closed]
S1 — Blocker
Critical: no workaround, blocks testing/deployment
Resolve < 4hS2 — High
Major feature broken, workaround exists
Resolve < 4hS3 — Medium
Minor feature broken, cosmetic issues
Next releaseS4 — Trivial
Cosmetic, low priority
Backlog8. References
| Document | URL |
|---|---|
| Software Architecture Design (SAD) | sad.peviitor.ro |
| Infrastructure Design Document (IDD) | idd.peviitor.ro |
| Markdown Version | GitHub (MD) |
| PDF Version | GitHub (PDF) |
| Onboarding Portal | onboarding.peviitor.ro |
| ROADMAP | GitHub Project #78 |
| Discord | discord.gg/KPMkdUfQNu |