Szerző: Hlács Ferenc

2018. szeptember 14. 12:30

Nyílt forrású, automatizált bugjavító eszközön dolgozik a Facebook

A SapFix a várakozások szerint rengeteg mérnökórát spórolhat majd a cégnek.

Automatizált, gépi tanulással megtámogatott bugjavító eszközt fejlesztett a Facebook, amellyel jelentősen csökkenthető mérnökei által debugging feladatokkal töltött idő, így az új szoftverek is gyorsabban láthatnak napvilágot. A SapFix nevű eszköz még fejlesztés alatt áll, azt a vállalt augusztus óta teszteli, ígéretes szerint azonban, hamarosan szélesebb körben is megosztja azt a fejlesztői közösséggel.

A SapFix már a cég mobilalkalmazásában is bizonyított, a cég szerint ez az első AI-eszköze, amelyet hasonló kaliberű projektnél használt, noha egyelőre még nem végleges termékként beszél róla, blogposztja szerint a SapFix  "proof-of-concept" stádiumnál jár. Ennek megfelelően a megoldás még nem maga kutatja fel a bugokat, helyette a vállalat már korábban bejelentett, és aktívan használt Sapienz szoftvertesztelő eszköze által fellelt hibákat javítja. A Facebook szerint azonban a termék önállóan is használható lesz.

Akinek a Sapienz neve nem lenne ismerős, az automatizált tesztelőeszközt a vállalat az idei F8 fejlesztői konferenciáján jelentette be. Az Sapienz a cég alkalmazásában lehetséges interakciók százainak manuális tesztelését váltja ki, ugyancsak nagy mértékben tehermentesítve a Facebook-mérnököket. A Sapienz keresés alapú tesztelést használ, illetve a UI-on keresztül vizsgálja meg az alkalmazást, ezzel kiszűrve az olyan fals pozitív hibajelentéseket, amelyeket a telefonját nyomkodó felhasználó egyébként nem is tudna előidézni. A Sapienzt élesben a cég először épp egy éve kezdte használni, azóta pedig felskálázta az androidos Facebook app milliónyi kódsorának igényeihez.

sapfix

A frissen bejelentett SapFix a Sapienz mellett a vállalat ismert statikus programelemző eszköze, az Infer eredményeit is segítségül hívja - az Infert a Facebook néhány éve ugyancsak közkinccsé tette. Miután a két eszköz megmutatja a hiba helyét a SapFixnek, az előre megadott stratégiák mentén generál hozzá patch-et. Bizonyos esetekben az eszköz teljesen vagy részlegesen visszavonja azt a hozzáadott kódot, amely a bug létrejöttéhez vezetett, összetettebb hibáknál pedig egy sor előre elkészített javítás közül választ egyet. Utóbbiakat egyébként a rendszer ugyancsak automatikusan gyűjti be a mérnökök által korábban eszközölt javításokból. Ha ezek sem működnének, a SapFix a hibáért felelős kódrészleten apróbb módosításokat is elkezd végrehajtani, míg egy potenciális javítást nem talál.

Az eszköz minden bughoz több lehetséges javítást is generál, amelyek közül aztán három szempont, alapján választja ki a legmegfelelőbbet: hogy dob-e a kód fordítási hibát, orvosolja-e a bug által okozott összeomlást és generál-e más bugokat a fő kódban. Ezek teszteléséhez a SapFix létező, a mérnökök által megírt, illetve a Sapienz által generált teszteket futtat le a javított buildeken - mindez automatizáltan történik, természtesen a fő kódbázistól elkülönítve. A javításokat persze a SapFix nem kezdi renegát módon élesíteni, azokat először egy fejlesztőnek is elküldi jóváhagyásra. Ha a mérnök is zöld utat ad a patch-nek, azt élesben is alkalmazza a rendszer.

A vállalat arról egyelőre nem beszélt, pontosan mikor nyitja meg a SapFix forráskódját, fejlesztői mindenesetre az eszköz által generált patch-eket már a stabil androidos Facebook appban is alkalmazzák. A cég ígérete szerint a közeljövőben nem csak a frissen bejelentett eszköz, de a Sapienz is mindenki számára elérhető lesz.

A K8s annyira meghatározó technológia, hogy kis túlzással szinte az összes IT-szakemberre nézve karrier-releváns.

a címlapról