211service.com
Žmogaus programinės įrangos kūrėju užmaskuotas robotas ištaiso klaidas
Šiame pasaulyje niekas negali būti tikras, išskyrus mirtį ir mokesčius, rašė Benjaminas Franklinas 1789 m. Jei būtų gyvenęs šiuolaikinėje eroje, Franklinas galėjo būti įtraukęs į savo sąrašą programinės įrangos klaidų.
Šiuolaikinės kompiuterių programos yra tokios sudėtingos, kad kūrimo proceso metu neišvengiamai atsiranda klaidų. Štai kodėl jų paieška ir pataisų rašymas yra įprasta bet kokio programinės įrangos kūrimo grafiko dalis. Iš tiesų, yra tokių įmonių kaip „Travis“, kurios siūlo šią paslaugą kūrėjams.
Tačiau pataisų paieška ir taisymas yra daug laiko reikalaujantis verslas, sunaudojantis daug išteklių. Įvairūs mokslininkai sukūrė robotus, kurie automatizuoja šį procesą, tačiau jie paprastai būna lėti arba sukuria prastai parašytą kodą, kuris nepraeina. Taigi kūrėjai labai norėtų, kad galėtų pasikliauti greitu, aukštos kokybės robotu, kuris ištiria klaidų kodą ir rašo pataisas, kad jas ištaisytų.
Šiandien jų svajonės išsipildo dėl Martino Monperruso ir jo draugų KTH Karališkajame technologijos institute Stokholme, Švedijoje, darbo. Šie vaikinai pagaliau sukūrė robotą, kuris gali konkuruoti su žmonių kūrėjais ieškodamas klaidų ir rašydamas aukštos kokybės pataisas.
Šie vaikinai savo robotą vadina „Repairnator“ ir sėkmingai jį išbandė leisdami konkuruoti su žmonių kūrėjais ieškant pataisų. Jie sako, kad tai yra svarbus žmonių konkurencingumo etapas atliekant programinės įrangos inžinerijos tyrimus, susijusius su automatiniu programų taisymu.
Kompiuterių mokslininkai jau seniai žinojo, kad galima automatizuoti pataisų rašymo procesą. Tačiau neaišku, ar robotai gali atlikti šį darbą taip greitai, kaip ir žmonės, ir taip pat kokybiškai.
Taigi „Monperrus“ ir bendradarbiai tai išbandė, užmaskuodami „Repairnator“ kaip žmogaus kūrėją ir leisdami jam konkuruoti su žmonėmis kuriant pataisas „GitHub“, programinės įrangos kūrėjams skirtoje versijų valdymo svetainėje. Pagrindinė „Repairnator“ idėja yra automatiškai generuoti pataisas, kurios ištaiso kūrimo gedimus, tada parodyti jas kūrėjams, kad pagaliau būtų galima pamatyti, ar tie kūrėjai priimtų juos kaip tinkamus įnašus į kodų bazę, sako „Monperrus“ ir kt.
Komanda sukūrė GitHub vartotoją Luc Esape, kuris atrodė kaip programinės įrangos inžinierius jų tyrimų laboratorijoje. Jie sako, kad Lucas turi profilio nuotrauką ir atrodo kaip jaunesnysis kūrėjas, norintis prisidėti prie atvirojo kodo „GitHub“.
Tačiau Lucas iš tikrųjų yra užsimaskavęs remontininkas. Ši apgaulė buvo būtina, nes žmonių moderatoriai yra linkę skirtingai vertinti botų ir žmonių darbą. Šis kamufliažas reikalingas norint patikrinti mūsų mokslinę hipotezę apie žmonių konkurencingumą, sako Monperrus ir bendradarbiai, kurie dabar informavo susijusius žmones apie sukčiavimą.
Komanda atliko du bandymus, kad išbandytų „Repairnator“. Pirmasis vyko nuo 2017 m. vasario iki gruodžio, kai komanda paleido „Repairnator“ pagal fiksuotą 14 188 „GitHub“ projektų sąrašą, ieškodama klaidų. Mes nustatėme, kad mūsų prototipas gali atlikti maždaug 30 taisymo bandymų per dieną, sako jie.
Per tą laiką „Repairnator“ išanalizavo daugiau nei 11 500 versijų su gedimais. Iš jų daugiau nei 3000 atvejų pavyko atkurti gedimą. Tada 15 atvejų buvo sukurtas pleistras.
Tačiau nė vienas iš šių pataisų nebuvo priimtas į kūrimą, nes „Repairnator“ per ilgai juos sukūrė arba parašė žemos kokybės pataisas, kurių nepavyko priimti.
Antrasis eksperimentinis važiavimas buvo sėkmingesnis. Šį kartą komanda paskyrė Lucą dirbti su Travis nuolatinės integracijos paslauga nuo 2018 m. sausio iki birželio. Nors komanda nenurodė, kokius patobulinimus atliko „Repairnator“, sausio 12 d. ji parašė pataisą, kurią moderatorius priėmė į kūrimą. Kitaip tariant, jie sako, kad „Repairnator“ pirmą kartą buvo konkurencingas žmonėms.
Per ateinančius šešis mėnesius „Repairnator“ sukūrė penkias pataisas, kurias priėmė moderatoriai.
Tai įspūdingas darbas, kuris sudaro sąlygas naujos kartos programinės įrangos kūrimui. Tai taip pat kelia įdomių klausimų. „Monperrus“ ir bendradarbiai nurodo pataisą „Repairnator“, sukurtą „GitHub“ projektui „eclipse/ditto“ gegužės 12 d.
Tada komanda gavo tokį pranešimą iš vieno iš kūrėjų: Galime priimti tik ištraukimo užklausas, gautas iš vartotojų, kurie pasirašė „Eclipse Foundation Contributor“ licencijos sutartį.
Tai kelia sudėtingą problemą, nes robotas negali fiziškai pasirašyti licencijos sutarties. Kam priklauso intelektinė nuosavybė ir atsakomybė už roboto indėlį: roboto operatoriui, roboto diegėjui ar taisymo algoritmo kūrėjui? paklauskite Monperrus ir kt.
Tokia problema turės būti išspręsta, kol žmonės ir robotai galės išsamiau bendradarbiauti. Tačiau Monperrus ir bendradarbiai yra nusiteikę optimistiškai. Manome, kad „Repairnator“ numato tam tikrą programinės įrangos kūrimo ateitį, kai robotai ir žmonės sklandžiai bendradarbiaus ir net bendradarbiaus kurdami programinės įrangos artefaktus.
Pats Franklinas, garsus kūrybingas išradėjas, tikrai būtų sužavėtas.
Nuoroda: arxiv.org/abs/1810.05806 : Žmonių konkurencingi pataisymai automatinio programų taisymo su taisytoju srityje