மர்ம ரொட்டி
ஒரு QA குழுவின் இலக்கு என்பது சிறந்த சோதனை (testing) செய்வது மட்டுமல்ல.
சரியான விஷயங்களைச் சரியான முறையில் சோதிப்பதும் அதன் இலக்கல்ல.
உண்மையான இலக்கு என்பது, இயங்கக்கூடிய மென்பொருளை உருவாக்கக் குழுக்களுக்கு உதவுவதாகும். இந்த இலக்கை அடைய சோதனை (testing) என்பது ஒரு கருவி மட்டுமே. அதுவே ஒரே கருவி அல்ல. பெரும்பாலும் அதுவே சிறந்த கருவியும் அல்ல.
பல நிறுவனங்கள் சோதனை மற்றும் அதன் பரப்பளவு (coverage) ஆகியவற்றில் மட்டுமே கவனம் செலுத்துகின்றன. இது ஒரு தவறு.
சோதனைக்குச் சில குறிப்பிட்ட பயன்பாடுகள் உள்ளன:
- தானியங்கி சோதனைகள் (Automated tests) முக்கியமான செயல்பாடுகள் குறித்த விரைவான பின்னூட்டத்தை வழங்குகின்றன.
- ஆய்வுக் சோதனை (Exploratory testing) மென்பொருள் எவ்வாறு செயல்படுகிறது என்பதைப் புரிந்துகொள்ள உதவுகிறது.
இருப்பினும், பல குழுக்கள் அனைத்தையும் சரிசெய்ய சோதனையைப் பயன்படுத்துகின்றன. மோசமான திட்டமிடலால் ஏற்பட்ட இடைவெளிகளை நிரப்பவும், கண்காணிப்பு (monitoring) மற்றும் அவதானிப்பு (observability) ஆகியவற்றிற்கு மாற்றாகவும் அவர்கள் இதைப் பயன்படுத்துகின்றனர்.
சோதனைப் பரப்பளவை (test coverage) உங்கள் முக்கியத் தரக் குறியீடாக நம்புவது என்பது, ரொட்டி அடுப்பிலிருந்து வெளியே வந்த பிறகு அதைத் திருத்தி வடிவமைக்க முயற்சிப்பதைப் போன்றது.
உங்கள் மென்பொருளை ஒரு ரொட்டியாகக் கருதுங்கள். நீங்கள் குறியீட்டை (code) எழுதுவதற்கு முன்பே உங்களுக்குத் தேவையான பொருட்கள் இவை:
- மென்பொருள் என்ன செய்ய வேண்டும் என்பதற்கான தெளிவான வரையறை.
- தரம் என்பது எப்படி இருக்க வேண்டும் என்பதற்கான உடன்பாடு.
- அபாயங்கள் மற்றும் கட்டுப்பாடுகள் பற்றிய புரிதல்.
நீங்கள் தவறான மாவைப் பயன்படுத்தினாலோ அல்லது உப்பைத் தவிர்த்தாலோ, எவ்வளவுதான் மறுவடிவம் கொடுத்தாலும் மாவைச் சரிசெய்ய முடியாது.
மென்பொருள் மாவாக இருக்கும்போது அதை வடிவமைப்பது எளிது. அதாவது வளர்ச்சியின் ஆரம்பக் கட்டத்தில். குறியீடு எழுதப்பட்டவுடன், மாவு இறுகிவிடும். அதன் பிறகு மாற்றங்களைச் செய்வது அதிக நேரத்தையும் முயற்சியையும் கோரும்.
சோதனைப் பரப்பளவு (Test coverage) நீங்கள் எங்கே பார்த்தீர்கள் என்பதை மட்டுமே சொல்கிறது. நீங்கள் பார்த்தது முக்கியமானதுதானா என்பதை அது சொல்லாது. 80% பரப்பளவு என்பது உங்கள் மென்பொருள் உயர்தரமானது என்று அர்த்தமல்ல. உங்களிடம் தேவையற்ற சோதனைகள் அதிகமாக இருக்கலாம் என்பதையே அது குறிக்கலாம்.
பரப்பளவு எண்களைத் துரத்துவதை நிறுத்துங்கள். அதற்குப் பதிலாக, இந்தக் கேள்விகளைக் கேளுங்கள்:
- நமது மென்பொருளின் செயல்பாடு எங்கே தெரியாமல் உள்ளது?
- அதைத் தெரிந்துகொள்ள மிக விரைவான வழி எது?
சில நேரங்களில் பதில் ஒரு சோதனை (test) ஆக இருக்கலாம். பெரும்பாலும், பதில் ஒரு உரையாடலாக இருக்கும். அனைவரும் இயல்பானது என்று கருதும் கேள்விகளை நீங்கள் கேட்க வேண்டும்.
பெரும்பாலான மென்பொருள்கள் இறுதியில் செயலிழந்துவிடும். அது நடக்கும்போது, நீங்கள் அதை விரைவாகத் தெரிந்துகொள்ள வேண்டும். பயனர்களுக்குத் தெரியுமுன்னரே தயாரிப்பு கண்காணிப்பு (Production monitoring) ஏதோ தவறு நடப்பதாக உங்களுக்குத் தெரிவிக்கும். சோதனையினால் இதை மலிவாகச் செய்ய முடியாது.
AI இதை இன்னும் கடினமாக்குகிறது. இப்போது எந்த உண்மையான புரிதலும் இன்றி குறியீடு மற்றும் சோதனைகளை உருவாக்க முடியும். பரப்பளவு எண்கள் உயர்கின்றன, ஆனால் தரம் குறைவாகவே உள்ளது. நீங்கள் மாவு நிலையைத் தவிர்த்துவிட்டு நேரடியாக அடுப்பிற்குச் சென்றுவிடுகிறீர்கள்.
சோதனை என்பது ஒரு இலக்கை அடைவதற்கான வழிமுறை மட்டுமே. பரப்பளவு என்பது ஒரு மாற்று அளவீடு (proxy) மட்டுமே. உண்மையான வேலை மாவு நிலையின் போதுதான் நடக்கிறது. அதைத் தவிர்க்காதீர்கள்.
Source: https://dev.to/susanne_abdelrahman/mystery-bread-2526
Optional learning community: https://t.me/GyaanSetuAi