69 AI-ಬರಹದ ಪರೀಕ್ಷೆಗಳು (tests) ಒಂದು Python ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಪಾಸು ಮಾಡಿದವು, ಆದರೆ ಒಂದು ಪ್ರಯೋಗವು ಗುರಿ ಹೊಂದಿದ ಪರೀಕ್ಷಾ-ಸೃಷ್ಟಿ ವಿಧಾನವು (targeted test-generation approach) ಸೇರಿಸಲಾದ 53 ದೋಷಗಳಲ್ಲಿ 44 ಅನ್ನು ಪತ್ತೆಹಚ್ಚಿದೆ ಎಂದು ತೋರಿಸಿದೆ. ವಾರಾಂತ್ಯದ ಉದ್ದವಿರುವ ಈ ಪ್ರೊಟೊಟೈಪ್ ಪ್ರಸ್ತುತ ದೊಡ್ಡ ಭಾಷಾ ಮಾದರಿಗಳ (LLM) ಪರೀಕ್ಷಾ-ಬರವಣಿಗೆಯಲ್ಲಿರುವ ಮೂಲಭೂತ ದೌರ್ಬಲ್ಯವನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ: ಒಂದು ಪರೀಕ್ಷೆಯು ತಿಳಿದಿರುವ ದೋಷವನ್ನು ವಾಸ್ತವವಾಗಿ ವಿಫಲಗೊಳಿಸುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವ ಫೀಡ್‌ಬ್ಯಾಕ್ ಲೂಪ್ ಇಲ್ಲದಿದ್ದರೆ, ಸೃಷ್ಟಿಸಲಾದ ಪರೀಕ್ಷಾ ಸೆಟ್ (test suite) ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವ ಬದಲು ದೋಷಗಳಿಲ್ಲದಂತೆ ಕಾಣಿಸಬಹುದು.

ಈ ಪ್ರಯೋಗ ಏಕೆ ಮುಖ್ಯ

ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷಾ ಸೃಷ್ಟಿಯು ಕೋಡ್ ಮತ್ತು ಕವರೇಜ್ ನಡುವಿನ ಅಂತರವನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಭರವಸೆ ನೀಡುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಡೆವಲಪರ್‌ಗಳು ಯೂನಿಟ್ ಟೆಸ್ಟ್‌ಗಳನ್ನು ಬರೆಯಲು LLM ಗಳ ಮೇಲೆ ಅವಲಂಬಿತರಾಗುತ್ತಿರುವಾಗ. ಹೆಚ್ಚಿನ ಸಾರ್ವಜನಿಕ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳು ಲೈನ್ ಕವರೇಜ್ ಅನ್ನು ಅಳೆಯುವ ಮೂಲಕ ಯಶಸ್ಸನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತವೆ—ಅಂದರೆ ಪರೀಕ್ಷೆಯ ಸಮಯದಲ್ಲಿ ಕೋಡ್‌ನ ಪ್ರತಿಯೊಂದು ಸಾಲು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆಯೇ ಎಂದು ನೋಡಲಾಗುತ್ತದೆ. ಈ ಮಾಪನವು ದಾರಿತಪ್ಪಿಸಬಹುದು: ಪರೀಕ್ಷೆಯು ಸರಿಯಾದ ನಡವಳಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸದೆಯೇ (assert) ಒಂದು ಸಾಲು ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು. ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ (Mutation testing) ಮೂಲ ಕೋಡ್ ಅನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಹಾಳುಮಾಡುವ ಮೂಲಕ (ತೌಲನಿಕತೆಯನ್ನು ಬದಲಾಯಿಸುವುದು, ಒಂದು ಹೇಳಿಕೆಯನ್ನು ಅಳಿಸುವುದು ಇತ್ಯಾದಿ) ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪರೀಕ್ಷೆಗಳು ಆ ಬದಲಾವಣೆಯನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತವೆಯೇ ಎಂದು ಗಮನಿಸುವ ಮೂಲಕ ಆ ಕೊರತೆಯನ್ನು ತುಂಬುತ್ತದೆ. ಒಂದು ಮ್ಯುಟೇಟೆಡ್ ಆವೃತ್ತಿಯು ಇನ್ನೂ ಪಾಸು ಆದರೆ, ಪರೀಕ್ಷಾ ಸೆಟ್ ನಿಜವಾದ ದೋಷವನ್ನು ತಪ್ಪಿಸಿಕೊಂಡಿದೆ ಎಂದರ್ಥ.

