Koşul kapsamı nasıl hesaplanır?
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
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.
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
- t = 1 s = 99 l = 49 (pozitif)
- t = -1 s = 99 l = 49 (sıcaklık için negatif)
- t = 101 s = 99 l = 49 (sıcaklık için negatif)
- t = 1 s = 99 l = 51 (yük için negatif)
- t = 1 s = 101 l = 49 (hız için negatif)
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
İ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 (veya daha düşük) değerler kullanıldığında sıcaklık "tehlike" uyarısı verir
- 101 (veya daha yüksek) değerleri kullanırken sıcaklık "tehlike" uyarısı verir
- 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
- 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
- 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;
}