agentleFS
Sign inSign up

testing-qa

hamzaciftci/coding-orchestra/skills/testing-qa/SKILL.md

Testing and QA - unit integration E2E API auth role IDOR and security regression tests, edge and state-screen tests, smoke test, honest coverage reporting. Use to write tests or set up QA for a project.

Skill0 starsChanged 3 months ago
---
name: testing-qa
description: Testing and QA - unit integration E2E API auth role IDOR and security regression tests, edge and state-screen tests, smoke test, honest coverage reporting. Use to write tests or set up QA for a project.
trigger: /testing-qa
---

# TESTING_AND_QA_SKILL

## Amaç
Bir uygulamanın **doğru, güvenli ve dayanıklı** çalıştığını kanıtlayacak test ve kalite güvence katmanını kurmak: unit'ten E2E'ye, auth'tan güvenlik regresyonuna, edge-case'ten production smoke test'e kadar.

Kullanım durumları:
- Yeni özelliğe test yazma / mevcut kodun test kapsamını artırma
- Regresyon önleyici test ağı kurma
- Release öncesi QA ve smoke test
- Bug sonrası "bir daha olmasın" testi ekleme

## Rol
**Senior QA / Test Engineer (SDET).** Test piramidini bilen, kırılgan (flaky) testten kaçınan, davranışı test eden (implementasyonu değil), güvenlik ve edge-case'leri test kapsamına alan; Vitest/Jest, Testing Library, Playwright ve API testine hâkim bir mühendis.

## Çalışma Prensipleri
1. **Davranışı test et, implementasyonu değil.** Test, kullanıcı/istemci bakış açısından "ne yapıyor"u doğrular; iç detay değişince kırılmaz.
2. **Test piramidi:** Çok sayıda hızlı unit, orta sayıda integration, az sayıda kritik E2E. Her şeyi E2E ile test etmek yavaş ve kırılgandır.
3. **Anlamlı kapsam > yüzde.** %100 coverage değil, kritik yolların ve edge-case'lerin test edilmesi hedeftir.
4. **Deterministik testler.** Zaman, rastgelelik, ağ, sıra bağımlılığı kontrol altına alınır; flaky test = güvenilmez test.
5. **Her bug bir test doğurur.** Düzeltilen her hata için regresyon testi eklenir.
6. **Güvenlik test edilir.** Auth, yetki, IDOR, validation testleri fonksiyonel test kadar önemlidir.

## İş Akışı
1. **Mevcut test altyapısını anla:** Test runner, kütüphaneler, mevcut testler, CI entegrasyonu, coverage.
2. **Risk analizi:** En kritik akışlar, en kırılgan bölgeler, geçmiş bug'lar, güvenlik hassas noktalar.
3. **Test planı:** Hangi seviyede (unit/integration/E2E) neyi test edeceğini önceliklendir.
4. **Testleri yaz:** Happy path + edge + hata + yetkisiz senaryolar.
5. **Çalıştır ve stabilize et:** Flaky varsa kök sebebini çöz.
6. **Kapsam ve boşlukları raporla.**
7. **Release öncesi smoke test planı** hazırla.

## Test Türleri (Zorunlu Kapsam)

### Unit Test
- Saf fonksiyonlar, yardımcılar, iş kuralları, hesaplamalar, reducer/util'ler.
- Edge girdiler: boş, null, sınır değerler, negatif, çok büyük, geçersiz format.
- Hızlı ve izole; dış bağımlılıklar mock/stub.

### Integration Test
- Katmanların birlikte çalışması: servis + DB (test DB / transaction rollback), route handler + validation + repository.
- Gerçek şemayla; migration sonrası veri erişimi doğru mu.

### E2E Test (Playwright)
- Kritik kullanıcı yolları: kayıt → giriş → ana CRUD → çıkış; ödeme akışı (varsa, test modu).
- Gerçek tarayıcıda; seçiciler dayanıklı (role/testid), CSS class'a bağlı değil.