ಈ ಪ್ರಯೋಗವು ಪರೀಕ್ಷೆಗಳನ್ನು ತಯಾರಿಸಲು LLM ಗೆ ಪ್ರಾಂಪ್ಟ್ ನೀಡುವ ಮೂರು ವಿಧಾನಗಳನ್ನು ಹೋಲಿಕೆ ಮಾಡಿದೆ:

  • Bulk prompting – "ಇನ್ನಷ್ಟು ಪರೀಕ್ಷೆಗಳು" ಎಂಬ ಒಂದೇ ವಿನಂತಿಯು 69 ಪರೀಕ್ಷೆಗಳನ್ನು ಸೃಷ್ಟಿಸಿತು, ಇವೆಲ್ಲವೂ ಮಾರ್ಪಡಿಸದ ಕೋಡ್ ಅನ್ನು ಪಾಸು ಮಾಡಿದವು ಆದರೆ 53 ಮ್ಯುಟೇಶನ್‌ಗಳಲ್ಲಿ ಕೇವಲ 9 ಅನ್ನು ಮಾತ್ರ ಪತ್ತೆಹಚ್ಚಿದವು.
  • One-test-per-call, untargeted – ದೋಷಗಳ ಬಗ್ಗೆ ಯಾವುದೇ ಮಾರ್ಗದರ್ಶನವಿಲ್ಲದೆ ಮಾದರಿಯನ್ನು ಪದೇ ಪದೇ ಒಂದೇ ಪರೀಕ್ಷೆಯನ್ನು ನೀಡಲು ಕೇಳಲಾಯಿತು; ಇದು ಕೇವಲ 2 ಮ್ಯುಟೇಶನ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಿತು.
  • Targeted prompting with a mutation-testing gate – ಮಾದರಿಯು ಪ್ರತಿಯೊಂದು ತಪ್ಪಿದ ಮ್ಯುಟೇಶನ್ ಅನ್ನು ಗಮನಿಸಿತು ಮತ್ತು ಮ್ಯುಟೇಟೆಡ್ ಕೋಡ್‌ನಲ್ಲಿ ವಿಫಲವಾಗುವ ಆದರೆ ಸ್ವಚ್ಛವಾದ (clean) ಆವೃತ್ತಿಯಲ್ಲಿ ಪಾಸು ಆಗುವ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯಲು ಕೇಳಲಾಯಿತು. ಈ ವಿಧಾನವು 44 ಪತ್ತೆಹಚ್ಚುವ ಪರೀಕ್ಷೆಗಳನ್ನು ನೀಡಿತು.

44 ಮತ್ತು 9 ಅಥವಾ 2 ರ ನಡುವಿನ ಈ ಭಾರಿ ವ್ಯತ್ಯಾಸವು, ಕಿರಿದಾದ, ದೋಷ-ಕೇಂದ್ರಿತ ಫೀಡ್‌ಬ್ಯಾಕ್ ಲೂಪ್ AI-ಸೃಷ್ಟಿತ ಪರೀಕ್ಷೆಗಳ ದೋಷ ಪತ್ತೆಹಚ್ಚುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಲ್ಲದು ಎಂದು ತೋರಿಸುತ್ತದೆ.

