ಸಾಫ್ಟ್ವೇರ್ ಟೆಸ್ಟಿಂಗ್ ಯಾವಾಗಲೂ ಸಮಯದ ವಿರುದ್ಧದ ಓಟವಾಗಿದೆ. ರಿಲೀಸ್ ವಿಂಡೋಗಳು ಕುಗ್ಗುತ್ತಿವೆ. ಕೋಡ್ಬೇಸ್ಗಳು ಬೆಳೆಯುತ್ತಿವೆ. ಯಾವುದೇ ತಪ್ಪುಗಳಾಗದಂತೆ ತಂಡಗಳು ವೇಗವಾಗಿ ಸಾಫ್ಟ್ವೇರ್ ಬಿಡುಗಡೆ ಮಾಡಬೇಕೆಂದು ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಇತ್ತೀಚೆಗೆ, AI ಈ ಒತ್ತಡದ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ಪರಿಹಾರದ ಭರವಸೆಯೊಂದಿಗೆ ಹೆಜ್ಜೆ ಇಟ್ಟಿದೆ. ಇದು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಟೆಸ್ಟ್ ಕೇಸ್ಗಳನ್ನು ರಚಿಸಬಹುದು, ಸಾವಿರಾರು ಸಾಲುಗಳ ಕೋಡ್ನಲ್ಲಿ ಅಸಂಬದ್ಧತೆಗಳನ್ನು (anomalies) ಪತ್ತೆಹಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ತಂಡವು ನಿದ್ರಿಸುವಾಗ ಪುನರಾವರ್ತಿತ ಟೆಸ್ಟ್ ಸೂಟ್ಗಳನ್ನು (test suites) ಚಲಾಯಿಸಬಹುದು. ವೇಗವು ನಿಜವಾಗಿಯೂ ಇದೆ. ಆದರೆ ದಿಕ್ಕಿಲ್ಲದ ವೇಗವು ಕೇವಲ ಅಪಘಾತವನ್ನು ವೇಗವಾಗಿ ಮಾಡುವ ಮಾರ್ಗವಷ್ಟೇ.
ವಾಸ್ತವವೆಂದರೆ, ಟೆಸ್ಟಿಂಗ್ನಲ್ಲಿ AI ಒಂದು ಆಕ್ಸಿಲರೇಟರ್ (accelerator) ಆಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆಟೋಪಿಲಟ್ (autopilot) ಆಗಿಯಲ್ಲ. ಇದನ್ನು ಸರಿಯಾಗಿ ಬಳಸಿದರೆ, ಇದು ಕಷ್ಟಕರವಾದ ಕೆಲಸಗಳನ್ನು (grunt work) ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಆರಂಭಿಕ ಹಂತದಲ್ಲೇ ಬಗ್ಗಳನ್ನು (bugs) ಹೊರಹಾಕುತ್ತದೆ. ಅಜಾಗರೂಕತೆಯಿಂದ ಬಳಸಿದರೆ, ಇದು ಅಂಧಾಕಾರದ ಬಿಳಿểmಗಳನ್ನು (blind spots) ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ನಿಮಗೆ ಸುಳ್ಳು ಭದ್ರತೆಯ ಭಾವನೆಯನ್ನು ನೀಡುತ್ತದೆ. AI ಎಲ್ಲಿ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು, ಸ್ಥಿರವಾದ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವುದಕ್ಕೂ ಮತ್ತು ನಿಗದಿತ ಸಮಯಕ್ಕೆ ತಲುಪುವ ಆದರೆ ಕೆಟ್ಟುಹೋದ ಕೋಡ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವುದಕ್ಕೂ ಇರುವ ವ್ಯತ್ಯಾಸವಾಗಿದೆ.
AI ತನ್ನ ಸ್ಥಾನವನ್ನು ಎಲ್ಲಿ ಗಳಿಸುತ್ತದೆ
AI ಯಾವುದನ್ನು ಚೆನ್ನಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರಿಂದ ಪ್ರಾರಂಭಿಸೋಣ. ಪುನರಾವರ್ತಿತ ರಿಗ್ರೆಷನ್ ಟೆಸ್ಟಿಂಗ್ (regression testing) ಒಂದು ಸ್ಪಷ್ಟವಾದ ಗೆಲುವು. ಡಜನ್ಗಟ್ಟಲೆ ಬ್ರೌಸರ್ ಮತ್ತು ಸಾಧನಗಳ ಸಂಯೋಜನೆಗಳಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಲಾಗಿನ್ ಫ್ಲೋಗಳು, ಫಾರ್ಮ್ ವ್ಯಾಲಿಡೇಶನ್ಗಳು ಮತ್ತು ಚೆಕ್ಔಟ್ ಹಂತಗಳನ್ನು ಚಲಾಯಿಸುವುದು ಮನುಷ್ಯರಿಗೆ ಮನಸೋಲದ ಕೆಲಸ ಮತ್ತು ಯಂತ್ರಗಳಿಗೆ ಅತ್ಯಂತ ಸುಲಭವಾದ ಕೆಲಸವಾಗಿದೆ. AI-ಚಾಲಿತ ಟೆಸ್ಟ್ ರನ್ನರ್ಗಳು ಈ ಸೂಟ್ಗಳನ್ನು ರಾತ್ರಿಯಿಡೀ ಚಲಾಯಿಸಬಹುದು ಮತ್ತು ದಣಿದ ಎಂಜಿನಿಯರ್ ಗಮನಿಸದೆ ಬಿಡಬಹುದಾದ ವಿಶುವಲ್ ರಿಗ್ರೆಷನ್ಗಳು ಅಥವಾ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಕುಸಿತಗಳನ್ನು ಗುರುತಿಸಬಹುದು.
ಟೆಸ್ಟ್ ಡೇಟಾ ಜನರೇಷನ್ (Test data generation) ಮತ್ತೊಂದು ಪ್ರಬಲ ಅಂಶವಾಗಿದೆ. ನಿಮಗೆ ನೈಜವಾಗಿರುವ ಆದರೆ ನಕಲಿ ಹೆಸರುಗಳು, ವಿಳಾಸಗಳು, ವಹಿವಾಟಿನ ಇತಿಹಾಸಗಳು ಮತ್ತು ಸಮಯ ವಲಯಗಳೊಂದಿಗೆ ಹತ್ತು ಸಾವಿರ ರೆಕಾರ್ಡ್ಗಳು ಬೇಕಾದಾಗ, AI ಅದನ್ನು ತಕ್ಷಣವೇ ಸೃಷ್ಟಿಸಬಲ್ಲದು. ನೀವು ಡೇಟಾಬೇಸ್ ಅನ್ನು ಲೋಡ್-ಟೆಸ್ಟ್ ಮಾಡುವಾಗ ಅಥವಾ ನಿಮ್ಮ ಅನಾಲಿಟಿಕ್ಸ್ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುವಾಗ ಇದು ಮುಖ್ಯವಾಗುತ್ತದೆ. ಅಷ್ಟು ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಕೈಯಿಂದ ತಯಾರಿಸುವುದು ಕೇವಲ ನಿಧಾನವಲ್ಲ; ಅದು ಅವಾಸ್ತವಿಕವೂ ಹೌದು.
AI ಬಾಯ್ಲರ್ಪ್ಲೇಟ್ (boilerplate) ಟೆಸ್ಟ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಬರೆಯುವ ವೇಗವನ್ನು ಕೂಡ ಹೆಚ್ಚಿಸುತ್ತದೆ. ನಿಮಗೆ ಹೊಸ API ಎಂಡ್ಪಾಯಿಂಟ್ಗಾಗಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಯೂನಿಟ್ ಟೆಸ್ಟ್ ಅಥವಾ ಒಂದು ಪೇಜ್ ಲೋಡ್ ಆಗುತ್ತಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಮೂಲಭೂತ ಸ್ಕ್ರಿಪ್ಟ್ ಬೇಕಾದಾಗ, AI ಅಸಿಸ್ಟೆಂಟ್ ಅದರ ಸ್ಕ್ಯಾಫೋಲ್ಡ್ (scaffold) ಅನ್ನು ಸಿದ್ಧಪಡಿಸಬಹುದು. ನೀವು ಮೊದಲಿನಿಂದಲೇ ಎಲ್ಲವನ್ನೂ ಟೈಪ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೆ, ಅದರ ರಚನೆ, ಡೆಮ್ಮಿ ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ಅಸರ್ಷನ್ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ಗಳನ್ನು (assertion placeholders) ಪಡೆಯಬಹುದು. ಇದು ಒಂದು ಉತ್ತಮ ಆರಂಭಿಕ ಹಂತವಾಗಿದೆ.
ಈ ಪ್ರಯೋಜನಗಳು ಸ್ಪಷ್ಟವಾಗಿವೆ. ವ್ಯಾಪಕವಾದ ಟೆಸ್ಟ್ಗಳನ್ನು ನಡೆಸುವ ವೆಚ್ಚವು ಕಡಿಮೆಯಾಗುವುದರಿಂದ ಬಗ್ಗಳು ಮೊದಲೇ ಪತ್ತೆಯಾಗುತ್ತವೆ. ಪುನರಾವರ್ತಿತ ಕೆಲಸಗಳು ಮಾನವ ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತವೆ. ತಂಡವು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಸಮಸ್ಯೆಗಳ ಮೇಲೆ ಗಮನ ಹರಿಸಬಹುದು.
ಯಾರೂ ಮಾತನಾಡದ ಅಂಧಾಕಾರದ ಬಿಳಿểmಗಳು (Blind Spots)
ತಂಡಗಳು ವ್ಯಾಪಕವಾದ ಕವರೇಜ್ (broad coverage) ಮತ್ತು ಆಳವಾದ ಕವರೇಜ್ (deep coverage) ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಮರೆತಾಗ ಸಮಸ್ಯೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. AI ಮಾದರಿಗಳನ್ನು (patterns) ಪತ್ತೆಹಚ್ಚುತ್ತದೆ. ತನಗೆ ತರಬೇತಿ ನೀಡಲಾದ ಡೇಟಾ ಆಧಾರದ ಮೇಲೆ ಸಾಮಾನ್ಯ ಬಗ್ ಹೇಗಿರುತ್ತದೆ ಎಂದು ಅದು ಊಹಿಸುತ್ತದೆ. ಅಂದರೆ, ಅದು ಸಾಮಾನ್ಯ ಸಂದರ್ಭಗಳಲ್ಲಿ ಅತ್ಯುತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ವಿಚಿತ್ರ ಸಂದರ್ಭಗಳಲ್ಲಿ ಪದೇ ಪದೇ ವಿಫಲವಾಗುತ್ತದೆ.
ಎಡ್ಜ್ ಕೇಸ್ಗಳನ್ನು (edge cases) ಪರಿಗಣಿಸಿ. ಪ್ರಮಾಣಿತ ಬಳಕೆದಾರರ ಪ್ರಯಾಣದ ಮೇಲೆ ತರಬೇತಿ ಪಡೆದ ಮಾಡೆಲ್, ಬಳಕೆದಾರನು ಮೂರು ಮಾಡಲ್ ಡೈಲಾಗ್ಗಳನ್ನು ತೆರೆದು, ಬ್ರೌಸರ್ ಬ್ಯಾಕ್ ಬಟನ್ ಒತ್ತಿ, ಮತ್ತು ಅಸynchronized ಸೇವ್ ಮಾಡುವಾಗ ರಿಫ್ರೆಶ್ ಮಾಡಿದಾಗ ಮಾತ್ರ ಉಂಟಾಗುವ ಬಗ್ ಅನ್ನು ತಪ್ಪಿಸಬಹುದು. ಇವು ಕೇವಲ ಕಾಲ್ಪನಿಕವಲ್ಲ. ಉತ್ಪಾದನಾ ಘಟನೆಗಳು (Production incidents) ಹೆಚ್ಚಾಗಿ ಅಂಕಿಅಂಶಗಳ ಪ್ರಕಾರ ಅಪರೂಪವಾಗಿರುವ ಸರಣಿಗಳಿಂದ ಉಂಟಾಗುತ್ತವೆ, ಏಕೆಂದರೆ ಯಾವುದೇ ತರಬೇತಿ ಡೇಟಾ ಸೆಟ್ ಅವುಗಳನ್ನು ಸಮರ್ಪಕವಾಗಿ ಪ್ರತಿನಿಧಿಸುವುದಿಲ್ಲ. AI ಬೆಲ್ ಕರ್ವ್ನ (bell curve) ಮಧ್ಯಭಾಗವನ್ನು ಮಾತ್ರ ಹುಡುಕುತ್ತದೆ. ನಿಮ್ಮ ಅತ್ಯಂತ ಕೆಟ್ಟ ಬಗ್ಗಳು ಅದರ ತುದಿಯಲ್ಲಿ (tails) ಇರುತ್ತವೆ.
ಇಲ್ಲಿ ಮಾನವ ಅಂತಃಪ್ರಜ್ಞೆ (Human intuition) ಮುಖ್ಯವಾಗುತ್ತದೆ. ಅನುಭವಿ ಟೆಸ್ಟರ್ ಹೊಸ ಫೀಚರ್ ಅನ್ನು ನೋಡಿದಾಗ ವ್ಯವಹಾರದ ಅಪಾಯದ (business risk) ಬಗ್ಗೆ ಯೋಚಿಸುತ್ತಾರೆ. ಒಬ್ಬ ಹತಾಶಗೊಂಡ ಬಳಕೆದಾರನು ಫಾರ್ಮ್ ಅನ್ನು ಹೇಗೆ ದುರುಪಯೋಗಪಡಿಸಿಕೊಳ್ಳಬಹುದು ಅಥವಾ ರಜಾದಿನದ ಟ್ರಾಫಿಕ್ ಸಮಯದಲ್ಲಿ ಪೇಮೆಂಟ್ ಗೇಟ್ವೇ ಟೈಮ್ ಔಟ್ ಆದಾಗ ಏನಾಗುತ್ತದೆ ಎಂದು ಅವರು ಕೇಳುತ್ತಾರೆ. ಇದು ಸಂದರ್ಭೋಚಿತ ಚಿಂತನೆ (contextual thinking). AI ವ್ಯವಹಾರದ ಒತ್ತಡವನ್ನು ಅನುಭವಿಸುವುದಿಲ್ಲ. ವರ್ಷಗಳ ಹಿಂದಿನ ಹಳೆಯ ಇಂಟಿಗ್ರೇಷನ್ನಿಂದಾಗಿ ನಿಮ್ಮ ಇನ್ವೆಂಟರಿ ಸಿಸ್ಟಮ್ ದುರ್ಬಲವಾಗಿದೆ ಎಂಬುದು ಅದಕ್ಕೆ ತಿಳಿದಿರುವುದಿಲ್ಲ. ಅದು ಸರಿಯಾಗಿ ಕಾಣುವದನ್ನು ಬರೆಯುತ್ತದೆವೇ ಹೊರತು, ನಿಮ್ಮ ನಿರ್ದಿಷ್ಟ ಡೊಮೇನ್ಗೆ ಯಾವುದು ಸರಿಯೋ ಅದನ್ನು ಬರೆಯುವುದಿಲ್ಲ.
ಅಲ್ಲದೆ, ಹ್ಯಾಲ್ಯುಸಿನೇಷನ್ (hallucination) ಮತ್ತು ಅಸ್ಥಿರ ಆಟೊಮೇಷನ್ನ (brittle automation) ಸಮಸ್ಯೆ ಕೂಡ ಇದೆ. AI-ಜನರೇಟೆಡ್ ಟೆಸ್ಟ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ನಂಬಲರ್ಹವಾಗಿ ಕಾಣಬಹುದು ಆದರೆ ಅವುಗಳಲ್ಲಿ ತಪ್ಪಾದ ಸೆಲೆಕ್ಟರ್ಗಳು, ತಪ್ಪು ಅಸರ್ಷನ್ಗಳು ಅಥವಾ ಮುಂದಿನ ಸ್ಪ್ರಿಂಟ್ನಲ್ಲಿ ಬದಲಾಗಬಹುದಾದ DOM ರಚನೆಯ ಬಗ್ಗೆ ತಪ್ಪು ಕಲ್ಪನೆಗಳು ಇರಬಹುದು. ನೀವು ಈ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಓದದೆ ಚಲಾಯಿಸಿದರೆ, ಸಮಯ ವ್ಯರ್ಥ ಮಾಡುವ ಫಾಲ್ಸ್ ಪಾಸಿಟಿವ್ಗಳು (false positives) ಅಥವಾ ಬಗ್ಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುವ ಫಾಲ್ಸ್ ನೆಗೆಟಿವ್ಗಳು (false negatives) ಸಿಗುತ್ತವೆ. ಟೆಸ್ಟ್ ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಹಸಿರು ಚೆಕ್ಮಾರ್ಕ್ ಇದ್ದರೂ, ಆ ಟೆಸ್ಟ್ ನಿಜವಾಗಿಯೂ ಸರಿಯಾದ ವರ್ತನೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತಿಲ್ಲದಿದ್ದರೆ ಅದು ಅರ್ಥಹೀನ.
