ಶುಕ್ರವಾರ, ಫೆಬ್ರವರಿ 7, 2014

ತಂತ್ರಾಂಶ ಮತ್ತು ತಪ್ಪು!

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

ತಂತ್ರಾಂಶಗಳ ತಯಾರಿ ಹೆಚ್ಚುತ್ತ ಹೋದಂತೆ ಅವುಗಳ ಬಳಕೆಯೂ ಹೆಚ್ಚುವುದು ಸಹಜ. ಹೀಗೆ ತಂತ್ರಾಂಶಗಳ ಬಳಕೆ ಎಲ್ಲ ಕ್ಷೇತ್ರಗಳಲ್ಲೂ ಹೆಚ್ಚುತ್ತಿದ್ದಂತೆ ಅವು ಮಾಡುವ ಕೆಲಸಗಳ ಪ್ರಮಾಣವೂ ಜಾಸ್ತಿಯಾಗುತ್ತದೆ.

ಈಗ ಆಗಿರುವುದೂ ಅದೇ. ಶಾಲೆಯ ಹೋಮ್‌ವರ್ಕ್‌ನಿಂದ ದೇಶದ ಸುರಕ್ಷತೆಯವರೆಗೆ, ಬ್ಯಾಂಕ್ ವ್ಯವಹಾರದಿಂದ ವೈಜ್ಞಾನಿಕ ಸಂಶೋಧನೆಯವರೆಗೆ ಅದೆಷ್ಟೋ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಅದೆಷ್ಟೋ ಕೆಲಸಗಳಿಗಾಗಿ ತಂತ್ರಾಂಶಗಳು ಬಳಕೆಯಾಗುತ್ತವೆ. ಅನೇಕ ಕಡೆಗಳಲ್ಲಂತೂ ಕಂಪ್ಯೂಟರ್ ಇಲ್ಲದೆ ಕೆಲಸವೇ ನಡೆಯದ ಪರಿಸ್ಥಿತಿ ಬಂದುಬಿಟ್ಟಿದೆ; ಆನ್‌ಲೈನ್ ಬ್ಯಾಂಕಿಂಗ್ ಬೇಡ, ಮನಿಯಾರ್ಡರ್ ಕಳುಹಿಸುತ್ತೇನೆಂದರೂ ಪೋಸ್ಟ್ ಆಫೀಸಿನ ಕಂಪ್ಯೂಟರ್ ನೆಚ್ಚಿಕೊಳ್ಳಬೇಕಾದ ಕಾಲ ಇದು!

ಪರಿಸ್ಥಿತಿ ಹೀಗಿರುವಾಗ ನಾವು ಬಳಸುವ ತಂತ್ರಾಂಶಗಳು ಅತ್ಯಂತ ಕರಾರುವಾಕ್ಕಾಗಿ ಕೆಲಸಮಾಡಬೇಕಾದ್ದು ಅನಿವಾರ್ಯವಾಗಿಬಿಡುತ್ತದೆ. ಆದರೆ ತಂತ್ರಾಂಶ ಸಿದ್ಧಪಡಿಸುವವರೂ ಮನುಷ್ಯರೇ ತಾನೆ, ಹಾಗಾಗಿ ಹಲವಾರು ಬಾರಿ ಅವರ ಕೆಲಸದಲ್ಲಿ ತಪ್ಪುಗಳು ನುಸುಳಿಬಿಡುತ್ತವೆ. ಉದಾಹರಣೆಗೆ ಒಂದು + ಒಂದು = ಎರಡು ಎನ್ನುವ ಬದಲು ಒಂದು + ಒಂದು = ಹನ್ನೊಂದು ಎಂದು ತಂತ್ರಾಂಶದಲ್ಲಿ ಹೇಳಿದ್ದರೆ ನಾವು ಒಂದು + ಒಂದು ಎಷ್ಟು ಎಂದಾಗ ಉತ್ತರ ಹನ್ನೊಂದು ಎಂದೇ ಬರುತ್ತದೆ.

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

ಈ ಹೆಸರಿನ ಹಿನ್ನೆಲೆ ತಿಳಿದುಕೊಳ್ಳಲು, ಪ್ರಸಿದ್ಧ ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನಿ ಹೊವಾರ್ಡ್ ಐಕೆನ್ ನೇತೃತ್ವದಲ್ಲಿ 'ಮಾರ್ಕ್ - ೨' ಕಂಪ್ಯೂಟರ್ ಸಿದ್ಧವಾದ ಸಮಯದ ಘಟನೆಯೊಂದನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಬೇಕು.

