Skip to content

๐Ÿ” Improvement of AG-SZZ Algorithm for Bug Introducing Change

Notifications You must be signed in to change notification settings

JiyeongYun/AG-SZZ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

91b4ade ยท Aug 25, 2021

History

67 Commits
Jan 28, 2020
May 15, 2020
Jan 20, 2020
Aug 25, 2021
Jun 13, 2020
Mar 22, 2020
Jan 20, 2020
Apr 7, 2020
Jan 20, 2020
Aug 25, 2021
Feb 20, 2020
Jan 20, 2020
Jan 20, 2020
Jan 20, 2020

Repository files navigation

AG-SZZ

Improvement of AG-SZZ Algorithm for Bug Introducing Change

โ–ถ๏ธ SUMMARY

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ํ•œ๋™๋Œ€ํ•™๊ต ISEL ์—ฐ๊ตฌ์‹ค์—์„œ ์ง„ํ–‰๋œ Detect Prediction Process(Based on Machine Learning)๋กœ ๋จธ์‹ ๋Ÿฌ๋‹์— ๊ธฐ๋ฐ˜ํ•œ ๋ฒ„๊ทธ ๊ฐ์ง€ ํ”„๋กœ์„ธ์Šค ๊ฐœ๋ฐœ์˜ ์ฒซ ๋‹จ๊ณ„ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ €ํฌ ํŒ€์ด ์ง„ํ–‰ํ•œ ๋ถ€๋ถ„์€ ์ œ์ผ ์ฒซ ๋‹จ๊ณ„์ธ โ€˜Data Collectionโ€™๋‹จ๊ณ„์—์„œ ์ •ํ™•ํ•œ Bug-Introducing Change(์ดํ•˜ BIC)๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. BIC๋ฅผ ์ฐพ์•„๋‚ด๋Š” SZZ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ˜„์žฌ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ฒ„์ „์— ์˜ํ•ด ๊ฐœ์„ ๋˜์—ˆ์œผ๋‚˜, ์—ฌ์ „ํžˆ ์™„๋ฒฝํ•œ BIC๋ฅผ ์ถ”์ถœํ•ด๋‚ด์ง€ ๋ชปํ•˜๋ฉฐ ๋งŽ์€ noise ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์–ด false positive์˜ ํ™•๋ฅ ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ SZZ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ์„ฑ๋Šฅ์„ 12% ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์‹œ๊ฐ„์„ ๋งž์ถฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์„ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โ–ถ๏ธ RESULT

๋ณด๊ณ ์„œ | https://drive.google.com/file/d/1a-GYWt4hBtty4ISr81Ytln4fbgtINAFF/view

์‹œ์—ฐ์˜์ƒ | https://www.youtube.com/watch?v=uhfgHhnY4XM

โ–ถ๏ธ AWARDS

ํ•œ๋™๋Œ€ํ•™๊ต | ์บก์Šคํ†ค ๋””์ž์ธ ๊ฒฝ์ง„๋Œ€ํšŒ '๊ณตํ•™ํ”„๋กœ์ ํŠธ ๊ธฐํš'๋ถ€๋ฌธ ์šฐ์ˆ˜์ƒ

โ–ถ๏ธ PERIOD

2019.08 - 2020.08(12๊ฐœ์›”)

โ–ถ๏ธ DEVELOPER

  1. ๊น€์„์ง„ (ํŒ€์žฅ)

    • ์„ค๊ณ„

    • Tracer ๊ตฌํ˜„

  2. ์œค์ง€์˜ (ํŒ€์›)

    • ์„ค๊ณ„
    • Build Annotation Graph

โ–ถ๏ธ EFFECTS(economical, industrial, and social)

