Голдуу миний мэргэжилтэй холбоотой зүйлс буюу мэдээллийн технологийн эргэн тойронд байх болов уу

12/24/2006

Шалгана гэдэг ...

Орос суудлын тэрэг овоо ухуулдаг болохыг андахгүй хэн байх билээ. Өвөл хүйтрээд ирэхээр асахаа больчихно. Зун халуунд ч ялгаагүй халаад орилоод явахгүй. Хэдэн жил эдлээд ирэхээр хаалга үүд нь нээгдэж хаагдахаа болиод, тормоз хоонсны ажиллагаа нь доголдоод, төрөл бүрийн жиирэг резин нь сэтэрч шамарч тосоо гоожуулаад... За даа ер нь нилээн хэцүү дээ.

Одоо ч манайд Япон, Солонгос, Герман, Америк гээд л газар газрын машинууд шахцалдах болж.Япон машин эдлэхэд гар хүрээд ухуулаад байх нь ховор болохыг бүгд л мэддэг болчиж.

Яахаараа ийм тэнгэр газар шиг ялгаа байдаг юм болоо гэж. Оросууд машин хийхдээ хүн унана гэдэгийг мартаад хийчихдэг гэж шоглон ярих нь чиг байдаг хэ хэ.

Дээрх ялгааны үндэс олон зүйл байдаг биз. Гэхдээ хийж байгаа бүтээгдэхүүнээ хэрхэн шалгаж байгаагаас ихээхэн хамаардаг байхаа гэж би боддогийн. Тухайлбал Японууд хийсэн машинаа өвлийн тэсгим хүйтэнтэй ижил орчныг үүсгэсэн өрөөн дотор байлгаад асааж үздэг. Улс нь өөрөө халуун орон юм болохоороо халуунд хэрхэх нь амьдралаараа шалгагддаг биз. Гэхдээ л бүтээгдэхүүн эцсийн байдлаар гарахын өмнө ийм орчинд заавал шалгадаг нь мэдээж. Цаашлаад хаалгаа хэдэн зуун мянга дахин нээж хааж шалгадаг. Хааз тормосыг нь мөн ялгаагүй роботоор мянга түм гишгүүлээд шалгана. Мөн машиныг хүн унах учираас тэр дотор мэргэжлийн архаг жолооч ч байгаа, дөнгөн данган суралцагч байгааг андахгүй бодоод тэр талаас нь бас л шалгана. Жишээ нь урагшаа давхиж байгаад ухардаг араандаа хийх мангархан жолооч ховор хэдий ч гэлээ тэр тохиолдолыг ч гэсэн шалгадаг байх юм. Харин Орос машин энэ тохиолдолд хурдны хайрцаг нь шууд нам эвдэрдэг байх юм.

Би бээр залуухан байхдаа ганцаараа программаа бичингээ бүгдийг нь шалгачихдаг байлаа. Мэдээж хэрэг нэг хүний бичиж байгаа програм учиргүй том биш тул бүгдийг нь шалгаж амжина. Дараа нь алдаа ч гардаггүй. Гэтэл арай олуулаа нийлээд нэг системийг хийгээд эхлэхээр бүтээгдэхүүн маань хэрхэн ажиллахыг шалгахгүй бол болохгүй нь гарцаагүй болдог. Тэгсэн хир нь мөн л шалгах ажилаас зайлсхийдэг дотоод ухамсар надад байсаар л байдаг байлаа. За ер нь тэгээд тестийн ажлыг яг жинхэнэ сонгодог утгаарх зохион байгуулалтаар нь хийдэг туршлага байсангүй. Мэдээж хэрэг өөрөө хөгжүүлэгч хүн тул хүний хийсэн програмаас яаж алдаа илрүүлэхээ мэддэг, ухаад шалгаад байдаг л байлаа.

Одоо ажиллаж байгаа аутсоорсингийн хувьд тестийг 100% хувь хийхгүйгээр алдаагүй програмыг хэрхэн захиалагчдаа хүлээлгэн өгөх билээ. Энд би тестийн тухай хаа сайгүй бичигдсэн байдаг номын үгсийг ярихыг нэг эрмэлзэхгүй ч гэлээ хэдэн зүйл бичсүгэй гэж бодов.

