Regisztráció és bejelentkezés

Enhanced-SZZ: egy továbbfejlesztett algoritmus kódváltoztatás cimkézésére

A szoftverhibák elképesztően költségesek - körülbelül egy billió hétszáz milliárd dollárba kerültek 2017-ben - mutatta be egy kutatásában a Tricentis, egy szoftver teszteléssel foglalkozó cég. Nem is csoda, hogy a fejlesztői közösség különböző minőségbiztosító (QA - Quality Assurance) folyamatokkal próbálja ezen költségeket minimalizálni. QA folyamat lehet például tesztek, dokumentáció írása és az ún. peer-reviewing (szakértői felülvizsgálat).

Míg a tesztelés és dokumentáció folyamata részben automatizálható, a peer-reviewing továbbra is olyan szűk keresztmetszet maradt ami kizárólag humán erőforrásoktól függ. Emiatt számos publikáció született abból a célból, hogy ezen felülvizsgáló folyamatokat felgyorsítsák, és a nagy valószínűséggel hibát (ún. bug-ot) tartalmazó változtatások felülvizsgálatát priorizálják. Ennek egy módja a change classification - egy olyan modell építése ami egy kódváltoztatásról (code change-ről) megmondja, hogy tartalmaz-e hibát, vagy sem. A change classification több szempontból is előnyt jelentene a fejlesztők számára - egyrészt hamarabb tudnának potenciálisan hibás kódot azonosítani - másrészt a hibakeresést az adott kódváltoztatásra tudnák szűkíteni.

Hogy megépíthessük a change classifier tanítóhalmazát - előbb a múltbéli kódváltoztatásokat kell ellátnunk “tartalmaz hibát” vagy “nem tartalmaz hibát” címkével. Ezt egy SZZ nevű algoritmussal érhetjük el. Ugyan az SZZ algoritmus a legelterjedtebb módszer arra hogy címkével lássuk el az adatunkat, van néhány gyenge pontja is. Ezen kifogásolható tulajdonságai miatt gyakran fals pozitív illetve fals negatív címkéket produkál.

Ezért is kihangsúlyoznám, hogy milyen fontos egy change classifier megbízhatósága szempontjából, hogy az adat, amin tanul, a lehető legjobb reprezentációja legyen a valóságnak. Az én célom ezen munka keretében az, hogy bemutassam az SZZ-nek egy olyan variánsát, ami megoldást nyújt az eredeti algoritmusban felfedezett gyengeségek nagy részére. Továbbá még a szakirodalomban nem említett, ám általam jelentősnek vélt hiányosságait is javítottam az algoritmusnak. Mindezeket a javításokat kombinálva egy jobb kódváltoztatás-címkéző algoritmust kapunk, aminek az Enhanced-SZZ nevet adtam.

szerző

  • Remeli Mina
    Mérnök informatikus szak, alapképzés
    alapképzés (BA/BSc)

konzulensek

  • Dr. Horváth Gábor
    egyetemi tanár, Hálózati Rendszerek és Szolgáltatások Tanszék
  • Kollár Nándor
    Senior Software Engineer, Hálózati Rendszerek és Szolgáltatások Tanszék