Favqulotda holatlarda tekshirish. Dasturni tekshirishning oxirgi bosqichida o‘zgaruvchilar qiymatlarining o‘zgarish sohasidan tashqarida bo‘lgan ma’lumotlardan foydalanadilar. SHu boisdan ham quyidagi savollarga javob olish muhim hisoblanadi:
nima bo‘ladi, agar dasturda manfiy qiymatli yoki nol qiymatga ega bo‘lgan ma’lumotlarni qayta ishlash ko‘zda tutilmagan bo‘lsa?
dastur o‘zini qanday tutadi, agar massiv elementlarining soni tavsiflashdagi qiymatlardan oshib ketsa?
qanday holat kelib chiqadi, agar simvollar ketma-ketligi tavsiflangan qiymatidan uzun yoki qisqa bo‘lsa?
Nima bo‘ladi, agar son juda katta bo‘lsa, aksincha, juda kichik bo‘lsa?
Noto‘g‘ri ma’lumotlar EHMga kiritilmasligi zarur! Bunday cheklash muammoni to‘la hal qila olmaydi, chunki noto‘g‘ri ma’lumotlar operatorning beparvoligi, yo‘riqnomani noto‘g‘ri tushunishi va boshqa har qanday holatdarda hosil bo‘lishi mumkin. SHu boisdan ham dasturning o‘zi noto‘g‘ri ma’lumotlarni inkor etmog‘i darkor. Agar dastur bunday vositalar bilan muhofazalanmagan bo‘lsa, unda dasturchi xatolarni aniqlash uchun juda ko‘p vaqtini sarflashi mumkin.
Dasturni, dasturiy vositalarni normal, ekstremal va favqulotda sharoitlarda tekshiring!
Test ma’lumotlarini algoritmning har bir tarmog‘ini tekshirish uchun tayyorlang!
Testlashga misollar. 1-misol. Parallelopipedning dioganal uzunligini hisoblash modulini tekshirish. Dioganal uzunligi quyidagi formula yordamida hisoblanadi:
Javob:
Testlash namunalari quyidagi jadvalda keltirilgan
Test
№
|
a
|
b
|
c
|
Tushuntirish
|
1
|
1
|
1
|
1
|
juda yaxshi boshlang‘ich test
|
2
|
1
|
2
|
3
|
normal sharoitda tekshirish
|
3
|
0
|
0
|
0
|
ekstremal sharoitda tekshirish, natija nolga teng bo‘lishi zarur
|
4
|
0
|
1
|
2
|
paralelopiped emas? Nima bo‘ladi?
|
5
|
1
|
0
|
3
|
paralelopiped emas? Nima bo‘ladi?
|
6
|
2
|
1
|
0
|
paralelopiped emas? Nima bo‘ladi?
|
7
|
1
|
-6
|
3
|
noto‘g‘ri ma’lumotlar. Buni dastur aniqlashi zarur. Ma’lumotlarni blokirovka qilish.
|
…
|
…
|
…
|
…
|
. . .
|
2-misol. Kvadrat tenglamaning ildizlarini hisoblash modulini tekshirish. Kvadrat tenglamaning ildizlarini quyidagi formula yordamida hisoblaymiz:
Testlash namunalari quyidagi jadvalda keltirilgan
Test
№
|
a
|
b
|
c
|
Tushuntirish
|
1
|
1
|
1
|
-2
|
yaxshi boshlang‘ich test
|
2
|
1
|
0
|
0.25
|
normal sharoitda tekshirish
|
3
|
0
|
0
|
0
|
bunda nima bo‘ladi?
|
4
|
0
|
2
|
1
|
faqat bitta ildiz aniqlanishi zarur
|
5
|
2
|
1
|
0
|
hammasi joyida, haqiqiy ildizlar ikkita
|
6
|
1
|
1
|
1
|
ildizlar mavhum
|
7
|
0
|
0
|
2
|
tenglama yo‘q, noto‘g‘ri
|
8
|
0
|
2
|
0
|
bitta haqiqiy ildiz mavjud
|
9
|
2
|
0
|
0
|
ikkita haqiqiy ildiz mavjud
|
…
|
…
|
…
|
…
|
…
|
Dasturdagi matematik hisoblashlarni testlash. Matematik hisoblash qismlari, modullari, tarmoqlari mavjud bo‘lgan dasturiy vositalarni testlashda hisoblash natijalarida bo‘ladigan uchta asosiy xatoliklar manbalarini e’tiborga olmoq zarur:
Dastlabki ma’lumotlardagi xatoliklar. Ma’lumotlarni EHMga kiritishdagi xatoliklar. Irsiy xatoliklar – o‘zgaruvchilarning (parametrlarning ) qiymatini o‘lchash aniqligining cheklanganligi bilan bog‘liq bo‘lgan;
Analitik kesib tashlash (usechenie) xatoliklari – cheksiz matematik hisoblash jarayonlari chekli algoritmlar bilan almashtiriladi, (masalan, cheksiz kamayuchi qatorning 7, 10, 20, ..... xadlari bilan cheklanish, keyingi hadlarni tashlab yuborish, hisobga olmaslik), natijada qoldiq xadlar xatoligi kelib chiqadi;
Yaxlitlash xatoligi – EHMda arifmetik amallarni bajarish aniqligining cheklanganligi, ya’ni ichki xotirada razryadlar sonining cheklanganligi hisobiga kelib chiqadigan xatoliklar (masalan, 1/3 = 0.33333333……3).
Dasturni sistemali sinash. SHu paytgacha dasturni, dasturiy vositalarni testlash bo‘yicha fikr yuritdik. Biroq, undan ham muhimroq juda katta muammo mavjud – dasturiy ta’minot sistemasini testlash yoki sistemali sinash. Odatda, katta sistemalarni sinash jarayoni quyidagi bosqichlarga bo‘linadi.
elementlarini testlash;
modullarni testlash;
sistemali sinash;
qabul qilish nazorati;
dala sharoitida sinash;
sanoat darajasida sinash;
Dasturiy vositalarni sinashni rejalashtrish. Dasturiy vositalarni risoladagidek testlashning asosiy zaruriy shartlaridan bittasi – dasturiy vositalarni loyihalash jarayonida testlash uchun yetarlicha vaqt resursini rejalashtirish zarur. Amaliy ishlar shundan dalolat beradiki, testlash uchun sarflanadigan vaqt dasturlash uchun ketgan vaqtdan ko‘p bo‘lishi kerak.
Katta hajmdagi dasturiy sistemalar uchun hamma tomonlarini hisobga olgan holda sistemali tarzda sinashni o‘tkazmoq zarur, bundan yana qo‘shimcha vaqt resurslari talab qilinishi mumkin. Masalan, AQSH NASA markazining ma’lumotlari bo‘yicha “Appolon” loyihasining dasturiy ta’minotini yaratish uchun ajratilgan umumiy xarajatning 80% dasturiy vositalarni sinash uchun sarflangan.
Dasturiy vositalarni sinash uchun vaqtni yetarli darajada rejalashtiring!
Dasturiy sinashlarni rejalashtirish:
dasturiy vositalarni sinash grafigini tasdiqlash;
sinash grafigi bo‘yicha ish olib borish;
dasturiy vositalarni etarli darajada to‘liq tekshirilishiga erishish.
Dasturiy vositalarni qanchalik to‘liq tekshirilganligini baxolash. Ayrim hollarda dasturiy mahsulotni testlash qanchalik to‘liq bajarilganligini bilish zarur bo‘lib qoladi. Bunday baholashning elementlari quyidagi ma’lumotlar bo‘lishi mumkin:
dasturni tekshirilgan qismlarining ulushi, bu erda tekshirishni 100% gacha olib chiqish kerak;
dasturdagi shartli o‘tishlarning tekshirilganlik foizi, dasturda har bir mantiqiy tarmoqni tekshirishni 100% ga etkazish;
dasturning segmentlashtirilganlik darajasi, yaxshi segmentlashtirilgan dasturni testlash, odatda, samarali va mukammal bo‘ladi;
dasturning alohida qismlarining harxil holatdagi va mukammal o‘zaro ta’sirlarining tekshirilganlik darajasi.
Dasturiy vositalarni testlashning eng nozik joyi, odatda, eng oxirgi bosqichi, elementlarini baholash hisoblanadi.
Dasturga o‘zgartirish kiritilgan har qanday holatdan keyin testlashni qaytaring!
Yakuniy eslatmalar. Dasturchining kasbiy faoliyati, kvalifiksiyasi to‘g‘risida fikr yuritish uchun dasturiy mahsulot keng miqyosda foydalanishga topshirilgandan keyin aniqlangan xatolariga qarab amalga oshiriladi. SHu boisdan ham sekin ishlaydigan, biroq, juda yaxshi tuzilgan va mukammal tekshirilgan dasturlarni yaratuvchi dasturchi bo‘lish yaxshiroq, chunki shoshqaloqlik qilib mukammal ishlaydigan dastur yoki dasturiy vositalarni yaratib bo‘lmaydi.
Dasturiy vositalarni xatosiz yaratish – juda qiyin va ma’suliyatli ish!
Dostları ilə paylaş: |