Тестер гэж хэнийг хэлэх вэ?
Түгээмэл байдаг ойлголтын үүднээс бол сонгодог тестер гэдэг нь

  • Тухайн чиглэлд мэргэшсэн гар байх
  • Тухайн бүтээгдэхүүнийг нэвт мэддэг байх
  • Хэрэглэгч захиалагч нарыг сайтар ойлгодог байх
  • Тест тохиолдолуудыг зохиомжлох тал дээр гаршсан байх
  • Төсөлд байгаа сул, муу талыг олох тал дээр маш идэвхтэй хорхойтой байх
  • Заавал компьютерийн мэргэжлээр сургууль төгссөн байх албагүй
гэсэн дүрслэл байдаг. Гэхдээ дээрх дээр хэдэн зүйл нэмэлгүй горьгүй.
  • Script хэлүүдэд мэргэшсэн байх. Учир нь тестийг эхний нэг удаа хийхэд бүх зүйлийг ойлгож байж хийх хэрэгтэй тул хэцүү байдаг. Харин хоёр дахь удаагаа хийхэд их сонирхолтой болж ирдэг. Гэвч гурав дах удаагаа хийхээр уйтгар болж эхэлдэг. Цаашлаад олон давтвал шүдний өвчин... Хэрэв төрөл бүрийн script эзэмшсэн бол ямар ч тестийг script-ээр хийх боломжтой. Тухай нь GUI програм байсан ч GUI дээрх үйлдлийг бичиж аваад хийдэг багаж ч байдаг. Мөн GUI scripting хэлүүд ч байдаг. Хэрэв командын мөрөөс удирдаж болохоор бол shell(unixware), batch(windows)-уудыг ашиглаад тестийг автоматжуулж болох юм. Тэгэхээр тестерүүд бол скрипторууд байх хэрэгтэй. Гэтэл эсрэгээрээ хөгжүүлэгчид скриптор байх албагүй тохиолдол элбэг шүү дээ. Яахав 2000 он хүртэл шахуу тестерүүд нь ижил зүйлийг олон давтдаг байсан үнэн боловч одоо бол хүчтэй скриптуудаар дүүрч байна. Ажиллагаа улам л амархан болж байна.
  • Тестерүүд бол зохиомжлогчид байх хэрэгтэй. Зарим тохиолдолд програм нь тестлэх боломжгүй зохиомжлогдох тохиолдол байдаг. Хэрэв ийм юм болбол яаж тест хийх вэ гэдэг нь там болдог. Иймээс тестер бол зохиомжлох чадвартай програм хангамжийн инженер байх хэрэгтэй.
  • Тестер бол Нэгжийн Тест (Unit Test)-ийн баталгаагаар хангагч байх ёстой. Өөрийн шалгаж байгаа модулийн Нэгжийн Тестийн түвшний алдаа байхгүй гэдэгийг хөгжүүлэгч нь бус тестер нь хариуцдаг, хариулдаг тэр үгэндээ итгэлтэй байж чаддаг нэгэн байх хэрэгтэй. Цаашлаад Тестерүүд бол чанарын баталгааг хангагч нар. Чанар гэдэг хурц асуудал учираас өндөр цалинтай их эрх мэдэлтэй байх тохиолдол бий. Гэхдээ энэнээс болж местний дажин дарапан польтонтой биеийн амрын харагч нэгэн ирвэл... уучлаарай, тэр хүн чадахгүй. Жинхэнэ утгаар нь чанараар хангагч нь тестер л байна.
  • Тестер бол орчныг үүсгэгч байх хэрэгтэй. Дээр дурьдсанчлан машиныг шалгахдаа өвлийн тэсгим хүйтнийг зохиомлоор үүсгэхгүйгээр хэрхэн шалгах билээ. Сансарт хиймэл дагуул хөөргөхийн өмнө түүний удирдлагын програмыг тойруулаад хиймэл сансар үүсгэх болно. Тийрэлтэт онгоцны нисгэгч жинхэнэ онгоц жолоодохоосоо өмнө онгоц жолоодож байгаа мэт хиймэл онгоц дотор тойрсон тэнгэр мэд дэлгэцэн дотор ниснэ. 1 сая долларын төхөөрөмжтэй холбохын оронд түүнтэй ижил хиймэл орчныг тестер үүсгэнэ. Хөгжүүлэгч программаа бичиж байхад тестер хүрээлэн орших орчин, симуляторын програмыг мөн бичиж сууна. Цаашлаад захиалагчийн болон хүлээн авагчийн орчинтой ижил орчныг хөгжүүлэгчийн дэргэд үүсгэж өгнө.
  • Тестээр хөгжүүлэгчдийг удирддаг байх. Анхны тест хийгдсэнээр програм ажиллаж эхэлдэг. Хөгжүүлэлт хийхэд эхлээд ямар тестийг даваад дараа нь ямар тестийг давах ёстой вэ гэдэг бол үндсэндээ програм хангамжийн төслийн төлөвлөгөө. Иймээс энэ төлөвлөгөөг тестээр тодорхойлж ажлын ахицыг тестээр хэмжих юм. Иймээс тестэр бол төслийн төлөвлөгч нь байх хэрэгтэй.
  • Тестерүүд бол нотлогчид байх. Математикт теоремийг математик аргаар логикоор баталдаг. Үүнтэй төстэй сэтгэхүйгээр хөгжүүлэгчид программын алив ажиллагааг програмын соорсыг харуулж байгаад батлах гэдэг. Гэвч энэ бол огт хүчингүй зүйл. Програмчлалын үйлдвэрийн ертөнцөд тест хийгээд гарч үр дүн л цорын ганц нотолгоо байдаг. Иймээс алдаатай гэдэгийг батлах, мөн алдаагүй гэдэгийг батлахад зөвхөн үр дүн л хэрэгтэй бөгөөд тестерүүд чухам үүнийг хийдэг байх хэрэгтэй юм.
