Testing & CI
Kedua repo (shield-core, laravel-shield) memiliki CI sendiri (GitHub Actions). Semua hijau di matrix
PHP 8.2 / 8.3 / 8.4.
Perintah dasar (di tiap repo)
Section titled “Perintah dasar (di tiap repo)”| Perintah | Fungsi |
|---|---|
composer install |
Install dependensi. |
composer test |
Pest: unit core + integrasi adapter (Testbench). |
composer analyse |
PHPStan level 8 (+ Larastan untuk adapter). |
composer format-test |
Pint. |
composer validate --strict |
Validasi composer.json. |
Coverage
Section titled “Coverage”- Diukur hanya atas
src/per package (configphpunit.coverage-*.xml.dist). - Gate: shield-core ≥ 85%, laravel-shield ≥ 50% (via
tools/check-coverage.php). - Butuh driver coverage (xdebug di CI).
Mutation testing
Section titled “Mutation testing”- Memakai mutation testing bawaan Pest (
pest --mutate,pestphp/pest-plugin-mutate) — bukan Infection (Infection tidak mendukung Pest secara native). - Di-scope ke logika keamanan core (
Decision/Scoring/Reputationvia--class) +--parallelagar selesai dalam beberapa menit. - Report-only (
--min=0) sampai baseline MSI ada; naikkan--min=80setelah baseline terukur. - Butuh xdebug (CI).
E2E (laravel-shield)
Section titled “E2E (laravel-shield)”tools/e2e-smoke.sh menjalankan examples/laravel-demo dengan php -S + curl: normal, blok critical,
SQLi body, verified Googlebot, ban → challenge → verify → kembali ke /home, trusted cookie tidak
menembus critical.
Replay & corpus
Section titled “Replay & corpus”fixtures/waf-corpus.json,bot-corpus.json,scanner-corpus.json,normal-traffic.json,seo-corpus.json— corpus regresi anonim dari log WAF/bot nyata.php tools/replay.php --corpus=fixtures/waf-corpus.json --pack-wordpress→ detection rate + false positive.php tools/scanner-simulator/simulate.php→ regresi traffic normal vs skenario scanner.
Benchmark performa
Section titled “Benchmark performa”php tools/scanner-simulator/benchmark.php — latensi jalur normal, target median < 2 ms (dijalankan di CI
sebagai gate).
Secret scan
Section titled “Secret scan”Job secrets memakai Gitleaks CLI (open-source, gratis) dengan ruleset kustom (.gitleaks.toml)
ber-confidence tinggi — ruleset default memicu banyak false positive pada data uji package keamanan. Advisory
(tidak memblokir pipeline).
Powered by PT Ganadev Multi Solusi