Technology Newsfeed
Tech

Системийн туршилтууд амжилтгүй болсон

Бид танилцуулах үед а системийн туршилтуудад зориулсан анхдагч тохиргоо 2016 онд Rails 5.1-д би маш их итгэл найдвар тавьж байсан. Онолын хувьд толгойгүй хөтөчийг таны бодит интерфэйсээр дамжуулдаг системийн туршилтууд нь бүхэл бүтэн машин хэвийн ажиллаж байгаа гэдэгт илүү их итгэлийг өгдөг. Мөн энэ нь хар хайрцагны загвараар ажилладаг тул хэрэгжилтийн өөрчлөлтөд илүү тэсвэртэй байх ёстой. Гэхдээ би эдгээрийн аль нь ч бодит амьдрал дээр үнэн болохыг олж мэдээгүйдээ харамсаж байна. Системийн туршилтууд арван жилийн өмнөх шиг удаан, хэврэг, хуурамч сөрөг үр дагавараар дүүрэн хэвээр байна.

Энэ эмгэгийн олон шалтгаан байгаа гэдэгт би итгэлтэй байна. Хөтөч нь төвөгтэй, JavaScript-ээр удирддаг UI нь цаг хугацааны асуудалд өртөмтгий байдаг бөгөөд хар хайрцагны туршилт яагаад бүтэлгүйтсэнийг олж мэдэх нь ихэвчлэн гайхалтай хэцүү байдаг. Гэхдээ миний хувьд хамгийн гол зүйл бол системийн туршилтууд ихэнх цаг хугацаанд хүчин чармайлт гаргах үнэ цэнэгүй болсон явдал юм. Эсвэл өөрөөр хэлбэл, би системийн тестийг найдвартай ажиллуулахын тулд баригдсан алдаануудын ногдол ашгийг харж байснаас хамаагүй их цаг зарцуулсан.

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

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

Гэсэн хэдий ч хамгийн наалдамхай зүйл бол загвар болон хянагчийн туршилтууд илүү сайн, хямд байдаг бизнесийн логикийг турших биш, харин UI логикийг туршиж үзэх явдал юм. Энэ нь JavaScript-ийг турших гэсэн үг юм. Бид автоматжуулсан фронтод байгаа гэдэгт би итгэлгүй байна гэж хэлье.

Миний UI логик явахад тохиромжтой гэдэгт хамгийн их итгэлтэй байдаг арга бол системийн туршилт биш, харин хүний тест юм. Шууд утгаараа гараар жинхэнэ хөтөч дээр дарна уу. Учир нь UI туршилтын хагас нь зөвхөн "ажиллаж байна уу" төдийгүй "зөв санагдаж байна". Ямар ч автоматжуулалт танд үүнийг хэлж чадахгүй.

HEY өнөөдөр 300 орчим сондгой системийн туршилттай. Бид энэ тоог бууруулахын тулд томоохон шалгалтыг хийж байна. Усанд живсэн зардлын төөрөгдөл нь биднийг энэ хэврэг, нүсэр иж бүрдлийг хэтэрхий удаан ажиллуулахад хүргэсэн. Алдагдлаа бууруулах, системийн туршилтуудыг итгэлийн тэгшитгэлийн хамаагүй бага хэсэг болгон багасгах цаг болжээ. системийн туршилтын хүний элементийг хүлээн авах . Магадгүй хэзээ нэгэн цагт бид энэ ажлыг хиймэл оюун ухаанд шилжүүлж болох ч өнөөдрийн байдлаар автоматжуулалтыг орхисон нь дээр гэж бодож байна.