Эцэст нь хэлэхэд тестер гэдэг бол үнэндээ бол энгийн нэгэн кодероос дээгүүр програм хангамжийн инженер байна.

Дээр ярьсныг гэхдээ эсрэгээс нь аваад үзье л дээ. Өөрөөр хэлбэл тестер гэж хэнийг хэлэх вэ гэдэг талаар хөгжүүлэгч нар юу гэж боддог вэ? Үнэндээ саяхныг хүртэл би доорх маягийн бодол далд явдаг байсныг нуух юу байхав.
  • Тестер бол маанаг гэх маягийн бодол. Шинийг сэтгэдэггүй хүний хэлснийг л хийдэг хүн байвал хаана ямар ч ажил дээр байсан маанаг л болж таарна. Тэгэхээр маанаг кодер ч бас л элбэг шүү дээ. Маанаг кодер ч мөн ялгаагүй зохиомжийн бичиггүй бол юу ч хийж чаддагүй. Хэрэв тестер шинийг сэтгэдэггүй бол, хүн заахгүй бол, тестийн бичиг баримтгүй бол юу хийхээ мэддэгүй байвал маанаг гэдэг нь үнэн юм.
  • Тестерүүд бол хөгжүүлэгчидийн үйлчлэгч гэж бодох нь байдаг. Ийм сэтгэлгээг уур амьсгал компани дотор ямар нэг байдлаар бий болбол бараг гамшиг. Учир нь яг адилхан 2 залуу байтал хөгжүүлэгийг нь зохиомлоор эсвэл моодоор илүү гэж бодох хэлбэр харагдаад эхлэбэл тестер залуу бухамдах нь мэдээж. Гэхдээ залуусаа ийм үе Америкад байгаад дайраад ирсиин байна. Одоо энэ сэтгэлгээ арилж эхэлж байна. Мэдээж мань мэтийн хуучинсаг нөхдүүд ховор байх.
  • Тест гэдэг нь уйтгартай нэгэн хэмийн ажил гэж боддог. 2000 он хүртэл тийм байсан гэж бодож байна. Харин одоо бол дээр хэлсэнчлэн скриптер байж чадаваас нэгэн хэмийн бус юм.
  • Тестинг шинийг сэтгэгч биш гэж бас бодно. Үнэндээ тестерүүд бол зохиомжлогч, хөгжүүлэгч, кодеруудын хэнийх нь ч бодоогүй хараагүй асуудлуудыг олж илрүүлж шийдлийг гаргадаг. Энэ утгаараа маш сонирхолтой ажил. Өнөөдөр гүүр инженерээр ажиллах үед иймэрхүү тохиолдолууд олон гардагаараа маш сонирхолтой байдаг.
  • Тест гэдэг дэлхийтэй мэндлэх садаа гэж бодох нь бий. Үнэхээр хөгжүүлэгч сайхан бүтээгдэхүүн хийгээд олны хүртээл болгомоор гижиг нь хүрч байхуйд тестерүүд садаа болдог нь гарцаагүй үнэн.
  • Тестерүүд бол ядаргаа гэсэн бодол бий. Учир нь чанарын дүрмүүд буюу гутлаа зүүн баруунаа сольж өмссөн байна гэдэг шиг зүйл ярьдаг гэж унтууцдаг. Энэ үнэхээр үнэн. эхдээ гутлаа зөв харуулаад өмсдөг байвал тестер ядаргаа болохгүй л дээ.
