ಶುಕ್ರವಾರ, ಮಾರ್ಚ್ 7, 2014

ಟೆಸ್ಟಿಂಗ್: ಏನು, ಏಕೆ, ಹೇಗೆ?

ಟಿ. ಜಿ. ಶ್ರೀನಿಧಿ

ಬಳಕೆದಾರರ ಅಗತ್ಯಕ್ಕೆ ತಕ್ಕಂತೆ ತಂತ್ರಾಂಶ ಸಿದ್ಧಪಡಿಸುವುದು ಎಷ್ಟು ಮುಖ್ಯವೋ ಹಾಗೆ ಸಿದ್ಧವಾದ ತಂತ್ರಾಂಶ ಬಳಕೆದಾರರ ಅಗತ್ಯಕ್ಕೆ ತಕ್ಕಂತೆ ರೂಪುಗೊಂಡಿದೆಯೋ ಇಲ್ಲವೋ ಎಂದು ಪರೀಕ್ಷಿಸುವುದೂ ಅಷ್ಟೇ ಮುಖ್ಯ. ಎಷ್ಟಾದರೂ ತಂತ್ರಾಂಶ ಹೇಗಿರಬೇಕು ಎಂದು ನಿರ್ಧರಿಸುವವರು ಅದರ ಬಳಕೆದಾರರೇ ಆದ್ದರಿಂದ ನಾವು ರೂಪಿಸುವ ತಂತ್ರಾಂಶ ಅವರ ನಿರೀಕ್ಷೆಗಳನ್ನು ಪೂರೈಸುವಂತಿರಬೇಕು. ತಂತ್ರಾಂಶ ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಟೆಸ್ಟಿಂಗ್ ಹಂತಕ್ಕೆ ಎಲ್ಲಿಲ್ಲದ ಮಹತ್ವ ದೊರಕುವುದು ಇದೇ ಕಾರಣಕ್ಕಾಗಿ.

ಟೆಸ್ಟಿಂಗ್ ಮಾಡುವುದೇನೋ ಸರಿ, ಆದರೆ ತಂತ್ರಾಂಶದಲ್ಲಿ ನಾವು ಪರೀಕ್ಷಿಸಬೇಕಾದ್ದು ಏನನ್ನು? ಅದನ್ನೆಲ್ಲ ಸೂಕ್ತವಾಗಿ ಪರೀಕ್ಷಿಸುವ ವಿಧಾನ ಯಾವುದು? ಈ ವಿಷಯದ ಕುರಿತು ತಂತ್ರಾಂಶ ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಪ್ರತಿಯೊಬ್ಬರೂ ಯೋಚಿಸಲೇಬೇಕು. ಏಕೆಂದರೆ ತಂತ್ರಾಂಶದ ಪರೀಕ್ಷೆ ಕ್ರಮಬದ್ಧವಾಗಿ ಆಗದಿದ್ದರೆ ಅದರಿಂದ ಅನೇಕ ಅನೇಕ ಬಗೆಯ ತೊಂದರೆಗಳಾಗಬಹುದು: ನಂತರದ ಹಂತಗಳಲ್ಲಿ ತಪ್ಪು ಸರಿಪಡಿಸಲು ಸಮಯ ವ್ಯರ್ಥವಾಗಬಹುದು, ಅನಗತ್ಯವಾಗಿ ಹಣ ವೆಚ್ಚವಾಗಬಹುದು ಅಥವಾ ತಂತ್ರಾಂಶದಲ್ಲಿ ತಪ್ಪುಗಳು ಹಾಗೆಯೇ ಉಳಿದುಕೊಂಡು ಬಳಕೆದಾರರಿಗೆ ದೊಡ್ಡ ತೊಂದರೆಯೂ ಆಗಬಹುದು.

