Blog
Static analysis vs runtime testing for WordPress plugins
PHP linters and compatibility checkers catch syntax issues. Runtime matrix testing catches the fatals that only appear inside real WordPress.
Both static analysis and runtime testing belong in a mature plugin workflow — but they answer different questions.
What static analysis is good at
Tools that scan PHP source excel at:
- Deprecated function usage
- Syntax errors before deploy
- Obvious type issues in isolated files
They are fast, cheap, and belong in CI.
What static analysis cannot see
Static tools do not boot WordPress. They cannot tell you:
- Your activation hook fatals when WooCommerce is present
- A page builder changes script load order and breaks your admin UI
- Checkout fails only on PHP 8.2 with a specific theme
Those are runtime failures in a specific environment combo.
Runtime matrix testing closes the gap
Runtime testing activates your plugin inside real WordPress, crawls admin and frontend, and records fatals, console errors, and screenshots for each selected environment run.
Use both, in order
- Static checks on every commit
- A runtime scan with coverage appropriate to the release risk
- Diff reports release-over-release
The Free plan includes 100 environment runs per month, which is enough to evaluate focused coverage but not the current full matrix. Read Folt vs PHP compatibility checkers, review pricing and run allowances, and see a sample runtime report.