LLM์ ๋ฐ์ ์ผ๋ก ์ฝ๋ ์์ฑ์ด ํ๋ฐํด์ก์ง๋ง, ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์๋ ์ ๋ต์ ๋ด๋ ๊ฒ๊ณผ ์๊ฐ ์ ํ ์์์ ์ ๋ต์ ๋ด๋ ๊ฒ์ด ์ ํ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค. ๊ฒฝ์ ํ๋ก๊ทธ๋๋ฐ, ์ฝ๋ฉ ์ธํฐ๋ทฐ, ๋ฒค์น๋งํฌ ๋๋ถ๋ถ์ time limit์ ๋ช ์ํ๊ณ ์์ผ๋ฉฐ, ์์ ์ ๋ ฅ์์๋ ํต๊ณผํ๋๋ผ๋ ํจ์จ์ฑ์ด ์ค์ํ ์์ญ์ ๋ค์ด๊ฐ๋ฉด ์คํจํ๋ ์ฝ๋๊ฐ ํํฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ต๊ทผ ์ฐ๊ตฌ๋ค์ ์ฝ๋์ ์ ๋ต ์ฌ๋ถ๋ฟ๋ง ์๋๋ผ ์คํ ํจ์จ์ฑ๊น์ง ํจ๊ป ํ๊ฐํ๋ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๊ณ ์์ต๋๋ค.
์ด๋ฌํ ํ๊ฐ๋ฅผ ์ํด์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ณ๋ชฉ์ ๋๋ฌ๋ด๋ ํจ์จ์ฑ ํ ์คํธ ์ผ์ด์ค(efficiency test cases) ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ํจ์จ์ฑ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ ๋ค๋ ๊ฒ์ ๋จ์ํ ์ ๋ ฅ์ ํฌ๊ฒ ๋ง๋ ๋ค๋ ์๋ฏธ๊ฐ ์๋๋๋ค. Worst ์ผ์ด์ค๋ ์ข ์ข ์ ๋ ฅ์ ๊ตฌ์กฐ์ ๋ฌ๋ ค ์์ต๋๋ค. ์ญ์ ๋ ฌ๋ ๋ฐฐ์ด์ pivot์ ๋ฏผ๊ฐํ quicksort๋ฅผ ๋ฌด๋๋จ๋ฆฌ๊ณ , path-shaped ํธ๋ฆฌ๋ ์ฌ๊ท ๊น์ด๋ฅผ ๊ทน๋ํํ์ฌ ์ฐ์ฐ๋์ ํญ์ฆ์ํต๋๋ค. ์ฆ ํจ์จ์ฑ ํ ์คํธ ์ผ์ด์ค๋ (i) ์ ๋ ฅ ์ ์ฝ์ ๋ง์กฑํ๋ฉด์ (ii) ๋นํจ์จ์ ํ์ด๊ฐ ๋๋ ค์ง๋ ๊ตฌ์กฐ๋ผ๋ ๋ ์กฐ๊ฑด์ ๋์์ ๋ง์กฑํด์ผ ํฉ๋๋ค.
๊ธฐ์กด ํจ์จ์ฑ ์งํฅ ํ ์คํธ ์์ฑ๊ธฐ๋ค์ ์ด ๋ ์กฐ๊ฑด ์ค ์ผ๋ถ๋ง ๋ค๋ฃน๋๋ค. ์ ๋ ฅ ํฌ๊ธฐ๋ฅผ ํค์ runtime threshold๋ฅผ ๋๊ธฐ๋ ๋ฐ ์ง์คํ๊ฑฐ๋, ํ๋ก๊ทธ๋จ์ ์คํ์ผ๋ก๋ถํฐ ๋ณ๋ชฉ ์กฐ๊ฑด์ ์ถ๋ก ํด fuzzing์ผ๋ก ์ ๋ ฅ์ ์ฐพ๋ ์์ ๋๋ค. ๋ ๋ฐฉํฅ ๋ชจ๋ reference implementation์ ์คํ ํ์์์ ๋นํจ์จ์ ์ถ์ ํ๊ธฐ ๋๋ฌธ์, "์ด ์ฝ๋๋ฅผ ๋ฌด์์ด ๋๋ฆฌ๊ฒ ํ๋๊ฐ" ๋ ๋ตํด๋ "์ด ๋ฌธ์ ๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ก ๋ฌด์์ด ์ด๋ ต๊ฒ ํ๋๊ฐ" ๋ ๋ตํ์ง ๋ชปํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๊ณต๋ฐฑ์ ๋ฉ์ฐ๊ธฐ ์ํด STAB์ ์ ์ํฉ๋๋ค. STAB์ reference implementation์ด๋ ์คํ ํผ๋๋ฐฑ ์์ด ์์ฐ์ด ๋ฌธ์ ๋ช ์ธ๋ง์ผ๋ก ํจ์จ์ฑ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ฉฐ, "์ ํจํ ์ ๋ ฅ ๊ฒฝ๊ณ๋ฅผ ์ผ๋ง๋ ํฌ๊ฒ ์ก์ ์ ์๋๊ฐ"์ "๊ทธ ๊ฒฝ๊ณ ์์์ ์ด๋ค ๊ตฌ์กฐ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ฆฌ๊ฒ ํ๋๊ฐ"๋ฅผ ๋ถ๋ฆฌํด์ ํด๊ฒฐํฉ๋๋ค.

STAB (Specification-driven Testing for Algorithmic Bottlenecks)์ ์์ฐ์ด ๋ฌธ์ ๋ช ์ธ๋ง์ ์ ๋ ฅ์ผ๋ก ๋ฐ์, ์๊ณ ๋ฆฌ์ฆ์ ๋ณ๋ชฉ์ ๋ ธ์ถํ๋ ํจ์จ์ฑ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ specification-driven ํ์ดํ๋ผ์ธ์ ๋๋ค. ์ถ๋ ฅ์ ์์ ์ ๋ ฅ ๋ฌธ์์ด์ด ์๋๋ผ Python generator ํจ์์ด๋ฉฐ, ์คํ ์ ๊ตฌ์ฒด์ ์ ๋ ฅ์ ์ถ๋ ฅํฉ๋๋ค. Generator ํํ์ ์ ๋ ฅ์ด ํฌ๊ณ ๊ตฌ์กฐ์ ์ผ ๋ ๋ ์งง๊ณ , ๊ตฌ์ฑ ๋ ผ๋ฆฌ๊ฐ ๋๋ฌ๋๋ฉฐ, ๋์ผํ ์ฑ์ ํ๊ฒฝ์์ ๋ฐ๋ณต ์คํ ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ ๊ฐ์ง๋๋ค.
<aside> ๐
<aside> ๐
<aside> ๐
<aside> ๐