Lewati ke konten

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 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.
  • Diukur hanya atas src/ per package (config phpunit.coverage-*.xml.dist).
  • Gate: shield-core ≥ 85%, laravel-shield ≥ 50% (via tools/check-coverage.php).
  • Butuh driver coverage (xdebug di CI).
  • 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/Reputation via --class) + --parallel agar selesai dalam beberapa menit.
  • Report-only (--min=0) sampai baseline MSI ada; naikkan --min=80 setelah baseline terukur.
  • Butuh xdebug (CI).

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.

  • 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.

php tools/scanner-simulator/benchmark.php — latensi jalur normal, target median < 2 ms (dijalankan di CI sebagai gate).

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