Од 5% до 96% покривености тестова у дану — Захваљујући AI CoPilot...
Када сам почео овај пројекат и још увек је била мала база кода, знао сам да ће unit тестирање бити важно, али као многи програмери, одложио сам га на страну након изградње првог сета тестова у корист изградње основне функционалности. Мој главни циљ у раним фазама био је да покренем middleware логику — срце апликације — и оживим Минимални Одрживи Производ (MVP). То је значило прескакање великог дела покривености тестовима у име напретка.
Чим је MVP заработао, вратио сам пажњу назад на тестирање. Када сам погледао пројекат, проценио сам најмање недељу или две писања тестова, у зависности од сложености сваке компоненте. Неки би били једноставни. Други — посебно тамо где су били укључени гранични случајеви или компликована логика гранања — би били много захтевнији по времену.
У том тренутку сам се окренуо AI. Користио сам "CoPilot" да ми помаже у писању кода и мислио сам да би ми могао помоћи и са тестовима.
Првобитно сам замолио AI да "напише unit тестове" без икаквог правог контекста или ограничења. Резултат? Хаос. Тестови нису радили, правили су погрешне претпоставке о коду, и цео подухват се претворио у циклус покварених тестних кодова и фрустрирајућих преписивања. AI је генерисао много кода — али не оног типа који бих могао да користим без озбиљне рефакторизације.
Пробој је дошао када сам променио свој приступ. Уместо да се понашам према AI као према чаробњаку, почео сам да га користим више као јуниор програмера. Давао сам му по један фајл у исто време, објашњавао намеру кода и говорио му да се фокусира на писање прецизних, функционалних тестова само за тај фајл.
То је променило све.
Одједном су тестови постали лакши за AI да их имплементира. Били су правилно ограничени, усклађени са стварном логиком и нису захтевали сате дебаговања. Мој AI је прошао кроз фајл по фајл, писајући и покретајући тестове.
За мање од дана, покривеност тестовима је скочила са 5% на преко 96%.
Тестови који би требали дани да се напишу били су завршени за сате, а душевни мир који долази са скоро потпуном покривеношћу тестовима? Непроцењив.
Прешао сам од једне Test Suite и 5 тестова до:
Без обзира да ли покрећете нови пројекат или покушавате да додате тестове у старији, AI може бити огромна уштеда времена — ако га користите правилно.
Користите ли AI за писање тестова у својим пројектима? Каква су ваша искуства?