Python'da test etmeye giriş

Python'da Teste Giriş

Alexander Levin

Data Scientist

Test neden bu kadar önemli?

Yaygın sorunlar:

  • Hatalar ve bug'lar
  • Donanım arızaları
  • Beklenmeyen veya öngörülemez davranış

Tüm bu sorunlar, düzeltme amaçlı ciddi maliyet artışlarına yol açabilir.

Test etme şunlara yardımcı olur:

  • Kusurları, bug'ları ve hataları belirlemek
  • Yazılım arızası risklerini azaltmak
  • Yazılımın güvenilirliğini, işlevselliğini ve performansını artırmak
Python'da Teste Giriş

Test nedir?

  • Test etme - bir sistemin veya yazılımın değerlendirilmesi süreci
  • Belirtilen gereksinimleri karşıladığından emin olmak için teste ihtiyaç duyarız

  • Test - bir yazılımın veya sistemin doğruluğunu doğrulama prosedürü

Python'da Teste Giriş

Kurs önkoşulları

  • İleri seviye Python
  • assert deyimleri
  • Dekoratörler
  • OOP kavramları (sınıflar, yöntemler, kalıtım)
Python'da Teste Giriş

Gerçek hayatta test etme

Uçakları düşünün:

  • Görsel kontrol
  • Elektronik ve mekanik kontrol
  • Yakıt kontrolü
  • Yolcu kontrolü
  • Hava durumu kontrolü
  • Hava trafik kontrolünden kalkış izni

Yukarıdakilerin tümü birer testtir! Ve güvenlik için gereklidir.

kalkış öncesi uçak

Python'da Teste Giriş

Python'da assert

  • assert condition - condition ifadesinin True olup olmadığını sınar.
  • condition False ise Python AssertionError fırlatır.
Python'da Teste Giriş

pytest ile test: basit bir örnek

pytest - Python'da test yazmayı kolaylaştıran popüler bir test çatısı.

Python'da pytest ile yazılmış bir "assert" testi örneği:

import pytest

# Test edilecek fonksiyon
def squared(number):
    return number * number

# Test fonksiyonu her zaman "test" ile başlar
def test_squared():
    assert squared(-2) == squared(2)
Python'da Teste Giriş

Bağlam yöneticilerine kısa bakış

  • Bağlam yöneticisi (context manager) - with ifadesiyle kullanılan bir Python nesnesi
  • Geçici bir bağlamı kurmak ve sonlandırmak için bağlam yöneticileri kullanılır
# Dosyaya yazma örneği
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Python'da Teste Giriş

pytest ile tanışın: raises

pytest.raises - bir Exception beklediğinizde kullanılır

import pytest

# Test edilecek fonksiyon
def division(a, b):
    return a / b

# Test fonksiyonu
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Python'da Teste Giriş

Özet

Test etme şunlardır:

  • Yazılımın bekleneni karşılayıp karşılamadığını değerlendirme süreci
  • Günlük yaşamda da vardır
  • Yazılım geliştirme zorluklarını aşmak için gereklidir
  • Sorunların doğru ele alınmasına yardımcı olur

Test uygulaması:

  • pytest - test sürecini kolaylaştıran güçlü bir Python çatısı
  • assert - bir koşulu doğrulayarak temel testler oluşturmak için pytest içinde kullanılan Python anahtar sözcüğü
  • pytest.raises - bir Exception beklenen testleri yazmak için kullanılan bağlam yöneticisi
Python'da Teste Giriş

Haydi pratik yapalım!

Python'da Teste Giriş

Preparing Video For Download...