ಏಜೆಂಟ್ ಬರೆದ ಕೋಡ್‌ಗಾಗಿ ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ (Mutation Testing)

LLM-ಸೃಷ್ಟಿತ ಟೆಸ್ಟ್ ಸೂಟ್‌ಗಳು 100% ಲೈನ್ ಮತ್ತು ಬ್ರಾಂಚ್ ಕವರೇಜ್‌ ಅನ್ನು ತಲುಪಬಹುದು, ಆದರೆ ಇತ್ತೀಚಿನ ಅಧ್ಯಯನವೊಂದು ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್‌ನಲ್ಲಿ ಅವು ಕೇವಲ 4% ಅಂಕಗಳನ್ನು ಪಡೆಯುತ್ತವೆ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಇದು ಸ್ಪ್ರಿಂಟ್ ರಿವ್ಯೂಗಳಲ್ಲಿ (sprint reviews) ಡೆವಲಪರ್‌ಗಳು ಗಮನಿಸದೇ ಇರುವ ವಿಶ್ವಾಸಾರ್ಹತೆಯ ಕೊರತೆಯನ್ನು ಎತ್ತಿ ತೋರಿಸುತ್ತದೆ.

ಸಂಶೋಧಕರು HumanEval-Java ಬೆಂಚ್‌ಮಾರ್ಕ್‌ನಲ್ಲಿ ಲಾರ್ಜ್-ಲ್ಯಾಂಗ್ವೇಜ್-ಮಾಡೆಲ್ ಕೋಡಿಂಗ್ ಏಜೆಂಟ್‌ಗಳು ತಯಾರಿಸಿದ ಟೆಸ್ಟ್ ಸೂಟ್‌ಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದರು. ಒಂದು ಸೂಟ್ ಕೋಡ್‌ನ ಪ್ರತಿಯೊಂದು ಸಾಲನ್ನು ಒಳಗೊಂಡಿತ್ತು ಮತ್ತು ಪ್ರತಿಯೊಂದು ಕಂಡೀಷನಲ್ ಬ್ರಾಂಚ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿತು. ಅದೇ ಸೂಟ್ ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್‌ಗೆ ಒಳಗಾದಾಗ—ಅಂದರೆ ಟೆಸ್ಟ್‌ಗಳು ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತವೆಯೇ ಎಂದು ನೋಡಲು ಸಣ್ಣ ದೋಷಗಳನ್ನು ಸೇರಿಸುವ ತಂತ್ರ—ಅದು ಸೇರಿಸಲಾದ ಬಗ್‌ಗಳಲ್ಲಿ ಕೇವಲ ಒಂದು ಸಣ್ಣ ಭಾಗವನ್ನು ಮಾತ್ರ ಪತ್ತೆಹಚ್ಚಿತು.

ಕವರೇಜ್ ಚೆನ್ನಾಗಿ ಕಾಣುತ್ತದೆ, ಆದರೆ ಅದರ ನಿಜವಾದ ಅರ್ಥವೇನು?

ಸಾಂಪ್ರದಾಯಿಕ ಕವರೇಜ್ ಮೆಟ್ರಿಕ್‌ಗಳು ಒಂದು ಟೆಸ್ಟ್ ಎಷ್ಟು ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳು ಅಥವಾ ಬ್ರಾಂಚ್‌ಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಎಣಿಸುತ್ತವೆ. ಸ್ಪ್ರಿಂಟ್ ಡೆಮೋಗಳಲ್ಲಿನ ಈ ಪ್ರಮುಖ ಅಂಕಿಅಂಶಗಳನ್ನು ತಂಡಗಳು ಇಷ್ಟಪಡುತ್ತವೆ. ಆದರೆ, ಕೋಡ್ ತಪ್ಪಾಗಿದ್ದರೆ ಟೆಸ್ಟ್‌ಗಳು ವಿಫಲವಾಗುತ್ತವೆಯೇ ಎಂಬುದರ ಬಗ್ಗೆ ಈ ಮೆಟ್ರಿಕ್ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ದೋಷಗಳನ್ನು (mutants) ಪರಿಚಯಿಸುವ ಮೂಲಕ ಮತ್ತು ಆ ದೋಷಗಳಿಂದಾಗಿ ಟೆಸ್ಟ್ ವಿಫಲವಾಗುವ ಶೇಕಡಾವಾರು ಪ್ರಮಾಣವನ್ನು—ಅಂದರೆ "ಮ್ಯುಟೇಶನ್ ಸ್ಕೋರ್" ಅನ್ನು—ಅಳೆಯುವ ಮೂಲಕ ಆ ಕೊರತೆಯನ್ನು ತುಂಬುತ್ತದೆ.

