ಲಾಭಗಳು:
- ಅಂಗೀಕಾರ ನಿಯಮದಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ಘಟಕ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಮೂಲಕ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯನ್ನು ತಪ್ಪಾದ ನಡವಳಿಕೆಯನ್ನು 'ಸರಿ' ಎಂದು ಒಪ್ಪಿಕೊಳ್ಳುವುದನ್ನು ತಡೆಯುವ ಸಾಮರ್ಥ್ಯ
- AAA ಮತ್ತು FIRST ತತ್ವಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ ಮತ್ತು ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳನ್ನು ಅಪಹಾಸ್ಯ ಮಾಡುವ ಮೂಲಕ ವೇಗದ, ಸ್ವತಂತ್ರ ಮತ್ತು ಪುನರಾವರ್ತಿತ ಪರೀಕ್ಷೆಗಳನ್ನು ಮುದ್ರಿಸುವ ಸಾಮರ್ಥ್ಯ
- ರೂಪಾಂತರದೊಂದಿಗೆ ಪರೀಕ್ಷೆಗಳನ್ನು ಪರೀಕ್ಷಿಸುವ ಸಾಮರ್ಥ್ಯ (ಕೋಡ್ ಬ್ರೇಕಿಂಗ್) ಮತ್ತು ಪರೀಕ್ಷೆಗೆ ಕಷ್ಟಕರವಾದ ಕೋಡ್ ಅನ್ನು ವಿನ್ಯಾಸ ವಾಸನೆ ಎಂದು ಗುರುತಿಸುವುದು
ಟೆಸ್ಟಿಂಗ್ ಪಿರಮಿಡ್ನ ಅತಿ ದೊಡ್ಡ ಮತ್ತು ವೇಗವಾದ ಪದರವು ಘಟಕ ಪರೀಕ್ಷೆಯಾಗಿದೆ - ಇದು ಎಲ್ಲದರಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಒಂದು ಕಾರ್ಯ ಅಥವಾ ಸಣ್ಣ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಸಾವಿರಾರು ಯೂನಿಟ್ ಪರೀಕ್ಷೆಗಳು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ರನ್ ಆಗುತ್ತವೆ ಮತ್ತು ಕೋಡ್ ಡೆವಲಪರ್ನ ಪರದೆಯಲ್ಲಿರುವಾಗ ದೋಷವನ್ನು ಹಿಡಿಯುತ್ತವೆ. ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ (AI) ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಉತ್ಪಾದಿಸುವಲ್ಲಿ ಪ್ರಾಯಶಃ ಹೆಚ್ಚು ಪ್ರವೀಣವಾಗಿದೆ: ನೀವು ಅದನ್ನು ಕಾರ್ಯವನ್ನು ನೀಡುತ್ತೀರಿ, AI ಡಜನ್ಗಟ್ಟಲೆ ಪರೀಕ್ಷೆಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಆದರೆ ಈ ಅನುಕೂಲವು ದೊಡ್ಡ ಬಲೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ: AI ಸುಲಭವಾಗಿ "ಹಸಿರು ಬಣ್ಣದಲ್ಲಿ ಹೊಳೆಯುತ್ತದೆ ಆದರೆ ಯಾವುದನ್ನೂ ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ" ಅಥವಾ ಕೋಡ್ನ ಪ್ರಸ್ತುತ (ಬಹುಶಃ ದೋಷಪೂರಿತ) ನಡವಳಿಕೆಯನ್ನು "ಸರಿಯಾದ" ಎಂದು ಒಪ್ಪಿಕೊಳ್ಳುವ ಪರೀಕ್ಷೆಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಈ ಘಟಕದಲ್ಲಿ ನೀವು AI ನೊಂದಿಗೆ ನಿಜವಾದ ರಕ್ಷಣಾತ್ಮಕ ಘಟಕ ಪರೀಕ್ಷೆಗಳನ್ನು ಹೇಗೆ ಬರೆಯಬೇಕು ಮತ್ತು ಪರೀಕ್ಷಿಸಬಹುದಾದ ಕೋಡ್ ಮತ್ತು AI ನಡುವಿನ ಸಂಬಂಧವನ್ನು ಕಲಿಯುವಿರಿ.
ಉತ್ತಮ ಘಟಕ ಪರೀಕ್ಷೆಯ ಗುಣಮಟ್ಟ: ಮೊದಲನೆಯದು
ಉತ್ತಮ ಘಟಕ ಪರೀಕ್ಷೆಗಳು ಮೊದಲ ತತ್ವಗಳನ್ನು ಅನುಸರಿಸುತ್ತವೆ: ವೇಗದ, ಸ್ವತಂತ್ರ (ಪರೀಕ್ಷೆಗಳು ಪರಸ್ಪರ ಅವಲಂಬಿತವಾಗಿರಬಾರದು), ಪುನರಾವರ್ತಿತ (ಪುನರಾವರ್ತನೀಯ - ಯಾವುದೇ ಪರಿಸರದಲ್ಲಿ ಒಂದೇ ಫಲಿತಾಂಶ), ಸ್ವಯಂ-ಮೌಲ್ಯಮಾಪನ (ಸ್ಪಷ್ಟ ಪಾಸ್/ಫೇಲ್), ಸಮಯೋಚಿತ (ಸಮಯಕ್ಕೆ). AI ಉತ್ಪಾದನಾ ಪರೀಕ್ಷೆಗಳನ್ನು ಹೊಂದಿರುವಾಗ ಈ ತತ್ವಗಳನ್ನು ನೀವೇ ನೆನಪಿಸಿಕೊಳ್ಳಿ; ಪರೀಕ್ಷೆಯು "ಸ್ವತಂತ್ರ" ಮತ್ತು "ಪುನರಾವರ್ತನೀಯ" ಎಂದು ಹೊರಗಿನ ಪ್ರಪಂಚವನ್ನು (ನಿಜವಾದ ಡೇಟಾಬೇಸ್, ನೆಟ್ವರ್ಕ್, ಗಡಿಯಾರ) ಅವಲಂಬಿಸಿರುವುದಿಲ್ಲ ಎಂದು ನಿರ್ದಿಷ್ಟವಾಗಿ ಕೇಳಿಕೊಳ್ಳಿ.
AAA ಮಾದರಿ ಮತ್ತು ಅಭಿವ್ಯಕ್ತಿಶೀಲ ಪ್ರತಿಪಾದನೆ
ಘನ ಘಟಕ ಪರೀಕ್ಷೆಯು AAA ರಚನೆಯನ್ನು ಅನುಸರಿಸುತ್ತದೆ: ವ್ಯವಸ್ಥೆ ಮಾಡಿ (ತಯಾರಿಸು - ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ಅವಲಂಬನೆಗಳನ್ನು ಹೊಂದಿಸಿ), ಆಕ್ಟ್ (ಕಾರ್ಯಗತಗೊಳಿಸಿ - ಪರೀಕ್ಷೆಯ ಅಡಿಯಲ್ಲಿ ಕಾರ್ಯವನ್ನು ಕರೆ ಮಾಡಿ), ಪ್ರತಿಪಾದಿಸಿ (ಮೌಲ್ಯಮಾಪನ - ಫಲಿತಾಂಶವನ್ನು ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯದೊಂದಿಗೆ ಹೋಲಿಕೆ ಮಾಡಿ). ನಿರ್ಣಾಯಕವಾದದ್ದು ಪ್ರತಿಪಾದನೆಯಾಗಿದೆ. ಪರೀಕ್ಷೆಯ ಅಡಿಯಲ್ಲಿ ಕೋಡ್ನ ಔಟ್ಪುಟ್ನಿಂದ ಪ್ರತಿಪಾದನೆಯನ್ನು ಪಡೆಯುವುದು AI ಮಾಡುವ ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ತಪ್ಪು - "ಕೋಡ್ ಏನನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆಯೋ ಅದು ನಿಜ" ತರ್ಕ. ಇದರಿಂದ ಪರೀಕ್ಷೆ ಅರ್ಥಹೀನವಾಗುತ್ತದೆ. ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯವನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ನಿರ್ಧರಿಸುವುದು ಸರಿಯಾದ ಮಾರ್ಗವಾಗಿದೆ (ಸ್ವೀಕಾರದ ಮಾನದಂಡದಿಂದ, ಅದನ್ನು ಕೈಯಾರೆ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ).
ಗಮನ: ನೀವು AI ಗೆ "ಈ ಕಾರ್ಯಕ್ಕಾಗಿ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯಿರಿ" ಎಂದು ಹೇಳಿದರೆ, AI ಕಾರ್ಯವನ್ನು ರನ್ ಮಾಡಬಹುದು ಮತ್ತು ಅದರ ಔಟ್ಪುಟ್ ಅನ್ನು "ನಿರೀಕ್ಷಿತ" ಎಂದು ಬರೆಯಬಹುದು. ಕಾರ್ಯವು ತಪ್ಪಾಗಿದ್ದರೂ ಸಹ ಈ ಪರೀಕ್ಷೆಯು ಹಾದುಹೋಗುತ್ತದೆ. ಬದಲಾಗಿ, "ನೀವು ಈ ನಿಯಮಗಳ ಪ್ರಕಾರ ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶಗಳನ್ನು ಲೆಕ್ಕ ಹಾಕುತ್ತೀರಿ, ಕಾರ್ಯದ ಪ್ರಸ್ತುತ ಔಟ್ಪುಟ್ ಅನ್ನು ಉಲ್ಲೇಖಿಸಬೇಡಿ" ಎಂದು ಹೇಳಿ.
ಅಣಕುಗಳು, ಸ್ಟಬ್ಗಳು ಮತ್ತು ಅವಲಂಬನೆಗಳು
ಘಟಕ ಪರೀಕ್ಷೆಗೆ ಪ್ರತ್ಯೇಕತೆಯ ಅಗತ್ಯವಿದೆ. ನಿಮ್ಮ ಕಾರ್ಯವು ಡೇಟಾಬೇಸ್ ಅಥವಾ API ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದರೆ, ಅವುಗಳನ್ನು ಪರೀಕ್ಷೆಯಲ್ಲಿ ಅಣಕು ವಸ್ತುಗಳಿಂದ (ಮಾಕ್/ಸ್ಟಬ್ - ನಿಯಂತ್ರಿತ, ನೈಜ ಅವಲಂಬನೆಗೆ ನಕಲಿ ಬದಲಿ) ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಇದು ಪರೀಕ್ಷೆಯನ್ನು ತ್ವರಿತವಾಗಿ, ಸ್ವತಂತ್ರವಾಗಿ ಮತ್ತು ಪುನರುತ್ಪಾದಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. AI ಅಣಕು ಅನುಸ್ಥಾಪನೆಯನ್ನು ಉತ್ಪಾದಿಸಬಹುದು; ಆದರೆ ಅತಿಯಾದ ಅಪಹಾಸ್ಯದ ಬಗ್ಗೆ ಎಚ್ಚರದಿಂದಿರಿ: ನೀವು ಎಲ್ಲವನ್ನೂ ಅಪಹಾಸ್ಯ ಮಾಡಿದರೆ, ಪರೀಕ್ಷೆಯು "ಏನು ಅಣಕು ಹಿಂತಿರುಗಿಸುತ್ತದೆ" ಎಂಬುದನ್ನು ಮಾತ್ರ ಪರಿಶೀಲಿಸುತ್ತದೆ, ನಿಜವಾದ ತರ್ಕವಲ್ಲ. ಸಮತೋಲನ: ಹೊರಗಿನ ಪ್ರಪಂಚವನ್ನು ಅನುಕರಿಸಿ, ಪರೀಕ್ಷೆಯ ಅಡಿಯಲ್ಲಿ ನೈಜ ತರ್ಕವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ.
ಪರೀಕ್ಷೆ ಮತ್ತು AI
ಆಸಕ್ತಿದಾಯಕ ಪ್ರತಿಕ್ರಿಯೆ ಇದೆ: ಪರೀಕ್ಷಿಸಲು ಕಷ್ಟಕರವಾದ ಕೋಡ್ ಸಾಮಾನ್ಯವಾಗಿ ಕಳಪೆಯಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಕೋಡ್ ಆಗಿದೆ. ಒಂದು ಕಾರ್ಯಕ್ಕೆ ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಲು AI ತೊಂದರೆಯನ್ನು ಹೊಂದಿದ್ದರೆ (ಹಲವು ಅವಲಂಬನೆಗಳು, ಗುಪ್ತ ಜಾಗತಿಕ ಸ್ಥಿತಿ, ಅಡ್ಡಪರಿಣಾಮಗಳು), ಅದು ವಿನ್ಯಾಸದ ವಾಸನೆಯಾಗಿದೆ. AI ಅನ್ನು ಕೇಳುವುದು "ಈ ಕೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ಹೇಗೆ ಮರುಫಲಕ ಮಾಡುತ್ತೀರಿ" ಎಂದು ಕೇಳುವುದು ಉತ್ತಮ ಪರೀಕ್ಷೆ ಮತ್ತು ಉತ್ತಮ ಕೋಡ್ ಎರಡಕ್ಕೂ ಕಾರಣವಾಗುತ್ತದೆ.
ಪ್ಯಾರಾಮೀಟರ್ ಪರೀಕ್ಷೆಗಳು ಮತ್ತು ಡೇಟಾ ವೈವಿಧ್ಯತೆ
ವಿಭಿನ್ನ ಇನ್ಪುಟ್ಗಳೊಂದಿಗೆ ಒಂದೇ ನಿಯಮವನ್ನು ಪರಿಶೀಲಿಸಲು ಪ್ರತಿ ಬಾರಿ ಪ್ರತ್ಯೇಕ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯುವುದು ಬೇಸರದ ಮತ್ತು ನಿರ್ವಹಿಸಲು ಕಷ್ಟಕರವಾಗಿದೆ. ಪ್ಯಾರಾಮೀಟರ್ ಮಾಡಲಾದ ಪರೀಕ್ಷೆ - ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಅದೇ ಪರೀಕ್ಷಾ ತರ್ಕವನ್ನು ಪುನರಾವರ್ತಿತವಾಗಿ ರನ್ ಮಾಡುವ ರಚನೆ - ಈ ಪುನರಾವರ್ತನೆಯನ್ನು ನಿವಾರಿಸುತ್ತದೆ: ಒಂದು ಪರೀಕ್ಷಾ ದೇಹವು ಡಜನ್ಗಟ್ಟಲೆ ಇನ್ಪುಟ್ ಜೋಡಿಗಳೊಂದಿಗೆ ನೀಡಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ಸ್ವೀಕಾರ ನಿಯಮಗಳನ್ನು ನೀವು ನೀಡಿದಾಗ ಈ ಇನ್ಪುಟ್-ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶದ ಕೋಷ್ಟಕಗಳನ್ನು ಉತ್ಪಾದಿಸುವಲ್ಲಿ AI ತುಂಬಾ ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ; ನಿರ್ದಿಷ್ಟವಾಗಿ, ಇದು ವ್ಯವಸ್ಥಿತವಾಗಿ ಮಿತಿ ಮೌಲ್ಯಗಳು ಮತ್ತು ಸಮಾನತೆಯ ವರ್ಗಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ.
ಆದರೆ ಇಲ್ಲಿಯೂ ಒಂದು ಬಲೆ ಇದೆ: AI ಪರೀಕ್ಷೆಯ ಅಡಿಯಲ್ಲಿ ಕೋಡ್ನಿಂದ ರಚಿತವಾದ ಕೋಷ್ಟಕದಲ್ಲಿ ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಪ್ಯಾರಾಮೀಟರ್ ಮಾಡಲಾದ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಈ ದೋಷವು ಹೆಚ್ಚು ಅಪಾಯಕಾರಿಯಾಗಿದೆ, ಏಕೆಂದರೆ ಒಂದು ತಪ್ಪಾದ ತರ್ಕವು ಡಜನ್ಗಟ್ಟಲೆ ಸಾಲುಗಳನ್ನು ಅಮಾನ್ಯಗೊಳಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ಯಾವಾಗಲೂ ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶದ ಕಾಲಮ್ ಅನ್ನು ಸ್ವೀಕಾರ ನಿಯಮದ ಪ್ರಕಾರ ಸ್ವತಂತ್ರವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ ಮತ್ತು ಕನಿಷ್ಠ ಕೆಲವು ಸಾಲುಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಮೌಲ್ಯೀಕರಿಸಿ. "ಪ್ರತಿ ಸಾಲು ಏನನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ" ಎಂಬ ವಿವರಣೆಯ ಕಾಲಮ್ ಅನ್ನು ಸಹ ಕೇಳಿ; ಆದ್ದರಿಂದ ಒಂದು ಸಾಲು ಮುರಿದಾಗ, ಯಾವ ರಾಜ್ಯವು ಮುರಿದುಹೋಗಿದೆ ಎಂಬುದನ್ನು ನೀವು ತಕ್ಷಣ ನೋಡುತ್ತೀರಿ.
ಸಲಹೆ: ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್ ಮಾಡಲಾದ ಪರೀಕ್ಷಾ ಕೋಷ್ಟಕಕ್ಕೆ "ಟ್ರ್ಯಾಪ್ ರೋ" ಅನ್ನು ಸೇರಿಸಿ - ಅಂದರೆ, ಫಲಿತಾಂಶವನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ತಪ್ಪಾಗಿ ಟೈಪ್ ಮಾಡಿ. ನೀವು ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸಿದಾಗ ಆ ಸಾಲು ಕೆಂಪು ಬಣ್ಣಕ್ಕೆ ತಿರುಗದಿದ್ದರೆ, ನಿಮ್ಮ ಪರೀಕ್ಷೆಯು ಆ ಪರಿಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತಿಲ್ಲ. ಇದು ತ್ವರಿತ ಅಣಕು-ಪಾಸ್ ಪರಿಶೀಲನೆಯಾಗಿದೆ.
ದುರ್ಬಲ ಪ್ರಾಂಪ್ಟ್ / ಬಲವಾದ ಪ್ರಾಂಪ್ಟ್
ದುರ್ಬಲ: "ಈ ಕಾರ್ಯಕ್ಕಾಗಿ ಘಟಕ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯಿರಿ."
ಪ್ರಬಲ: "ತೆರಿಗೆ ಲೆಕ್ಕಾಚಾರ(ಮೊತ್ತ, ದರ) ಕಾರ್ಯಕ್ಕಾಗಿ [ಭಾಷೆ/ಫ್ರೇಮ್ವರ್ಕ್] ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಿರಿ. ಸ್ವೀಕಾರ ನಿಯಮ: ಫಲಿತಾಂಶ = ಮೊತ್ತ * ದರ, 2 ದಶಮಾಂಶಗಳಿಗೆ ದುಂಡಾದ; ಋಣಾತ್ಮಕ ಮೊತ್ತ ಅಥವಾ ದರವು ದೋಷವನ್ನು ಎಸೆಯುತ್ತದೆ; ದರವು 0 ಆಗಿದ್ದರೆ 0 ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. AAA ರಚನೆಯನ್ನು ಬಳಸಿ. ಋಣಾತ್ಮಕ ಪ್ರಕರಣಗಳ ಪ್ರಕಾರ ಪ್ರಸ್ತುತ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ಲೆಕ್ಕಹಾಕಬೇಡಿ. (0, ಋಣಾತ್ಮಕ, ತುಂಬಾ ದೊಡ್ಡದು, ದಶಮಾಂಶಗಳ ಸುತ್ತಿನಲ್ಲಿ) ಇದು ಬಾಹ್ಯ ಅವಲಂಬನೆಯನ್ನು ಪರಿಶೀಲಿಸುವ ನಿಯಮವನ್ನು ವಿವರಿಸುತ್ತದೆ.
ಶಕ್ತಿಯುತ ಪ್ರಾಂಪ್ಟ್; ಇದು ಸ್ವೀಕಾರ ನಿಯಮ, ಸ್ವತಂತ್ರ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯ ನಿರೀಕ್ಷೆ, ರಚನೆ ಮತ್ತು ಅಂಚಿನ ಪ್ರಕರಣಗಳನ್ನು ನೀಡುತ್ತದೆ. ಹೀಗಾಗಿ, ಪರೀಕ್ಷೆಯು ನಿಯಮದ ರಕ್ಷಕನಾಗುತ್ತಾನೆ, ಕೋಡ್ನ ಕನ್ನಡಿಯಲ್ಲ.
ಘಟಕ ಪರೀಕ್ಷಾ ಗುಣಮಟ್ಟದ ಟೇಬಲ್
ಲಕ್ಷಣ
ಕೆಟ್ಟ ಪರೀಕ್ಷೆ (ನಕಲಿ-ನಂಬಿಕೆ)
ಉತ್ತಮ ಪರೀಕ್ಷೆ
ಪ್ರತಿಪಾದಿಸುತ್ತಾರೆ
ಯಾವುದೂ ಇಲ್ಲ ಅಥವಾ "ಶೂನ್ಯವಲ್ಲ"
ನಿರೀಕ್ಷಿತ ಕಾಂಕ್ರೀಟ್ ಮೌಲ್ಯ
ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯದ ಮೂಲ
ಕಾರ್ಯದ ಔಟ್ಪುಟ್
ಸ್ವೀಕಾರ ನಿಯಮ / ಹಸ್ತಚಾಲಿತ ಲೆಕ್ಕಾಚಾರ
ಚಟ
ನಿಜವಾದ DB/ನೆಟ್ವರ್ಕ್/ಗಂಟೆ
ಅಣಕು/ಸ್ಟಬ್ನೊಂದಿಗೆ ಬೇರ್ಪಡಿಸಲಾಗಿದೆ
ಅಂಚಿನ ಪ್ರಕರಣ
ಸಂತೋಷದ ಹಾದಿ ಮಾತ್ರ
ಮಿತಿ, ಋಣಾತ್ಮಕ, ದೋಷ
ನೀವು ಕೋಡ್ ಅನ್ನು ಮುರಿದಾಗ
ಹಸಿರು ಉಳಿದಿದೆ
ಕೆಂಪು ಬಣ್ಣಕ್ಕೆ ತಿರುಗುತ್ತದೆ
ಹೆಸರು
ಪರೀಕ್ಷೆ 1, ಪರೀಕ್ಷಾ ವಿಧಾನ
ಇದು ದೃಢೀಕರಿಸುವ ನಿಯಮವನ್ನು ವಿವರಿಸುತ್ತದೆ
ನಾಲ್ಕು ನಕಲಿಸಬಹುದಾದ ಟೆಂಪ್ಲೇಟ್ಗಳು
1) ನಿಯಮ-ಚಾಲಿತ ಘಟಕ ಪರೀಕ್ಷೆ:
ನಿಮ್ಮ ಪಾತ್ರ: ಹಿರಿಯ ಸಾಫ್ಟ್ವೇರ್ ಪರೀಕ್ಷಾ ಇಂಜಿನಿಯರ್. [ಭಾಷೆ/ಫ್ರೇಮ್ವರ್ಕ್] ಜೊತೆಗೆ ಕೆಳಗಿನ ಕಾರ್ಯದ ಮೇಲೆ ಯುನಿಟ್ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯಿರಿ: [ಸಹಿ]. ಸ್ವೀಕಾರ ನಿಯಮಗಳು: [ನಿಯಮಗಳು].- AAA ರಚನೆಯನ್ನು ಬಳಸಿ.- ಈ ನಿಯಮಗಳ ಪ್ರಕಾರ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ; ಕಾರ್ಯದ ಪ್ರಸ್ತುತ ಔಟ್ಪುಟ್ ಅನ್ನು ಉಲ್ಲೇಖಿಸಬೇಡಿ. - ಪ್ರತ್ಯೇಕ ಪರೀಕ್ಷೆಗಳೊಂದಿಗೆ ಮಿತಿ, ಋಣಾತ್ಮಕ, ದೋಷ ಮತ್ತು ಸಂತೋಷದ ಮಾರ್ಗವನ್ನು ಕವರ್ ಮಾಡಿ. - ಪ್ರತಿ ಪರೀಕ್ಷೆಯ ಹೆಸರು ಅದು ಪರಿಶೀಲಿಸುವ ನಿಯಮವನ್ನು ವಿವರಿಸಲಿ. - ಅಣಕು ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳು; ನಿಜವಾದ ತರ್ಕವನ್ನು ಕೆಲಸ ಮಾಡಿ.
2) ರೂಪಾಂತರ ನಿರೋಧಕ ನಿಯಂತ್ರಣ:
ಈ ಘಟಕ ಪರೀಕ್ಷೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ಪರೀಕ್ಷೆಯ ಅಡಿಯಲ್ಲಿ ಕೋಡ್ಗೆ ನಾನು ಮಾಡಬಹುದಾದ 5 ಸಣ್ಣ ಟ್ವೀಕ್ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ (a - ಬದಲಿಗೆ +, a >= ಬದಲಿಗೆ a >, ಬೌಂಡರಿ ಶಿಫ್ಟ್) ಮತ್ತು ಈ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಯಾವುದು ಕೆಂಪು ಬಣ್ಣಕ್ಕೆ ತಿರುಗುತ್ತದೆ ಎಂದು ನನಗೆ ತಿಳಿಸಿ? ಯಾವುದನ್ನೂ ಹಿಂತಿರುಗಿಸದಿದ್ದರೆ, ಪರೀಕ್ಷೆಯು ಸಾಕಾಗುವುದಿಲ್ಲ. ಕೋಡ್ + ಪರೀಕ್ಷೆಗಳು: [ಅಂಟಿಸಿ]
3) ಪರೀಕ್ಷೆಯ ವಿಮರ್ಶೆ:
ಈ ಕಾರ್ಯಕ್ಕಾಗಿ ಯುನಿಟ್ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯುವುದು ಏಕೆ ಕಷ್ಟ? ಗುಪ್ತ ಚಟ, ಜಾಗತಿಕ ಸ್ಥಿತಿ, ಅಡ್ಡ ಪರಿಣಾಮಗಳು, ಹಲವು ಜವಾಬ್ದಾರಿಗಳಿವೆಯೇ? ಅದನ್ನು ಪರೀಕ್ಷಿಸಲು ಕನಿಷ್ಠ ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಅನ್ನು ಸೂಚಿಸಿ; ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಬೇಡಿ. ಕೋಡ್: [ಅಂಟಿಸಿ]
4) ಅಪೂರ್ಣ ಸನ್ನಿವೇಶದ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ:
ಕೆಳಗಿನ ಕಾರ್ಯ ಮತ್ತು ಲಭ್ಯವಿರುವ ಪರೀಕ್ಷೆಗಳನ್ನು ನೀಡಲಾಗಿದೆ. ಯಾವ ನಡವಳಿಕೆ/ಎಡ್ಜ್ಕೇಸ್ ಅನ್ನು ಎಂದಿಗೂ ಪರೀಕ್ಷಿಸಲಾಗಿಲ್ಲ (ಸ್ಕೋಪ್ ಗ್ಯಾಪ್) ಮತ್ತು ಪ್ರತಿಯೊಂದಕ್ಕೂ ಪರೀಕ್ಷೆಯನ್ನು ಸೇರಿಸಿ. ಕಾರ್ಯ+ಪರೀಕ್ಷೆಗಳು: [ಅಂಟಿಸಿ]
ಮೂರು ಸಣ್ಣ ಪ್ರಕರಣಗಳು
ಪ್ರಕರಣ 1 - ಕೋಡ್ ಪ್ರತಿಬಿಂಬಿಸುವ ಪರೀಕ್ಷೆ. ಡೆವಲಪರ್ಗೆ AI ರೌಂಡಿಂಗ್ ಫಂಕ್ಷನ್ಗಾಗಿ ಪರೀಕ್ಷೆಯನ್ನು ಬರೆಯುವಂತೆ ಮಾಡಿತು; 10 ಪರೀಕ್ಷೆಗಳು ಹಸಿರು. ವಾಸ್ತವವಾಗಿ, ಕಾರ್ಯವು ತಪ್ಪು ದಿಕ್ಕಿನಲ್ಲಿ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ, ಆದರೆ AI ಫಂಕ್ಷನ್ನ ಔಟ್ಪುಟ್ನಿಂದ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ತೆಗೆದುಕೊಂಡಿದೆ, ಆದ್ದರಿಂದ ಪರೀಕ್ಷೆಗಳು ದೋಷವನ್ನು "ನಿಜ" ಎಂದು ಪರಿಗಣಿಸಿವೆ. ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು "ನಿಯಮ-ಚಾಲಿತ" ಟೆಂಪ್ಲೇಟ್ನೊಂದಿಗೆ ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೆಕ್ಕಹಾಕಿದಾಗ, 4 ಪರೀಕ್ಷೆಗಳು ಕೆಂಪು ಬಣ್ಣಕ್ಕೆ ತಿರುಗಿದವು ಮತ್ತು ನಿಜವಾದ ದೋಷವು ಬಹಿರಂಗವಾಯಿತು.
ಪ್ರಕರಣ 2 - ರೂಪಾಂತರ ನಿಯಂತ್ರಣದ ಮೌಲ್ಯ. ಒಂದು ತಂಡವು 45 ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಅವಲಂಬಿಸಿದೆ. "ಮ್ಯುಟೇಶನ್ ದೃಢತೆ ಪರಿಶೀಲನೆ" ಯೊಂದಿಗೆ ಕೋಡ್ಗೆ 20 ಸಣ್ಣ ಟ್ವೀಕ್ಗಳನ್ನು ಪ್ರಯತ್ನಿಸಲಾಗಿದೆ; ಪರೀಕ್ಷೆಗಳು ಅವುಗಳಲ್ಲಿ 11 ಮಂದಿಯನ್ನು ಮಾತ್ರ ಹಿಡಿದಿವೆ. ಉಳಿದ 9 ಅಡಚಣೆಗಳು ಮೌನವಾಗಿ ಹಾದುಹೋದವು. ತಂಡವು ದುರ್ಬಲ ಪರೀಕ್ಷೆಗಳನ್ನು ಬಲಪಡಿಸಿತು; ಮುಂದಿನ ಬಿಡುಗಡೆಯಲ್ಲಿ ಈ ವರ್ಧಿತ ಪರೀಕ್ಷೆಗಳಿಂದ ನಿಜವಾದ ಲೆಕ್ಕಾಚಾರ ದೋಷ ಕಂಡುಬಂದಿದೆ.
ಪ್ರಕರಣ 3 - ಅನಿಶ್ಚಿತತೆಯು ವಿನ್ಯಾಸದ ವಾಸನೆಯಾಗಿದೆ. ಆರ್ಡರ್ ಮಾಡುವ ಕಾರ್ಯಕ್ಕಾಗಿ AI ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಇದು ನಿರಂತರವಾಗಿ ನೈಜ ಡೇಟಾಬೇಸ್ ಅಗತ್ಯವಿದೆ. "ಟೆಸ್ಟಬಿಲಿಟಿ ರಿವ್ಯೂ" ಟೆಂಪ್ಲೇಟ್ ಫಂಕ್ಷನ್ ಎಂಬೆಡೆಡ್ ಡೇಟಾಬೇಸ್ ಪ್ರವೇಶವನ್ನು ತೋರಿಸಿದೆ. ಅವಲಂಬನೆ ಇಂಜೆಕ್ಷನ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿದಾಗ, ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಬಹುದು ಮತ್ತು ಕೋಡ್ ಕ್ಲೀನರ್ ಆಯಿತು.
ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು
- ಕೋಡ್ನಿಂದ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯವನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ. AI ಫಂಕ್ಷನ್ ಔಟ್ಪುಟ್ ಅನ್ನು "ಸರಿಯಾದ" ಎಂದು ಸ್ವೀಕರಿಸುತ್ತದೆ; ದೋಷಯುಕ್ತ ಕೋಡ್ ಅನ್ನು ದೃಢೀಕರಿಸುವ ಪರೀಕ್ಷೆ.
- ಪ್ರತಿಪಾದನೆ ಇಲ್ಲದೆ ಅಥವಾ ಕ್ಷುಲ್ಲಕ ಪ್ರತಿಪಾದನೆಯೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಿ. "ಅವರು ದೋಷವನ್ನು ಎಸೆಯಲಿಲ್ಲ, ಅವರು ಉತ್ತೀರ್ಣರಾದರು" ತರ್ಕ; ಇದು ಯಾವುದನ್ನೂ ದೃಢೀಕರಿಸುವುದಿಲ್ಲ.
- ವಿಪರೀತ ಅಪಹಾಸ್ಯ. ಎಲ್ಲವನ್ನೂ ಅಪಹಾಸ್ಯ ಮಾಡುವುದು ಮತ್ತು ಅಣಕು ಹಿಂತಿರುಗಿಸುವದನ್ನು ಮಾತ್ರ ಪರೀಕ್ಷಿಸುವುದು; ನಿಜವಾದ ತರ್ಕವನ್ನು ಪರೀಕ್ಷಿಸಲಾಗಿಲ್ಲ.
- ಕೇವಲ ಸಂತೋಷದ ಹಾದಿ. ಮಿತಿ, ಋಣಾತ್ಮಕ ಮತ್ತು ದೋಷ ಸ್ಥಿತಿಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡುವುದು.
- ಕೋಡ್ ಅನ್ನು ಮುರಿಯುವ ಮೂಲಕ ಪರೀಕ್ಷಿಸುವುದಿಲ್ಲ. ರೂಪಾಂತರವನ್ನು ಪರಿಶೀಲಿಸದೆ ಹಸಿರು ಅನ್ನು ನಂಬುವುದು.
- ಅನಿಶ್ಚಿತತೆಯನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದು. ಕಠಿಣ ಪರೀಕ್ಷೆಯನ್ನು ತಳ್ಳುವ ಬದಲು ಕೆಟ್ಟ ವಿನ್ಯಾಸವನ್ನು ಗುರುತಿಸುವುದಿಲ್ಲ ಮತ್ತು ಸರಿಪಡಿಸುವುದಿಲ್ಲ.
ಸಾರಾಂಶದಲ್ಲಿ
ಘಟಕ ಪರೀಕ್ಷೆಗಳು ಪರೀಕ್ಷಾ ಪಿರಮಿಡ್ನ ಅತ್ಯಂತ ವೇಗವಾದ ಮತ್ತು ದೊಡ್ಡ ಪದರವಾಗಿದೆ; ಇದು ಅಗ್ಗದ ಕ್ಷಣದಲ್ಲಿ ತಪ್ಪನ್ನು ಹಿಡಿಯುತ್ತದೆ. AI ಯು ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಬಹಳ ಸಮರ್ಥವಾಗಿದೆ, ಆದರೆ ಅದರ ದೊಡ್ಡ ಅಪಾಯವೆಂದರೆ ಕೋಡ್ನಿಂದ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯವನ್ನು ಪಡೆಯುವ ಮೂಲಕ ತಪ್ಪು ನಡವಳಿಕೆಯನ್ನು "ಸರಿ" ಎಂದು ಭಾವಿಸುವ ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯುವುದು. ಪರಿಹಾರ: ಸ್ವೀಕಾರ ನಿಯಮಗಳನ್ನು ನೀಡಿ, ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ, AAA ಮತ್ತು FIRST ತತ್ವಗಳನ್ನು ಜಾರಿಗೊಳಿಸಿ, ಹೊರಗಿನ ಪ್ರಪಂಚವನ್ನು ಅಪಹಾಸ್ಯ ಮಾಡಿ ಮತ್ತು ನಿಜವಾದ ತರ್ಕವನ್ನು ಚಲಾಯಿಸಿ ಮತ್ತು ಪ್ರತಿ ಪರೀಕ್ಷೆಯನ್ನು ರೂಪಾಂತರದ ಮೂಲಕ ಪರೀಕ್ಷಿಸಿ (ಕೋಡ್ ಅನ್ನು ಮುರಿಯುವುದು). ಪರೀಕ್ಷಿಸಲು ಕಷ್ಟಕರವಾದ ಕೋಡ್ ವಿನ್ಯಾಸ ಚಿಹ್ನೆಯಾಗಿದ್ದು ಅದನ್ನು ಸರಿಪಡಿಸುವ ಅಗತ್ಯವಿದೆ.
ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯ
ನಿಮ್ಮ ಸ್ವಂತ ಯೋಜನೆಯಿಂದ ವ್ಯಾಪಾರ ನಿಯಮವನ್ನು ಒಳಗೊಂಡಿರುವ ಕಾರ್ಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ. ಸ್ವೀಕಾರ ನಿಯಮಗಳನ್ನು ಬರೆಯಿರಿ ಮತ್ತು "ನಿಯಮ-ಚಾಲಿತ ಘಟಕ ಪರೀಕ್ಷೆ" ಟೆಂಪ್ಲೇಟ್ನೊಂದಿಗೆ AI ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಿರಿ; ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೆಕ್ಕಹಾಕಿ. ನಂತರ "ಮ್ಯುಟೇಶನ್ ದೃಢತೆ ಪರಿಶೀಲನೆ" ಅನ್ನು ಅನ್ವಯಿಸಿ: ಕೋಡ್ನಲ್ಲಿ ಕನಿಷ್ಠ 5 ಸಣ್ಣ ವಿರಾಮಗಳನ್ನು ಮಾಡಿ ಮತ್ತು ಎಷ್ಟು ಪರೀಕ್ಷೆಗಳು ಕೆಂಪು ಬಣ್ಣಕ್ಕೆ ತಿರುಗುತ್ತವೆ ಎಂಬುದನ್ನು ಅಳೆಯಿರಿ. ಹಿಡಿಯದ ಭ್ರಷ್ಟಾಚಾರಗಳಿಗೆ ಹೊಸ ಪರೀಕ್ಷೆಯನ್ನು ಸೇರಿಸಿ. ಎಷ್ಟು ಅಡ್ಡಿಪಡಿಸಲಾಗಿದೆ ಎಂದು ವರದಿ ಮಾಡಿ (ಉದಾಹರಣೆಗೆ ರೂಪಾಂತರ ಸ್ಕೋರ್).
ಪರಿಶೀಲನಾಪಟ್ಟಿ
- [ ] ನಾನು ಸ್ವೀಕಾರ ನಿಯಮಗಳನ್ನು ನೀಡಿದ್ದೇನೆ ಮತ್ತು ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯಗಳನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಲೆಕ್ಕ ಹಾಕಿದ್ದೇನೆ.
- [ ] ಪರೀಕ್ಷೆಗಳು ಕೋಡ್ನಿಂದ ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯವನ್ನು ಪಡೆದಿಲ್ಲ ಎಂದು ನಾನು ಖಚಿತಪಡಿಸಿಕೊಂಡಿದ್ದೇನೆ.
- [ ] ನಾನು AAA ಮತ್ತು FIRST ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ಅನುಸರಿಸಿ ಸ್ವತಂತ್ರ ಪರೀಕ್ಷೆಯನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇನೆ.
- [ ] ನಾನು ಬಾಹ್ಯ ಅವಲಂಬನೆಗಳನ್ನು ಅಪಹಾಸ್ಯ ಮಾಡಿದೆ ಮತ್ತು ನಿಜವಾದ ತರ್ಕವನ್ನು ನಡೆಸಿದೆ.
- [ ] ನಾನು ಮಿತಿ, ಋಣಾತ್ಮಕ ಮತ್ತು ದೋಷ ಪ್ರಕರಣಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
- [ ] ಕೋಡ್ ಅನ್ನು ಮುರಿಯುವ ಮೂಲಕ (ಮ್ಯುಟೇಶನ್) ಪರೀಕ್ಷೆಗಳು ನಿಜವಾಗಿಯೂ ರಕ್ಷಿಸುತ್ತವೆ ಎಂದು ನಾನು ಸಾಬೀತುಪಡಿಸಿದೆ.