Files
ytp-glm/docs/TEST_GUIDE.md
2025-11-07 01:08:52 +03:00

9.4 KiB
Raw Blame History

Yakıt Takip Sistemi - Test Rehberi

🎯 Sistem Genel Bakış

KNOWLEDGE_BASE.md'deki iş akışlarına göre implement edilen tam fonksiyonel yakıt takip sistemi.

🚀 Sunucu Durumu

  • Frontend: http://localhost:5005/ (SvelteKit)
  • Backend: http://localhost:3005 (Express/Socket.IO)
  • Status: Çalışıyor

🔐 Test Kullanıcıları

Kullanıcı Adı Şifre Rol Yetkiler Yönlendirme
admin admin123 Sistem Yöneticisi Araç, birlik, personel yönetimi /dashboard
fuel fuel123 Yakıt Sorumlusu Fiş oluşturma, takip /fuel-slips
goods goods123 Mal Sorumlusu Fiş onay/reddetme /goods-manager

📋 Test Senaryoları

1. Admin Panel Testleri

1.1 Giriş Testi

✓ Adım 1: http://localhost:5173/ adresine git
✓ Adım 2: "admin" / "admin123" ile giriş yap
✓ Beklenen: /dashboard sayfasına yönlendirme
✓ Kontrol: Sol menüde "Yönetim Paneli" başlığı

1.2 Araç Yönetimi Testi

✓ Adım 1: Sol menüden "Araç Yönetimi" seç
✓ Adım 2: Boş state kontrolü ("Henüz Araç Yok" mesajı)
✓ Adım 3: "Yeni Araç Ekle" butonuna tıkla
✓ Adım 4: Form doldur:
   - Marka: Toyota
   - Model: Corolla
   - Yıl: 2022
   - Plaka: 34TEST123
✓ Adım 5: "Kaydet" butonuna tıkla
✓ Beklenen: Araç kartları görüntülenmeli
✓ Adım 6: Araç kartındaki "Düzenle" butonunu test et
✓ Adım 7: Araç bilgilerini güncelle
✓ Adım 8: "Sil" butonunu test et

1.3 Birlik Yönetimi Testi

✓ Adım 1: Sol menüden "Birlik Yönetimi" seç
✓ Adım 2: "Yeni Birlik Ekle" butonuna tıkla
✓ Adım 3: Form doldur:
   - Birlik Adı: 1. Test Birliği
   - Adres: Test Adresi
   - STK: STK-001
   - BTK: BTK-001
   - Sorumlu Bilgileri:
     * Adı Soyadı: Test Personel
     * Rütbesi: Yüzbaşı
     * Sicil: TEST001
     * TC Kimlik: 12345678901
     * İrtibat: 05321234567
✓ Adım 4: "Kaydet" butonuna tıkla
✓ Beklenen: Birlik kartı görüntülenmeli
✓ Validasyon Testi: TC Kimlik 11 hane kontrolü

1.4 Personel Yönetimi Testi

✓ Adım 1: Sol menüden "Yakıt Personeli" seç
✓ Adım 2: "Yeni Personel Ekle" butonuna tıkla
✓ Adım 3: Form doldur:
   - Adı Soyadı: Test Personel
   - Rütbesi: Üsteğmen
   - Sicil: TEST002
   - TC Kimlik: 98765432109
   - İrtibat: 05339876543
✓ Adım 4: "Kaydet" butonuna tıkla
✓ Adım 5: Personel durumunu test et (Aktif/Pasif)
✓ Adım 6: "Pasif Yap" butonunu test et

1.5 Mal Sorumluları Yönetimi Testi

✓ Adım 1: Sol menüden "Mal Sorumluları" seç
✓ Adım 2: Boş state kontrolü ("Henüz Mal Sorumlusu Yok" mesajı)
✓ Adım 3: "Yeni Mal Sorumlusu Ekle" butonuna tıkla
✓ Adım 4: Modal form doldur:
   - Adı Soyadı: Test Mal Sorumlusu
   - Rütbesi: Binbaşı
   - Sicil Numarası: GM001
   - TC Kimlik: 12345678901
   - İrtibat: 05321234567
   - E-posta: test.mal@mil.tr