ಮ್ಯುಟೇಶನ್-ಟೆಸ್ಟಿಂಗ್ ಗೇಟ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

  1. Inject mutations – ಹಾರ್ನೆಸ್ ಮೂಲ ಕೋಡ್‌ನಲ್ಲಿ ಸಣ್ಣ, ವ್ಯವಸ್ಥಿತ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಕಂಡೀಷನಲ್ ಅನ್ನು ಉಲ್ಟಾ ಮಾಡುವುದು, ಒಂದು ಸಾಲನ್ನು ತೆಗೆದುಹಾಕುವುದು). ಪ್ರತಿಯೊಂದು ಮ್ಯುಟೇಶನ್ ಒಂದು ಸಂಭಾವ್ಯ ಬಗ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ.
  2. Run the current test suite – ಸೆಟ್ ಇನ್ನೂ ಪಾಸು ಆದರೆ, ಮ್ಯುಟೇಶನ್ ಪತ್ತೆಯಾಗದೆ ಉಳಿದಿದೆ ಎಂದರ್ಥ.
  3. Prompt the LLM – ಮಾದರಿಯು ನಿರ್ದಿಷ್ಟ ಮ್ಯುಟೇಶನ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಮೂಲ ಕೋಡ್‌ನಲ್ಲಿ ಯಶಸ್ವಿಯಾಗುವ ಆದರೆ ಮ್ಯುಟೇಟೆಡ್ ಕೋಡ್‌ನಲ್ಲಿ ವಿಫಲವಾಗುವ ಪರೀಕ್ಷೆಯನ್ನು ತಯಾರಿಸಲು ಕೇಳಲಾಗುತ್ತದೆ.
  4. Validate the new test – ಪರೀಕ್ಷೆಯು ಸ್ವಚ್ಛವಾದ ಕೋಡ್‌ನಲ್ಲಿ ಪಾಸು ಆಗಿ ಮತ್ತು ಮ್ಯುಟೇಟೆಡ್ ಆವೃತ್ತಿಯಲ್ಲಿ ವಿಫಲವಾದರೆ ಮಾತ್ರ ಅದನ್ನು ಉಳಿಸಿಕೊಳ್ಳಿ.
  5. Iterate – ಪತ್ತೆಯಾಗದ ಪ್ರತಿಯೊಂದು ಮ್ಯುಟೇಶನ್‌ಗೆ ಇದನ್ನು ಪುನರಾವರ್ತಿಸಿ.

ಈ ವ್ಯಾಲಿಡೇಶನ್ ಹಂತವೇ "ಗೇಟ್" ಆಗಿದೆ. ಇದು ಗುರಿ ಹೊಂದಿದ ದೋಷಕ್ಕೆ ಸೂಕ್ಷ್ಮವಾಗಿ ಸ್ಪಂದಿಸದ ಯಾವುದೇ ಪರೀಕ್ಷೆಯನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ಉಳಿಸಿಕೊಳ್ಳಲಾದ ಪ್ರತಿಯೊಂದು ಪರೀಕ್ಷೆಯು ದೋಷ ಪತ್ತೆಹಚ್ಚುವ ಮೌಲ್ಯವನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ.