ಅದು ೧೯೪೦ರ ದಶಕ. ಹೊಸ ಕಂಪ್ಯೂಟರಿನ ಪರೀಕ್ಷೆ ನಡೆಯುತ್ತಿದ್ದಾಗ ಲೆಕ್ಕಾಚಾರದಲ್ಲಿ ಏನೋ ತಪ್ಪಾಗುತ್ತಿರುವುದು ತಂತ್ರಜ್ಞರ ಗಮನಕ್ಕೆ ಬಂತು. ತಪ್ಪಿನ ಕಾರಣ ಹುಡುಕುತ್ತ ಹೊರಟ ಅವರಿಗೆ ಸಿಕ್ಕಿದ್ದು ಒಂದು ಹುಳು. ಆ ಹುಳು ವಿದ್ಯುಂತ್ಕಾಂತೀಯ ಟಪ್ಪೆ(ರಿಲೇ)ಯೊಂದರೊಳಗೆ ಸಿಕ್ಕಿಕೊಂಡು ಅದರ ಕೆಲಸಕ್ಕೆ ಅಡ್ಡಿಮಾಡುತ್ತಿತ್ತು; ಪರಿಣಾಮವಾಗಿ ಕಂಪ್ಯೂಟರಿನ ಲೆಕ್ಕಾಚಾರದಲ್ಲಿ ಏರುಪೇರಾಗುತ್ತಿತ್ತು.

ಅದೇ ಹುಳು ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನ ಕ್ಷೇತ್ರದಲ್ಲಿ ಪತ್ತೆಯಾದ ಮೊದಲ ಬಗ್ ಎಂಬ ಖ್ಯಾತಿಗೆ ಪಾತ್ರವಾಗಿದೆ. ಮಾರ್ಕ್-೨ ಕಂಪ್ಯೂಟರಿನ ತಂತ್ರಜ್ಞರು ಅಂದು ಆ ಹುಳುವನ್ನು ಅಂಟಿಸಿಟ್ಟಿದ್ದ ದಿನಚರಿ ಪುಸ್ತಕದ ಹಾಳೆ ಇವತ್ತಿಗೂ ಅಮೆರಿಕಾದ ಸ್ಮಿತ್‌ಸೋನಿಯನ್ ರಾಷ್ಟ್ರೀಯ ಇತಿಹಾಸ ವಸ್ತುಸಂಗ್ರಹಾಲಯದಲ್ಲಿ ಭದ್ರವಾಗಿದೆ.

ಸದ್ಯದ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ನಿಜವಾದ ಹುಳದಿಂದ ಕಂಪ್ಯೂಟರಿಗೆ ಹೆಚ್ಚಿನ ಸಮಸ್ಯೆಯಾಗಲಿಕ್ಕಿಲ್ಲ, ನಿಜ. ಆದರೆ ಕಂಪ್ಯೂಟರಿನ ಬಗ್ ಇದೆಯಲ್ಲ, ತಂತ್ರಾಂಶದ ತಪ್ಪುಗಳು, ಅವುಗಳಿಂದಾಗುವ ಹಾನಿ ಅಷ್ಟಿಷ್ಟಲ್ಲ.

ಇಂತಹ ಬಗ್‌ಗಳಲ್ಲಿ ಅನೇಕ ವಿಧ - ಕ್ಯಾಲ್ಕ್ಯುಲೇಟರ್‌ನಂತೆ ಕೆಲಸಮಾಡಲು ಬರೆಯಲಾದ ತಂತ್ರಾಂಶದ ಕ್ರಮವಿಧಿ ಒಂದು+ಒಂದು ಎಷ್ಟು ಎಂದಾಗ ಹನ್ನೊಂದು ಎಂದರೆ ಅದರಿಂದ ಬಹಳ ದೊಡ್ಡ ಅನಾಹುತವೇನೂ ಆಗಲಾರದು. ಆದರೆ ಸಂಸ್ಥೆಯೊಂದರ ಪಾವತಿಗಳನ್ನೆಲ್ಲ ನೋಡಿಕೊಳ್ಳುವ ತಂತ್ರಾಂಶದಲ್ಲಿರುವ ತಪ್ಪಿನಿಂದಾಗಿ ಎಲ್ಲರಿಗೂ ಎರಡೆರಡು ಸಲ ಹಣ ಪಾವತಿಯಾದರೆ ಆ ಸಂಸ್ಥೆಗೆ ಸಾಕಷ್ಟು ದೊಡ್ಡ ನಷ್ಟವಾಗುತ್ತದೆ. ಇನ್ನು ಆಸ್ಪತ್ರೆಯಲ್ಲಿ ರೋಗಿಗಳ ಜೀವಬೆಂಬಲ ವ್ಯವಸ್ಥೆಯನ್ನು ನೋಡಿಕೊಳ್ಳುವ ಅಥವಾ ವಿಮಾನದ್ದೋ ರಾಕೆಟಿನದ್ದೋ ಹಾರಾಟ ನಿಯಂತ್ರಿಸುವ ತಂತ್ರಾಂಶದಲ್ಲಿ ತಪ್ಪಿದ್ದರೆ?