✓ Adım 5: "Kaydet" butonuna tıkla
✓ Beklenen: Mal sorumlusu kartı görüntülenmeli
✓ Adım 6: Mal sorumlusu kartındaki "Düzenle" butonunu test et
✓ Adım 7: Mal sorumlusu bilgilerini güncelle
✓ Adım 8: "Pasif Yap/Aktif Yap" durum değiştirme testi
✓ Adım 9: "Sil" butonunu test et
✓ Validasyon Testleri:
   - TC Kimlik 11 hane kontrolü
   - E-posta format kontrolü
   - Sicil numarası tekrar kontrolü

2. Yakıt Sorumlusu Testleri

2.1 Giriş ve Fiş Oluşturma

✓ Adım 1: "fuel" / "fuel123" ile giriş yap
✓ Beklenen: /fuel-slips sayfasına yönlendirme
✓ Adım 2: Boş state kontrolü ("Henüz Fiş Yok" mesajı)
✓ Adım 3: "Yeni Fiş Oluştur" butonuna tıkla
✓ Adım 4: Modal form doldur:
   - Tarih: Bugünün tarihi
   - Kuvvet Komutanı: Test Komutan
   - Birlik: 1. Motorlu Piyade Tugayı (Admin ekledi)
   - Araç: Toyota Corolla (Admin ekledi)
   - Yakıt Türü: Benzin
   - Litre: 45
   - KM: 125000
   - Personel: Test Personel (Admin ekledi)
   - Notlar: Test yakıt ikmali
✓ Adım 5: "Fiş Oluştur" butonuna tıkla
✓ Beklenen: Başarı mesajı ve fiş kartı

2.2 Fiş Durumları Testi

✓ Adım 1: Oluşturulan fişin durumunu kontrol et ("Beklemede")
✓ Adım 2: PDF İndir butonunu test et (placeholder)
✓ Adım 3: Filtreleme testi
✓ Adım 4: Tarih sıralaması testi

3. Mal Sorumlusu Testleri

3.1 Giriş ve Atanan Fişler

✓ Adım 1: "goods" / "goods123" ile giriş yap
✓ Beklenen: /goods-manager sayfasına yönlendirme
✓ Adım 2: Sol menüde "Onay Paneli" başlığı
✓ Adım 3: Yakıt sorumlusunun oluşturduğu fişi bekle
✓ Beklenen: Atanan fişin listelenmesi
✓ Adım 4: Öncelik sistemi testi:
   - 50L altı: Düşük öncelik (yeşil)
   - 50-100L: Orta öncelik (sarı)
   - 100L üstü: Yüksek öncelik (kırmızı)

3.2 Onay ve Reddetme Testleri

✓ Onay Testi:
   ✓ Adım 1: "Onayla" butonuna tıkla
   ✓ Adım 2: Onay modalini kontrol et
   ✓ Adım 3: Onay notu ekle (opsiyonel)
   ✓ Adım 4: "Onayla" butonuna tıkla
   ✓ Beklenen: "Onaylı" durumuna geçiş

✓ Reddetme Testi:
   ✓ Adım 1: "Reddet" butonuna tıkla
   ✓ Adım 2: Reddetme modalini kontrol et
   ✓ Adım 3: Red gerekçesi gir (zorunlu)
   ✓ Adım 4: "Reddet" butonuna tıkla
   ✓ Beklenen: "Reddedildi" durumuna geçiş ve gerekçe görünümü

4. Cross-Role Testleri

4.1 Rol Değiştirme Testi

✓ Adım 1: Admin olarak çıkış yap
✓ Adım 2: Fuel Manager olarak giriş yap
✓ Adım 3: Fiş oluştur
✓ Adım 4: Çıkış yap
✓ Adım 5: Goods Manager olarak giriş yap
✓ Adım 6: Oluşturulan fişi onayla
✓ Adım 7: Çıkış yap
✓ Adım 8: Admin olarak giriş yap
✓ Adım 9: Fiş durumunu kontrol et ("Onaylı")

4.2 Yetki Kontrol Testi

✓ Fuel Manager testleri:
   ✓ Araç yönetimi sayfasına erişim denemesi → 403
   ✓ Birlik yönetimi sayfasına erişim denemesi → 403
   ✓ Personel yönetimi sayfasına erişim denemesi → 403

