Skip to content
forked from JiyeongYun/AG-SZZ

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

Notifications You must be signed in to change notification settings

SukJinKim/AG-SZZ

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

67 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

  • Java 100.0%