testing

Unit Test’lar haqida (1.3). Nima uchun test qilish lozim?

Ko‘p dasturlar avtomatlashtirilgan testlardan foydalanilmagan holatda tuziladi. Demak avtomatlashtirilgan testlar – dasturlash jarayonini majburiy bo‘lmagan tashkil etuvchisi hisoblanadi. Kent Bek (http://en.wikipedia.org/wiki/Kent_Beck) bu savolga ikkita javob beradi: birinchisi qisqa muddatli, ikkinchisi uzoq muddatli. Uzoq muddatli istiqbol tarafdan testlar dasturga ko‘proq yashash imkonini beradi (albatta, garda ular yaxshi ishlab turgan va kerakli tarzda ishchi holatda tutib turilsa). Agarda sizda testlar mavjud bo‘lsa, siz uzunroq vaqt mobaynida dasturga  kattaroq o‘zgarishlarni kiritishingiz mumkin. Agarda sizning testlaringiz bo‘lmasa, sizda bunday imkoniyat yo‘q, chunki har qanday o‘zgartirish sababli natija kutilmagan holatda bo‘ladi, hamma u halokat ham bo‘lishi mumkin. Agarda siz testlarni yozishda davom etsangiz, vaqt o‘tishi bilan sizni tizimga bo‘lgan ishonchingiz oshib boradi.

 

Agarda test qilish faqatgina uzoq muddatli istiqbolda kerak bo‘lib ko‘rinsa, bu narsa haqida esdan chiqarish oson. Bunday holatda ko‘pchilik test qilish bilan faqatgina shunga majbur bo‘lganliklari sababli shug‘ullanadilar, yoki ularni ishini kimdir yaxshilab kuzatib turganligidan. Kuzatuvchini e’tibori kuchsizlanishi bilan, yoki ishni topshirish muddati tezlik bilan yaqinlashgani sari, yangi testlarni yozish ham to‘xtatilib, mavjud bo‘lgan testlarni ishlatili ham to‘xtatiladi va natijada butun tizim bo‘laklarga bo‘linib ketadi. Shunday qilib, agarda biz inson tabiatiga munosib ravishda ish yuritmoqchi bo‘lsak va test qilishni yo‘lga qo‘ymoqchi bo‘lsak, test qilish uchun muhim omil kerak bo‘ladi.

 

Bunday muhim omil bor. Testlarni ishlatib dasturlash – testlarsiz dasturlashdan ko‘ra yoqimli jarayon. Siz yanada ishonchilroq kod yozasiz. Sizda hech qachon: “Tizimni shu joyiga o‘zgartirish kiritish kerak, ammo u bu narsani buzib qo‘ysamchi?” ga o‘xshash qo‘rqinch paydo bo‘lmaydi. Siz faqatgina kodni o‘zgartirasiz va barcha testlarni ishlatib yuboruvchi tugmani bosasiz. Shunda agarda ekranda yashil rang yonsa, o‘z ishingizni yanada ko‘proq ishonch bilan davom etishingiz mumkin. Bu omil o‘ylab topilgan emas. Test qilgungacha bo‘lgan dasturlash bilan, test qilib bo‘lgandan keyingi dasturlash orasida juda katta farq bor, va bu faqatgina uzoq muddatli istiqboldagina namoyon bo‘lmaydi. Yashil chiroq yongan vaqtdagi sizda paydo bo‘luvchi ishonch his – tuyg‘usini hech narsa bilan solishtirib bo‘lmaydi.

 

Ammo xavf mavjud. Noto‘g‘ri tashkillashtirilgan testlash – bu xuddi butun tizimga pushti rangli ko‘zoynak bilan qarash degan gap. Siz tizim bilan hamma narsa joyida degan aldamchi ishonch olasiz – barcha testlar ishlab turibdiku. Siz ortingizda tuzoq qoldirib ketayotganingizni payqamasdan, olg‘a intilishda davom etasiz. Keyingi safar shu yo‘ldan o‘tgan vaqtingizda esa, qopqon ishlab ketishi mumkin. Yechim? – Tartib (printsip) lardan birini esga olaylik Lean Software Development: Amplify Learning. O‘z saviyamizni kengaytirganimiz, doimiy takomillashganimiz sari, biz burnimizdagi ko‘zoynakni haqiqiy rangini ko‘rishimiz mumkin.

 

(471 marta o'qilgan, bugun 1 marta o'qildi)

O'xshash maqolalar: