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 |
| 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:
criticalbulgu sayısı > 0- Backend unit test hatası > 0
- Backend integration test hatası > 0
- Frontend test hatası > 0
- Node-RED regresyon hatası > 0
- Swagger / OpenAPI sözleşme hatası > 0
- Audit log testi hatası > 0
- Reminder mail testi hatası > 0
- TypeScript derleme hatası (backend, frontend veya frontend-test)
- Production build hatası (backend veya frontend)
- Kaynak kodda sabit gizli bilgi (
HARDCODED_SECRET_FOUND) - 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ştirmeolarak 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.skipeklemek- 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.