Від 5% до 96% покриття тестами за день — Завдяки AI CoPilot

Від 5% до 96% покриття тестами за день — Завдяки AI CoPilot...

16 May 2025

5

хв читання

AI-інновації

Adrian Sweeney

Коли я розпочинав цей проект і це все ще була невелика кодова база, я знав, що юніт-тестування буде важливим, але як багато розробників, відклав його на потім після створення першого набору тестів на користь побудови основної функціональності. Моєю головною метою на ранніх етапах було запустити middleware логіку — серце додатку — і втілити в життя Мінімально Життєздатний Продукт (MVP). Це означало пропуск великої частини покриття тестами в ім'я прогресу.

Як тільки MVP запрацював, я звернув увагу назад до тестування. Дивлячись на проект, я оцінив принаймні тиждень або два написання тестів, залежно від складності кожного компонента. Деякі були б простими. Інші — особливо там, де були задіяні граничні випадки або складна логіка розгалуження — були б набагато більш витратними за часом.

В цей момент я звернувся до ШІ. Я використовував "CoPilot" для допомоги в написанні коду і подумав, що він також може допомогти з тестами.

Ранні промахи з ШІ

Спочатку я попросив ШІ "написати юніт-тести" без будь-якого реального контексту чи обмежень. Результат? Безлад. Тести не працювали, робили неправильні припущення про код, і вся затія перетворилася на цикл зламаного тестового коду та фруструючих переписувань. ШІ згенерував багато коду — але не того типу, який я міг би використати без серйозного рефакторингу.

Надання напрямку ШІ

Прорив настав, коли я змінив свій підхід. Замість ставлення до ШІ як до чарівника, я почав використовувати його більше як молодшого розробника. Я давав йому по одному файлу за раз, пояснював намір коду і казав зосередитися на написанні точних, функціональних тестів тільки для цього файлу.

Це змінило все.

Раптом тести стали легшими для ШІ для впровадження. Вони були правильно обмежені, вирівняні з фактичною логікою і не вимагали годин налагодження. Мій ШІ працював файл за файлом, написавши і запустивши тести.

Результати

Менш ніж за день покриття тестами стрибнуло з 5% до понад 96%.

  • Інструкції: 96,72%
  • Гілки: 95,67%
  • Функції: 92,1%
  • Рядки: 96,87%

Тести, які забрали б дні для написання, були завершені за години, а душевний спокій, який приходить з майже повним покриттям тестами? Безцінний.

Я перейшов від одного Набору Тестів і 5 тестів до:

  • 20 Наборів Тестів
  • 136 Пройдених тестів

Що я дізнався

  • ШІ — не магія, але це неймовірний помічник. Дайте йому контекст, керуйте ним, і ви отримаєте відмінні результати.
  • Фокус має значення. Просити ШІ "тестувати все" призводить до хаосу. Просити його тестувати цей файл, цю функцію, цей випадок — це працює.
  • Очікуйте налагодження — але набагато менше, ніж написання з нуля. ШІ іноді робить помилки, але загальний процес набагато швидший, ніж працювати самостійно.

Незалежно від того, чи запускаєте ви новий проект або намагаєтеся додати тести до старшого, ШІ може бути величезною економією часу — якщо ви використовуєте його правильно.

Чи використовуєте ви ШІ для написання тестів у своїх проектах? Який ваш досвід?

PrimeCRM

Назад до Центру Знань