Aşağıdaki indirim hesaplayıcısı, sepet toplamı belirli bir eşik değerine ulaştığında indirim uyguluyor:
function shippingFee(float $total): float
{
return $total >= 500 ? 0 : 49.90;
}
Bu fonksiyon için yalnızca normal bir tutarı test eden şu test yeterli değildir:
public function testShippingIsFreeForLargeCart(): void
{
$this->assertSame(0.0, shippingFee(750));
}
AI destekli inceleme, testin temel davranışı doğruladığını ancak karar sınırlarını kapsamadığını belirtebilir. Özellikle 499.99, 500.00 ve 500.01 değerleri farklı sonuçlar üretebilecek kritik örneklerdir. Ayrıca kayan nokta değerlerinin doğrudan karşılaştırılması, hesaplama başka işlemlerden sonra yapılıyorsa beklenmeyen hassasiyet sorunlarını görünür kılabilir.
Asgari test düzeltmesi
Sınırın iki tarafı ve tam eşik için ayrı testler eklenebilir:
public function testShippingFeeAtBoundaryValues(): void
{
$this->assertSame(49.90, shippingFee(499.99));
$this->assertSame(0.0, shippingFee(500.00));
$this->assertSame(0.0, shippingFee(500.01));
}
Eğer toplam değerinin gerçek uygulamada kuruş hesabı veya yuvarlama sonrasında üretildiği biliniyorsa, test girdileri bu iş kuralını yansıtmalıdır. Örneğin 499.995 değerinin 500.00’a yuvarlanıp yuvarlanmayacağı varsayılmamalı; ürün kuralı açıkça belirlenmelidir. Testi sırf AI böyle önerdi diye genişletmek yerine, eşik davranışı gereksinimle karşılaştırılmalıdır.
Doğrulama ve AI değerlendirmesinin sınırı
İnceleme sırasında şu adımlar uygulanabilir:
- Önce mevcut PHPUnit testlerini çalıştırıp başlangıç sonucunu kaydedin.
- Yeni testleri ekleyerek 499.99, 500.00 ve 500.01 değerlerinin beklenen sonuçlarını doğrulayın.
- Fonksiyondaki >= operatörünü geçici olarak > ile değiştirip 500.00 testinin başarısız olduğunu gözlemleyin. Ardından kodu geri alın.
- Küsuratlı değerlerin uygulamada nasıl yuvarlandığını ilgili para hesaplama kuralıyla karşılaştırın.
