இந்தப் பதிவில் நாம் பார்க்கப் போவது – ஒரு மென்பொருளின் இயங்குதன்மை(Functionality)யை எப்படி எல்லாம் சோதிப்பார்கள் என்பதைப் பார்ப்போம். அடுத்த பதிவில் அந்த மென்பொருளின் திறனை(Performance) எப்படிச் சோதிப்பார்கள் என்பதைப் பார்ப்போம்! முதலில் இயங்கு தன்மை என்றால் என்ன? திறன் என்றால் என்ன? அதை முதலில் சொல்லுங்கள் என்கிறீர்களா? சரி தான்! அதை முதலில் பேசி விடுவோம்.
ஒரு கதை சொல்லட்டுமா? கதிர் ஒரு மென்பொறியாளன். தமிழ்நாட்டில் பிறக்க ஓர் ஊர், பிழைக்க ஓர் ஊர். இதற்குக் கதிர் மட்டும் விதிவிலக்கா என்ன? சென்னை வந்து மூன்று மாதங்கள் ஆகிவிட்டன. திடீரென அவனுக்கு ஒரே வீட்டு நினைவு. ஒரு வாரம் ஊருக்குப் போய் வரலாம் என நினைத்து, இணையத்தின் வழி – தொடர்வண்டிப் பயணத்திற்குப் பதிய முயன்றான்.
இணையத் தளத்தில் கிளம்ப வேண்டிய இடம், சேர வேண்டிய இடம், நாள், நேரம், தொடர்வண்டி என எல்லாம் ஒழுங்காகக் கொடுத்து விட்டான். ஆனாலும் பயணச்சீட்டு உடனடியாகக் கிடைத்தபாடில்லை. ஒருவழியாகப் பயணச்சீட்டு கிடைத்த போது ஐந்து நிமிடங்கள் ஆகிவிட்டன. ‘என்ன இது இணையத்தளம்? இவ்வளவு மெதுவாக இருக்கின்றது?’ என்று சலித்துக் கொண்டான் கதிர்.
இவ்வளவு தான் கதை! என்ன – அதற்குள் கதை முடிந்து விட்டதா என்கிறீர்களா? நம்முடைய கட்டுரைக்கு இவ்வளவு கதை போதும். கதிரின் கதையைப் படித்து முடித்திருக்கும் உங்களிடம் இப்போது சில கேள்விகள்
கதிருக்கு என்ன நடந்தது?
1. கதிரால் எதிர்பார்த்த ஊருக்கு, எதிர்பார்த்த வண்டியில், எதிர்பார்த்த நேரத்தில் பயணச்சீட்டு எடுக்க முடியவில்லை.
அ. ஆம் ஆ. இல்லை.
2. கதிரால் விரும்பியபடி பயணச்சீட்டு எடுக்க முடிந்தது – ஆனால் அதற்கு ஆன நேரம் அதிகம் என அவன் நினைத்தான்.
அ. ஆம் ஆ. இல்லை
முதல் கேள்விக்கு உங்கள் பதில் என்ன? கதைப்படி, கதிருக்குப் பயணச்சீட்டு கிடைத்து விட்டது. எனவே, இதற்கான சரியான பதில் ஆ. இல்லை.
இரண்டாவது கேள்விக்கு உங்கள் பதில் என்ன? ஒரு சாதாரண பயணச்சீட்டுக்கு ஐந்து நிமிடங்கள் ஆகின்றனவே எனக் கதிர் நினைத்தான் அல்லவா? எனவே, இந்தக் கேள்விக்கான பதில் அ. ஆம்.
இந்தக் கதைக்குக் கேட்கப்பட்ட இரண்டு கேள்விகளில்
-
முதல் கேள்வி இணையத்தளத்தின் இயங்குதன்மை(Functionality) பற்றியது.
-
இரண்டாவது கேள்வி இணையத்தளத்தின் திறன்(Performance) பற்றியது.
இந்தக் கதையில் இருந்து நமக்குத் தெரிய வருவது – பயணச்சீட்டு பதியும் இணையத்தளத்தின் இயங்குதன்மையில் எந்தச் சிக்கலும் இல்லை; ஆனால் திறன் மேம்பட்டதாக இல்லை.
ஒரு டெஸ்டராக – ஒவ்வொரு மென்பொருளின் இயங்குதன்மை(Functionality), திறன்(Performance) ஆகிய இரண்டுமே சோதிக்கப்பட வேண்டியவை அல்லவா? இவை இரண்டையும் எப்படியெல்லாம் சோதிக்கலாம் என்று பார்த்து விடுவோமா?
1) புகை சோதனை (Smoke Testing)
எப்போது புகை வரும்? சரியாகச் சொன்னீர்கள்! நெருப்பில்லாமல் புகையாது. இங்கே நெருப்பு என்பது பெரிய சிக்கலைக் குறிக்கும் அல்லவா? அதே தான் இங்கும்! ஒரு மென்பொருளில் எங்கெங்கு இருந்தெல்லாம் நெருப்பு வர வாய்ப்பு இருக்கிறதோ – அதாவது முக்கியமான இடங்களை எல்லாம் தேர்ந்தெடுத்து – அவற்றை மட்டும் முழுமையான சோதனைக்கு உட்படுத்துவது தான் புகை சோதனை (Smoke Testing) ஆகும். சோதனையின் போது புகை எதுவும் வரவில்லை எனில் மென்பொருள் நிலையானதாக(stable) இருக்கிறது என்று புரிந்து கொள்ளலாம். பொது நிலையில் புகை சோதனை – பயனர் ஏற்புச் சோதனை(User Acceptance Testing)க்கு முன்பு செய்யப்படும்.
2) நலச் சோதனை (Sanity Testing)
நலச் சோதனை என்பது ஒரு மென்பொருளில் புதிய இயல்புகள்(features) சேர்க்கப்படும் போது மென்பொருளின் நலம் எந்த நிலையில் இருக்கிறது என்று பார்ப்பது ஆகும். ஏனென்றால், புதிய இயல்புகள் சேர்க்கப்படும் போது – மென்பொருளின் நலத்தில் ஏதேனும் குறைகள் வந்துவிடக்கூடாது என்பது தான் இதன் நோக்கம். எனவே தான், நலச் சோதனையை முழுச் சோதனை(Regression Testing)க்கு முன்பு செய்வார்கள்.
3) முழுச் சோதனை(Regression Testing)
முழுச் சோதனை அல்லது முழுமைச் சோதனை(Regression Testing) என்பது வாடிக்கையாளரின் எல்லாத் தேவைகளும் மென்பொருளில் வடிவமைக்கப்பட்டிருக்கின்றனவா என்று பார்ப்பதாகும். சோதனை நிலையின் இறுதியில் நடக்கும் சோதனை முழுச் சோதனை ஆகும்.
4) மறு சோதனை(Retesting)
சோதனைகளில் கண்டுபிடிக்கப்படும் பிழைகளை நிரலர்கள் திருத்துவார்கள். அவர்கள் திருத்தியது சரியா என்று பார்ப்பது தான் மறு சோதனை என்று சொல்லப்படும். அதாவது, இங்கு – மொத்த மென்பொருளையும் சோதிக்காமல், பிழையை நீக்குவதற்கு நிரலர் கொடுத்த திருத்தம் சரியா என்று மட்டும் சோதிப்பது மட்டுமே நடக்கும்.
5) சித்தம் போக்கு சிவம் போக்கு
அன்பே சிவம்! சித்தம் போகும் வழி – சிவம் போகும் வழியாக இருக்க வேண்டும் என்பதே தமிழர் நெறி! சித்தம் எந்த வழியில் போகும்? (அன்பாகிய) சிவம் போகும் வழியில்! அந்த வழியின் அடிப்படை அன்பு என்று சொல்ல முடியுமே தவிர, வரையறுத்துச் சொல்ல முடியாது அல்லவா? அதை எதற்கு இங்கே சொல்கிறீர்கள் என்கிறீர்களா? காரணம் இருக்கிறது. இப்படிச் சித்தம் போகும் வழி – மென்பொருளைச் சோதிப்பது ஒரு வகைச் சோதனையாகும்.
நேர்வழியில் போய் ஒவ்வோர் அலகாக(Unit)ச் சோதிப்பது என்பது ஒரு வகை! சித்தம் போகும் வழியில் பயணித்து பிழைகளைக் கண்டுபிடிப்பது என்பது வேறொரு வகை! இந்த வகைச் சோதனைகளுக்கு கொரில்லாச் சோதனை(Guerilla Testing) அல்லது குரங்கு போல் அங்கும் இங்கும் தாவிச் செய்யும் சோதனை என்னும் அடிப்படையில் இதற்குக் குரங்குச் சோதனை (Monkey Testing) என்றும் பெயர் உண்டு.
இவை தாம் பெரும்பாலும் இயங்குதன்மையைச் சோதிக்கும் வகைகள் ஆகும். அடுத்த பதிவில், திறன் சோதனைகள் செய்வது எப்படி என்று விரிவாகப் பார்ப்போம்.
– கி. முத்துராமலிங்கம் (muthu@payilagam.com)