От 5% до 96% покритие на тестове за ден — Благодарение на AI CoPilot...
Когато започнах този проект и той все още беше малка кодова база, знаех, че unit тестването ще бъде важно, но като много разработчици, го отложих настрана след изграждането на първия набор от тестове в полза на изграждането на основната функционалност. Основната ми цел в ранните етапи беше да накарам middleware логиката да работи — сърцето на приложението — и да оживя Минималния Жизнеспособен Продукт (MVP). Това означаваше пропускане на голяма част от покритието с тестове в името на прогреса.
Веднага щом MVP заработи, насочих вниманието си обратно към тестването. Като погледнах проекта, оценях поне седмица или две писане на тестове, в зависимост от сложността на всеки компонент. Някои щяха да бъдат прости. Други — особено там, където бяха включени гранични случаи или сложна логика на разклонение — щяха да бъдат много по-отнемащи време.
В този момент се обърнах към AI. Използвах "CoPilot" за помощ при писането на код и помислих, че може да ми помогне и с тестовете.
Първоначално помолих AI да "напише unit тестове" без никакъв реален контекст или ограничения. Резултатът? Бъркотия. Тестовете не работеха, правеха неправилни предположения за кода, и цялото начинание се превърна в цикъл от повреден тестов код и фрустриращи пренаписвания. AI генерира много код — но не от типа, който можех да използвам без сериозно рефакториране.
Прорывът дойде, когато промених подхода си. Вместо да се отнасям към AI като към магьосник, започнах да го използвам повече като младши разработчик. Давах му по един файл наведнъж, обяснявах намерението на кода и му казвах да се фокусира върху писането на прецизни, функционални тестове само за този файл.
Това промени всичко.
Внезапно тестовете станаха по-лесни за AI за реализация. Те бяха правилно ограничени, съобразени с действителната логика и не изискваха часове дебъгване. Моят AI премина файл по файл, като написа и стартира тестове.
За по-малко от ден покритието с тестове скочи от 5% до над 96%.
Тестовете, които щяха да отнемат дни за писане, бяха завършени за часове, а душевното спокойствие, което идва с почти пълно покритие с тестове? Безценно.
Преминах от една Test Suite и 5 теста до:
Независимо дали стартирате нов проект или се опитвате да добавите тестове към по-стар, AI може да бъде огромна икономия на време — ако го използвате правилно.
Използвате ли AI за писане на тестове в проектите си? Какъв е вашият опит?