✓ Goods Manager testleri:
   ✓ Araç yönetimi sayfasına erişim denemesi → 403
   ✓ Birlik yönetimi sayfasına erişim denemesi → 403
   ✓ Personel yönetimi sayfasına erişim denemesi → 403
   ✓ Mal sorumluları yönetimi sayfasına erişim denemesi → 403

✓ Admin testleri:
   ✓ Tüm sayfalara erişim ✅

5. Responsive Tasarım Testleri

5.1 Mobil Görünüm Testi

✓ Adım 1: Tarayıcıyı daralt (mobile view)
✓ Adım 2: Menu butonunun görünürlüğü
✓ Adım 3: Mobil menü açma/kapama
✓ Adım 4: Form alanlarının mobil uyumluluğu
✓ Adım 5: Buton boyutlarının dokunma için uygunluğu

5.2 Tablet Görünüm Testi

✓ Adım 1: Tarayıcıyı tablet boyutuna getir
✓ Adım 2: Layout'ın adaptasyonu
✓ Adım 3: Grid sistem çalışması

6. Form Validasyon Testleri

6.1 Zorunlu Alan Testleri

✓ Araç formu:
   ✓ Boş marka → Hata mesajı
   ✓ Boş plaka → Hata mesajı

✓ Birlik formu:
   ✓ Boş birlik adı → Hata mesajı
   ✓ Geçersiz TC → Hata mesajı

✓ Mal sorumlusu formu:
   ✓ Boş ad soyad → Hata mesajı
   ✓ Boş rütbe → Hata mesajı
   ✓ Boş sicil numarası → Hata mesajı
   ✓ Geçersiz TC Kimlik (11 hane değil) → Hata mesajı
   ✓ Geçersiz e-posta formatı → Hata mesajı
   ✓ Boş irtibat numarası → Hata mesajı

✓ Fiş formu:
   ✓ Boş litre → Hata mesajı
   ✓ Negatif KM → Hata mesajı
   ✓ Boş personel → Hata mesajı

6.2 Veri Format Testleri

✓ TC Kimlik: 11 hane kontrolü
✓ E-posta: Format kontrolü (@ ve . içermeli)
✓ Sicil numarası: Tekrar kontrolü
✓ Plaka: Format kontrolü
✓ Sayısal alanlar: Negatif değer kontrolü
✓ Tarih: Geçerli tarih aralığı

7. Hata Yönetimi Testleri

7.1 Bağlantı Hataları

✓ Backend kapalıyken API çağrıları
✓ Hata mesajlarının kullanıcı dostu olması
✓ Loading state'lerin düzgün çalışması

7.2 Edge Case Testleri

✓ Çok uzun metin girişleri
✓ Özel karakterli veriler
✓ Çok hızlı art arda buton tıklamaları
✓ Browser refresh durumları

🔧 Troubleshooting

Yaygın Sorunlar

  1. 404 Hatası: Sayfa bulunamadı

    • Çözüm: Sunucunun çalıştığını kontrol et (npm run dev)
  2. Erişim Reddedildi: Yetki hatası

    • Çözüm: Doğru kullanıcı adı/şifre ile giriş yap
  3. Form Gönderilmiyor: Validasyon hatası

    • Çözüm: Tüm zorunlu alanları doldur
  4. Veri Gözükmüyor: API hatası

    • Çözüm: Browser console'da hata mesajlarını kontrol et

Debug Adımları

  1. Console Kontrolü: F12 → Console sekmesi
  2. Network Kontrolü: F12 → Network sekmesi
  3. Storage Kontrolü: F12 → Application → Local Storage
  4. Backend Logları: Terminal çıktısını kontrol et

📊 Test Sonuçları Template

Test Tarihi: ___________
Test Edilen: ___________
Sonuç: ✅ Başarılı / ❌ Başarısız

Notlar:
- Test adımları
- Beklenen sonuçlar
- Gerçekleşen sonuçlar
- Hata mesajları
- Ekran görüntüleri

🎯 Başarı Kriterleri

  • Tüm kullanıcı rolleri giriş yapabiliyor
  • Role-based yönlendirme çalışıyor
  • Form validasyonları doğru çalışıyor
  • CRUD işlemleri tamamlanıyor
  • Responsive tasarım tüm cihazlarda çalışıyor
  • Hata mesajları kullanıcı dostu
  • Cross-role iş akışları tamamlanıyor