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