fbpx

Програмын чанарыг шалгах арга

Компьютерийн програм, тоглоом, апп зөв ажиллаж байна уу гэдгийг шалгахыг testing (тестлэх) гэдэг.

Программ хангамж тестлэх нь зөвхөн алдаа олох хэрэгсэл биш, систем хэрхэн ажиллаж байгааг ойлгох чухал процесс байдаг. Үүн дотроос хамгийн түгээмэл хоёр тестлэх арга нь Black Box Testing (Хар хайрцагны шалгалт) болон White Box Testing (Цагаан хайрцагны шалгалт). Энэ хоёр арга нь зорилго ижил боловч, хандлага, ашиглах арга нь огт өөр.

1. Black Box Testing

Black Box Testing гэдэг нь системийн дотоод код, логикийг мэдэхгүйгээр, зөвхөн оролт (input) өгч, гаралт (output)-ыг шалгах тестлэх арга юм.

Чи шинэ ухаалаг утас худалдаж авсныхаа дараа товчлууруудыг дарж, апп-уудыг нээж үздэг ч дотор нь юу болоод байгааг мэддэггүй. Зүгээр л ажиллаж байна уу гэдгийг шалгаж байгаа гэсэн үг юм.

Энэ төрлийн тестийн үед тестлэгч системд зөв, буруу, дутуу, хязгаарын утгуудыг оруулж, тэдгээрт систем хэрхэн хариу үзүүлж байгааг ажигладаг. Жишээлбэл, нэвтрэх хэсэгт буруу нууц үг оруулахад зохих анхааруулга гарч байна уу, заавал бөглөх талбар хоосон байхад систем алдаа мэдэгдэж байна уу гэх мэт хэрэглэгчийн өнцгөөс гарч болох бүх нөхцөлийг шалгана. Иймээс Black Box Testing нь хэрэглэгчийн туршлагыг үнэлэх, дутуу эсвэл буруу хэрэгжсэн функцуудыг илрүүлэхэд маш тохиромжтой арга болдог.

Гэвч Black Box Testing нь системийн дотоод логикийг харах боломжгүй учраас код доторх гүнзгий алдаа, буруу алгоритм, эсвэл тодорхой нөхцөлд л илрэх логик доголдлыг заавал илрүүлж чадна гэсэн баталгаа байдаггүй. Зарим тохиолдолд систем гаднаасаа зөв ажиллаж байгаа мэт харагдавч дотор нь оновчгүй, алдаатай код агуулж байх боломжтой.

Black Box Testing-ийн төрлүүд

🔹 Functional Testing

  • Нэвтрэх
  • Бүртгүүлэх
  • Мэдээлэл хадгалах
  • Төлбөр хийх гэх мэт

🔹 System Testing

  • Бүх модулиуд хоорондоо зөв ажиллаж байна уу?

🔹 User Acceptance Testing (UAT)

  • Жинхэнэ хэрэглэгч ашиглахад бэлэн үү?
Давуу талСул тал
Програмчлалын мэдлэг шаардлагагүйДотоод логик алдааг олж харах боломжгүй
Хэрэглэгчийн өнцгөөс шалганаКодын гүн алдааг илрүүлэхэд хэцүү
Бодит амьдралд ойр тестБүх замыг хамруулахад маш олон тест хэрэгтэй

2. White Box Testing

White Box Testing нь програмын эх код, логик бүтэц, өгөгдлийн урсгал, нөхцөл шалгалт, мөчлөг бүрийг бүрэн ойлгож, тэдгээр дээр тулгуурлан тест хийх аргыг хэлнэ.

Чи машин засварчин байлаа гэхэд хөдөлгүүр, утаснууд, электрон хэсгийг шалгаж, бүх зүйл зөв ажиллаж байгааг шалгаж үзнэ. White Box Testing нь үүнтэй яг адил.

Энэ тохиолдолд тестлэгч нь ихэвчлэн хөгжүүлэгч өөрөө эсвэл программчлалын өндөр мэдлэгтэй хүн байдаг бөгөөд кодын мөр бүр, нөхцөл бүр, боломжит гүйцэтгэлийн зам бүр зөв ажиллаж байгаа эсэхийг нарийвчлан шалгадаг.

White Box Testing-ийн гол зорилго нь програм дотоод түвшиндээ логикийн хувьд алдаагүй, бүх нөхцөлд зөв ажиллах чадвартай, илүүдэл эсвэл хэрэггүй кодгүй байх явдал юм. Жишээлбэл if/else нөхцөл бүрт код орж гүйцэтгэгдэж байна уу, loop хэзээ ч дуусахгүй байдалд орж байна уу, exception-ууд зөв баригдаж байна уу зэрэг програмын “дотор механизм”-ийг бүрэн шалгана. Ингэснээр хэрэглэгчийн нүдэнд ил харагдахгүй ч ирээдүйд ноцтой асуудал үүсгэж болзошгүй алдаануудыг эрт илрүүлэх боломжтой болно.

White Box Testing-ийн гол техникүүд

🔹 Statement Coverage

  • Кодын мөр бүр ажилласан эсэх

🔹 Branch Coverage

  • Бүх if / else салбар орсон эсэх

🔹 Path Coverage

  • Боломжит бүх гүйцэтгэлийн зам шалгагдсан эсэх

🔹 Unit Testing

  • Функц бүрийг тусад нь шалгах
Давуу талСул тал
Нуугдсан логик алдааг илрүүлнэПрограмчлалын өндөр мэдлэг шаарддаг
Кодыг оновчтой болгоноТом системд цаг их орно
Алдааг эрт шатанд олноХэрэглэгчийн бодит туршлагыг шууд харуулахгүй

Black Box Testing болон White Box Testing нь аль аль нь дангаараа төгс шийдэл биш бөгөөд харин бие биеэ нөхөж байж жинхэнэ үр дүнг өгдөг. White Box Testing нь програмын дотоод логикийг баталгаажуулж, кодын чанарыг сайжруулдаг бол Black Box Testing нь эцсийн хэрэглэгчийн өнцгөөс системийг үнэлж, бодит хэрэглээнд тохирч байгаа эсэхийг шалгадаг. Энэ хоёр аргыг хослуулан ашигласнаар программ гадаад талаасаа зөв ажиллахаас гадна дотоод бүтцийн хувьд найдвартай, тогтвортой болдог.

Боловсролыг инженерчлэв.

Leave a Reply