Hirdetés
. Hirdetés

Megoldotta a szoftverhibák javításának automatizációját egy szegedi kutató

|

A sejtek DNS-javító képességén alapuló algoritmussal időt és pénzt is lehet spórolni.

Hirdetés

Öt éve osztják ki az SZTE Innovációs Díjat, amellyel az egyetem azon kutatóit és hallgatóit támogatja, akik munkájuk során olyan tudományos eredményt, innovatív megoldást dolgoztak ki, amely szellemi alkotásnak minősül és üzleti szempontból hasznosítható lehet. A legutóbb elnyert Innovációs Díjakat 5 kategóriában adták át. A "Leginnovatívabb TDK munka" díjat, Csuvik Viktor kapta "Szoftverhibák automatikus javítási lehetőségeinek tovább alakítása" című munkájáért. Témavezetője Dr. Vidács László.

Amikor az automatikus programjavítás keretében beszélünk hibáról, az a program valamilyen nem elvárt viselkedését jelenti. Ezek legtöbbször nem olyan hibák, mint hogy "megnyomom a zöld lámpa gombot és a lámpa pirosan világít, pedig zölden kellene", sokkal inkább valamilyen komplexebb összefüggés szokta kiváltani a hibás viselkedést. Mi történik egy szoftverrel, amiben meg is találják a hibát? Általában kiadják a feladatot szoftverfejlesztőknek, hogy javítsák ki. Ezzel nincs semmi baj, de miért ne automatizáljuk a folyamatot? - tette fel magának is a kérdést Csuvik Viktor.

Hirdetés

"Automatikus programjavítás során első lépésben lokalizálnunk kell a hiba forrását. Az egyszerűség kedvéért tegyük fel, hogy tudjuk hol a hiba forrása. Ekkor jön képbe a genetikus algoritmus, amely megpróbálja kijavítani a hibát. A genetikus algoritmust a biológia motiválja, a benne használatos módszerek is ehhez kapcsolódnak. Az algoritmus futása során, számon tartunk egy populációt, amiben minden egyes egyed az eredeti program egy variánsa (olyan leszármazottja, amely kis módosításban tér el tőle). Ahogy haladunk előre az időben, a populációban keresztezés és mutációs operátorok állítják elő az újabb egyedeket, amelyek "jóságát" az úgynevezett fitnesz függvény határozza meg. Azt hiszem bővebb technikai információk nélkül is érezhető, hogy a javítás leginkább attól függ, hogy sikerül-e olyan genetikus operátorokat alkalmaznunk az egyedeken, amelyek valóban kijavítják az eredeti hibát, valamint hogy minél pontosabban definiáljuk egy egyed jóságát" - foglalta össze a kutatás lényegét Csuvik Viktor.

Megközelítésének lényege, hogy törekedjen az elkészített javítások egyszerűségére, mégpedig úgy, hogy az lehetőleg hasonlítson egy fejlesztő által készített programra. Csuvik Viktor nevéhez fűződik az alábbi publikáció is, amelyből további érdekes részletek derülnek ki a témában, például, hogy hogyan definiálható, hogy egy program egyszerű vagy sem.

Az eszközt, 127 valós programhibán próbálták ki, melyekből 24-re sikerült javítást készíteni. Ebből a 24 javításból 5, teljesen azonos egy fejlesztői javítással. Ez azt jelenti, hogy nem lehet megkülönböztetni, hogy a fejlesztő írta a javítást vagy automatikusan készült, 7 pedig "viselkedésében" teljesen azonos. "Átlagosan 1,5 óra alatt készült el egy javítás, ami első ránézésre soknak tűnhet, viszont ha belegondolunk, hogy egyébként egy szoftverfejlesztő munkabérét kellene kifizetnünk, így pedig csak az áramköltséget, ameddig futott az algoritmus, az már egészen más. Szintén fontos eredményünk, hogy validáljuk az elkészített javításokat, ezt az esetek 50%-ban meg is tettük, ami abban nyilvánult meg, hogy az eredeti genetikus algoritmus által jónak ítélt javításokat ellenőriztük automatikusan és ezek közül a hibásokat kiszűrtük" - összegezte a gyakorlati tapasztalatokat a díjazott.

Hardverek, szoftverek, tesztek, érdekességek és színes hírek az IT világából ide kattintva!

Hirdetés
0 mp. múlva automatikusan bezár Tovább az oldalra »

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!

Engedélyezi, hogy a https://computerworld.hu értesítéseket küldjön Önnek a kiemelt hírekről? Az értesítések bármikor kikapcsolhatók a böngésző beállításaiban.