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

319 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:5173/` (SvelteKit)
- **Backend**: `http://localhost:3000` (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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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
```bash
✓ 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ı
```bash
✓ 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
```bash
✓ Ç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