โ€‹ ํ•œ๋™๋Œ€ํ•™๊ต ISEL ์—ฐ๊ตฌ์‹ค์—์„œ๋Š” Bug Prediction Model์„ ์—ฐ๊ตฌ ์ค‘์— ์žˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด์„œ commit์ด buggyํ•œ์ง€ cleanํ•œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” ๊ธฐ์ˆ ์ธ๋ฐ, ์ด๋•ŒData๋ฅผ Collectionํ•˜๋Š” ๋ถ€๋ถ„(๋นจ๊ฐ„ ๋„ค๋ชจ๋ฐ•์Šค) ์—์„œ BIC๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

โ€‹ ๊ทธ๋Ÿฌ๋‚˜ ์ด๋•Œ ์‚ฌ์šฉ๋œ BIC๋Š” ๋ณธ ๋ณด๊ณ ์„œ์—์„œ๋„ ์—ฌ๋Ÿฌ ๋ฒˆ ์–ธ๊ธ‰๋˜์—ˆ๋˜ B-SZZ๋ฅผ ํ†ตํ•ด ์ฐพ์€ BIC์ด๋‹ค. B-SZZ๋Š” ๋†’์€ false positive ๋น„์œจ์„ ๊ฐ–๊ณ  ์žˆ๊ณ , ํ˜„์žฌ ๋” ๋ฐœ์ „ ๋˜์–ด์˜จ SZZ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฐ๊ตฌํ•˜์—ฌ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ณธ ์—ฐ๊ตฌ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค. Data๋ฅผ collectionํ•˜๋Š” ๋ถ€๋ถ„์€ core๋ผ๊ณ  ํ•ด๋„ ๋  ๋งŒํผ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค. ์ž˜๋ชป๋œ data๊ฐ€ input๋˜๋ฉด ์—ฐ๊ตฌ์˜ ์ „๋ฐ˜์ ์ธ ๊ฒฐ๊ณผ์—๋„ ์˜ํ–ฅ์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
โ€‹ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ testing์— ๋Œ€ํ•œ ์ถ”์„ธ๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ๋ฒ„๊ทธ๋ฅผ ์˜ˆ์ธกํ•˜๊ณ  ์˜ˆ๋ฐฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ค‘์š”๋„๊ฐ€ ์ปค์ง€๊ณ  ์žˆ๋‹ค. ์‹ค์ œ ํ•œ๊ตญ์—์„œ๋„ ์ ์šฉ ์‚ฌ๋ก€๊ฐ€ ์กด์žฌํ•œ๋‹ค. KCSE2020 ํ•™ํšŒ์— ์ฐธ๊ฐ€ํ–ˆ์„ ๋•Œ โ€˜์†Œํ”„ํŠธ์›จ์–ด ๊ฒฐํ•จ ์˜ˆ์ธก์˜ ์กฐ์„ ํ•ด์–‘/ํ•ด์ƒ์šด์†ก ์‚ฐ์—… ์ ์šฉ ์‚ฌ๋ก€ ์—ฐ๊ตฌโ€™์— ๋Œ€ํ•ด ๋“ค์€ ์ ์ด ์žˆ๋‹ค. ์ด๋•Œ๋„ SZZ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ์•ž์œผ๋กœ์˜ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ๋„ SZZ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์•„์ง ํ™œ๋ฐœํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์•ž์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์˜ ๋ฐฉํ–ฅ์„ ๋ณด์•˜์„ ๋•Œ ํŠนํžˆ testing๋ถ„์•ผ๋‚˜ ๊ฒฐํ•จ ์˜ˆ์ธก ๋ถ€๋ถ„์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋  ๊ฒƒ์ด๊ณ , ์šฐ๋ฆฌ์˜ ์—ฐ๊ตฌ๋ฅผ ํ†ตํ•ด ๊ฐœ์„ ๋œ SZZ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ false positive ๋น„์œจ์ด ์ค„์–ด๋“ค์–ด ๋”์šฑ ์ •ํ™•ํ•œ ์—ฐ๊ตฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

(written by ์œค์ง€์˜)

About

๐Ÿ” Improvement of AG-SZZ Algorithm for Bug Introducing Change

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages