Ад 5% да 96% пакрыцця тэстаў за дзень — Дзякуючы AI CoPilot...
Калі я пачынаў гэты праект і ён яшчэ быў невялікай кодавай базай, я ведаў, што юніт-тэсціраванне будзе важным, але як многія распрацоўшчыкі, адклаў яго ў бок пасля стварэння першага набору тэстаў на карысць пабудовы асноўнай функцыянальнасці. Маёй галоўнай мэтай на ранніх этапах было запусціць middleware логіку — сэрца прыкладання — і ўвасобіць у жыццё Мінімальна Жыццяздольны Прадукт (MVP). Гэта азначала прапусціць вялікую частку пакрыцця тэстамі ў імя прагрэсу.
Як толькі MVP запрацаваў, я звярнуў увагу назад да тэсціравання. Глядзячы на праект, я ацаніў прынамсі тыдзень або два напісання тэстаў, у залежнасці ад складанасці кожнага кампанента. Некаторыя былі б простымі. Іншыя — асабліва там, дзе былі задзейнічаны гранічныя выпадкі або складаная логіка разгалінавання — былі б значна больш затратнымі па часе.
У гэты момант я звярнуўся да ШІ. Я выкарыстоўваў "CoPilot" для дапамогі ў напісанні кода і думаў, што ён таксама можа дапамагчы з тэстамі.
Спачатку я папрасіў ШІ "напісаць юніт-тэсты" без якога-небудзь рэальнага кантэксту ці абмежаванняў. Вынік? Хаос. Тэсты не працавалі, рабілі няправільныя здагадкі пра код, і ўся затэя ператварылася ў цыкл зламанага тэставога кода і расчароўваючых перапісванняў. ШІ згенераваў шмат кода — але не таго тыпу, які я мог бы выкарыстаць без сур'ёзнага рэфакторынгу.
Прарыў наступіў, калі я змяніў свой падыход. Замест стаўлення да ШІ як да чараўніка, я пачаў выкарыстоўваць яго больш як малодшага распрацоўшчыка. Я даваў яму па адному файлу за раз, тлумачыў намер кода і казаў сканцэнтравацца на напісанні дакладных, функцыянальных тэстаў толькі для гэтага файла.
Гэта змяніла ўсё.
Раптам тэсты сталі лягчэйшымі для ШІ для ўкаранення. Яны былі правільна абмежаваныя, выраўнаваныя з фактычнай логікай і не патрабавалі гадзін наладкі. Мой ШІ працаваў файл за файлам, напісаўшы і запусціўшы тэсты.
Менш чым за дзень пакрыццё тэстамі скочыла з 5% да больш чым 96%.
Тэсты, якія займалі б дні для напісання, былі завершаныя за гадзіны, а душэўны спакой, які прыходзіць з амаль поўным пакрыццём тэстамі? Бясцэнны.
Я перайшоў ад аднаго Набору Тэстаў і 5 тэстаў да:
Незалежна ад таго, ці запускаеце вы новы праект або спрабуеце дадаць тэсты ў старэйшы, ШІ можа быць велізарнай эканоміяй часу — калі вы выкарыстоўваеце яго правільна.
Ці выкарыстоўваеце вы ШІ для напісання тэстаў у сваіх праектах? Які ваш досвед?