ಅಂತಹ ಮಹತ್ವದ ಕೆಲಸಗಳನ್ನು ನೋಡಿಕೊಳ್ಳುವ ಕಂಪ್ಯೂಟರ್ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿರುವ ಬಗ್‌ಗಳು ಭಾರೀ ನಷ್ಟ ಉಂಟುಮಾಡಬಲ್ಲವು. ಹೀಗಾಗಿಯೇ ತಂತ್ರಾಂಶಗಳು ಸಿದ್ಧವಾದ ನಂತರ ಅವುಗಳನ್ನು ಸರಿಯಾಗಿ ಪರೀಕ್ಷಿಸಿ ಅದರಲ್ಲಿರಬಹುದಾದ ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಇಂದು ಅನಿವಾರ್ಯವಾಗಿಬಿಟ್ಟಿದೆ. ಅಷ್ಟೇ ಏಕೆ, ಐಟಿ ಮಾರುಕಟ್ಟೆಯ ದೃಷ್ಟಿಯಿಂದ ನೋಡಿದರೆ ಸಾಫ್ಟ್‌ವೇರ್ ಟೆಸ್ಟಿಂಗ್ (ಸರಳವಾಗಿ 'ಟೆಸ್ಟಿಂಗ್') ಎಂಬ ಈ ತಪ್ಪು ಹುಡುಕುವ ಕೆಲಸ ಬಹಳ ಪ್ರಮುಖ ಕ್ಷೇತ್ರವಾಗಿಯೂ ಬೆಳೆದಿದೆ.

ಸಾಫ್ಟ್‌ವೇರ್ ಟೆಸ್ಟಿಂಗ್ ಕೆಲಸ ಪ್ರಾರಂಭವಾಗುವುದು ತಂತ್ರಾಂಶ ರಚನೆ ಸಂಪೂರ್ಣವಾದ ನಂತರ. ಸಿದ್ಧವಾಗಿರುವ ತಂತ್ರಾಂಶ ಅಗತ್ಯಗಳಿಗೆ ಅನುಗುಣವಾಗಿದೆಯೋ ಇಲ್ಲವೋ, ಅದರಲ್ಲಿರಬಹುದಾದ ತಪ್ಪುಗಳು ಯಾವುವು, ಬೇರೆಬೇರೆ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಅದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಅದರ ಕಾರ್ಯಕ್ಷಮತೆ ಎಷ್ಟಿದೆ ಮುಂತಾದ ವಿಷಯಗಳನ್ನೆಲ್ಲ ಪರೀಕ್ಷಿಸಿ ಅಗತ್ಯವಾದ ಬದಲಾವಣೆಗಳನ್ನು ಸೂಚಿಸುವುದು ಟೆಸ್ಟರ್‌ಗಳ ಕೆಲಸ. ಈ ಪರೀಕ್ಷೆಗಳನ್ನೆಲ್ಲ ಸಮರ್ಪಕವಾಗಿ ನಡೆಸಲು ಅನೇಕ ವಿಧದ ತಂತ್ರಾಂಶಗಳನ್ನು (ಟೆಸ್ಟಿಂಗ್ ಟೂಲ್ಸ್) ಕೂಡ ಬಳಸಲಾಗುತ್ತದೆ.

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

ಫೆಬ್ರುವರಿ ೭, ೨೦೧೪ರ ಉದಯವಾಣಿಯಲ್ಲಿ ಪ್ರಕಟವಾದ ಲೇಖನ
badge