ಇಂತಹ ತೊಂದರೆಗಳನ್ನೆಲ್ಲ ತಪ್ಪಿಸಿಕೊಳ್ಳಲು ನೆರವಾಗುವಂತಹ ಕೆಲವು ಮಾರ್ಗದರ್ಶಿ ಸೂತ್ರಗಳನ್ನು ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಜಿನಿಯರಿಂಗ್ ಪರಿಕಲ್ಪನೆಯಲ್ಲಿ ನಾವು ಕಾಣಬಹುದು.
ತಂತ್ರಾಂಶದ ಅತಿ ಸಣ್ಣ ಘಟಕದಿಂದಲೇ ಟೆಸ್ಟಿಂಗ್ ಪ್ರಾರಂಭಿಸಿ ತಂತ್ರಾಂಶ ಅಭಿವೃದ್ಧಿ ಮುಂದುವರೆದಂತೆಲ್ಲ ಪ್ರತಿ ಹಂತದಲ್ಲೂ ಪುನರಾವರ್ತಿಸುತ್ತಾ ಹೋಗುವುದು ಇಂತಹ ಸೂತ್ರಗಳಲ್ಲೊಂದು. ಹೀಗೆ ಮಾಡುವ ಮೂಲಕ ತಂತ್ರಾಂಶದ ಪ್ರತಿಯೊಂದು ಭಾಗ, ಪ್ರತಿಯೊಂದು ಕ್ರಮವಿಧಿಯೂ ಸರಿಯಾಗಿ ಕೆಲಸಮಾಡುತ್ತಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಸಾಧ್ಯ.

ಬೇರೆಬೇರೆ ಹಂತಗಳಲ್ಲಿ ಬೇರೆಬೇರೆ ರೀತಿಯ ಟೆಸ್ಟಿಂಗ್ ನಡೆಯಬೇಕಾದದ್ದೂ ಅತ್ಯಗತ್ಯ. ತಂತ್ರಾಂಶದ ಪ್ರತಿ ಘಟಕ ಪೂರ್ಣವಾದಾಗಲೂ ಆ ಘಟಕವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಪರೀಕ್ಷಿಸುವುದನ್ನು 'ಯುನಿಟ್ ಟೆಸ್ಟಿಂಗ್' ಎಂದು ಕರೆಯುತ್ತಾರೆ. ಹಾಗೆಯೇ ತಂತ್ರಾಂಶದ ಬೇರೆಬೇರೆ ಘಟಕಗಳೆಲ್ಲ ಒಟ್ಟುಸೇರಿ ಹೇಗೆ ಕೆಲಸಮಾಡುತ್ತಿವೆ ಎನ್ನುವುದನ್ನು 'ಇಂಟಿಗ್ರೇಶನ್ ಟೆಸ್ಟಿಂಗ್'ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ.

ಸರಿಯಾಗಿ ಕೆಲಸಮಾಡುತ್ತಿದೆ ಎಂದು ಒಂದುಬಾರಿ ದೃಢಪಟ್ಟಮೇಲೆ ತಂತ್ರಾಂಶದಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆ ಮಾಡಿದರೂ ಈ ಹಿಂದೆ ಪರೀಕ್ಷಿಸಿದ ಪ್ರತಿಯೊಂದು ಭಾಗವನ್ನೂ ಮತ್ತೊಮ್ಮೆ ಪರೀಕ್ಷಿಸುವುದು ಅಗತ್ಯವಾಗುತ್ತದೆ. ಹೊಸ ಬದಲಾವಣೆಯಿಂದಾಗಿ ಯಾವುದೇ ಅನಪೇಕ್ಷಿತ ಪರಿಣಾಮಗಳಾಗಿಲ್ಲ ಎಂದು ದೃಢಪಡಿಸಿಕೊಳ್ಳುವುದು 'ರಿಗ್ರೆಶನ್ ಟೆಸ್ಟಿಂಗ್' ಎಂದು ಕರೆಸಿಕೊಳ್ಳುವ ಈ ಹಂತದ ಉದ್ದೇಶ.  

ಅಂದಹಾಗೆ ತಪ್ಪು ಹುಡುಕುವ ಕೆಲಸ ಟೆಸ್ಟಿಂಗ್ ಹಂತದಲ್ಲಿ ಮಾತ್ರವೇ ಆಗಬೇಕು ಎಂದೇನೂ ಇಲ್ಲ. ಕ್ರಮವಿಧಿ ರಚನೆ ನಡೆಯುತ್ತಿರುವಾಗ ಆ ಕೆಲಸದಲ್ಲಿ ತೊಡಗಿರುವವರು ನಿರ್ದಿಷ್ಟ ಅವಧಿಗೊಮ್ಮೆ ತಮ್ಮ ಕೆಲಸದ ಪರಿಶೀಲನೆ ಕೈಗೊಳ್ಳುವುದರಿಂದಲೂ ತಪ್ಪುಗಳನ್ನು ಶೀಘ್ರವಾಗಿ ಪತ್ತೆಹಚ್ಚಿ ನಿವಾರಿಸಿಕೊಳ್ಳಬಹುದು. ಈ ಕೆಲಸದಲ್ಲಿ ಇಡೀ ತಂಡ ಪಾಲ್ಗೊಳ್ಳುವುದು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ ಒಬ್ಬರು ಬರೆದ ಕ್ರಮವಿಧಿಯನ್ನು ತಂಡದ ಇನ್ನೊಬ್ಬ ಸದಸ್ಯ ಪರಿಶೀಲಿಸಿದರೂ ಸಾಕು.