※  Дээрх үгнүүдийн эсрэг хавчуулмаар нэг үг бол чанар гэдэг бол чанарын баг, тестерийн багуудын хариуцах зүйл гэсэн сэтгэхүй түгээмэл байдаг нь туйлын буруу зүйлийн нэг. Үнэндээ чанар гэж юуг хэлэх вэ гээд асуувал хэн ч хариулж чаддагүйгээр нь бодвол энэ бол хүний ухамсарын хэмжээндэх аксиом юмдаа. Тиймээс үнэндээ бол чанар гэдэг бол хүний хариуцлага гэж бодохын зэрэгцээ хэрхэн тест хийх вэ гэдэгийг хүн болгон бодож ажиллах хэрэгтэй юм.

Заадаа. Тестер гэж хэнийг хэлэхэв гээд баахан хадуурлаа. Гэхдээ нөгөө талд тест гэж юу? Байгууллага нь ямар нөхцөлөөр хангах ёстой гэдэгээс нь ярихгүй бол тестер яаж эрх, үүргээ гаргаж чадах билээ.
  • Хамгийн нэгдүгээрт цалингийн хувьд Тест Инженер, Програм хангамжийн Инженер, Чанарын Инженер бүгд ижил байх хэрэгтэй юм. Өөрөөр хэлбэл энд ажилаа сонгохоос цалингаа сонгох гэсэн асуудал үүсч болохгүй юм. 80-д оны эхээр тест инженерүүд бага цалинтай байснаас төвөгтэй асуудал тогтмол үүсч байсан туршлага байгаад эдүгээ манайхаас өөр улсад энэ асуудал алга болсон байх юм. Цаашлаад Тест Инженерүүд нь ижил санал, шийдлийн эрхтэй байх хэрэгтэй юм. Эргээд байгууллага нь ч өөрөө ижил чадвартай, хүндлэлтэй хүнийг сонгох хэрэгтэй юм.
  • Тооний хувьд 4 хөгжүүлэгчид нэг тестер ногдохоор тооны харилцаатай байна байхаа гэсэн бодол байдаг. Үнэндээ энд би нарийн мэдлэг байхгүй боловч Японы төслүүдээс харахад төслийн зардлын 40%-30% нь тестэнд зориулагддаг гэдэгээр бодоход, цаашлаад аутсоорсинг дээр ажиллаж байгаа сүүлийн ажлуудыг баримжаагаар харахад тооны хувьд иймэрхүү харилцаатай байх юм болов уу гэж баримжаалж байгаам.
  • ...
За уг нь жаахан хуучилмаар байгаа боловч зулзаганууд пижигнээд хажууд ирж чангаагаад болдогггүй. Бодвол ээж нь зааж өгч явуулсан байж магадгүй нь. Дээрх яриагаа дараа үргэлжлүүльедээ.

8 Сэтгэгдэл:

Цахирмаа said...

Аи Ти мэдэхгүй ч гэсэн таны бичлэгнээс монгол Co.-ын амьд менежмент ханхалдаг тул амтархан уншдаг шүү. Илүү үглэхэд Японы компаниудын менежментийн нууцуудыг бодит байдал дээр нь харъя гэвэл 就職活動 хийгээд үзэхийг зөвлөе.Бүртгүүлээд 会社説明会 нь очиход л болно. Олон сонин юм ойлгож авдаг болохоор үнэгүй менежментийн сургалтанд суусан гэсэн үг.Санаандаа орсон дуртай юмаа асууж хариулт авах боломжтой.Би хагас жилд 30 орчим коmпаниар явж үзсэн.Олон ч юм ойлгосон.
За аавдаа адуу манахыг заачихав уу яав :P

А.Ганбаатар said...

Хэрэгтэй чухал зүйл бичсэн байна баярлалаа Gobi.

Tamir said...

Энд ёстой загатнасан газар майжих шиг боллоо. Сүүлийн үед манай IT-ийн компаниуд программ хангамжийн чанар, программ хангамжийн хяналт, шалгалт, найдвартай ажиллагааны талаар ямар арга хэмжээ авч ажилладаг бол гэж бодож байсан юм. Учир нь Монголд байхад зарим компаниудтай гэрээ байгуулан нэг программ хийлгэдэг гэтэл тэр нь нөгөө л чанарын шаардлага хангаагүй бас найдвартай ажиллагааны тал дээр зөндөө алдаа гарч ирнэ. Тэгээд тэр компани руугаа хандахаар баахан зүйл бичиж тэмдэглэж аваад л хэд хоногийн дараа засаад дахиж суулгана...