ಈ ಅಧ್ಯಯನದಲ್ಲಿ, 100% ಕವರೇಜ್ ಹೊಂದಿದ್ದ ಸೂಟ್ ಲೀಪ್-ಯರ್ (leap-year) ದಿನಾಂಕಗಳನ್ನು ತಪ್ಪಾಗಿ ನಿರ್ವಹಿಸುವಂತಹ ಸರಳ ತರ್ಕದ ದೋಷಗಳು ಸೇರಿದಂತೆ ಬಹುತೇಕ ಎಲ್ಲಾ ಮ್ಯುಟೆಂಟ್‌ಗಳನ್ನು ತಪ್ಪಿಸಿತು. 4% ಮ್ಯುಟೇಶನ್ ಸ್ಕೋರ್ ಎಂದರೆ ಆ ಸೂಟ್ ಕೇವಲ ಕೆಲವು ನೈಜ ಬಗ್‌ಗಳನ್ನು ಮಾತ್ರ ಗುರುತಿಸುತ್ತದೆ ಎಂದರ್ಥ.

AI-ಸಹಾಯಿತ ಅಭಿವೃದ್ಧಿಗೆ (AI-assisted development) ಇದು ಏಕೆ ಮುಖ್ಯ

  • ತಪ್ಪು ವಿಶ್ವಾಸ: ಕಾಗದದ ಮೇಲೆ ಪರಿಪೂರ್ಣವಾಗಿ ಕಾಣುವ ಟೆಸ್ಟ್ ಸೂಟ್‌ಗಳನ್ನು ಡೆವಲಪರ್‌ಗಳು ನಂಬಬಹುದು.
  • ಅಡಗಿರುವ ದೋಷಗಳು: ಅನೇಕ ಬಗ್‌ಗಳು ಗಮನಕ್ಕೆ ಬಾರದೆ ತಪ್ಪಿಹೋಗುತ್ತವೆ.
  • ಪರಿಹಾರದ ವೆಚ್ಚ: ಬಗ್‌ಗಳನ್ನು ಮೊದಲೇ ಪತ್ತೆಹಚ್ಚುವುದಕ್ಕಿಂತ ನಂತರ ಸರಿಪಡಿಸುವುದು ಹೆಚ್ಚು ವೆಚ್ಚದಾಯಕವಾಗಿರುತ್ತದೆ.

ವಿರೋಧಾತ್ಮಕ ಅಂಶ: ಕವರೇಜ್ ಅಪ್ರಯೋಜಕವಲ್ಲ

ಕೋಡ್ ಪಾತ್‌ಗಳು ರನ್ ಆಗುತ್ತವೆಯೇ ಎಂದು ಕವರೇಜ್ ತಿಳಿಸುತ್ತದೆ, ಆದರೆ ಅದು ದೋಷ ಪತ್ತೆಯನ್ನು ಖಚಿತಪಡಿಸುವುದಿಲ್ಲ.

ಮುಂದೆ ಗಮನಿಸಬೇಕಾದವುಗಳು

  • ಟೂಲಿಂಗ್ ಇಂಟಿಗ್ರೇಷನ್: ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ ಅನ್ನು CI ಪೈಪ್‌ಲೈನ್‌ಗಳಲ್ಲಿ ಅಳವಡಿಸಿ.
  • LLM ಸುಧಾರಣೆಗಳು: ಮ್ಯುಟೆಂಟ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವ (kill mutants) ಟೆಸ್ಟ್‌ಗಳನ್ನು ತಯಾರಿಸಲು ಏಜೆಂಟ್‌ಗಳಿಗೆ ತರಬೇತಿ ನೀಡಿ.
  • ಉದ್ಯಮದ ಮಾರ್ಗಸೂಚಿಗಳು: ಕವರೇಜ್ ಮತ್ತು ಮ್ಯುಟೇಶನ್ ಸ್ಕೋರ್‌ಗಳನ್ನು ಜೊತೆಯಲ್ಲಿ ಬಳಸುವ ಮಾನದಂಡಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ.

ಸಾರಾಂಶ: AI-ಸೃಷ್ಟಿತ ಟೆಸ್ಟ್‌ಗಳಿಂದ ಬರುವ ಹೆಚ್ಚಿನ ಕವರೇಜ್ ಅಂಕಿಅಂಶಗಳು ಗುಣಮಟ್ಟಕ್ಕೆ ಸಾಧಾರಣ ಪುರಾವೆಯಲ್ಲ; ಕಡಿಮೆ ಮ್ಯುಟೇಶನ್ ಸ್ಕೋರ್ ಎಂದರೆ ಟೆಸ್ಟ್‌ಗಳು ನೈಜ ಬಗ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚದಿರಬಹುದು ಎಂದು ಸೂಚಿಸುತ್ತದೆ, ಇದು ಡೆವಲಪರ್‌ಗಳು ಸುರಕ್ಷತಾ ಜಾಲವಾಗಿ ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವಂತೆ ಒತ್ತಾಯಿಸುತ್ತದೆ.