ஆதாயங்கள்:
- AI உடன் அர்த்தமுள்ள உறுதியுடன் அலகு, ஒருங்கிணைப்பு மற்றும் விளிம்பு வழக்கு சோதனைகளை உருவாக்கும் திறன்
- AI ஆதரவுடன் சோதனைக் கவரேஜ், வரம்பு மதிப்புகள் மற்றும் எதிர்மறை காட்சிகளை முறையாகப் பிரித்தெடுக்கும் திறன்
- AI ஆல் தயாரிக்கப்பட்ட சோதனைகள் உண்மையில் நடத்தை சரிபார்க்கின்றன மற்றும் ஏற்கனவே உள்ள குறியீட்டை மீண்டும் செய்யவில்லை என்பதை சரிபார்க்கும் திறன்
சோதனை என்பது மென்பொருள் உண்மையில் வாக்குறுதியளித்தபடி செயல்படுகிறது என்பதை நிரூபிக்கும் பொறிமுறையாகும். ஒரு நல்ல சோதனைத் தொகுப்பு ஒரு மாற்றம் எதையாவது உடைக்கிறதா என்பதை நொடிகளில் உங்களுக்குத் தெரிவிக்கிறது மற்றும் பொறியாளருக்கு நம்பிக்கையுடன் செயல்படுவதற்கான சுதந்திரத்தை அளிக்கிறது. சோதனை எழுதுவதில் மிகவும் கடினமான மற்றும் தவிர்க்கப்பட்ட பகுதியை AI வேகப்படுத்துகிறது: பல காட்சிகள், பிரேக் பாயிண்ட்கள் மற்றும் எதிர்மறை நிகழ்வுகளை உருவாக்குகிறது. ஆனால் இங்கே ஒரு தந்திரமான பொறி உள்ளது: AI ஆனது குறியீட்டின் தற்போதைய (ஒருவேளை தவறான) நடத்தையை சரிபார்க்கும் சோதனைகளை எழுதலாம், அதன் நடத்தை அல்ல; அல்லது அது எப்போதும் கடந்து செல்லும் வெற்று சோதனைகளை உருவாக்கலாம், உண்மையில் எதையும் சரிபார்க்காது. ஒரு சோதனையின் மதிப்பு அது தேர்ச்சி பெறுகிறதா என்பதில் அல்ல, ஆனால் அது சரியானதைச் சரிபார்த்து, அது தவறாக இருக்கும்போது சிவப்பு நிறமாக மாறுகிறதா என்பதில் உள்ளது.
இந்த யூனிட்டில், யூனிட், ஒருங்கிணைப்பு மற்றும் எட்ஜ் கேஸ் சோதனைகளை அர்த்தமுள்ள உறுதிப்பாடுகளுடன் எவ்வாறு தயாரிப்பது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்; சோதனைக் கவரேஜ், பிரேக் பாயின்ட்கள் மற்றும் எதிர்மறையான காட்சிகளை எப்படி முறையாகப் பிரித்தெடுப்பது; AI உருவாக்கும் சோதனைகள் உண்மையில் நடத்தையை சரிபார்க்கின்றன என்பதை நீங்கள் எவ்வாறு சரிபார்க்கலாம் என்பதை நாங்கள் பார்ப்போம்.
கருத்துகள்: அலகு சோதனை: தனித்தனியாக ஒரு செயல்பாடு/வகுப்பைச் சோதிக்கிறது. ஒருங்கிணைப்பு சோதனை: பல பாகங்கள் சரியாக வேலை செய்யும் சோதனைகள். வலியுறுத்தல்: ஒரு முடிவு எதிர்பார்த்ததற்கு சமமாக இருக்கிறதா என்று சரிபார்க்கும் அறிக்கை; இதுதான் சோதனையின் இதயம். கவரேஜ்: சோதனைகள் மூலம் எவ்வளவு குறியீடு இயக்கப்படுகிறது; உயர் பாதுகாப்பு தரத்திற்கு உத்தரவாதம் அளிக்காது.
அர்த்தமுள்ள சோதனைகளை உருவாக்குதல்
ஒரு நல்ல சோதனை மூன்று விஷயங்களைத் தெளிவாகச் செய்கிறது: அது ஒரு நிலையை நிறுவுகிறது, அது ஒரு செயலைச் செய்கிறது, முடிவை உறுதிப்படுத்துகிறது. AI க்கு சோதனைகளை அச்சிடும்போது, எந்த நடத்தையை நீங்கள் சரிபார்க்க விரும்புகிறீர்கள் மற்றும் அது என்ன சூழ்நிலைகளை உள்ளடக்கியிருக்க வேண்டும் என்பதைக் குறிப்பிடவும்; இல்லையெனில், அது எப்போதும் கடந்து செல்லும் மேலோட்டமான சோதனைகளை உருவாக்குகிறது.
- சோதிக்கப்பட வேண்டிய நடத்தையை வரையறுக்கவும். "எது சரியானது?" கேள்விக்கு தெளிவாக பதிலளிக்கவும்.
- காட்சி வகைகளைக் கேளுங்கள். இயல்பான, வரம்பு, எதிர்மறை, பிழை நிலை.
- அர்த்தமுள்ள உறுதிமொழியை இறக்குமதி செய்யவும். இது "பிழையை வீசியது" அல்ல, அது "சரியான மதிப்பை வழங்கியது".
- சோதனையின் துல்லியத்தை சரிபார்க்கவும். நீங்கள் உணர்வுபூர்வமாக குறியீட்டை உடைக்கும்போது சோதனை சிவப்பு நிறமாக மாறுமா?
விரிவான சோதனை உருவாக்கத் தூண்டுதல்: "பின்வரும் 'விண்ணப்பத் தள்ளுபடி(தொகை, கூப்பன்)' செயல்பாட்டிற்கான யூனிட் சோதனைகளை எழுதவும். பின்வரும் வகைகளில் குறைந்தபட்சம் ஒரு காட்சியைக் கொண்டிருங்கள்: (1) சாதாரண செல்லுபடியாகும் கூப்பன், (2) பிரேக் பாயின்ட்கள் (0 தொகை, 100% தள்ளுபடி), (3) எதிர்மறை (செல்லாத கூப்பன், எதிர்மறை வழக்கு) ஒவ்வொரு சோதனையிலும் கான்க்ரீட் எதிர்பார்க்கப்படும் மதிப்பு ('வேலை செய்தது' அல்ல) படிக்கக்கூடிய குறியீட்டிற்கு பெயரிடவும்.
எல்லை மதிப்பு பிரித்தெடுத்தல் அறிவுறுத்தல்: "இந்தச் செயல்பாட்டின் உள்ளீடுகளுக்கு ஒரு எல்லை மதிப்பு பகுப்பாய்வு செய்யவும். ஒவ்வொரு அளவுருவிற்கும், 'எல்லையில்', 'எல்லைக்குக் கீழே', 'எல்லைக்கு சற்று மேலே' மதிப்புகளை ஒரு அட்டவணையாகப் பிரித்தெடுக்கவும். பின்னர் இந்த எல்லைகளை உள்ளடக்கிய சோதனைக் காட்சிகளை பட்டியலிடவும். பின் குறியீடுகளை எழுத வேண்டாம்.
எச்சரிக்கை: உயர் சோதனை கவரேஜ் (எ.கா. 90%) குறியீடு சரியானது என்பதை நிரூபிக்கவில்லை. கவரேஜ் எத்தனை வரிசைகள் செயல்படுத்தப்பட்டது என்பதை அளவிடுகிறது; அந்த வரிகள் சரியான முடிவைத் தருகின்றன என்பதல்ல. அர்த்தமுள்ள உறுதிப்பாடு இல்லாத சோதனை கவரேஜை அதிகரிக்கிறது ஆனால் எதற்கும் உத்தரவாதம் அளிக்காது. வலியுறுத்தலின் உள்ளடக்கம் தரத்தை தீர்மானிக்கிறது, வலியுறுத்தல்களின் எண்ணிக்கை அல்ல.
சோதனையையே சோதித்தல்: பிறழ்வின் தர்க்கம்
AI-உருவாக்கப்பட்ட சோதனை உண்மையில் செயல்படுகிறதா என்பதைப் புரிந்துகொள்வதற்கான மிகவும் நடைமுறை வழி, வேண்டுமென்றே குறியீட்டை உடைப்பதாகும் (பிறழ்வு சோதனை தர்க்கம்). ஒரு நிபந்தனையை மாற்றவும், ஒரு + அடையாளத்தை உருவாக்கவும் -; எந்த சோதனையும் சிவப்பு நிறமாக மாறினால், உங்கள் சோதனைகள் உண்மையில் அந்த நடத்தையை பராமரிக்கவில்லை.
சோதனை பாதிப்பு வேட்டைத் தூண்டுதல்: "இந்தக் குறியீட்டில் எந்தெந்தப் பிழைகள் சாத்தியமில்லை என்பதைச் சொல்லுங்கள். பின்வரும் சோதனைகள் பிடிபடாமல் போகலாம். குறியீட்டில் செய்யக்கூடிய 5 சிறிய பிறழ்வுகளைப் பரிந்துரைக்கவும்.
பலவீனமான ப்ராம்ட் / ஸ்ட்ராங் ப்ராம்ட்
பலவீனம்: "இந்தச் செயல்பாட்டிற்கு ஒரு சோதனை எழுதவும்." (முடிவு: பொதுவாக ஒரு மகிழ்ச்சியான சூழ்நிலை, பலவீனமான உறுதிப்பாடு; தவறவிட்ட பிழைகள்.) STRONG: "இந்த 'passwordStrong' செயல்பாட்டிற்கு ஒரு சோதனை எழுதவும். விதி: குறைந்தபட்சம் 8 எழுத்துகள், 1 பெரிய எழுத்து, 1 இலக்கம் தேவை. பின்வரும் காட்சிகளை தனி சோதனைகளாக உள்ளடக்கவும்: சரியாக 8 எழுத்துகள் (அதிகபட்ச எழுத்துகள் (வரம்பு), குறைந்த இலக்கம், 7 எழுத்துகள் இல்லை), சரம், இடைவெளிகள் மட்டுமே, மிக நீளமானவை (1000 எழுத்துகள்) ஒவ்வொரு சோதனையிலும் எதிர்பார்க்கப்படும் உண்மை/தவறான மதிப்பை வெளிப்படையாக உறுதிப்படுத்தி, சோதனைக்கு ஏற்றவாறு பெயரிடவும்."
சக்திவாய்ந்த ப்ராம்ட் விதிகளையும் முழு எல்லைக் காட்சிகளையும் வழங்குகிறது. "சரியாக 8 / 7 எழுத்துக்கள்" போன்ற எல்லை ஜோடிகள் தவறுகள் செய்ய மிகவும் பொதுவான இடங்கள் (குழப்பம்> உடன் >=). பலவீனமான ப்ராம்ட் இந்த எல்லைகளைத் தவிர்த்து, பிழையை உற்பத்திக்கு கொண்டு செல்கிறது.
சோதனை வகைகள் மற்றும் எங்கு பயன்படுத்த வேண்டும்
சோதனை வகை
இது எதை உறுதிப்படுத்துகிறது?
AI பங்களிப்பு
கவனம்
அலகு
ஒற்றை செயல்பாடு/வகுப்பு
பல காட்சிகளை வேகமாக உருவாக்குகிறது
அர்த்தமுள்ள உறுதிப்பாடு தேவை
ஒருங்கிணைப்பு
ஒன்றாக வேலை செய்யும் பாகங்கள்
காட்சி மற்றும் போலி தரவு வரைவு
உண்மையான போதை பழக்கம்
முடிவு/ஏற்றுக்கொள்
முழு பயனர் ஓட்டம்
படி பட்டியல் மற்றும் எதிர்பார்ப்பு
உடையக்கூடிய தன்மை உடையது
பின்னடைவு
பழைய பிழை திரும்பவில்லை
தவறான குறிப்பிட்ட சோதனை
ஒவ்வொரு திருத்தத்திலும் சேர்க்கப்பட வேண்டும்
மினி வழக்குகள்
வழக்கு 1 - எப்போதும் கடந்து செல்லும் சோதனை. AI ஒரு செயல்பாட்டிற்கு 12 சோதனைகளை எழுதுகிறது, அவை அனைத்தும் தேர்ச்சி பெறுகின்றன. பொறியாளர் சந்தேகத்திற்குரியவராகி, செயல்பாட்டின் வருவாய் மதிப்பை வேண்டுமென்றே சிதைக்கிறார்; சோதனைகளில் 3 மட்டுமே சிவப்பு நிறமாக மாறும். மற்ற 9 சோதனைகளில் அர்த்தமுள்ள உறுதிப்பாடுகள் இல்லை. பிறழ்வு வேட்டையால் சோதனை பலப்படுத்தப்படுகிறது; உண்மையான பாதுகாப்பு 9 காட்சிகளில் பெறப்படுகிறது.
வழக்கு 2 - எல்லைப் பிழை. வயது சரிபார்ப்பு செயல்பாடு "18 மற்றும் அதற்கு மேற்பட்டது செல்லுபடியாகும்" என்று கூற வேண்டும், ஆனால் >18 எழுதப்பட்டுள்ளது, அதாவது 18 வயது நிராகரிக்கப்பட்டது. பிரேக்பாயிண்ட் பகுப்பாய்வு மூலம் AI "சரியாக 18" காட்சியை உருவாக்குவதால், சோதனையில் பிழை உடனடியாகக் காண்பிக்கப்படுகிறது. ஒரு ஒற்றை வரம்பு சோதனை உண்மையான பயனர் புகார்களைத் தடுக்கிறது.
வழக்கு 3 - தற்போதைய நடத்தையை சரிசெய்தல். "இந்தக் குறியீட்டின் அடிப்படையில் ஒரு சோதனையை எழுதுங்கள்" என்று AI யிடம் கூறப்பட்டால், அது குறியீட்டில் ஏற்கனவே உள்ள ஒரு ரவுண்டிங் பிழையை "சரியானது" என்று ஏற்றுக்கொள்ளும் ஒரு சோதனையை உருவாக்குகிறது. பொறியாளர் சோதனையை தேவைக்கேற்ப அச்சிடும்போது (எதிர்பார்க்கப்படும் சரியான மதிப்பு) குறியீடு அல்ல, சோதனை சிவப்பு நிறமாக மாறி உண்மையான பிழை ஏற்படுகிறது. சோதனைகள் எதிர்பார்ப்பில் இருந்து பெறப்பட வேண்டும், குறியீட்டிலிருந்து அல்ல.
பொதுவான தவறுகள்
- அர்த்தமற்ற கூற்று. "பிழை எறியவில்லை" என்பது போதாது; சரியான மதிப்பு சரிபார்க்கப்பட வேண்டும்.
- தரத்துடன் குழப்பமான நோக்கம். உயர் பாதுகாப்பு என்பது துல்லியமான முடிவுகளுக்கு உத்தரவாதம் இல்லை.
- குறியீடு மூலம் சோதனை அச்சிடுதல். தற்போதைய பிழையை "உண்மை" என்று சரிசெய்கிறது; சோதனைகள் எதிர்பார்ப்பில் இருந்து பெறப்பட வேண்டும்.
- வரம்பு மதிப்புகளைத் தவிர்க்கிறது. குழப்பம் > உடன் >= என்பது மிகவும் பொதுவான தவறு; எல்லை ஜோடிகள் சோதிக்கப்பட வேண்டும்.
- தேர்வையே தணிக்கை செய்யவில்லை. நீங்கள் குறியீட்டை உடைக்கும்போது சிவப்பு நிறமாக மாறாத சோதனை பாதுகாப்பை வழங்காது.
சுருக்கமாக
நம்பிக்கையுடன் மாற்றங்களைச் செய்வதற்கு ஒரு நல்ல சோதனைத் தொகுப்பு முக்கியமானது. AI விரைவாக பல காட்சிகள், வரம்புகள் மற்றும் எதிர்மறையான சூழ்நிலைகளை உருவாக்குகிறது; ஆனால் இது தேவைகளை விட குறியீட்டிலிருந்து சோதனைகளைப் பெற்றால், அது ஏற்கனவே உள்ள பிழைகளை சரிசெய்யலாம் அல்லது எப்போதும் கடந்து செல்லும் அர்த்தமற்ற சோதனைகளை எழுதலாம். ஒவ்வொரு சோதனையிலும் உறுதியான எதிர்பார்க்கப்படும் மதிப்பை உறுதிப்படுத்தவும், பிணைக்கப்பட்ட ஜோடிகளைச் சேர்த்து, உங்கள் சோதனைகள் வேண்டுமென்றே குறியீட்டை உடைப்பதன் மூலம் உண்மையில் பாதுகாக்கின்றன என்பதைச் சரிபார்க்கவும். உறுதிப்பாட்டின் உள்ளடக்கம், நோக்கங்களின் எண்ணிக்கை அல்ல, தரத்தை தீர்மானிக்கிறது.
விண்ணப்ப பணி
ஒரு செயல்பாட்டைத் தேர்ந்தெடுத்து, அது நான்கு வகைகளில் (சாதாரண, வரம்பு, எதிர்மறை, பிழை) ஒரு விரிவான சோதனை உருவாக்கத் தூண்டுதலுடன் சோதனைகளை உருவாக்க வேண்டும்; ஒவ்வொரு சோதனையிலும் உறுதியான எதிர்பார்க்கப்படும் மதிப்பை உறுதிப்படுத்த வேண்டும். சோதனை பாதிப்பு வேட்டை வரியில் இயக்கவும், குறியீட்டில் 5 சிறிய பிறழ்வுகளைப் பரிந்துரைக்கவும், மேலும் அவை எதைப் பிடிக்கின்றன என்பதைச் சரிபார்க்க சோதனைகளை இயக்கவும். பிடிபடாத ஒரு பிறழ்வுக்கான புதிய சோதனையைச் சேர்த்து, அது இப்போது சிவப்பு நிறத்தில் இருப்பதைக் காட்டவும்.
சரிபார்ப்பு பட்டியல்
- [ ] எதிர்பார்த்த/சரியான நடத்தையின் அடிப்படையில் சோதனைகளை அச்சிட்டேன், குறியீடு அல்ல.
- [ ] நான் சாதாரண, வரம்பு, எதிர்மறை மற்றும் பிழை காட்சிகளை உள்ளடக்கினேன்.
- [ ] ஒவ்வொரு சோதனையிலும் உறுதியான எதிர்பார்க்கப்படும் மதிப்பை நான் உறுதிப்படுத்தினேன்.
- [ ] நான் பார்டர் ஜோடிகளை சோதித்தேன் (மேலே-கீழே / சற்று மேலே-கீழே).
- [ ] வேண்டுமென்றே குறியீட்டை உடைத்ததன் மூலம், சோதனைகள் சிவப்பு நிறமாக மாறியதை நான் உறுதிப்படுத்தினேன்.
- [ ] கண்டறியப்படாத பிறழ்வுகளுக்கான புதிய சோதனையைச் சேர்த்துள்ளேன்.