3.0 KiB
3.0 KiB
XShop – Testing
1. Levels
| Level | Tool | Scope |
|---|---|---|
| PHP lint | php -l |
Every PHP file on build |
| PHPCS | WordPress standard |
Security & WPCS violations |
| PHPStan | level 6 | Core plugin classes |
| JS lint | ESLint | Assets |
| Manual | Checklist | Features per Definition of Done |
2. Manual Matrix (must pass before 1.0.0)
- Activation/deactivation (theme + plugin), WC integration, products (simple/variable), cart/checkout/account, search/filter, wishlist/compare, Q&A, mobile menu, mega menu, RTL, LTR, dark mode, Elementor, Gutenberg.
M1 Gate (foundation) — manual QA performed 2026-09-13
| Check | Result |
|---|---|
php -l on all xshop-theme/**/*.php (PHP 8.2.12) |
✅ Pass (24 files incl. inc/setup/body-classes.php:1) |
node --check assets/js/theme.js |
✅ Pass |
No TODO/FIXME/console.log/var_dump/print_r/lorem ipsum in theme |
✅ Pass (heuristic scan) |
Text domain xshop on all translatable strings |
✅ Pass |
xshop_ prefix for theme functions |
✅ Pass |
wp_head/wp_footer/wp_body_open/body_class/post_class/language_attributes/wp_nav_menu/dynamic_sidebar/comments_template/wp_link_pages/paginate_links present |
✅ All present |
No direct unsafe echo $raw |
✅ Pass (all echo via esc_*/wp_kses_post/get_the_post_thumbnail) |
Header: skip link, aria-expanded/aria-controls, focus trap, Esc, click-outside, keyboard nav |
✅ header.php:1 + site-header.php:1 + theme.js:1 |
| Footer: widgets, nav, copyright, accessible | ✅ site-footer.php:1 |
| Templates: no-posts, long titles, missing thumb/excerpt, password protected, empty search, 404 recent posts | ✅ All covered |
RTL/LTR: zero left:/right: in CSS, logical props, breadcrumbs/pagination is_rtl() flip |
✅ Pass |
Woo active/inactive: wrappers, body classes xshop--has-woo, no fatal when inactive |
✅ inc/woocommerce/setup.php:1 + inc/helpers/template.php:1 guards |
| Dark mode tokens | ✅ tokens.css:1 full coverage + header.php:1 data-theme + body-classes.php:1 |
| Responsive: 360/768/1024/1280 token breakpoints | ✅ layout.css:1 + components.css:1 |
| No PHP warnings/notices (static) | ✅ Pass — no undefined vars, all apply_filters guarded |
3. Browser
Chromium, Firefox, Edge, Safari (where available). Responsive: 360/768/1024/1280.
4. Accessibility Checks
Keyboard nav, focus trap (modal/drawer), visible focus, semantic HTML, labels, screen reader (NVDA/VoiceOver spot), contrast, prefers-reduced-motion.
5. Performance Smoke
Lighthouse home/shop/product ≥ 85 perf (desktop). Query count via Query Monitor.
6. How to Run (local)
C:\xampp\php\php.exe -l xshop-theme\functions.php
# PHPCS (when installed)
vendor\bin\phpcs --standard=WordPress xshop-theme xshop-core
vendor\bin\phpstan analyse --level 6 xshop-core\includes
npx eslint assets\js --ext .js
7. Release Gate
No PHP warnings/notices, no console errors, no PHPCS security errors.