Wyszukiwanie i poprawianie błędów w kodzie programu jest czasochłonną i często frustrującą częścią codziennej pracy twórców oprogramowania. Teraz badacze z firmy Microsoft opracowali AI, która potrafi znajdować błędy w kodzie programistycznym, pomagając deweloperom w dokładniejszym i efektywniejszym debugowaniu ich aplikacji.
Czy deep learning może rozwiązać problem żmudnej pracy i pomóc deweloperom dostarczać lepsze oprogramowanie i robić to szybciej? Oczywiście, że może. W nowym artykule naukowym Self-Supervised Bug Detection and Repair badacze z Microsoft zaprezentowali obiecujący model deep learningowy o nazwie BugLab. Może on być nauczony, by wykrywał i naprawiał błędy bez użycia oznaczonych danych, za to poprzez "grę w chowanego".
Aby taki model w ogóle mógł działać, musi nie tylko wnioskować w oparciu o strukturę kodu, ale też rozumieć niejednoznaczne wskazówki w języku naturalnym, które twórcy oprogramowania pozostawiają w komentarzach do kodu, nazwach zmiennych i nie tylko (jak na zrzucie ekranu powyżej). W tym przypadku intencja programisty zawarta w komentarzu była jasna, podobnie jak wysokopoziomowa struktura kodu. Został jednak użyty niewłaściwy operator relacji. BugLab był w stanie poprawnie zidentyfikować tego buga i przekazać alert programiście. W kolejnym przykładzie (poniżej) kod niepoprawnie sprawdzał, czy zmienna write_partitions jest pusta zamiast poprawnej zmiennej read_partition.
Celem twórców projektu jest stworzenie lepszej sztucznej inteligencji, która potrafi automatycznie znajdować i poprawiać błędy, takie jak te pokazane powyżej. Wydają się one proste, ale czasem są trudne do wykrycia. Wyzwolenie deweloperów z tych nudnych i czasochłonnych obowiązków da im więcej czasu na pracę w bardziej krytycznych i interesujących obszarach rozwoju oprogramowania.