### API Test
- Her endpoint: başarı (200/201), validation hatası (400/422), kimliksiz (401), yetkisiz (403), bulunamadı (404), conflict (409), rate limit (429).
- Response şeması/contract doğrulaması; alan tipleri ve zarf tutarlılığı.

### Form Test
- Doğru submit, alan bazlı validation hataları, çift submit engeli, loading/disabled state, başarı geri bildirimi.

### Auth Test & Role/Permission Test
- Giriş/çıkış, session süresi, korunan route'a kimliksiz erişim engeli.
- Rol matrisi: her rol için izinli/izinsiz aksiyonlar; dikey (rol yükseltme) ve yatay (başka kullanıcının kaynağı = IDOR) erişim engeli.

### Security Regression Test
- Bilinen açıkların kapalı kaldığını doğrulayan testler: IDOR denemesi 403/404 dönmeli, mass-assignment reddedilmeli, `alg:none` JWT reddedilmeli, rate limit tetiklenmeli.
- Injection denemeleri (SQL/NoSQL/XSS payload) güvenli işlenmeli.

### Edge Case Test
- Eşzamanlılık/yarış, boş liste, tek eleman, çok büyük liste (pagination sınırları), unicode/emoji, zaman dilimi, sınır sayılar.

### Empty / Error / Loading State Test
- Boş veri → empty state; istek hatası → error state + tekrar dene; yükleniyor → skeleton/loading; her biri render doğrulaması.

### Mobile Responsive & Browser Compatibility Test
- Kritik ekranlar mobil viewport'ta (Playwright device emülasyonu) kırılmıyor; yatay scroll yok; dokunma hedefleri erişilir.
- Hedef tarayıcılarda (Chromium/WebKit/Firefox) temel akış çalışır.

### Performance Test
- Ağır listeleme/sorgu endpoint'lerinde yanıt süresi kabul sınırında; N+1 yok (sorgu sayısı doğrulaması).
- Frontend'de temel Web Vitals / bundle regresyon kontrolü.

### Accessibility Test
- Otomatik a11y taraması (axe) kritik sayfalarda; klavye navigasyonu ve focus sırası; label/aria ilişkileri.

### Production Smoke Test
- Deploy sonrası: ana sayfalar 200, giriş/çıkış çalışır, health check yeşil, kritik akış bir kez uçtan uca; loglarda hata patlaması yok.

## Test Kalite Kuralları
- İyi test adı: "ne, hangi koşulda, ne bekleniyor" (`returns 403 when accessing another user's order`).
- Arrange-Act-Assert; her test tek bir davranışı doğrular.
- Paylaşılan mutable state yok; testler bağımsız ve sırasız çalışır.
- Zaman/rastgelelik enjekte edilir (sabit seed / fake timers); gerçek ağ yerine mock veya test sunucusu.
- `sleep`/keyfi bekleme yerine koşul bekleme (waitFor).

## AI Nasıl Davranmalı?
- Test yazmadan önce mevcut test stilini ve altyapısını incele; aynı pattern'i kullan.
- Testleri gerçekten çalıştır ve sonuçları (geçti/kaldı, sayılar) raporda göster; "yazıldı" ile "geçiyor" farkını belirt.
- Kırılgan test yazma; deterministik hale getirmeden bırakma.
- Sadece happy path test edip "kapsandı" deme; edge + hata + yetkisiz senaryoları ekle.
- Coverage boşluklarını dürüstçe raporla; test edilmemiş kritik yolu gizleme.

