Testler Yazma ve AI ile Kodu Güvenceye Alma

Geliştiriciler için Yapay Zeka Destekli Kodlama

Francesca Donadoni

AI Curriculum Manager, DataCamp

Test Odaklı İstem

☺ Normal İstem

E-posta adreslerini ayrıştırmak için bir Python fonksiyonu yazın.

🤓 Test Odaklı İstem

E-posta adreslerini ayrıştırmak için bir Python fonksiyonu yazın. Aşağıdaki testleri geçmelidir:

  • "[email protected]" gibi geçerli bir adresi kabul eder.
  • "user@@domain" gibi geçersiz girdiyi reddeder.
  • Boş giriş için bir ValueError yükseltir.
Geliştiriciler için Yapay Zeka Destekli Kodlama

Test Odaklı İstem

  • Kullanıcı istemi: Kullanıcı tarafından gönderilen form verilerini işleyen ve bir SQL veritabanına ekleyen bir fonksiyon için Python'da birim testleri oluşturun.

  • Model yanıtı:

İşte form verilerini işleyen ve bir SQL veritabanına kayıt ekleyen bir fonksiyon için doğrulama, normalleştirme, SQL enjeksiyon güvenliği ve işlem davranışını kapsayan çalışmaya hazır bir pytest paketi.

[...]
# ---------- Test DB sabitleri ----------

@pytest.fixture()
def conn():
    """Kullanıcılar tablosu içeren bellek içi SQLite DB."""
    c = sqlite3.connect(":memory:") [...]
Geliştiriciler için Yapay Zeka Destekli Kodlama

Test Odaklı İstem

  • Kullanıcı istemi: Aşağıdaki fonksiyon için pytest kullanarak Python birim testleri oluşturun. Boş giriş, girdideki SQL anahtar kelimeleri ve özel karakterler için durumlar ekleyin. Varsayılan bir veritabanı bağlantısı olduğunu varsayın. <INSERT FUNCTION>

  • Model yanıtı:

İşte boş giriş, SQL anahtar kelimeleri ve özel karakterleri kapsayan ve commit/close davranışını doğrulayan, istisnaların yutulduğunu kontrol eden, gerçek DB kullanmayan bir mock içeren bağımsız bir pytest test modülü.

[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
    """
    sqlite3.connect'i MagicMock bağlantısı + imleç döndürecek şekilde yama yapar.
[...]
Geliştiriciler için Yapay Zeka Destekli Kodlama

Güvenlik için İstem

☺ Normal İstem

$$

Potansiyel güvenlik açıkları için aşağıdaki Python fonksiyonunu tarayın ve varsa daha güvenli alternatifler önerin.

🤓 Test Odaklı İstem

$$

Bu kodu SQL enjeksiyonu, XSS ve giriş doğrulama hataları gibi yaygın web güvenlik sorunları için inceleyin.

Geliştiriciler için Yapay Zeka Destekli Kodlama

OWASP İlk 10

owasp_top_10.png

Geliştiriciler için Yapay Zeka Destekli Kodlama

OWASP İlk 10

  • Kullanıcı istemi: OWASP İlk 10 güvenlik açığı için aşağıdaki fonksiyonu denetleyin.
def login(username, password):
   query = f"SELECT * FROM users WHERE username = '{username}' \
           AND password = '{password}'"
   result = db.execute(query)
   return result.fetchone()
  • Model yanıtı:

İşte giriş fonksiyonunuzun OWASP İlk 10 denetimi ve daha güvenli bir yeniden yazımı.

  1. A03: Enjeksiyon. SQL'e doğrudan dize interpolasyonu, SQL enjeksiyonuna açık hale getirir. Örnek yükler:
    • username = "admin' --" → şifre kontrolünü atlar. [...]
Geliştiriciler için Yapay Zeka Destekli Kodlama

Haydi pratik yapalım!

Geliştiriciler için Yapay Zeka Destekli Kodlama

Preparing Video For Download...