1.3.6 Dasturni tekshirish
Umuman dasturni tekshirish yoki testlash xatolar bor yo‘qligini aniqlsh maqsadida uning
bajarilishini, dasturni juda ko‘p ishlatishga majburlash kerak, ya’ni unga destruktiv munosabatda
bo‘lish kerak. Dastur muallifga buni qilish qiyin, shuning uchun testlash loyihalash va kodlash
bu umuman shug‘illanmaydigan mutaxasislar o‘tkazadilar. Bizning sharoitlarda dasturni
tekshirish sozlashning bir qismi hisoblanadi, shuning uchun ish dastur muallifining o‘zining
o‘tkazishiga to‘g‘ri keladi. Bundan maqsad nafaqat xatolar mavjudligini aniqlash shu bilan birga
uni qidirishni yengillashtirish hisoblanadi. Shu bilan birga ba’zan musobaqa qatnashchilari
kiruvchi ma’lumotlarga muvafaqiyatli ishlaydigan dasturni sozlaydilar.
Shunday qilib bir nechta umumiy mulohazalar:
Testni rejalashtirib dasturda xatolar mavjud deb taxmin qiling;
Testlar to‘plamini yarata turib har bir test uchun oldindan olinishi mumkin bo‘lgan
natijani aniqlang;
Dasturni nima uchun mo‘ljallaganini aniqlashtirish hamda uning nima qilishi kerak bo‘lsa
shuni qilayotganini aniqlang;
Agar testlar to‘plami katta bo‘lsa, u holda oddiy xatolarni chiqara oladigan yanada oddiy
testlarda dasturni tekshiring;
Xatolar to‘planish xossasiga ega. Mana shundan dasturning biror joyida xatolar qanchalik
ko‘p topilsa, ular ana shu yerda yana mavjud degan paradaksod xulosaga olib keladi.
Shuning uchun dasturning ushbu qismini o‘ta katta diqqat bilan tekshirish kerak;
Test faqat bir marta ishlatiladi deb talqin qilmang;
Testlash natijalarini olib, ularni diqqat bilan o‘qing. Olingan va kutilayotgan chiquvchi
ma’lumotlarning har bir mos kelmasligi dasturni sozlash uchun axborot beradi.
Testlar to‘plamini yaratishning ikki yo‘li mavjud: ularning bittasi dastur spitsifikatsiyasidan,
ikkinchisi uning mantig‘idan foydalaniladi. Musobaqalardagi turlar tabiiy ravishda ichki tuzilishi
noma’lum bo‘lgan qora quti singari sinab ko‘rib, birinchi usuldan foydalanadi. Bu usul
ma’lumotlar bilan boshqariluvchi testlash deyiladi. So‘nggi variant mavjud –testlar sifatida
barcha mumkin bo‘lgan ma’lumotlar imtihonlari hisoblanuvchi to‘la to‘kis kiruvchi testlash
mavjud. Bu variantni deyarli amalga oshirib bo‘lmaydi, shuning uchun chegaralangan biroq shu
vaqtning o‘zida kiruvchi ma’lumotlarning e’tiborli to‘plamlarini izlash kerak. Ma’lumotlarning
boshqaruvchi testlashning real usullari kiruvchi ma’lumotlarning ko‘pchiligini sinflarga shunday
ajratiladiki, bunda qandaydir sinfning barcha nusxalarini aniq ma’noda bir xil natijalarga olib
keladi. Masalan:
kvadrat tenglamaning ildizlarini hisoblashda uning
haqiqiy kayeffisiyentlari bo‘yicha uning barcha uchta(a,b,c) coni ular uchun
bo‘lsa bitta va bitta javob berishi kerak (ildizlar yo‘q). Shuning uchun dasturning shunday
uchliklardan bittasida tekshirish yetarli. Shunday qilib o‘zining ekvivalentlik sinflarini taqdim
etuvchi testlar to‘plami ishlatiladi. Shunday qilib xatolarni aniqlash nuqtayi nazaridan maksimal
foyda beruvchi testlarni tanlash uchun zarur hisoblanadi. Musobaqalarning sharoitlarida mumkin
bo‘lgan kiruvchi va chiquvchi ma’lumotlarni qiymatlarini chegaralarini hisobga olib
spesifikatsiyasi ifodalangan har bir imkoniyat uchun testlarni tayyorlaydilar. Agarda masala
shartiga ko‘ra kiruvchi ma’lumotlarning alohida odatiy qiymatlari mavjud bo‘lsa, ular ham
tekshiriladi. Agar kiruvchi ma’lumotlarning to‘g‘riligi kafolatlanmagan bo‘lsa, mumkin
bo‘lmagan qiymatlariga testlar qo‘shiladi. Real dasturlar yarata turib dastur mantig‘i bilan
boshqariladigan testlashni ham ishlatadilar. Dastur oq (shaffof) quti singari qaraladi. Bu yerda
dastur mantig‘i tahlil qilinadi, spesifikatsiya e’tiborga olinmaydi. Bu yo‘l dastur to‘xtab
qoladigan hisoblash yo‘llarini aniqlashtirish uchun mo‘ljallangan. Haqiqatda esa testlar
to‘plamini qoniqtiradigan turli xil sharoitlarda ishlatadilar. Masalan: har bir operator
bajarilyaptimi, tarmoqlanish operatorlarida har bir tarmoq mos keladimi, har bir sikl tanasi
minimal, maxsimum va qandaydir marta bajariladi. Test to‘plamini shakllantirib odatda, avvalo,
qora quti yaqinlashuvini ishlatadilar, keyin esa dasturni o‘rganib dastur mantig‘i bilan
bog‘langan test qo‘shiladi.
Do'stlaringiz bilan baham: |