ಅಂಕಿಅಂಶಗಳಿಂದ ಕಲಿತ ಪಾಠಗಳು

  • ಪತ್ತೆಯಾಗದ ದೋಷಗಳಲ್ಲಿ ತಲುಪದ ಕೋಡ್ ಪ್ರಬಲವಾಗಿದೆ – ಪರಿಪೂರ್ಣವಾದ ಕೋಡ್‌ಬೇಸ್‌ಗಳಲ್ಲಿ, ಅನೇಕ ಸಾಲುಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪರೀಕ್ಷೆಗಳಿಂದ ಎಂದಿಗೂ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ಪತ್ತೆಯಾಗದ ಹೆಚ್ಚಿನ ಮ್ಯುಟೇಶನ್‌ಗಳು ಇಂತಹ ತಲುಪಲಾಗದ ಪ್ರದೇಶಗಳಲ್ಲಿವೆ ಎಂದು ಪ್ರಯೋಗವು ತೋರಿಸಿದೆ.
  • ಗೇಟ್ ಸರಿಯಾದ ಕಾರಣವಿಲ್ಲದೆ ಮಾನ್ಯವಾದ ಪರೀಕ್ಷೆಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ – ತಿರಸ್ಕರಿಸಲಾದ ಪ್ರತಿಯೊಂದು ಪರೀಕ್ಷೆಯು ಸ್ವಚ್ಛವಾದ ಕೋಡ್‌ನಲ್ಲಿ ಪಾಸು ಆಗಿತ್ತು; ಅವು ನಿರ್ದಿಷ್ಟ ಮ್ಯುಟೇಶನ್ ಅನ್ನು ವಿಫಲಗೊಳಿಸದ ಕಾರಣ ಗೇಟ್ ಅವುಗಳನ್ನು ತೆಗೆದುಹಾಕಿತು. ಒಂದು ಪರೀಕ್ಷೆಯು ಸಂಪೂರ್ಣವಾಗಿ ಸರಿಯಾಗಿರಬಹುದು, ಆದರೆ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿರುವ ದೋಷಕ್ಕೆ ಅದು ಅಪ್ರಸ್ತುತವಾಗಿರಬಹುದು.
  • Targeted tests ಅತ್ಯಂತ ನಿರ್ದಿಷ್ಟವಾಗಿರುತ್ತವೆ – ಯಶಸ್ವಿ 44 ಪರೀಕ್ಷೆಗಳಲ್ಲಿ, 36 ಪರೀಕ್ಷೆಗಳು ನಿಖರವಾಗಿ ಒಂದೇ ಒಂದು ಮ್ಯುಟೇಶನ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಿದವು. ಪರೀಕ್ಷಾ ಸೆಟ್ ವಿಶಾಲವಾದ ದೃಢೀಕರಣಗಳಿಗಿಂತ (assertions) ಕಿರಿದಾದ ಪರಿಶೀಲನೆಗಳ ಸಂಗ್ರಹವಾಗಿ ಬದಲಾಯಿತು, ಇದು ನಿರ್ವಹಣೆ (maintainability) ಮತ್ತು ಓವರ್-ಫಿಟ್ಟಿಂಗ್ ಬಗ್ಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಎತ್ತುತ್ತದೆ.

ಫಲಿತಾಂಶಗಳು ಏನನ್ನು ಒಳಗೊಂಡಿಲ್ಲ

ಈ ವಿಧಾನದ ಸಾಮರ್ಥ್ಯ—ಅದು ತಿಳಿದಿರುವ ದೋಷದ ಮೇಲೆ ಗಮನ ಹರಿಸುವುದು—ಅದರ ಸಾಮಾನ್ಯ ಬಳಕೆಯನ್ನು (generality) ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ. ವಿನ್ಯಾಸದ ಪ್ರಕಾರ, ಮಾದರಿಯು ಹೊಸ, ಕಾಣದ ಬಗ್‌ಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಪ್ರೇರೇಪಿಸಲ್ಪಟ್ಟಿಲ್ಲ; ಅದು ಕೇವಲ ಪ್ರಸ್ತುತಪಡಿಸಿದ ಮ್ಯುಟೇಶನ್‌ಗಳಿಗೆ "ಪ್ರತಿಕ್ರಿಯಿಸಲು" ಕಲಿಯುತ್ತದೆ. ಕೇವಲ ಒಂದು ನಿರ್ದಿಷ್ಟ ಬದಲಾವಣೆಗೆ ವಿಫಲವಾಗುವ ಪರೀಕ್ಷೆಯು, ವಿಭಿನ್ನವಾಗಿ ಕಾಣಿಸಿಕೊಳ್ಳುವ ನೈಜ ಪ್ರಪಂಚದ ರಿಗ್ರೆಷನ್‌ಗಳ (regressions) ವಿರುದ್ಧ ವಿಶ್ವಾಸವನ್ನು ನೀಡದಿರಬಹುದು. ಇದಲ್ಲದೆ, ಪ್ರಯೋಗವು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸಣ್ಣ ಮಾಡ್ಯೂಲ್ ಮತ್ತು ಕೈಯಿಂದ ತಯಾರಿಸಿದ ಹಾರ್ನೆಸ್ ಅನ್ನು ಬಳಸಿದೆ; ಈ ವಿಧಾನವನ್ನು ದೊಡ್ಡ ಮತ್ತು ವೈವಿಧ್ಯಮಯ ಕೋಡ್‌ಬೇಸ್‌ಗಳಿಗೆ ವಿಸ್ತರಿಸಿದಾಗ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳು (performance bottlenecks) ಮತ್ತು ಹೆಚ್ಚಿನ ಎಂಜಿನಿಯರಿಂಗ್ ವೆಚ್ಚಗಳು ಎದುರಾಗಬಹುದು.

