Koşul kapsamı nasıl hesaplanır?

Sep 17 2020

Test etmeye hazırlanmaya çalışıyorum ve internette bir sonraki alıştırmayı görüyorum:

% 100 durum kapsamına ulaşmak için kaç test senaryosu gereklidir?

if ((temperature < 0) or (temperature > 100)) {
    alert ("DANGER");
    if ((speed > 100) and (load <= 50))}
        speed = 50;
   }
} else {
    check = false;
}
A. 5
B. 4
C. 2
D. 3

Doğru cevap "A. 5". Neden? Biri bunu açıklayabilir mi?

Her atomik durum için her değeri kullanan test senaryoları yapmaya çalıştım:

t = -1, 1, 101

s = 99, 101

l = 49, 51

ve tüm değerlerin kombinasyonunu almamız gerekirse, bunu 5 değil, 3 durumla yapabilirim. Nerede hatalıyım?

Yanıtlar

1 AlexeyR. Sep 17 2020 at 18:17

Bu, kodunuzdaki koşulları etkileyen değerleri gösteren tablodur:

Sıcaklık <0, >100koşullu dört satır olduğundan, farklı testler için her iki sıcaklık eşiği seviyesinin yakınında farklı değerler seçebilirsiniz.

2 MohamedSulaimaanSheriff Sep 17 2020 at 13:21

Test durumunuza referansla, sağladığınız şey doğrudur, ancak uygulamanın / işlevin girdiyi nasıl alacağını düşünün. Yalnızca üç girdi alabilir, bu nedenle koşullarınız girdiye göre bölündüğünde, yürütmek için 5 test durumuna ihtiyacımız var.

Referansınızdan Test Verileri:

t = -1, 1, 101

s = 99, 101

l = 49, 51

bu yüzden test durumunuz şöyle olacak

  1. t = 1 s = 99 l = 49 (pozitif)
  2. t = -1 s = 99 l = 49 (sıcaklık için negatif)
  3. t = 101 s = 99 l = 49 (sıcaklık için negatif)
  4. t = 1 s = 99 l = 51 (yük için negatif)
  5. t = 1 s = 101 l = 49 (hız için negatif)
1 MichaelDurrant Sep 17 2020 at 03:20

Düşün

Sınır Testi

gösterilen koşullara göre.

Koşullar şunlardır:

  • t <0
  • t> 0 ve t <100 ve ...
    • s> 100 ve l <= 50
    • s> 100 ve l> 50
    • s <100 veya l> 50
    • s <100 ve l <50
LeeJensen Sep 17 2020 at 03:57

İfade kapsamının peşindeyseniz, yani kod örneğinin tüm satırlarının test edildiğinden emin olursanız, bu test senaryolarını kullanmak isteyeceksiniz. Buradaki fikir, mantıksal koşulları farklı sınır değerleriyle test etmektir .

  1. -1 (veya daha düşük) değerler kullanıldığında sıcaklık "tehlike" uyarısı verir
  2. 101 (veya daha yüksek) değerleri kullanırken sıcaklık "tehlike" uyarısı verir
  3. Sıcaklık "tehlike" uyarısı verir ve sıcaklık -1 (veya daha düşük) VE hız 101 (veya daha yüksek) olduğunda ve 50 (veya daha düşük) olduğunda hız 50 olarak değiştirilir
  4. Sıcaklık 101 (veya daha yüksek) VE hız 101 (veya daha yüksek) olduğunda ve 50 (veya daha düşük) olduğunda sıcaklık "tehlike" uyarısı verir ve hız 50 olarak değiştirilir
  5. Sıcaklık 0 ile 100 arasında olduğunda kontrol yanlıştır, "tehlike" uyarısı verilmez

Veya farklı bir şekilde yeniden ifade etmek için, kod koşullarına şu şekilde bakabilirsiniz:

1 numara:

if (temperature < 0) {
    alert ("DANGER");
}

2 numara:

if (temperature > 100) {
    alert ("DANGER");
}

3 numara:

if (temperature < 0) {
    alert ("DANGER");
    if ((speed > 100) and (load <= 50))}
        speed = 50;
   }
}

4 numara:

if (temperature > 100) {
    alert ("DANGER");
    if ((speed > 100) and (load <= 50))}
        speed = 50;
   }
}

5 numara:

else {
    check = false;
}