ಹಾಗೆಂದು ತಂತ್ರಾಂಶ ಬರೆದವರೇ ಅದರಲ್ಲಿರುವ ತಪ್ಪುಗಳನ್ನೆಲ್ಲ ಪತ್ತೆಮಾಡಲು ಖಂಡಿತಾ ಸಾಧ್ಯವಿಲ್ಲ. ಬಳಕೆದಾರರ ಅಗತ್ಯವನ್ನು ಅವರು ಗ್ರಹಿಸಿರುವ ರೀತಿಯೇ ತಪ್ಪಾದರೆ ತಂತ್ರಾಂಶದಲ್ಲಿರುವ ತಪ್ಪು ಅವರಿಗೆ ಗೊತ್ತಾಗುವುದೇ ಇಲ್ಲವಲ್ಲ! ಹಾಗಾಗಿ ಟೆಸ್ಟಿಂಗ್ ಕೆಲಸವನ್ನು ಪ್ರತ್ಯೇಕ ತಂಡಕ್ಕೇ ವಹಿಸಿಕೊಡುವುದು ಸಾಮಾನ್ಯ ಅಭ್ಯಾಸ. ತಂತ್ರಾಂಶ ರಚನೆಗೆ ಬೇಕಿದ್ದಂತೆ ಟೆಸ್ಟಿಂಗ್ ಕೆಲಸಕ್ಕೂ ವಿಶೇಷ ಕೌಶಲಗಳು ಬೇಕಲ್ಲ, ಆ ಕೌಶಲಗಳಿರುವವರಿಗೇ ಟೆಸ್ಟಿಂಗ್ ಜವಾಬ್ದಾರಿ ಕೊಡುವುದು ಇದರಿಂದಾಗಿ ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ಯಾವ ಬಗೆಯ ಟೆಸ್ಟಿಂಗ್ ಆದರೂ, ಅದನ್ನು ನಿರ್ವಹಿಸುವವರೂ ಯಾರೇ ಆದರೂ ಅದಕ್ಕೆ ಸರಿಯಾದ ಸಿದ್ಧತೆ ಮಾಡಿಕೊಂಡಿರಬೇಕು. ಇದನ್ನು ಟೆಸ್ಟ್ ಪ್ಲಾನಿಂಗ್ ಎಂದು ಕರೆಯುತ್ತಾರೆ. ತಂತ್ರಾಂಶವನ್ನು ಹೇಗೆ ಪರೀಕ್ಷಿಸಬೇಕು ಎನ್ನುವ ವಿವರ ಹಾಗೂ ಯಾವ ಪರೀಕ್ಷೆಯಿಂದ ಯಾವ ಫಲಿತಾಂಶವನ್ನು ನಿರೀಕ್ಷಿಸಬೇಕು ಎನ್ನುವ ವಿವರಗಳನ್ನು 'ಟೆಸ್ಟ್ ಪ್ಲಾನ್' ಎಂಬ ಕಡತದಲ್ಲಿ ಮುಂಚಿತವಾಗಿಯೇ ದಾಖಲಿಸಿಟ್ಟು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ತಂತ್ರಾಂಶವನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳನ್ನು ಅರಿತ ತಕ್ಷಣದಲ್ಲೇ ಟೆಸ್ಟ್ ಪ್ಲಾನ್ ಸಿದ್ಧಪಡಿಸುವುದು ಸಾಮಾನ್ಯ ಅಭ್ಯಾಸ.

ಮಾರ್ಚ್ ೭, ೨೦೧೪ರ ಉದಯವಾಣಿಯಲ್ಲಿ ಪ್ರಕಟವಾದ ಲೇಖನ

ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ:

badge