Bots, kas maskēts kā cilvēka programmatūras izstrādātājs, novērš kļūdas

Šajā pasaulē nekas nav skaidrs, izņemot nāvi un nodokļus, rakstīja Bendžamins Franklins 1789. gadā. Ja viņš būtu dzīvojis mūsdienu laikmetā, Franklins, iespējams, būtu pievienojis programmatūras kļūdas savam sarakstam.





Mūsdienu datorprogrammas ir tik sarežģītas, ka izstrādes procesā neizbēgami parādās kļūdas. Tāpēc to atrašana un ielāpu rakstīšana to labošanai ir parasta jebkura programmatūras izstrādes grafika sastāvdaļa. Patiešām, ir tādi uzņēmumi kā Travis, kas piedāvā šo pakalpojumu izstrādātājiem.

Taču ielāpu atrašana un labošana ir laikietilpīgs bizness, kas patērē ievērojamus resursus. Dažādi pētnieki ir izstrādājuši robotprogrammatūras, kas automatizē šo procesu, taču tās mēdz būt lēnas vai radīt slikti uzrakstītu kodu, kas neiztur. Tāpēc izstrādātājiem ļoti patiktu, ja viņi varētu paļauties uz ātru, augstas kvalitātes robotprogrammu, kas meklē kļūdu kodu un pēc tam raksta ielāpus, lai tās novērstu.

Šodien viņu sapņi piepildās, pateicoties Martin Monperrus un viņa draugu darbam KTH Karaliskajā Tehnoloģiju institūtā Stokholmā, Zviedrijā. Šie puiši beidzot ir izveidojuši robotu, kas var konkurēt ar cilvēku izstrādātājiem kļūdu atrašanā un augstas kvalitātes ielāpu rakstīšanā.



Šie puiši savu robotu sauc par labotāju un ir veiksmīgi to pārbaudījuši, ļaujot tam sacensties ar cilvēku izstrādātājiem, lai atrastu labojumus. Viņi saka, ka tas ir pagrieziena punkts cilvēku konkurētspējai programmatūras inženierijas pētījumos par automātisko programmu remontu.

Datorzinātnieki jau sen zināja, ka ir iespējams automatizēt ielāpu rakstīšanas procesu. Taču nav skaidrs, vai robotprogrammatūra var veikt šo darbu tikpat ātri kā cilvēki un ar tādu pašu kvalitāti.

Tāpēc Monperrus un co to pārbaudīja, maskējot Reparnator kā cilvēku izstrādātāju un ļaujot tam konkurēt ar cilvēkiem, lai izstrādātu ielāpus GitHub, programmatūras izstrādātāju versiju kontroles vietnē. Repairnator galvenā ideja ir automātiski ģenerēt ielāpus, kas novērš būvēšanas kļūmes, pēc tam parādīt tos izstrādātājiem, lai beidzot redzētu, vai šie cilvēku izstrādātāji tos pieņems kā derīgus ieguldījumus kodu bāzē, saka Monperrus un citi.



Komanda izveidoja GitHub lietotāju Luc Esape, kurš, šķiet, bija programmatūras inženieris viņu pētniecības laboratorijā. Lūkam ir profila attēls, un viņš izskatās kā jaunākais izstrādātājs, kurš vēlas sniegt atklātā pirmkoda ieguldījumu GitHub, viņi saka.

Bet Lūks patiesībā ir maskēts remontētājs. Šī maldināšana bija nepieciešama, jo cilvēku moderatori mēdz atšķirīgi novērtēt botu un cilvēku darbu. Šī maskēšanās ir nepieciešama, lai pārbaudītu mūsu zinātnisko hipotēzi par cilvēku konkurētspēju, saka Monperrus un co, kuri tagad ir informējuši iesaistītos cilvēkus par viltību.

Komanda veica divus braucienus, lai pārbaudītu Reparnator. Pirmais darbojās no 2017. gada februāra līdz decembrim, kad komanda palaida Reparnator fiksētā 14 188 GitHub projektu sarakstā, meklējot kļūdas. Mēs atklājām, ka mūsu prototips spēj veikt aptuveni 30 remonta mēģinājumus dienā, viņi saka.



Šajā laikā Reparnator analizēja vairāk nekā 11 500 būvējumu ar kļūmēm. No tiem vairāk nekā 3000 gadījumu tas spēja reproducēt kļūmi. Pēc tam 15 gadījumos tika izstrādāts plāksteris.

Tomēr neviens no šiem ielāpiem netika pieņemts būvniecībā, jo Reparnator aizņēma pārāk ilgu laiku, lai tos izstrādātu, vai arī uzrakstīja zemas kvalitātes ielāpus, kurus nevarēja pieņemt.

Otrais eksperimentālais brauciens bija veiksmīgāks. Šoreiz komanda lika Lūkam strādāt pie Travis nepārtrauktās integrācijas pakalpojuma no 2018. gada janvāra līdz jūnijam. Lai gan komanda nenorādīja, kādus uzlabojumus ir veikusi programmā Reparnator, 12. janvārī tā uzrakstīja ielāpu, ko moderators pieņēma būvei. Citiem vārdiem sakot, Reparnator pirmo reizi bija konkurētspējīgs ar cilvēkiem, viņi saka.



Nākamo sešu mēnešu laikā Reparnator turpināja ražot piecus ielāpus, kurus moderatori pieņēma.

Tas ir iespaidīgs darbs, kas nosaka jaunas paaudzes programmatūras izstrādes ainu. Tas arī rada dažus interesantus jautājumus. Monperrus un co norāda uz ielāpu Reparnator, kas izstrādāts GitHub projektam ar nosaukumu eclipse/ditto 12. maijā.

Pēc tam komanda saņēma šādu ziņojumu no viena no izstrādātājiem: Mēs varam pieņemt tikai tos izvilkšanas pieprasījumus, kas nāk no lietotājiem, kuri parakstījuši Eclipse Foundation Contributor licences līgumu.

Tas rada sarežģītu problēmu, jo robots nevar fiziski parakstīt licences līgumu. Kam pieder intelektuālais īpašums un atbildība par robota ieguldījumu: robota operatoram, robotprogrammatūras ieviesējam vai remonta algoritma izstrādātājam? jautājiet Monperrus un co.

Šāda veida problēma būs jāatrisina, pirms cilvēki un robotprogrammatūras var sadarboties sīkāk. Bet Monperrus un co ir optimistiski. Mēs uzskatām, ka Reparnator paredz noteiktu programmatūras izstrādes nākotni, kurā roboti un cilvēki nevainojami sadarbosies un pat sadarbosies programmatūras artefaktu jomā, viņi saka.

Frenklins, pats slaveni radošais izgudrotājs, noteikti būtu bijis pārsteigts.

Atsauce: arxiv.org/abs/1810.05806 : Cilvēku konkurētspējīgi ielāpi automātiskajā programmu labošanā ar labotāju

paslēpties