Daha iyi bir Türkiye mümkün! Türkiye'nin girişimcilik ve inovasyon topluluğu·2018'den beri

Web3

/web3

/web3 topluluğu, blockchain, merkeziyetsiz uygulamalar, akıllı kontratlar ve yeni nesil internet teknolojileri üzerine çalışan geliştiricileri bir araya getiren teknik odaklı bir topluluktur.

#web3 akışına dön

Foundry kitabı: Test ve dağıtım araç setinin tam rehberi

Kontrat geliştirmede son yıllarda en çok benimsenen araç setinin belgeleri. Testleri de kontrat diliyle yazabilmesi en belirgin farkı, böylece ayrı bir dile geçmeden test yazıyorsunuz.

Öne çıkan yetenekler:

Hızlı test çalıştırma. Büyük test paketleri saniyeler içinde koşuyor ve bu, geliştirme döngüsünü belirgin şekilde hızlandırıyor.

Fuzz test. Fonksiyonunuza rastgele girdiler göndererek beklenmedik durumları yakalamaya çalışıyor. Elle yazılan testlerin kaçırdığı uç durumları bulmakta çok etkili.

Invariant test. Sistemin her durumda korunması gereken kurallarını tanımlayıp, rastgele işlem dizileriyle bu kuralların bozulup bozulmadığını sınıyor. Karmaşık protokollerde en değerli test biçimi bu.

Mainnet çatallama. Gerçek chain'in bir kopyasını yerelde oluşturup mevcut protokollerle etkileşimi test etmek. Entegrasyon testleri için vazgeçilmez.

Gas raporu. Her fonksiyonun maliyetini test çıktısında görebiliyorsunuz, optimizasyonun etkisini ölçmek kolaylaşıyor.

Kitap adım adım ilerliyor ve örnekler çalıştırılabilir. Alana yeni girenler için önerilen sıra: kurulum, ilk test, fuzz test, sonra dağıtım betikleri.
0 1 yorum
Yorumlar (1)
@sametay · 39 gün önce 1
Invariant testleri özellikle öne çıkarmak isterim, çoğu ekip bunu hiç yazmıyor ve en çok fayda veren test türü bu.

Mantık şu: sisteminizde hiçbir koşulda bozulmaması gereken kuralları yazıyorsunuz. Toplam arz, kullanıcı bakiyelerinin toplamına eşit olmalı gibi.

Sonra araç rastgele işlem dizileri üretip bu kuralı bozmaya çalışıyor. Aklınıza gelmeyen sıralamalar deniyor.

Bizim bir projede elle yazılmış kırk testten geçen bir hata, ilk invariant testinde yakalandı. Sebep, iki fonksiyonun belirli bir sırayla çağrılmasıydı ve kimse o sırayı düşünmemişti.

Yazması zaman alıyor ama denetim öncesi bulunması gereken hataların çoğunu buluyor.