Ana içeriğe geç

Kalite Politikası

Puan dekoratif değildir. Aynı girdi her zaman aynı puanı üretir; kurallar ci/scripts/ci-policy.mjs içinde tek kaynak olarak tanımlıdır.

Ağırlıklar (toplam 100)

Kategori Ağırlık Kapsanan fazlar
Backend Tests 18 Backend Unit
Backend Integration 15 Backend Integration
Frontend Tests 18 Frontend Unit/Component/Service
API Contracts 12 Swagger + Node-RED regresyon
Security 15 Secret taraması
Build 12 Backend + Frontend production build
Code Quality 6 3× typecheck + ESLint
Maintainability 4 Audit logs + Reminder Mail + API Middleware
Toplam 100

Kategori puanı nasıl hesaplanır

  • Kategoride çalışmış hiçbir faz yoksa → 0 puan. Kanıt yoksa puan verilmez.
  • Test sayısı raporlayan fazlarda: passed / (passed + failed) oranı ağırlıkla çarpılır.
  • Test sayısı raporlamayan fazlarda (build, typecheck): geçen faz oranı kullanılır.
  • Ortam bloklu (BLOCKED) fazlar paydadan düşülür — ortamın yokluğu ceza değildir, ama ayrı bir uyarı bulgusu üretir.

Puan etiketleri

Aralık Etiket
95–100 Mükemmel
90–94 Çok İyi
80–89 İyi
70–79 İyileştirilmeli
< 70 Yetersiz

PASS / FAIL kapıları

CI yalnızca puana bakarak karar vermez. Aşağıdakilerden biri bile gerçekleşirse sonuç FAILED olur:

  1. critical bulgu sayısı > 0
  2. Backend unit test hatası > 0
  3. Backend integration test hatası > 0
  4. Frontend test hatası > 0
  5. Node-RED regresyon hatası > 0
  6. Swagger / OpenAPI sözleşme hatası > 0
  7. Audit log testi hatası > 0
  8. Reminder mail testi hatası > 0
  9. API Middleware backend testi hatası > 0
  10. TypeScript derleme hatası (backend, frontend veya frontend-test)
  11. Production build hatası (backend veya frontend)
  12. Kaynak kodda sabit gizli bilgi (HARDCODED_SECRET_FOUND)
  13. Zorunlu aşamalardan biri hiç çalışmamışsa (kısmi koşu) — eksik koşu kanıt üretmeden yeşil görünemez

CI'ı durdurmayanlar (yalnızca uyarı)

  • ESLint hataları — biçim/lint ihlalleri sürüm engelleyici sayılmaz, Öncelikli İyileştirme olarak raporlanır.
  • Ortam yokluğu (MongoDB/MinIO/SMTP/Docker erişilemiyor) — Normal İyileştirme.
  • Atlanan (skip) testler — kapsam boşluğu olarak Normal İyileştirme.

Aksiyon seviyeleri

Seviye Anlamı
Acil Aksiyon Sürümü durdurur; hemen düzeltilmeli.
Öncelikli İyileştirme Sürümü durdurmaz; bir sonraki iterasyonda kapatılmalı.
Normal İyileştirme Planlı iyileştirme; kapsam/olgunluk konusu.

Değiştirilmesi yasak olanlar

Yeşil sonuç üretmek için hiçbir koşulda yapılmaz:

  • Başarısız testi silmek
  • Assertion gevşetmek
  • test.skip eklemek
  • Gerçek hatayı "timeout" diye geçiştirmek
  • Test geçsin diye production kodunu değiştirmek
  • Mock'u gerçek davranıştan farklı hâle getirmek

Bir test gerçekten kırmızıysa kırmızı raporlanır.