Ирэх семестерт Программ хангамжийн чанарын удирдлага (Software Quality Management) хэмээх хичээл сонгосон байгаа тэгээд энэ талаар сайн мэддэг болохоороо онолын талаас нь та бүхэнтэй санаа бодлоо хуваалцанаа.

Anonymous said...

Sn bn uu ene udriin mend hurgey. Ajil uilst tani ih amjilt husye. Bi blogiig chini unshih duratai.
Ih saihan zuils bichsen baidag shuu.
Bi chamtai sanal bodloo huvaaltsah gesen yum.
Bi 2 jiliin umnu surguulia tugssun yum. Bi ug ni programistiin mergejiltei
bolovch mergejleeree ajillaagui yum. Bi programistaar ajillana, mergejliin programist bolno gesen zorilgotoi baisn bolovch surguulia tugsuud uur salbart ajillsn yum. Tegeed odoo mergejleeree ajillahiig mash husej baigaa bolovch minii chadvar uneheer muu baih yum. Oiriin ued bi programchlalaaraa hicheenguilen oroldoj baigaa bolovch neg l ahij uguhgui yum. Bi odoo 25 nastai. Bi ta nar shig sain programist bolj chadah bolov uu? Bi sain programist bolohiigih ih huseh bolson.
Sain hicheevel Jiliin dotor bi dund hemjeenii program zohioj chaddag boloh bolov uu?
Bi ug ni dund surguuld baihdaa mathemathict ih sn huuhed baisn. Odoo ch gesen duugiinhee ahlah angiin hundevter bodloguudiig bodchihood baigaa bolohoor mahtematik chadvar maani heveeree baigaa yum bn gej bodson.
Bi yaj hicheellevel deer ve. Nadad unetei saihan zuvluguu ugch tuslaach.
Chamtai bi holbootoi baij zuvluguu avch baij boloh uu.
minii mail: m_life9@yahoo.com

Anonymous said...

2~3 software development 20~30 hyntei groupeeree hiij baihad, niit zartsuulah hugatsaa bolon hynii hudolmoriin 20~30%iig n development or coding (kaihatsu)d, 70~80%iig n test (kensyou, kakunin, tesuto) d zartsuuldag baij bilee...
Mongold software development oursourcing hugjuulehiin tuld, testing iig systemteigeer hiij surah n zailtshgui shaardlagatai zuilsiin neg baih.

zalituneg said...

Za gobigiin blog ingeed amttai baidag yumaa. Bodoj yavsan zuils davstaigaa chiherteigee tsug am ruugaa hii geed baij baihiin. hehe.
Deer uguulsen testeriin chanaruud deer neg zuil nemmeer sanagdlaa. 1. Tester ni ochuuhen ch zuiliig uldeelgui nyagt nyahuur zan chanartai hun baih heregtei gej bodjiino. Document beldeh yavtsad yopon usegiin buten orgontei hooson zai(zenkakusupeisu) hagas orgontei usegiin(hankaku) dund orchihsoniig nadad sanuulj helhed bi ineeh ch bish uurlah ch bish bolj baij bilee. Suuld uchiriig ni sonsohod hereglegch iimerhuu aldaag ajiglaval system buren testlegdeegui yumuu gesen asuudal uusdeg tuhai sonsood uneheer argagui yumdaa gej bodson yum.
2. Japan management, America management gedegiin yalgaj oilgovol dugnelt hiihed iluu hyalbar boloh bolov uu. Japan management 99% naidvartai chanartai buteegdehuun gargaj hereglegchiin itgel huleene gedeg bol Amerik management Shini buteegdehuun hurdan gargaj Zah zeeliig turuulj ezleh gesen bodlogo baridag gej duulsan yum baina. Tiim ch bolood delhiid japan ii software gej baidaggui bizee.

Tsatsral said...

Uneheer zagatnasan gazar maajiv gedeg bolj. Minii bodloor Mongold Testing hugjij ehelj baigaa. Mer serhen end tendhiin IT companid Support-toi holbootoigoor programiin chanartai holbootoi heltes garch irj, humuus ch bas todorhoi hemjeenii medeelel gadnii web-s avdag bolson gej bodoj baina.

Battur said...

Ганган бичлэг гэдэг чинь л энэ байх да. Энд холбочихлоо: Сорилын талаархи бага сага тэмдэглэл...