Gemini ile Kod Yazma ve Debug Prompt Şablonları
Bu rehber, Gemini nin güçlü kod anlama ve üretme yeteneklerini kullanarak yazılım geliştirme süreçlerinizi hızlandırmak için tasarlanmış kapsamlı prompt şablonlarını içermektedir. Kod yazmadan debugging e, refactoring den test yazımına kadar geniş bir yelpazede kullanabileceğiniz şablonlar sunulmaktadır.
💻 Kullanım Notu: Şablonlardaki [KÖŞELİ PARANTEZ] içindeki alanları kendi projenize göre doldurun. Hassas bilgileri (API key, şifre, production verileri) paylaşmadan önce temizleyin. AI tarafından üretilen kodu mutlaka test edin ve review yapın.
Kod Yazma Şablonları
Genel Kod Üretimi
Sıfırdan kod yazmak için temel şablon.
Aşağıdaki gereksinimlere göre kod yaz.
TEKNİK BİLGİLER:
- Programlama dili: [Python / JavaScript / TypeScript / Java / C# / Go / Rust / ...]
- Framework/Kütüphane: [varsa belirt - React, Django, Spring, .NET, vb.]
- Versiyon: [dil veya framework versiyonu]
- Ortam: [Web / Backend / CLI / Mobile / Desktop]
GEREKSİNİMLER:
[Ne yapması gerektiğini detaylı açıkla]
Fonksiyonel gereksinimler:
1. [Gereksinim 1]
2. [Gereksinim 2]
3. [Gereksinim 3]
Kısıtlamalar:
- [Kısıtlama 1]
- [Kısıtlama 2]
KOD STANDARTLARI:
- Yorum satırları ekle
- Anlaşılır değişken isimleri kullan
- Error handling ekle
- [Varsa spesifik coding style]
ÇIKTI:
- Çalışır, test edilebilir kod
- Kullanım örneği
- Kısa açıklama
---
ÖRNEK KULLANIM:
Aşağıdaki gereksinimlere göre kod yaz.
TEKNİK BİLGİLER:
- Programlama dili: Python
- Kütüphane: requests, BeautifulSoup
- Versiyon: Python 3.10+
GEREKSİNİMLER:
Bir web sitesinden ürün bilgilerini çeken web scraper yaz.
Fonksiyonel gereksinimler:
1. Verilen URL den sayfa içeriğini çek
2. Ürün adı, fiyat ve açıklamasını parse et
3. Sonuçları JSON formatında döndür
4. Birden fazla sayfa desteği olsun
Kısıtlamalar:
- Rate limiting uygula (1 istek/saniye)
- Timeout 10 saniye olsun
- User-agent header ekleFonksiyon/Metod Yazma
Spesifik fonksiyonlar yazmak için.
Aşağıdaki spesifikasyona göre fonksiyon yaz.
FONKSİYON DETAYLARI:
İsim: [fonksiyon_adi]
Dil: [programlama dili]
Amaç:
[Fonksiyonun ne yapacağını açıkla]
Parametreler:
- param1 (tip): açıklama
- param2 (tip): açıklama [opsiyonel, varsayılan: değer]
Dönüş Değeri:
- tip: açıklama
Davranış:
- [Normal durum davranışı]
- [Edge case davranışları]
Hata Durumları:
- [Hata 1]: [ne zaman fırlatılır]
- [Hata 2]: [ne zaman fırlatılır]
Örnek Kullanım:
[Beklenen input ve output örnekleri]
---
ÖRNEK:
FONKSİYON DETAYLARI:
İsim: validate_email
Dil: Python
Amaç:
E-posta adresinin geçerli formatta olup olmadığını kontrol et.
Parametreler:
- email (str): Kontrol edilecek e-posta adresi
- allow_plus (bool): + karakterine izin ver [opsiyonel, varsayılan: True]
Dönüş Değeri:
- bool: Geçerli ise True, değilse False
Davranış:
- Boş string için False döndür
- Regex ile format kontrolü yap
- Büyük/küçük harf duyarsız olsun
Hata Durumları:
- TypeError: email string değilse
Örnek Kullanım:
validate_email("test@example.com") -> True
validate_email("invalid-email") -> False
validate_email("test+tag@example.com") -> True
validate_email("test+tag@example.com", allow_plus=False) -> FalseSınıf/Class Yazma
Nesne yönelimli programlama için sınıf oluşturma.
Aşağıdaki spesifikasyona göre sınıf yaz.
SINIF DETAYLARI:
İsim: [ClassName]
Dil: [programlama dili]
Paradigma: [OOP / Dataclass / ...]
Amaç:
[Sınıfın ne temsil ettiğini açıkla]
Özellikler (Properties):
- property1 (tip): açıklama [public/private]
- property2 (tip): açıklama [public/private]
Metodlar:
1. __init__ / constructor:
- Parametreler: [...]
2. metod1:
- Amaç: [...]
- Parametreler: [...]
- Dönüş: [...]
3. metod2:
- Amaç: [...]
- Parametreler: [...]
- Dönüş: [...]
Özel Davranışlar:
- [Inheritance varsa belirt]
- [Interface implementation varsa belirt]
- [Magic methods / operator overloading varsa belirt]
---
ÖRNEK:
SINIF DETAYLARI:
İsim: ShoppingCart
Dil: Python
Amaç:
E-ticaret alışveriş sepetini yönetmek için sınıf.
Özellikler:
- items (List[CartItem]): Sepetteki ürünler [private]
- user_id (str): Kullanıcı ID [public]
- created_at (datetime): Oluşturma zamanı [public]
Metodlar:
1. __init__:
- user_id (str): Zorunlu
2. add_item:
- product_id (str), quantity (int), price (float)
- Aynı ürün varsa quantity artır
3. remove_item:
- product_id (str)
- Ürün yoksa hata fırlat
4. get_total:
- Dönüş: float (toplam tutar)
5. clear:
- Sepeti temizle
Özel Davranışlar:
- __len__: Sepetteki ürün sayısı
- __iter__: Ürünler üzerinde iteration
- __str__: Okunabilir string representationAPI Endpoint Yazma
REST API endpoint oluşturmak için.
Aşağıdaki spesifikasyona göre API endpoint yaz.
API DETAYLARI:
Framework: [Express / FastAPI / Flask / Django REST / Spring Boot / .NET / ...]
Endpoint: [HTTP METHOD] [/path]
Amaç: [Ne yapar]
REQUEST:
- Headers:
- Authorization: [gerekli/opsiyonel]
- Content-Type: [tip]
- Path Parameters:
- [param]: [tip] - [açıklama]
- Query Parameters:
- [param]: [tip] - [açıklama] [zorunlu/opsiyonel]
- Body:
{
"field1": "tip - açıklama",
"field2": "tip - açıklama"
}
RESPONSE:
- 200 OK:
{
"success": true,
"data": {...}
}
- 400 Bad Request:
{
"success": false,
"error": "mesaj"
}
- [Diğer status kodları]
İŞ KURALLARI:
- [Kural 1]
- [Kural 2]
EKSTRA:
- Input validation
- Error handling
- Logging
---
ÖRNEK:
API DETAYLARI:
Framework: FastAPI
Endpoint: POST /api/users
Amaç: Yeni kullanıcı oluşturma
REQUEST:
- Headers:
- Content-Type: application/json
- Body:
{
"email": "string - geçerli email",
"password": "string - min 8 karakter",
"name": "string - 2-100 karakter"
}
RESPONSE:
- 201 Created:
{
"success": true,
"data": {
"id": "uuid",
"email": "string",
"name": "string",
"created_at": "datetime"
}
}
- 400 Bad Request: Validation hatası
- 409 Conflict: Email zaten kayıtlı
İŞ KURALLARI:
- Email unique olmalı
- Password hash lenmeli
- Email lowercase a çevrilmeliAlgoritma Implementasyonu
Belirli bir algoritmayı kodlamak için.
Aşağıdaki algoritmayı implemente et.
ALGORİTMA DETAYLARI:
Algoritma adı: [Algoritma adı]
Dil: [programlama dili]
Kategori: [Sıralama / Arama / Graph / DP / ...]
Açıklama:
[Algoritmanın ne yaptığını açıkla]
Beklenen Karmaşıklık:
- Zaman: O(?)
- Alan: O(?)
Input:
- [input açıklaması]
Output:
- [output açıklaması]
EKSTRA İSTEKLER:
- Adım adım açıklama yorumları
- Zaman ve alan karmaşıklığı analizi
- Test case örnekleri
- Edge case handling
---
ÖRNEK:
ALGORİTMA DETAYLARI:
Algoritma adı: Merge Sort
Dil: Python
Açıklama:
Divide and conquer yaklaşımıyla sıralama algoritması.
Beklenen Karmaşıklık:
- Zaman: O(n log n)
- Alan: O(n)
Input:
- arr: List[int] - sıralanacak liste
Output:
- List[int] - sıralanmış liste
EKSTRA İSTEKLER:
- Recursive implementasyon
- Her adımda ne olduğunu açıklayan yorumlar
- Boş liste ve tek elemanlı liste edge case
- In-place versiyon da gösterDebugging ve Hata Çözme Şablonları
Genel Hata Analizi
Her türlü kod hatasını analiz etmek için.
Bu koddaki hatayı bul ve düzelt.
HATA BİLGİLERİ:
Programlama dili: [dil]
Framework: [varsa]
Hata mesajı:
[Tam hata mesajını yapıştır]
Stack trace:
[Varsa stack trace]
KOD:
[Hatalı kodu yapıştır]
BAĞLAM:
- Bu kod ne yapmalı: [açıklama]
- Ne zaman hata oluşuyor: [açıklama]
- Son yapılan değişiklikler: [varsa]
İSTENEN ANALİZ:
1. Hatanın tam olarak ne olduğunu açıkla
2. Hatanın kök nedenini belirle
3. Düzeltilmiş kodu ver
4. Neden bu düzeltmenin işe yaradığını açıkla
5. Benzer hataları önlemek için öneriler ver
---
ÖRNEK:
HATA BİLGİLERİ:
Programlama dili: Python
Framework: FastAPI
Hata mesajı:
TypeError: Object of type datetime is not JSON serializable
KOD:
@app.get("/users/{user_id}")
def get_user(user_id: int):
user = db.query(User).filter(User.id == user_id).first()
return {"user": user}
BAĞLAM:
- Bu kod kullanıcı bilgilerini döndürmeli
- API çağrısı yapıldığında hata oluşuyor
- User modelinde created_at datetime alanı varMantıksal Hata (Logic Bug)
Hata vermeyen ama yanlış sonuç üreten kodlar için.
Bu kodda mantıksal hata var, bul ve düzelt.
DURUM:
- Kod hata vermiyor ama yanlış sonuç üretiyor
- Beklenen davranış: [ne olması gerekiyor]
- Gerçekleşen davranış: [ne oluyor]
KOD:
[Kodu yapıştır]
TEST CASE:
- Input: [test input]
- Beklenen output: [beklenen sonuç]
- Gerçek output: [alınan sonuç]
ANALİZ İSTEĞİ:
1. Kodu satır satır analiz et
2. Mantık hatasının nerede olduğunu bul
3. Yanlış düşünceyi açıkla
4. Düzeltilmiş kodu ver
5. Doğrulama için test case öner
---
ÖRNEK:
DURUM:
- Beklenen: Dizideki en büyük ikinci sayıyı bul
- Gerçekleşen: Bazen yanlış sonuç veriyor
KOD:
def second_largest(arr):
largest = arr[0]
second = arr[1]
for num in arr:
if num > largest:
second = largest
largest = num
elif num > second:
second = num
return second
TEST CASE:
- Input: [5, 5, 4, 3]
- Beklenen: 4
- Gerçek: 5Performance Bug
Yavaş çalışan kodları optimize etmek için.
Bu kod çok yavaş çalışıyor, optimize et.
PERFORMANS SORUNU:
Dil: [programlama dili]
Çalışma süresi: [mevcut süre]
Hedef süre: [istenen süre]
Data boyutu: [veri büyüklüğü]
KOD:
[Yavaş kodu yapıştır]
ANALİZ İSTEĞİ:
1. Mevcut karmaşıklık analizi:
- Zaman karmaşıklığı: O(?)
- Alan karmaşıklığı: O(?)
2. Darboğazları belirle:
- Hangi kısımlar yavaş
- Neden yavaş
3. Optimizasyon önerileri:
- Algoritma değişikliği
- Veri yapısı değişikliği
- Caching
- Parallelization
4. Optimize edilmiş kod:
[Hızlı versiyon]
5. Yeni karmaşıklık:
- Zaman: O(?)
- Alan: O(?)
6. Benchmark karşılaştırması
---
ÖRNEK:
PERFORMANS SORUNU:
Dil: Python
Çalışma süresi: 30 saniye
Hedef süre: 1 saniye altı
Data boyutu: 1 milyon kayıt
KOD:
def find_duplicates(items):
duplicates = []
for i in range(len(items)):
for j in range(i + 1, len(items)):
if items == items[j] and items not in duplicates:
duplicates.append(items)
return duplicatesMemory Leak ve Resource Sorunu
Bellek ve kaynak sorunlarını çözmek için.
Bu kodda memory leak veya resource sorunu var, analiz et.
SORUN BİLGİSİ:
Dil: [programlama dili]
Ortam: [web server / long-running process / ...]
Belirti: [memory artışı / connection leak / file handle leak / ...]
KOD:
[Şüpheli kodu yapıştır]
GÖZLEMLER:
- [Gözlem 1 - örn: Memory zamanla artıyor]
- [Gözlem 2 - örn: Connection sayısı artıyor]
ANALİZ İSTEĞİ:
1. Potansiyel leak noktalarını belirle
2. Her leak için:
- Nerede oluşuyor
- Neden oluşuyor
- Nasıl düzeltilir
3. Düzeltilmiş kodu ver
4. Best practice önerileri
5. Monitoring/detection önerileri
---
ÖRNEK:
SORUN BİLGİSİ:
Dil: Python
Ortam: Web server (Flask)
Belirti: Memory sürekli artıyor, restart gerekiyor
KOD:
cache = {}
@app.route("/process")
def process_data():
data = request.json
key = str(data)
if key not in cache:
result = expensive_operation(data)
cache[key] = result
return cache[key]Async/Concurrency Hataları
Asenkron ve eşzamanlılık sorunları için.
Bu async/concurrent kodda sorun var, analiz et.
SORUN TÜRÜ: [Race condition / Deadlock / Starvation / Async bug / ...]
Dil: [programlama dili]
Async model: [asyncio / threading / multiprocessing / promises / ...]
KOD:
[Sorunlu kodu yapıştır]
BELİRTİLER:
- [Belirti 1]
- [Belirti 2]
ANALİZ İSTEĞİ:
1. Sorunun ne olduğunu açıkla
2. Race condition varsa senaryoyu göster
3. Deadlock varsa döngüyü göster
4. Düzeltilmiş kodu ver
5. Concurrency best practices
---
ÖRNEK:
SORUN TÜRÜ: Race condition şüphesi
Dil: Python
Async model: threading
KOD:
counter = 0
def increment():
global counter
for _ in range(1000000):
counter += 1
thread1 = threading.Thread(target=increment)
thread2 = threading.Thread(target=increment)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print(counter) # Beklenen: 2000000, Gerçek: değişken
BELİRTİLER:
- Her çalıştırmada farklı sonuç
- Beklenen değere ulaşılmıyorKod Review ve Analiz Şablonları
Kapsamlı Kod Review
Detaylı kod incelemesi için.
Bu kodu kapsamlı olarak review et.
KOD:
[Kodu yapıştır]
BAĞLAM:
- Proje türü: [web app / API / library / ...]
- Dil/Framework: [...]
- Bu kodun amacı: [...]
REVIEW KRİTERLERİ:
1. DOĞRULUK:
- Kod doğru çalışıyor mu?
- Edge case ler handle ediliyor mu?
- Error handling yeterli mi?
2. OKUNABİLİRLİK:
- Değişken isimleri anlaşılır mı?
- Kod yapısı mantıklı mı?
- Yorumlar yeterli mi?
3. PERFORMANS:
- Performans sorunları var mı?
- Gereksiz işlemler var mı?
- Daha iyi algoritma kullanılabilir mi?
4. GÜVENLİK:
- Güvenlik açıkları var mı?
- Input validation yapılıyor mu?
- Hassas veriler korunuyor mu?
5. BEST PRACTICES:
- Dil/framework best practice lerine uygun mu?
- Design pattern kullanımı uygun mu?
- DRY, SOLID prensipleri
6. TEST EDİLEBİLİRLİK:
- Kod test edilebilir mi?
- Bağımlılıklar enjekte edilebilir mi?
ÇIKTI FORMAT:
Özet: [Genel değerlendirme]
Kritik Sorunlar:
- [Sorun]: [Açıklama] [Öneri]
Önemli Öneriler:
- [Öneri]: [Açıklama]
İyileştirme Fırsatları:
- [Fırsat]: [Açıklama]
Olumlu Yönler:
- [Olumlu yön]
Puan: [/10]Güvenlik Odaklı Review
Güvenlik açıklarını tespit etmek için.
Bu kodun güvenlik analizini yap.
KOD:
[Kodu yapıştır]
TEKNOLOJİ:
- Dil: [...]
- Framework: [...]
- Ortam: [Web / API / Mobile / ...]
GÜVENLİK ANALİZİ:
1. OWASP TOP 10 KONTROLÜ:
- Injection (SQL, Command, XSS)
- Broken Authentication
- Sensitive Data Exposure
- XXE
- Broken Access Control
- Security Misconfiguration
- XSS
- Insecure Deserialization
- Using Components with Known Vulnerabilities
- Insufficient Logging
2. INPUT VALIDATION:
- User input doğrulanıyor mu?
- Sanitization yapılıyor mu?
- Type checking var mı?
3. AUTHENTICATION/AUTHORIZATION:
- Auth mekanizması güvenli mi?
- Session yönetimi doğru mu?
- Access control uygulanıyor mu?
4. VERİ GÜVENLİĞİ:
- Hassas veriler şifreleniyor mu?
- Loglar hassas veri içeriyor mu?
- Veri sızıntısı riski var mı?
5. HATA YÖNETİMİ:
- Hatalar detay veriyor mu?
- Stack trace expose ediliyor mu?
ÇIKTI:
Kritik Güvenlik Açıkları:
- [Açık]: [Detay] [Düzeltme]
Orta Seviye Riskler:
- [Risk]: [Detay] [Düzeltme]
Düşük Seviye Öneriler:
- [Öneri]: [Detay]
Güvenli Kod Versiyonu:
[Düzeltilmiş kod]Kod Karmaşıklık Analizi
Kod karmaşıklığını analiz etmek için.
Bu kodun karmaşıklık analizini yap.
KOD:
[Kodu yapıştır]
ANALİZ:
1. CYCLOMATIC COMPLEXITY:
- Her fonksiyon için CC değeri
- Yüksek karmaşıklıklı fonksiyonlar
2. COGNITIVE COMPLEXITY:
- Okunabilirlik değerlendirmesi
- Anlaşılması zor kısımlar
3. BAĞIMLILIK ANALİZİ:
- Coupling seviyesi
- Cohesion seviyesi
- Döngüsel bağımlılıklar
4. LINES OF CODE:
- Fonksiyon başına LOC
- Çok uzun fonksiyonlar
5. NESTING DEPTH:
- Maksimum iç içe geçme seviyesi
- Deep nesting olan yerler
SADELEŞTİRME ÖNERİLERİ:
- [Fonksiyon]: [Nasıl sadeleştirilebilir]
REFACTORED VERSİYON:
[Sadeleştirilmiş kod]Refactoring Şablonları
Genel Refactoring
Kodu iyileştirmek ve temizlemek için.
Bu kodu refactor et.
MEVCUT KOD:
[Kodu yapıştır]
REFACTORING HEDEFLERİ:
- [ ] Okunabilirliği artır
- [ ] Tekrarları kaldır (DRY)
- [ ] Fonksiyonları küçült
- [ ] İsimlendirmeyi iyileştir
- [ ] Error handling ekle/iyileştir
- [ ] Performance optimize et
- [ ] Design pattern uygula
- [ ] SOLID prensipleri uygula
- [ ] [Özel hedef]
KISITLAMALAR:
- Mevcut API/interface değişmemeli
- Backward compatible olmalı
- [Diğer kısıtlamalar]
İSTENEN ÇIKTI:
1. Refactored kod
2. Her değişikliğin açıklaması
3. Önce/sonra karşılaştırması
4. Test önerileri
---
ÖRNEK:
MEVCUT KOD:
def p(d):
r = []
for i in d:
if i["t"] == "a":
if i["s"] > 100:
r.append({"n": i["n"], "s": i["s"] * 0.9})
else:
r.append({"n": i["n"], "s": i["s"] * 0.95})
elif i["t"] == "b":
if i["s"] > 100:
r.append({"n": i["n"], "s": i["s"] * 0.85})
else:
r.append({"n": i["n"], "s": i["s"] * 0.9})
return r
REFACTORING HEDEFLERİ:
- Okunabilirliği artır
- İsimlendirmeyi iyileştir
- Tekrarları kaldırDesign Pattern Uygulama
Design pattern uygulamak için.
Bu koda uygun design pattern uygula.
MEVCUT KOD:
[Kodu yapıştır]
PROBLEM:
[Kodun hangi problemi olduğunu açıkla]
PATTERN ÖNERİSİ İSTE:
Bu kod için hangi design pattern uygun olur?
VEYA
SPESİFİK PATTERN UYGULA:
[Pattern adı] pattern ini bu koda uygula.
Örnek pattern ler:
- Factory Pattern
- Singleton Pattern
- Observer Pattern
- Strategy Pattern
- Decorator Pattern
- Repository Pattern
- Dependency Injection
- Builder Pattern
İSTENEN ÇIKTI:
1. Neden bu pattern uygun
2. Pattern açıklaması
3. Uygulanmış kod
4. UML veya yapı diyagramı (metin olarak)
5. Kullanım örneği
---
ÖRNEK:
MEVCUT KOD:
class PaymentProcessor:
def process_payment(self, payment_type, amount):
if payment_type == "credit_card":
# credit card logic
fee = amount * 0.029
# process...
elif payment_type == "paypal":
# paypal logic
fee = amount * 0.034
# process...
elif payment_type == "crypto":
# crypto logic
fee = amount * 0.01
# process...
PROBLEM:
Her yeni ödeme yöntemi için bu fonksiyon değişmeli (OCP ihlali).
PATTERN İSTEĞİ:
Strategy Pattern uygula.Legacy Code Modernizasyonu
Eski kodu modernize etmek için.
Bu legacy kodu modernize et.
LEGACY KOD:
[Eski kodu yapıştır]
MEVCUT DURUM:
- Dil/Versiyon: [eski versiyon]
- Framework: [eski framework varsa]
- Sorunlar: [mevcut sorunları listele]
HEDEF:
- Dil/Versiyon: [yeni versiyon]
- Framework: [yeni framework varsa]
- Hedefler: [modernizasyon hedefleri]
MODERNİZASYON ADIMLARI:
1. Syntax güncellemesi
2. Deprecated feature değişimi
3. Yeni dil özellikleri kullanımı
4. Framework upgrade
5. Best practice uygulaması
ÇIKTI:
1. Modernize edilmiş kod
2. Değişiklik listesi
3. Breaking change uyarıları
4. Migration notları
---
ÖRNEK:
LEGACY KOD:
# Python 2.7
class UserManager:
def __init__(self):
self.users = {}
def get_user(self, id):
if self.users.has_key(id):
return self.users[id]
else:
return None
def get_all_users(self):
return self.users.values()
def print_users(self):
for id, user in self.users.iteritems():
print user["name"]
HEDEF:
- Python 3.11+
- Type hints ekle
- Modern syntax kullan
- Dataclass kullanTest Yazımı Şablonları
Unit Test Yazımı
Birim testleri yazmak için.
Bu kod için unit testler yaz.
KOD:
[Test edilecek kodu yapıştır]
TEST FRAMEWORK: [pytest / unittest / jest / JUnit / NUnit / ...]
COVERAGE HEDEFİ: [%80 / %90 / %100]
TEST GEREKSİNİMLERİ:
1. Normal case testleri
2. Edge case testleri
3. Error case testleri
4. Boundary testleri
TEST YAPISI:
- Arrange-Act-Assert pattern
- Descriptive test isimleri
- Her test tek bir şeyi test etmeli
MOCK GEREKSİNİMLERİ:
- [Mock edilmesi gereken bağımlılıklar]
İSTENEN ÇIKTI:
- Test dosyası
- Her test için açıklama
- Coverage analizi
---
ÖRNEK:
KOD:
class Calculator:
def add(self, a, b):
return a + b
def divide(self, a, b):
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
def is_even(self, n):
return n % 2 == 0
TEST FRAMEWORK: pytest
COVERAGE HEDEFİ: %100
TEST GEREKSİNİMLERİ:
- add: pozitif, negatif, float, zero
- divide: normal, zero division
- is_even: even, odd, zero, negativeIntegration Test Yazımı
Entegrasyon testleri yazmak için.
Bu API/servis için integration test yaz.
SİSTEM:
[Sistem açıklaması]
ENDPOINT/SERVİS:
[Test edilecek endpoint veya servis]
TEST SENARYOLARI:
1. Happy path senaryoları:
- [Senaryo 1]
- [Senaryo 2]
2. Error senaryoları:
- [Error senaryo 1]
- [Error senaryo 2]
3. Edge case senaryoları:
- [Edge case 1]
BAĞIMLILIKLAR:
- Database: [mock / test DB / ...]
- External API: [mock / sandbox / ...]
TEST FRAMEWORK: [...]
ÇIKTI:
- Test dosyaları
- Test data/fixtures
- Setup/teardown kodları
---
ÖRNEK:
SİSTEM: E-ticaret API
ENDPOINT: POST /api/orders
TEST SENARYOLARI:
1. Happy path:
- Geçerli sipariş oluşturma
- Birden fazla ürünlü sipariş
2. Error:
- Stokta olmayan ürün
- Geçersiz ödeme bilgisi
- Yetkisiz kullanıcı
3. Edge case:
- Maksimum ürün sayısı
- Minimum sipariş tutarıTest Case Üretimi
Fonksiyon için test case üretmek.
Bu fonksiyon için test case listesi oluştur.
FONKSİYON:
[Fonksiyon imzası veya kodu]
FONKSİYON AÇIKLAMASI:
[Ne yapar]
TEST CASE KATEGORİLERİ:
1. NORMAL CASES:
| Input | Expected Output | Açıklama |
|-------|-----------------|----------|
| ... | ... | ... |
2. EDGE CASES:
| Input | Expected Output | Açıklama |
|-------|-----------------|----------|
| ... | ... | ... |
3. BOUNDARY CASES:
| Input | Expected Output | Açıklama |
|-------|-----------------|----------|
| ... | ... | ... |
4. ERROR CASES:
| Input | Expected Error | Açıklama |
|-------|----------------|----------|
| ... | ... | ... |
5. SPECIAL CASES:
| Input | Expected Output | Açıklama |
|-------|-----------------|----------|
| ... | ... | ... |
---
ÖRNEK:
FONKSİYON:
def validate_password(password: str) -> bool
FONKSİYON AÇIKLAMASI:
Şifre en az 8 karakter, 1 büyük harf, 1 küçük harf, 1 rakam, 1 özel karakter içermeli.Kod Dokümantasyonu Şablonları
Docstring/JSDoc Yazımı
Kod dokümantasyonu eklemek için.
Bu kod için dokümantasyon yaz.
KOD:
[Kodu yapıştır]
DOKÜMANTASYON STİLİ:
- Python: [Google Style / NumPy Style / Sphinx]
- JavaScript: [JSDoc]
- Java: [Javadoc]
- C#: [XML Documentation]
DOKÜMANTASYON İÇERİĞİ:
- Fonksiyon/sınıf açıklaması
- Parametre açıklamaları
- Dönüş değeri açıklaması
- Exception/Error açıklamaları
- Kullanım örnekleri
- Notlar ve uyarılar
---
ÖRNEK:
KOD:
def fetch_user_data(user_id, include_orders=False, max_orders=10):
if not isinstance(user_id, int) or user_id Rehberler Arasında Gezin