AI-ಚಾಲಿತ ಪರೀಕ್ಷೆಗಳ ಮೇಲಿನ ಪರಿಣಾಮಗಳು

  • ಅಳತೆಗಳು ಮುಖ್ಯ – ಕೇವಲ ಲೈನ್ ಕವರೇಜ್ (line coverage) ಮೇಲೆ ಅವಲಂಬಿತವಾಗುವುದು ಸುಳ್ಳು ಭದ್ರತೆಯ ಭಾವನೆಯನ್ನು ನೀಡಬಹುದು. ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ (Mutation testing) ಹೆಚ್ಚು ವರ್ತನೆ-ಕೇಂದ್ರಿತ ಅಳತೆಯನ್ನು ನೀಡುತ್ತದೆ, ಮತ್ತು ಅದನ್ನು ಮೌಲ್ಯಮಾಪನ ಲೂಪ್‌ನಲ್ಲಿ ಸಂಯೋಜಿಸುವುದು ಆರಂಭಿಕ ಹಂತದಲ್ಲೇ ದೃಷ್ಟಿಕೋನದಲ್ಲಿರುವ ಲೋಪದೋಷಗಳನ್ನು (blind spots) ಎದುರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
  • ಫೀಡ್‌ಬ್ಯಾಕ್ ಲೂಪ್‌ಗಳು ಫಲಿತಾಂಶವನ್ನು ಸುಧಾರಿಸುತ್ತವೆ – ಗೇಟ್‌ನಿಂದ (gate) ಸಿಕ್ಕಿದ ಗಮನಾರ್ಹ ಲಾಭವು, LLMಗಳು ಒಮ್ಮೆಲೇ ಜನರೇಟ್ ಮಾಡುವ ಬದಲು ಪುನರಾವರ್ತಿತ ಮತ್ತು ತಿದ್ದುಪಡಿ ಮಾಡುವ ಪ್ರಾಂಪ್ಟ್‌ಗಳಿಂದ (iterative, corrective prompts) ಹೆಚ್ಚು ಪ್ರಯೋಜನ ಪಡೆಯುತ್ತವೆ ಎಂಬುದನ್ನು ಒತ್ತಿಹೇಳುತ್ತದೆ.
  • ಟೂಲಿಂಗ್ ಪಾರದರ್ಶಕತೆ ಅತ್ಯಗತ್ಯ – ಲೇಖಕರು ಅಳತೆ ಮಾಡುವ ಹಾರ್ನೆಸ್‌ನಲ್ಲಿಯೇ (measurement harness) 11 ಬಗ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಿದ್ದಾರೆ, ಇದು ಆರಂಭದಲ್ಲಿ ವರದಿಯಾದ ಯಶಸ್ಸಿನ ದರವನ್ನು ಅತಿಯಾಗಿ ತೋರಿಸುತ್ತಿತ್ತು. ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಹಾರ್ನೆಸ್ ಅನ್ನು ಪ್ರಕಟಿಸುವುದರಿಂದ ಸಮುದಾಯವು ಮೌಲ್ಯಮಾಪನ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಸುಧಾರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

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

  • ಹೈಬ್ರಿಡ್ ಪೈಪ್‌ಲೈನ್‌ಗಳು – ವ್ಯಾಪ್ತಿಗಾಗಿ (breadth) ಬಲ್ಕ್ ಟೆಸ್ಟ್ ಜನರೇಷನ್ ಮತ್ತು ಆಳಕ್ಕಾಗಿ (depth) ಗುರಿ ಹೊಂದಿದ ಮ್ಯುಟೇಶನ್-ಚಾಲಿತ ಸುಧಾರಣೆಯನ್ನು (mutation-driven refinement) ಸಂಯೋಜಿಸುವುದರಿಂದ, ಕೋಡ್ ಅನ್ನು ಕವರ್ ಮಾಡುವ ಮತ್ತು ವರ್ತನೆಯನ್ನು ದೃಢೀಕರಿಸುವ ಸಮತೋಲಿತ ಸೂಟ್ ಅನ್ನು ಪಡೆಯಬಹುದು.
  • ಸ್ವಯಂಚಾಲಿತ ಹಾರ್ನೆಸ್ ಪರಿಶೀಲನೆ – ಹೆಚ್ಚಿನ ಸಂಶೋಧಕರು ಮ್ಯುಟೇಶನ್ ಟೆಸ್ಟಿಂಗ್ ಅನ್ನು ಬೆಂಚ್‌ಮಾರ್ಕ್ ಆಗಿ ಅಳವಡಿಸಿಕೊಳ್ಳುತ್ತಿದ್ದಂತೆ, ಅಡಗಿರುವ ಅಳತೆಯ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸಲು ತಮ್ಮ ಮ್ಯುಟೇಶನ್ ಸೆಟ್‌ಗಳು ಮತ್ತು ಎಕ್ಸಿಕ್ಯೂಷನ್ ಪೈಪ್‌ಲೈನ್‌ಗಳನ್ನು ಸ್ವಯಂ-ಪರಿಶೀಲಿಸುವ ಸಾಧನಗಳು ನಿರ್ಣಾಯಕವಾಗುತ್ತವೆ.
  • ಜನರಲೈಸೇಶನ್ ಅಧ್ಯಯನಗಳು – ಭವಿಷ್ಯದ ಕೆಲಸವು, ಗೇಟ್ ಮೂಲಕ ಉತ್ಪತ್ತಿಯಾದ ಪರೀಕ್ಷೆಗಳು ಕಂಡುಬರದ ಬಗ್‌ಗಳಿಗೆ ಅಥವಾ ಪ್ರೊಡಕ್ಷನ್ ಪರಿಸರದಲ್ಲಿ ಅನ್ವಯಿಸಿದಾಗ ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತವೆಯೇ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸಬೇಕು, ಇದು ಅದರ ಮಿತಿಯ (narrowness) ಆತಂಕವನ್ನು ಪರಿಹರಿಸುತ್ತದೆ.

