ලාභ:
- AI සමඟ ඒකක පරීක්ෂණ, දාර අවස්ථා සහ ආවරණ පරතරය විශ්ලේෂණය නිෂ්පාදනය කිරීමේ හැකියාව
- කේතයේ වත්මන් හැසිරීම නොව පිරිවිතර මත පදනම්ව පරීක්ෂණ අපේක්ෂා මුද්රණය කිරීමේ හැකියාව
- දෝෂ එන්නත් කිරීමෙන් පරීක්ෂණයක් ඇත්ත වශයෙන්ම ආරක්ෂා කරන්නේ දැයි පරීක්ෂා කිරීමේ හැකියාව
පරීක්ෂණ ලිවීම බොහෝ සංවර්ධකයින් විසින් කල් දමා ඇති වඩාත්ම වටිනාකම් නිපදවන කාර්යයකි. හොඳ පරීක්ෂණ කට්ටලයක් යනු කේතය අපේක්ෂා කළ පරිදි ක්රියා කරන බවට සාක්ෂි වන අතර අනාගත වෙනස්කම් සඳහා ජීව මාර්ගයකි. ගැටලුව වන්නේ පරීක්ෂණ ලිවීම පුනරාවර්තන හා කාලය ගත වීමයි - හරියටම AI බැබළෙන ආකාරයේ වැඩ. නමුත් අල්ලා ගැනීමක් තිබේ: AI බොහෝ විට කේතයේ පවතින හැසිරීම පරීක්ෂා කරයි, එය විය යුතු හැසිරීම නොවේ. මෙම වෙනස කළමනාකරණය කිරීම මෙම ඒකකයේ සාරයයි.
මෙම ඒකකය තුළ, ඔබ ඒකක පරීක්ෂාව (ශ්රිතයක් තනිව, හුදකලාව පරීක්ෂා කරන පරීක්ෂාව), එජ් කේස් පරීක්ෂණ සහ AI සමඟ පරීක්ෂණ දත්ත උත්පාදනය ඉගෙන ගනු ඇත; පරීක්ෂණ ආවරණයේ හිඩැස් වැසීම; සහ AI පරීක්ෂණ අන්ධ ලෙස විශ්වාස කිරීම භයානක වන්නේ ඇයි?
පරීක්ෂණයේ පැති දෙක: ස්ථාවර හැසිරීම එදිරිව සත්යාපනය
පරීක්ෂණයක් විවිධ අරමුණු දෙකක් ඉටු කළ හැකිය. පළමුවැන්න සත්යාපනයයි: එය කේතය නිවැරදිද, එය පිරිවිතරයන්ට අනුකූලද යන්න පරීක්ෂා කරයි. දෙවැන්න ප්රතිගාමී ආරක්ෂාවයි: එය අද කේතයේ හැසිරීම කැටි කරයි, එබැවින් යමෙකු අහම්බෙන් හෙට එය වෙනස් කළහොත්, පරීක්ෂණය බිඳී දැනුම් දෙනු ඇත.
AI අවසාන වශයෙන් ඉතා හොඳයි; එය කේතය දෙස බලා "එය දැන් කරන්නේ කුමක්ද" පරීක්ෂා කරන අවස්ථා ජනනය කරයි. නමුත් ආරම්භයේ සිටම කේතය වැරදියි නම්, AI එම වැරදි හැසිරීම "නිවැරදි" ලෙස ඇලවිය හැක. එබැවින් ඔබ AI නිපදවන සෑම පරීක්ෂණයකම ප්රකාශය සමාලෝචනය කළ යුතුය: "කේතය 42 ලබා දෙන අතර පරීක්ෂණය 42 අපේක්ෂා කරයි" යන්නෙන් අදහස් වන්නේ 42 නිවැරදි පිළිතුර බව නොවේ.
අවවාදයයි: AI පරීක්ෂණයෙන් සමත් වුවහොත්, කේතය "ක්රියාකරන" බව ඉන් අදහස් නොවේ; එහි තේරුම "එය AI අපේක්ෂා කරන පරිදි හැසිරේ" යන්නයි. අපේක්ෂාව නිවැරදිද නැද්ද යන්න පිරිවිතර බැලීමෙන් ඔබ තීරණය කරයි.
පියවරෙන් පියවර: AI සමඟ ශක්තිමත් පරීක්ෂණ ලිවීම
- කේතය පමණක් නොව පිරිවිතර ලබා දෙන්න. ඔබ "මෙම කාර්යය මෙය කළ යුතුය" යන තොරතුරු එකතු කළහොත්, AI හට නිවැරදි අපේක්ෂාව ලිවිය හැක; ඔබ කේතය ලබා දෙන්නේ නම් එය වත්මන් හැසිරීම පරීක්ෂා කරනු ඇත.
- එජ් කේස් ඉල්ලන්න. හිස්, ශුන්ය, ශුන්ය, සෘණ, ඉතා විශාල, නරක ආකෘතිය, සමගාමී - ප්රීතිමත් මාර්ගයෙන් පැහැදිලිවම හිමිකම් කියන්න.
- පරීක්ෂණ රාමුව සහ විලාසය සඳහන් කරන්න. "pytest භාවිතා කරන්න", "Arrange-Act-Assert රටාව", "එක් එක් පරීක්ෂණයට එක් දෙයක් පරීක්ෂා කිරීමට ඉඩ දෙන්න" යනාදිය.
- අපේක්ෂාවන් පරීක්ෂා කරන්න (ප්රකාශය). එක් එක් ප්රකාශය නිවැරදි අගය සඳහා පරීක්ෂා කරන පිරිවිතර සමඟ සසඳන්න.
- විෂය පථයේ හිඩැස් වසා දමන්න. පවතින පරීක්ෂණ ලබා දී "පරීක්ෂා නොකළ ශාඛා සහ නඩු මොනවාද?" ඔබ අසන්න; ඉන්පසු නිෂ්පාදනය කරන ලද අතිරේක පරීක්ෂණ තහවුරු කරන්න.
කුඩා නඩු තුනක්
1 වන අවස්ථාව - 52% සිට 85% දක්වා ආවරණය. එක් සේවා මොඩියුලයක පරීක්ෂණ ආවරණය 52% කි. කණ්ඩායම දැනට පවතින පරීක්ෂණ AI වෙත ලබා දී, එය පරීක්ෂා නොකළ ශාඛා ලැයිස්තුගත කර ඒවා සඳහා පරීක්ෂණ උත්පාදනය කළේය. මානව සමාලෝචනය සමඟ, ආවරණය 85% දක්වා වැඩි විය; මෙම ක්රියාවලියේදී, AI විසින් මීට පෙර කිසි දිනෙක පරීක්ෂා නොකළ දෝෂ ශාඛාවක සත්ය දෝෂයක් (වැරදි දෝෂ කේතයක් ආපසු ලබා දුන් මාර්ගයක්) අනාවරණය කර ගන්නා ලදී.
නඩුව 2 - ව්යාජ අපේක්ෂා සවිකිරීමේ උගුල. මුදල් වට කිරීමේ කාර්යයක් ඇත්ත වශයෙන්ම වැරදියි; 2.675 සිට 2.67 දක්වා වට කිරීම වෙනුවට එය 2.68 වෙනුවට 2.67 වටය. AI විසින් කේතය දෙස බලා assert round_money(2.675) == 2.67 - දෝෂය "සත්ය" ලෙස කැටි කරමින් ලියා ඇත. සංවර්ධකයා පිරිවිතර කියවන විට, ඔහු අපේක්ෂාව නිවැරදි කර සැබෑ දෝෂය අල්ලා ගත්තේය. කේතය නොව රීතිය පරීක්ෂා කිරීම වෙනස ඇති කළේය.
නඩුව 3 - එජ් රාජ්ය පිපිරීම. දින පරාසයේ ශ්රිතයක් සඳහා AI වෙතින් “දාර අවස්ථා” පමණක් ඉල්ලා සිටින විට; එය start=අවසානය, ප්රතිලෝම අන්තරය, අධික වසර පෙබරවාරි 29, විවිධ කාල කලාප සහ ශුන්ය අන්තරය වැනි අවස්ථා 8ක් නිෂ්පාදනය කළේය. මෙයින් දෙකක් (ප්රතිලෝම පරතරය සහ අධික වසර) ඇත්ත වශයෙන්ම දෝෂය ඇති කරයි. මෙම අවස්ථා අතින් සලකා බැලීම බොහෝ විට මඟ හරිනු ලැබේ; AI මෙහි "Edge-case brainstorming" හවුල්කරුවෙකු බවට පත් විය.
පිටපත් කළ හැකි සැකිලි හතරක්
පිරිවිතර මත පදනම් වූ පරීක්ෂණ උත්පාදනය:
භූමිකාව: පරීක්ෂණ ලියන සංවර්ධකයෙක්. රාමුව: {{pytest/JUnit/Jest...}}. ශ්රිතය කුමක් කළ යුතුද (පිරිවිතර): {{rule}}පහත ශ්රිතය සඳහා පරීක්ෂණ ලියන්න. කේතයේ වත්මන් ප්රතිදානය නොව පිරිවිතරයන්ට අනුව බලාපොරොත්තු ලියන්න. ප්රීතිමත් මාර්ගය + අවම වශයෙන් දාර අවස්ථා 4ක් වත් එක් කරන්න. එක් එක් පරීක්ෂණයට එක් දෙයක් පරීක්ෂා කිරීමට ඉඩ දෙන්න, විස්තරාත්මක නම භාවිතා කරන්න. {{ කාර්යය}}
එජ් කේස් මොළය අවුල් කිරීම:
මෙම ශ්රිතය සඳහා පරීක්ෂා කිරීමේදී උත්සාහ කළ යුතු අන්ත/අසාර්ථක අවස්ථා ලැයිස්තුගත කරන්න (ශුන්ය, ශුන්ය, බිඳුම් ලක්ෂ්ය, නරක ආකෘතිය, සමගාමී, බාහිර දෝෂ).එක් එක් අවස්ථාව සඳහා: ආදානය, අපේක්ෂිත හැසිරීම. තවම කේතය ලියන්න එපා, ලැයිස්තුගත කරන්න.{{function}}
ආවරණ පරතරය විශ්ලේෂණය:
පහත දැක්වෙන්නේ කාර්යයන් සහ පවතින පරීක්ෂණ. පරීක්ෂා කර නොමැති ශාඛා, කොන්දේසි සහ නඩු මොනවාද? අඩුපාඩු ලැයිස්තුගත කර අඩුපාඩු සඳහා පමණක් නව පරීක්ෂණ ලියන්න. පවතින ඒවා නැවත කරන්න එපා. කාර්යය:{{function}}පරීක්ෂණ:{{existing_tests}}
පරීක්ෂණ දත්ත / ව්යාජ වස්තු උත්පාදනය:
{{function/service}} පරීක්ෂණ සඳහා යථාර්ථවාදී පරීක්ෂණ දත්ත උත්පාදනය කරන්න: වලංගු සාම්පල, මායිම් සාම්පල සහ වලංගු නොවන සාම්පල වෙන වෙනම. බාහිර පරායත්තතාව {{X}} සඳහා සරල ව්යාජ හැසිරීමක් යෝජනා කරන්න. සැබෑ රහස්ය දත්ත/PII භාවිතා කිරීම; ව්යාජ දත්ත උත්පාදනය කරන්න.
දුර්වල ක්ෂණික / ශක්තිමත් විමසුම
දුර්වල: "මෙම කාර්යය සඳහා පරීක්ෂණයක් ලියන්න."
ශක්තිමත්: "පයිටෙස්ට් සමඟ. ක්රියාකාරී අයදුම්_වට්ටම් (මුළු, සියයට) - රීතිය: වට්ටම් 0%–30% විය යුතුය, සීමාවෙන් බැහැරව ValueError විසි කළ යුතුය, ප්රතිඵලය දශම 2 ට වට කළ යුතුය. මෙම රීතිය මඟින් අපේක්ෂාවන් ලියන්න (කේතයෙන් නොවේ). ප්රීතිමත් මාර්ගය + මෙම අන්ත අවස්ථා: 0%, 3130 [කේතය]"
ඔහු ප්රබල මුදා හැරීමේ රීතිය ලබා දී "කේතයට නොව රීතියට අනුව අපේක්ෂාව ලියන්න" යැයි පවසයි; මෙම තනි වාක්යය AI නිවැරදි කිරීමේ වැරදි හැසිරීමේ උගුල වසා දමයි.
පරීක්ෂණ වර්ගය
AI දායකත්වය
මානව පාලනය
සතුටු මාර්ග ඒකකය පරීක්ෂා කිරීම
වේගවත් ඇටසැකිල්ල
අපේක්ෂාව නිවැරදිද?
දාර නඩු
පුළුල් මොළය කම්පනය
අදාළ නැති දේ ඉවත් කරන්න
විෂය පථය පිරවීම
මඟ හැරුණු අතු සොයා ගනී
වැදගත්කම තහවුරු කරන්න
පරීක්ෂණ දත්ත / උපහාසය
යථාර්ථවාදී නියැදියක් නිෂ්පාදනය කරයි
PII නැත, යථාර්ථවාදී පාලනය
පරීක්ෂණ ගුණාත්මකභාවය කළමනාකරණය කරයි, එය සහතික නොවේ
ඉහළ පරීක්ෂණ ආවරණය විශ්වාසයක් ලබා දෙයි, නමුත් එය නොමඟ යවන සුළු විය හැක: සියයට 100 ආවරණය යන්නෙන් අදහස් වන්නේ "සෑම පේළියක්ම ධාවනය කරන ලදී", "සෑම පේළියක්ම නිවැරදි" නොවේ. AI සමඟ ආවරණය වැඩි කිරීම පහසුය; සැබෑ වටිනාකම වන්නේ අර්ථවත් අපේක්ෂාවන් ලිවීමයි. පරීක්ෂණයක වටිනාකම යනු කේතය කැඩී ගිය විට එය බිඳ දැමීමට සහ ඔබට අනතුරු ඇඟවීමට ඇති හැකියාවයි. AI-උත්පාදනය කරන ලද පරීක්ෂණ "කේතය වෙනස් වූ විට එය සැබවින්ම කැඩී යයිද?" යන ප්රශ්නය මත පදනම් වන්නේ එබැවිනි. ප්රශ්නය සමඟ එය පරීක්ෂා කරන්න; හිතාමතාම රේඛාවක් කැඩීම සහ පරීක්ෂණ බිඳීම (විකෘති අදහස) දැකීම පරීක්ෂණය ක්රියාත්මක වූ බවට සාක්ෂියකි.
ඉඟිය: AI ලියන පරීක්ෂණයක් ක්රියා කරන්නේ දැයි බැලීමට, කේතයේ කුඩා දෝෂයක් සාදන්න (උදා: a + to a - දක්වා වෙනස් කරන්න) සහ පරීක්ෂණය බිඳ වැටේදැයි බලන්න. එය කැඩී නොයන්නේ නම්, එම පරීක්ෂණය ඔබව ආරක්ෂා නොකරයි.
පොදු වැරදි
- Rule එක දෙන්නේ නැතුව test එකක් ඉල්ලනවා. ආකෘතිය වත්මන් හැසිරීම කැටි කරයි; දෝෂය "සත්ය" ලෙස නිවැරදි කරයි.
- ඒවා කියවීමෙන් තොරව අපේක්ෂාවන් පිළිගැනීම. ප්රකාශයන් නිවැරදි අගය සඳහා පරීක්ෂා කරන්නේදැයි ඔබ පරීක්ෂා නොකරන්නේ නම් පරීක්ෂණය නොමඟ යවන සුළුය.
- ප්රීතිමත් මාර්ගය පරීක්ෂා කිරීම පමණි. සැබෑ දෝෂ මායිම් මත ජීවත් වේ; එජ් කේස් පැහැදිලිවම අහන්න.
- අරමුණ සඳහා විෂය පථය වැරදියි. ඉහළ ප්රතිශතයක් නිවැරදි හැසිරීම් සහතිකයක් නොවේ.
- පරීක්ෂණ දත්ත ලෙස සැබෑ/සැඟවුණු දත්ත සෑදීම. පාරිභෝගික දත්ත හෝ රහස් පරීක්ෂණ සහ ගබඩා කිරීම ඇතුළු නොකළ යුතුය; කෘතිම දත්ත උත්පාදනය කරන්න.
සාරාංශයක් ලෙස
AI පරීක්ෂණ ලිවීමෙන් බොහෝ පුනරාවර්තන බරක් ගනී: එය වේගවත් ඇටසැකිලි, දාර නඩු විශාල ලැයිස්තු සහ ආවරණ පරතරය විශ්ලේෂණයන් නිෂ්පාදනය කරයි. නමුත් වඩාත්ම තීරණාත්මක කරුණ වන්නේ අපේක්ෂාවන් ය: AI කේතයේ වත්මන් හැසිරීම පරීක්ෂා කිරීමට නැඹුරු වන අතර, පිරිවිතරයන්ට අනුව පරීක්ෂණ ලිවිය යුතුය. රීතිය ලබා දෙන්න, අපේක්ෂාවන් පරීක්ෂා කරන්න, එජ් කේස් බලාත්මක කරන්න, සහ දෝෂයක් එන්නත් කිරීමෙන් පරීක්ෂණ ඇත්ත වශයෙන්ම ආරක්ෂා කරන්නේ දැයි පරීක්ෂා කරන්න. පරීක්ෂණ ආවරණය යනු මෙවලමක් මිස ඉලක්කයක් නොවේ.
යෙදුම් කාර්යය
කාර්යයක් තෝරා පළමුව එහි කේතය ලබා දීමෙන් AI වෙත පරීක්ෂණයක් මුද්රණය කරන්න; අපේක්ෂාවන් සටහන් කරන්න. ඉන්පසු එම කාර්යය සඳහා පිරිවිතර (අවශ්ය හැසිරීම) ලබා දෙමින් පරීක්ෂණය නැවත මුද්රණය කරන්න. පරීක්ෂණ කට්ටල දෙකේ අපේක්ෂාවන් සසඳන්න: සැබෑ දෝෂයක් හෙළිදරව් කරන්නේ කුමන එකක්ද? අවසාන වශයෙන්, කේතයට චේතනාන්විත දෝෂයක් එක් කිරීමෙන් සහ පරීක්ෂණ බිඳීම දැකීමෙන් උත්පාදනය කරන ලද එක් පරීක්ෂණයක් ක්රියාත්මක වූ බව තහවුරු කරන්න.
පිරික්සුම් ලැයිස්තුව
- [ ] පරීක්ෂණය හැසිරීම නිවැරදි කිරීමට හෝ සත්යාපනය කිරීමටදැයි මම වෙන්කර හඳුනාගනිමි.
- [ ] මම පරීක්ෂණයක් ඉල්ලන විට, කේතය නොව ක්රියාත්මක විය යුතු රීතිය (පිරිවිතර) ලබා දෙමි.
- [ ] මම එක් එක් උත්පාදනය කරන ලද ප්රකාශයන් පිරිවිතරයට සංසන්දනය කරමි.
- [ ] මම පැහැදිලිවම අන්ත සහ අසාර්ථක අවස්ථා ඉල්ලා සිටිමි.
- [ ] මම ප්රතිශත ආවරණය බලන්නේ මෙවලමක් ලෙස මිස ඉලක්කයක් ලෙස නොවේ.
- [ ] පරීක්ෂණයක් සත්ය වශයෙන්ම දෝෂ එන්නත් කිරීමෙන් ආරක්ෂා කරන්නේ දැයි මම පරීක්ෂා කරමි.