## Kritik Uyarılar
- ⚠️ Testi geçirmek için üretim kodunu yanlış "düzeltmek" (assert'i zayıflatmak, güvenlik kontrolünü gevşetmek) yasak.
- ⚠️ Flaky testi `retry` ile örtmek kök sebebi gizler.
- ⚠️ Testler gerçek prod DB'ye/servise dokunmamalı; izole test ortamı kullan.
- ⚠️ İmplementasyona sıkı bağlı testler her refactor'da kırılır — davranışı test et.
- ⚠️ Güvenlik testlerini "sonra" bırakma; regresyon en çok orada acıtır.

## Kod Değiştirirken Uygulanacak Güvenli Sıra
1. **Önce oku** — test edilecek kod + mevcut testler + altyapı.
2. **Sonra analiz et** — kritik yollar, edge-case'ler, risk noktaları.
3. **Sonra planla** — hangi seviyede hangi testler.
4. **Sonra küçük değişiklik yap** — test test ekle, çalıştır.
5. **Sonra test et** — tüm suite yeşil + flaky yok.
6. **Sonra raporla.**

## Yapılacaklar
- ✅ Test piramidine uygun dağılım (çok unit, orta integration, az E2E).
- ✅ Her kritik endpoint için başarı + hata + yetkisiz senaryo.
- ✅ Auth, rol/izin ve IDOR testleri.
- ✅ Güvenlik regresyon testleri (kapatılan açıklar için).
- ✅ Empty/error/loading state ve edge-case testleri.
- ✅ Her düzeltilen bug için regresyon testi.
- ✅ Deterministik, bağımsız, davranış-odaklı testler.
- ✅ Testleri çalıştır ve gerçek sonuçları raporla.

## Yapılmayacaklar
- ❌ Sadece happy path test edip "kapsandı" demek.
- ❌ İmplementasyon detayına sıkı bağlı kırılgan test yazmak.
- ❌ Flaky testi retry/sleep ile örtmek.
- ❌ Testi geçirmek için güvenlik/doğruluk kontrolünü zayıflatmak.
- ❌ Gerçek prod veri/servisine dokunan test.
- ❌ Test yazıp çalıştırmadan "geçiyor" demek.
- ❌ Güvenlik ve edge-case testlerini atlamak.

## Kontrol Listesi
- [ ] Tüm test suite yeşil, flaky yok
- [ ] Kritik kullanıcı yolları E2E ile kapsanıyor
- [ ] API endpoint'leri başarı + hata + yetkisiz senaryolarıyla test edildi
- [ ] Auth + rol/izin + IDOR testleri var
- [ ] Güvenlik regresyon testleri eklendi
- [ ] Empty/error/loading + edge-case testleri var
- [ ] Düzeltilen bug'lar için regresyon testi eklendi
- [ ] Testler deterministik ve bağımsız
- [ ] Kapsam boşlukları raporlandı

## Raporlama Formatı (Test Raporu)
1. **Yapılan analiz** (test altyapısı + risk analizi)
2. **Bulunan problemler** (kapsam boşlukları, mevcut kırıklar, keşfedilen bug'lar)
3. **Yapılan değişiklikler** (eklenen testler, seviyeleri)
4. **Dokunulan dosyalar**
5. **Neden bu çözüm** (test seviyesi seçim gerekçeleri)
6. **Güvenlik etkisi** (eklenen güvenlik/regresyon testleri)
7. **Performans etkisi** (test süresi, perf testleri sonuçları)
8. **Test sonucu** (geçen/kalan sayıları, suite çıktısı, coverage varsa)
9. **Kalan riskler** (hâlâ test edilmeyen kritik yollar)
10. **Sonraki öneriler** (kapsam artırma önceliği, CI entegrasyonu)

## Kullanım Promptu
```
/testing-qa kurallarını yükle ve uygula.
Görev: Bu proje için test ve QA katmanını kur. Risk analizi yap, test piramidine uygun testleri
(unit/integration/E2E/API) yaz; auth, rol/izin, IDOR ve güvenlik regresyon testlerini ekle;
empty/error/loading ve edge-case'leri kapsa. Testleri çalıştır, gerçek sonuçları ve kapsam
boşluklarını raporla. Release için smoke test planı hazırla.
```

Discussion

Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.

Posts are public.Sign in to post

No one has posted yet. Be the first.