ಸಾರಾಂಶ

ಸರಳವಾದ ಮ್ಯುಟೇಶನ್-ಟೆಸ್ಟಿಂಗ್ ಫೀಡ್‌ಬ್ಯಾಕ್ ಲೂಪ್, ಪಾಸಾಗುವ ಆದರೆ ಪ್ರಯೋಜನವಿಲ್ಲದ ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯುವ LLM ಅನ್ನು ನಿಜವಾದ ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವ ಸಾಧನವನ್ನಾಗಿ ಪರಿವರ್ತಿಸಬಹುದು. ಅಂತಹ ಗೇಟ್ ಇಲ್ಲದಿದ್ದರೆ, AI-ಜನರೇಟೆಡ್ ಪರೀಕ್ಷೆಗಳು ಕೇವಲ ಕವರೇಜ್‌ನಂತೆ ಕಾಣುವ ಅಪಾಯವಿದೆ ಮತ್ತು ಅವು ಪತ್ತೆಹಚ್ಚಬೇಕಾದ ಬಗ್‌ಗಳನ್ನೇ ತಪ್ಪಿಸಿಕೊಳ್ಳಬಹುದು ಎಂದು ಈ ಪ್ರಯೋಗವು ತೋರಿಸುತ್ತದೆ. ಡೆವಲಪರ್‌ಗಳು ಮತ್ತು ಸಂಶೋಧಕರಿಬ್ಬರಿಗೂ, ಟೆಸ್ಟ್ ಜನರೇಷನ್ ಅನ್ನು ವರ್ತನೆ-ಕೇಂದ್ರಿತ ವ್ಯಾಲಿಡೇಶನ್‌ನೊಂದಿಗೆ ಜೋಡಿಸುವುದು ಇನ್ನು ಮುಂದೆ ಐಚ್ಛಿಕವಲ್ಲ—ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆಯು ಕೋಡ್‌ಬೇಸ್‌ಗೆ ನಿಜವಾದ ಸುರಕ್ಷತೆಯನ್ನು ನೀಡುತ್ತದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಇದೇ ಏಕೈಕ ಮಾರ್ಗವಾಗಿದೆ.