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.

Ali YILMAZ
Ali YILMAZ

Yönetici

62

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 detaylar
  • INFO - Genel bilgiler
  • WARNING - Uyarılar
  • ERROR - Hatalar
  • CRITICAL - 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 et
  • q - Çıkış yap
  • p 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.




Paylaş

Etiketler


Yorum Yok

    Bu Yazıya Hiç Yorum Yapılmamış. İlk Yorum Yapan Sen Ol !

Yorum Yap


Instagram