6.3 Sinov
Machine Translated by Google
Sinovga asoslangan ishlab chiqish sinov va amalga oshirish
o'rtasidagi jarayonni aylantiradi . Berilgan amaliyot uchun test
holatlarini yozish o'rniga, test holatlari birinchi amalga oshirish
bosqichi sifatida yoziladi . Ushbu yondashuv dasturchiga dizaynda
ko'rsatilgan tafsilotlarni kodlash imkonini beradi. Sinov holatlari talab
qilinadigan xususiyatlarning guvohidir. Dastlab, barcha test holatlari
muvaffaqiyatsiz tugadi va asta-sekin, amalga oshirish davom etar
ekan, ko'proq va ko'proq funktsiyalar amalga oshirilganda test
holatlari o'ta boshlaydi. Loyihaning manba omborida yangi kod
tekshirilganda test sinovlari barcha test holatlarini (va kodlash
uslubini) tekshiradigan uzluksiz integratsiya tizimi bilan birlashtirilishi kerak .
Qo'lda sinov ijobiy va salbiy test holatlarini ishlab chiqish va ishlab
chiqarishga tasdiqlarni kiritishni o'z ichiga oladi.
talablar (a, b, c xususiyatlari) yoki operatsion talablar (ishlash,
foydalanish qulayligi). Ham funktsional, ham operatsion talablar
sinovdan o'tkaziladi. Xavfsizlik talablari to'g'ridan-to'g'ri sinovdan
o'tkazilmaydi, chunki, masalan, xatolar yo'qligini isbotlash qiyin.
C/C++ da yozilgan ilovalar uchun biz bilvosita xotira xavfsizligi va
turdagi xavfsizlik kafolatlari mavjudligini test natijalarini kuzatish
orqali tekshirishimiz mumkin. Natijaning to'g'ri hisoblanishini
tekshirish o'rniga biz dasturning ishdan chiqishi yoki xavfsizlik
istisnosi tufayli tugatilganligini o'lchaymiz.
6 Mudofaa strategiyasi
Sinov faqat xatolar mavjudligini ko'rsatishi mumkin, hech qachon
ularning yo'qligini.
61
(Edsger V. Deykstra)
6.3.1 Qo'lda sinovdan o'tkazish
Machine Translated by Google
Birlik testlari - bu alohida birlik yoki dasturning xususiyatiga qaratilgan kichik
sinov holatlari. Google test tizimi [7] bunday testlarni amalga oshirishni
soddalashtiradi. Kerakli dastur holatini ta'minlash uchun birlik test tizimlari keng
ko'lamli soxta operatsiyalarni amalga oshiradi.
Beta sinovi qolgan kamchiliklarni topish uchun dasturiy ta'minotni sinchkovlik
bilan sinab ko'radigan kichik foydalanuvchilar to'plamidan foydalanadi . Har
qanday aniqlangan xato triajlanadi va tuzatiladi. Regressiyadan himoya qilish
uchun har bir aniqlangan kamchilik uchun sinov ishini yaratish yaxshi sinov amaliyotidir .
Qiziqarli savol - test to'plamining sifatini baholash uchun qanday ko'rsatkichdan
foydalaniladi. Deterministik ko'rsatkich to'plamning sifatini, ya'ni qanchalik
yaxshiligini mutlaq baholash imkonini beradi
Tizim testi to'liq dasturni sinovdan o'tkazadi. Misol uchun, veb-sahifani
ko'rsatadigan brauzer va anketani to'ldirish va uni jo'natish kabi muayyan
vazifani bajarish uchun ushbu sahifa bilan o'zaro aloqada bo'lgan
foydalanuvchi.
Integratsiya testlari alohida modullar o'rtasidagi o'zaro ta'sirlarni
sinab ko'rish imkonini beradi . Misol uchun, integratsiya testi
brauzer DOM va uni printerga yuborish uchun DOMning vizual
tasvirini yaratuvchi printer demoni o'rtasidagi o'zaro ta'sirni
o'lchashi mumkin .
kod. Tasdiqlar salbiy sinov holatlarini sinab ko'rishga yordam beradi va ularni
tekshirishni qiyinlashtiradigan har qanday holatni buzishdan oldin xatolarni topishga
yordam beradi .
6 Mudofaa strategiyasi
Regressiya, agar kod o'zgarishi to'satdan mavjud test holatlari muvaffaqiyatsiz
bo'lsa sodir bo'ladi. Har bir tuzatilgan xato uchun sinov holatlarini saqlash xato
yana kiritilsa, erta aniqlash imkonini beradi va shunga o'xshash xatolar ham
paydo bo'lishi mumkin.
62
Machine Translated by Google
Sinov kiritish elementi = 2, inp = [1, 2], len = 2 bayonotni to'liq
qamrab oladi, lekin bajarilish hech qachon tsiklning oxirgi
iteratsiyasini bajarmadi, bu esa bufer to'lib ketishiga olib keladi.
Bayonotni qoplash choralari, agar u bajarilgan bo'lsa, har bir
bayonot uchun. Qamrovni kuzatish oddiy massiv va bajarilganda
har bir bayonot uchun bajarilgan bitni belgilaydigan asboblar
yordamida amalga oshirilishi mumkin (yoki umumiylikni yo'qotmagan
asosiy blok). Bayonotni qamrab olishning kamchiliklari shundaki,
barcha qirralar kuzatilmaydi, masalan, pastadirning orqa tomoni
hech qachon quyidagi misolda bajarilmasligi mumkin:
test to'plami dasturga mos keladi. Qoplash yuqorida aytib o'tilgan
mezonlarga mos keladigan tabiiy ko'rsatkichdir . Qoplash test
to'plamining sifatini baholash uchun ko'rsatkich sifatida ishlatiladi.
Sezgi shundaki, dasturiy ta'minotdagi nuqson faqat noto'g'ri kod
bajarilganda aniqlanadi. Shuning uchun test to'plamining
samaradorligi natijada olingan qamrovga bog'liq. Turli xil to'lovlar
bilan turli xil qamrov ko'rsatkichlari mavjud . Biz bayonot qamrovi,
filial qamrovi, yo'l qamrovi va ma'lumotlar oqimi qamrovini ko'rib chiqamiz.
1
Do'stlaringiz bilan baham: |