Python ile Loglama Debugging ve Test Süreçleri
Python projelerinde loglama, hata ayıklama ve test süreçlerinin önemi büyüktür. Bu yazıda logging, unittest ve hata ayıklama yöntemlerini adım adım örneklerle anlatıyoruz.
Python ile Loglama, Debugging ve Test Süreçleri
Yazılım geliştirme süreci yalnızca kod yazmaktan ibaret değildir. Kodun doğru çalıştığından emin olmak, hataları bulmak ve gelecekteki değişikliklerin mevcut sistemi bozmamasını sağlamak da bu sürecin önemli parçalarıdır. Python, bu ihtiyaçlar için oldukça güçlü araçlar sunar. Bu içerikte loglama (logging), hata ayıklama (debugging) ve test süreçlerini detaylarıyla inceleyeceğiz.
1. Python ile Loglama (Logging)
Loglama, uygulamanızın ne yaptığını kayıt altına almanızı sağlar. Bu sayede hataları daha kolay tespit edebilir, kullanıcı davranışlarını analiz edebilirsiniz.
Basit Logging Kullanımı
import logging
logging.basicConfig(level=logging.INFO)
logging.info("Uygulama başlatıldı")
logging.warning("Bu bir uyarıdır")
logging.error("Bir hata oluştu")
Log Dosyasına Yazmak
logging.basicConfig(filename="uygulama.log", level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
Log Seviyeleri
DEBUG- Geliştirme aşamasındaki detaylarINFO- Genel bilgilerWARNING- UyarılarERROR- HatalarCRITICAL- Ciddi sorunlar
2. Python ile Debugging (Hata Ayıklama)
Python’da hata ayıklamak için çeşitli yöntemler bulunur.
1. print() Yöntemi
En basit yöntemdir, ama karmaşık projelerde yeterli olmayabilir.
2. pdb (Python Debugger)
pdb, adım adım kod yürütmenizi ve değişkenleri izlemenizi sağlar.
import pdb
def topla(a, b):
pdb.set_trace()
return a + b
print(topla(3, 5))
Komutlar:
n- Sonraki satıra geçc- Devam etq- Çıkış yapp değişken- Değeri göster
3. Python ile Test Süreçleri
Test, kodun beklenen şekilde çalışıp çalışmadığını kontrol etmenizi sağlar.
unittest Modülü
import unittest
def topla(a, b):
return a + b
class TestTopla(unittest.TestCase):
def test_toplama(self):
self.assertEqual(topla(2, 3), 5)
if __name__ == "__main__":
unittest.main()
Test Sınıfı Açıklamaları
assertEqual: Beklenen ve gerçek değer eşit mi?assertTrue: Koşul doğru mu?assertRaises: Hata fırlatılıyor mu?
pytest Alternatifi
pytest, unittest’e göre daha sade bir söz dizimi sunar.
def topla(a, b):
return a + b
def test_topla():
assert topla(4, 6) == 10
CI/CD ve Otomatik Test
Testlerinizi otomatikleştirmek için GitHub Actions, GitLab CI gibi araçlarla entegre edebilirsiniz. Her kod değişikliğinde testler otomatik çalışır ve sorun varsa uyarı verir.
Python loglama, hata ayıklama ve test süreçleri, yazılım geliştirme projelerinizin sürdürülebilirliğini ve güvenliğini artırır. Doğru loglama ile sistemin iç yüzünü analiz edebilir, debugging ile hataları hızlıca çözebilir, testlerle yazılım kalitesini artırabilirsiniz. Bu araçlar projelerinizin daha sağlam, güvenilir ve profesyonel olmasını sağlar.