ලාභ:
- පරීක්ෂණ පිරමීඩයට අනුකූලව කෘත්රිම බුද්ධිය සමඟ ඒකක, අනුකලනය සහ UI පරීක්ෂණ නිෂ්පාදනය කිරීමේ හැකියාව සහ සීමාවන් සහ දෝෂ තත්ත්වයන් මෙන්ම සතුටුදායක අවස්ථා ආවරණය කිරීම
- ජනනය කරන සෑම පරීක්ෂණයක්ම සත්ය වශයෙන්ම හැසිරීමක් වලංගු දැයි පරීක්ෂා කිරීමෙන් හිස්/නිෂ්ඵල පරීක්ෂණ සහ පුම්බා ඇති ආවරණය ඉවත් කිරීමේ හැකියාව
- පරීක්ෂණයෙන් දෝෂය හසු වන බව සහතික කිරීම සහ කේතය කුමක් කළ යුතු දැයි AI ට පැවසීමෙන් දෝෂය නිවැරදි කිරීමෙන් වළක්වයි
කේතය ලිවීමෙන් අඩක් කාර්යයකි; කේතය නිවැරදිව ක්රියා කරන බව ඔප්පු කිරීම අනෙක් භාගයයි. ජංගම යෙදුම් සිය ගණනක් විවිධ උපාංග, තිර ප්රමාණයන්, මෙහෙයුම් පද්ධති අනුවාද සහ පරිශීලක හැසිරීම් හමුවේ. මේ සියල්ල අතින් පරීක්ෂා කළ නොහැක; ස්වයංක්රීය පරීක්ෂණය (කේත පරීක්ෂණ කේතය - මිනිස් ක්ලික් කිරීමකින් තොරව ක්රියාත්මක වන පරීක්ෂණය) ජංගම ගුණාත්මක භාවයේ කොඳු නාරටිය වන්නේ එබැවිනි. පරීක්ෂණ ලිවීමේදී AI ඇදහිය නොහැකි තරම් කාර්යක්ෂම වේ, මන්ද පරීක්ෂණ ලිවීම හරියටම එය කැමති ආකාරයේ මෝස්තර කාර්යයක් වන බැවිනි: නිශ්චිත යෙදවුම් සඳහා නිශ්චිත හැසිරීමක් වලංගු කිරීම. මෙම ඒකකය තුළ, අපි AI සමඟ ඒකක පරීක්ෂාව, අතුරු මුහුණත් පරීක්ෂාව සහ ස්වයංක්රීයකරණය වේගවත් කරන්නේ කෙසේදැයි ඉගෙන ගනිමු, නමුත් මිනිස් ඇස් හරහා පරීක්ෂණයේ ගුණාත්මකභාවය සහතික කරමු.
පිරමීඩය පරීක්ෂා කිරීම: පරීක්ෂා කළ යුතු දේ සහ කොපමණ
සෞඛ්ය සම්පන්න පරීක්ෂණ උපාය මාර්ගයක් පිරමීඩයකට සමාන වේ. පදනමට ඒකක පරීක්ෂණ විශාල සංඛ්යාවක් ඇතුළත් වේ (තනි කාර්යයක් හෝ පන්තියක් හුදකලාව පරීක්ෂා කරන ඉක්මන් පරීක්ෂණ); ඒවා වේගවත් හා ලාභදායී වේ. මධ්යයේ අඩු ඒකාබද්ධතා පරීක්ෂාවකි (බහු කොටස් එකට වැඩ කරන ආකාරය පරීක්ෂා කිරීම). ඉහලින් අවම UI/අන්තයේ සිට අවසානය දක්වා පරීක්ෂණ ඇත (පරිශීලකයා කරන පරිදි තිරය මත ක්ලික් කිරීමෙන් පරීක්ෂා කිරීම); ඒවා යථාර්ථවාදී නමුත් මන්දගාමී හා බිඳෙන සුළු ය. AI සෑම ස්ථරයකටම උපකාර කරයි, නමුත් වඩාත්ම අගය පදනම් වන්නේ: ව්යාපාර තර්කනය පිළිබඳ ඒකක පරීක්ෂණ ඉක්මනින් නිෂ්පාදනය කිරීම.
පරීක්ෂණ වර්ගය
විෂය පථය
වේගය
AI කාර්යක්ෂමතාව
ඒකක පරීක්ෂාව
තනි කාර්යය/පංතිය
ඉතා වේගවත්
ඉතා ඉහළ
ඒකාබද්ධ කිරීම
අන්තර් ස්ථරය
මධ්යම
ඉහළ
UI / අන්තයේ සිට අවසානය දක්වා
සියලුම තිර ප්රවාහය
මන්දගාමී
මධ්යම (බිඳෙන සුළු)
ඉඟිය: AI හට "මෙම ශ්රිතය සඳහා පරීක්ෂණ උත්පාදනය කිරීමට" පවසන විට, පැහැදිලිවම අන්ත අවස්ථා සඳහා අසන්න: හිස් ආදානය, ශුන්ය, සෘණ අංකය, ඉතා විශාල අගය, ජාල දෝෂය. AI පහසුවෙන් ප්රීතිමත් මාර්ගයක් නිපදවයි; සැබෑ වැරදි මායිම් වල සැඟවී ඔබට අවශ්ය නැතිනම් පිටතට පනින්න.
AI සමඟ පරීක්ෂණ ලිවීමේ පියවර
- පරීක්ෂා කළ යුතු හැසිරීම නිර්වචනය කරන්න. "මෙම කාර්යය මෙම ආදානයට මෙම ප්රතිදානය ලබා දිය යුතුය."
- රාමුව සඳහන් කරන්න. Android මත JUnit + MockK, iOS මත XCTest, UI සඳහා Espresso (Android) හෝ XCUITest (iOS).
- සීමා සහිත ප්රාන්ත සඳහා ඉල්ලන්න. ප්රීතිමත් අවස්ථාව + දෝෂය + බිඳවැටීම්.
- ව්යාජ වස්තු කළමනාකරණය කරන්න. ජාලය සහ දත්ත සමුදාය වැනි බාහිර පරායත්තතා පරීක්ෂණ සඳහා අනුකරණය කරනු ලැබේ (සැබෑ සේවාව වෙනුවට ව්යාජ - පාලිත ව්යාජය).
- පරීක්ෂණය ධාවනය කර සත්යාපනය කරන්න. පරීක්ෂණය සමත්ද, එය සැබවින්ම අර්ථවත් යමක් තහවුරු කරයිද?
පස්වන පියවර තීරණාත්මක ය. AI සමහර විට "සෑම විටම සමත්" නිෂ්ඵල පරීක්ෂණ නිෂ්පාදනය කරයි; උදාහරණයක් ලෙස, කිසිවක් සත්යාපනය නොකරන හෝ තමන්ගේම ව්යාජ දත්ත පරීක්ෂා නොකරන පරීක්ෂණයක්. සමත් පරීක්ෂණයක් සහ වටිනා පරීක්ෂණයක් වෙනස් දේවල්.
අවවාදයයි: AI හට නිපදවිය හැකි නිසා පරීක්ෂණය නිවැරදි බව අදහස් නොවේ. සමහර විට AI කේතයේ වත්මන් (සමහර විට දෝෂ සහිත) හැසිරීම "නිවැරදි" ලෙස පිළිගෙන ඒ අනුව පරීක්ෂණ ලියයි. එවැනි පරීක්ෂණයක් දෝෂය අල්ලා ගැනීමට වඩා නිවැරදි කරයි. පරීක්ෂණයෙන් අපේක්ෂා කරන්නේ කුමක්ද යන්න ඔබ තීරණය කරයි; AI හට එය කළ යුතු දේ කියන්න, කේතය කරන්නේ කුමක්ද යන්න නොවේ.
පරීක්ෂණ ආවරණ මිනුම සහ වැරදි
පරීක්ෂණ ආවරණය (පරීක්ෂණ මගින් ධාවනය වන කේතයේ ප්රතිශතය) ප්රයෝජනවත් නමුත් නොමඟ යවන මෙට්රික් එකකි. 90% ආවරණයක් පෙන්නුම් කරන්නේ කේතයෙන් 90% ක් ක්රියාත්මක කර ඇති බවයි; නමුත් එම රේඛා නිවැරදිව ක්රියාත්මක වන බව තහවුරු කර නොමැත. රේඛාවක් ධාවනය කරන සහ ප්රතිඵලය පරීක්ෂා නොකරන පරීක්ෂණයක් විෂය පථය පුම්බන නමුත් ආරක්ෂාව සපයන්නේ නැත. ඉලක්කය ඉහළ සංඛ්යා නොව අර්ථවත් වලංගුකරණයයි. ඔබට AI සමඟ ඉක්මනින් පරිමාණය කළ හැක, නමුත් සෑම පරීක්ෂණයක්ම ඇත්ත වශයෙන්ම හැසිරීමක් පරීක්ෂා කරන බවට වග බලා ගන්න.
කුඩා නඩු තුනක්
නඩුව 1 - දේශසීමා තත්ත්වය හසු විය. බැංකු යෙදුමක මුදල් හුවමාරු කාර්යයක් සඳහා පරීක්ෂණ සඳහා AI ගෙන් ඉල්ලා සිටි අතර, විශේෂයෙන් "සෘණ අගය" සහ "ශේෂයට වඩා වැඩි" අවස්ථා එකතු කරන ලදී. පරීක්ෂණයෙන් හෙළි වූයේ ඍණාත්මක මුදලක් සමඟ මාරු කිරීම අවහිර නොකළ බවයි; මෙය නිෂ්පාදනයේ ප්රධාන ආරක්ෂක අවදානමක් වනු ඇත. එක් පේළි පාලනයක් එක් කිරීමෙන් වසා ඇත. පාඩම: මායිම් පරීක්ෂණ වඩාත්ම වටිනා පරීක්ෂණ වේ.
නඩුව 2 - ව්යාජ පරීක්ෂණය. AI විසින් නිෂ්පාදනය කරන ලද ඒකක පරීක්ෂණ 40ක් සමඟින් ආවරණය 85% දක්වා වැඩි කිරීමට එක් කණ්ඩායමකට සහනයක් ලැබිණි. පරීක්ෂා කිරීමේදී, බොහෝ පරීක්ෂණවලින් කිසිදු ප්රතිදානයක් සත්ය වශයෙන්ම සත්යාපනය කර නැති බව පෙනී ගිය අතර, ඒවා හුදෙක් ශ්රිතය කැඳවා assertTrue(true) ලෙස ලිවීය. ආවරණය ඉහළ නමුත් ආරක්ෂාව ශුන්ය විය. පරීක්ෂණ නැවත සකස් කර සැබෑ වලංගු කිරීම් සමඟ නැවත ලියා ඇත. පාඩම: ආවරණ අංක බොරු විය හැක.
3 වන අවස්ථාව - UI පරීක්ෂාව වේගවත් කරන ලදී. ඊ-වාණිජ්යය කණ්ඩායමක් විනාඩි 20කින් AI සමඟින් කරත්ත එකතු කිරීමේ XCUITest පිටපතක් ලිවීය; අතින් ලිව්වොත් දවස බාගයක් යනවා. AI අනුමාන කළ තිර මූලද්රව්ය හඳුනාගැනීම්; කණ්ඩායම ඒවා නියම කේතය සමඟ ගලපා ඒවා සවි කර ඇත. කෙටුම්පත් වේගය සැබෑ ය, නමුත් හඳුනාගැනීමේ සත්යාපනය මිනිස් කාර්යයකි.
දුර්වල ක්ෂණික / ශක්තිමත් විමසුම
දුර්වල විමසුම: "මෙම කාර්යය සඳහා පරීක්ෂණයක් ලියන්න."
බලගතු විමසුම: "JUnit5 + MockK සමඟින් මෙම Kotlin ශ්රිතය සඳහා ඒකක පරීක්ෂණ නිෂ්පාදනය කරන්න. කාර්යය: මුදල් හුවමාරුව (මුදල්, මූලාශ්රය, ඉලක්කය) පරීක්ෂා කිරීමට හැසිරීම් (කේතය කළ යුතු දේ):- වලංගු හුවමාරුව සාර්ථක විය යුතුය- සෘණ හෝ ශුන්ය ප්රමාණය ප්රතික්ෂේප කළ යුතුය- ශේෂයට වඩා වැඩි ප්රමාණයක් ප්රතික්ෂේප කළ යුතුය- සෑම පරීක්ෂණ දෝෂයක් පමණක් ප්රතික්ෂේප කළ යුතුය. විස්තරාත්මක, බාහිර සේවයට සමච්චල් කරන්න, හිස් ප්රකාශයක් ලියන්න එපා.
පිටපත් කළ හැකි සැකිලි
ඒකක පරීක්ෂණ අච්චුව: "[භාෂාව] සඳහා මෙම ශ්රිතය සඳහා [JUnit/XCTest] ඒකක පරීක්ෂණ උත්පාදනය කරන්න. අපේක්ෂිත හැසිරීම: [කළ යුතු දේ]. ඇතුළත් කරන්න: සතුටු අවස්ථාව, null input, breakpoints, error case. එක් එක් පරීක්ෂණයට තනි හැසිරීම් සත්යාපනය කිරීමට ඉඩ දෙන්න; අර්ථවත් ප්රකාශයක් භාවිතා කරන්න; mock. [කේතය]"
UI පරීක්ෂණ අච්චුව: "[Espresso/XCUITest] සමඟ පහත ප්රවාහයේ UI පරීක්ෂණයක් ලියන්න: [පරිශීලක ප්රවාහ පියවරෙන් පියවර]. ප්රවේශ්යතා හැඳුනුම්පත සහිත තිර මූලද්රව්ය තෝරන්න, පෙළ වෙනුවට id භාවිතා කරන්න. රැඳවුම් උපාය මාර්ගයක් එක් කරන්න. මූලද්රව්ය හැඳුනුම්පත් සැබෑ කේතයට ගැළපීමට මට මතක් කරන්න."
පරීක්ෂණ විගණන අච්චුව:"මෙම පරීක්ෂණ පරීක්ෂා කරන්න:1) ඒවා ඇත්ත වශයෙන්ම ප්රතිදානයක්/හැසිරීමක් සත්යාපනය කරන්නේද නැතහොත් ඒවා ශුන්යද?2) ඔවුන් සීමාවන් ආවරණය කරන්නේද?3) ඔවුන් කේතය දෝෂ නිවැරදි කරනවාද නැතහොත් නිවැරදි හැසිරීමක් බලාපොරොත්තු වෙනවාද? දුර්වල පරීක්ෂණ සලකුණු කර ශක්තිමත් කරන්න. [පරීක්ෂණ]"
ආවරණ ප්රශස්තකරණ අච්චුව: "මෙම පන්තියේ පරීක්ෂා නොකළ කොටස් හඳුනාගෙන අර්ථවත් පරීක්ෂණ යෝජනා කරන්න. ආවරණ ගණනට පමණක් නොව සැබෑ අවදානම් සහිත මාර්ගවලට ප්රමුඛත්වය දෙන්න. [කේතය]"
පොදු වැරදි
- ප්රීතිමත් අවස්ථාව පරීක්ෂා කිරීම පමණි. දෝෂ සීමිත තත්වයන් තුළ ගබඩා කර ඇත; ඒවා විවෘතව ඉල්ලන්න.
- හිස්/නිෂ්ඵල පරීක්ෂණයක් පිළිගැනීම. assertTrue(true) වර්ගයේ පරීක්ෂණ විෂය පථය පුම්බන අතර ආරක්ෂාවක් සපයන්නේ නැත.
- AI මඟින් කේතය කරන්නේ කුමක්ද යන්න තහවුරු කර ගැනීම. කේතය කුමක් කළ යුතුද යන්න පරීක්ෂා කිරීම අපේක්ෂා කළ යුතුය; එසේ නොමැතිනම් එය දෝෂය නිවැරදි කරයි.
- අරමුණ සඳහා විෂය පථ අංකය වැරදියි. 90% ආවරණය යනු 90% නිරවද්යතාවයක් නොවේ.
- UI පරීක්ෂණයේදී පෙළ වෙත සම්බන්ධ කිරීම. පෙළ වෙනස් වන විට පරීක්ෂණය කැඩී ඇත; ස්ථායී හඳුනාගැනීම් (id) භාවිතා කරන්න.
- වැරදි ලෙස උපහාස සැකසීම. සැබෑ සේවාව අමතන "ඒකක පරීක්ෂණය" මන්දගාමී සහ බිඳෙනසුලු වනු ඇත.
සාරාංශයකින්
පරීක්ෂා කිරීම ජංගම ගුණාත්මක භාවයේ කොඳු නාරටිය වන අතර AI මෙම ප්රදේශය තුළ, විශේෂයෙන් ඒකක පරීක්ෂා කිරීමේදී ඉතා කාර්යක්ෂම වේ. පරීක්ෂණ පිරමීඩය අනුගමනය කරන්න: බොහෝ ඒකක, මධ්යම අනුකලනය, කුඩා UI පරීක්ෂාව. ප්රීතිමත් අවස්ථාව මෙන්ම සීමිත අවස්ථා සහ දෝෂ මාර්ග සඳහා AI වෙතින් පැහැදිලිව විමසන්න. උත්පාදනය කරන සෑම පරීක්ෂණයක්ම ඇත්ත වශයෙන්ම හැසිරීමක් වලංගු කරන බවට වග බලා ගන්න; හිස් පරීක්ෂණ සහ පුම්බන ලද ආවරණය නොමඟ යවන සුළුය. වැදගත්ම දෙය නම්, එය කරන්නේ කුමක්ද යන්න නොව, කේතය කුමක් කළ යුතුද යන්න AI ට පවසන්න, එබැවින් පරීක්ෂණය දෝෂය අල්ලා ගනී, එය නිවැරදි නොකරයි.
යෙදුම් කාර්යය
ව්යාපාර තාර්කික කාර්යයක් සඳහා “ඒකක පරීක්ෂණ අච්චුව” භාවිතයෙන් AI වෙතින් පරීක්ෂණ ඉල්ලන්න (උදා: වට්ටම් ගණනය කිරීම හෝ පෝරම වලංගු කිරීම) සහ සීමා අවස්ථා පැහැදිලිව සඳහන් කරන්න (ශුන්ය, සෘණ, ඉතා විශාල). උත්පාදනය කරන ලද පරීක්ෂණ ධාවනය කරන්න, ඉන්පසු එම පරීක්ෂණ "පරීක්ෂණ විගණන අච්චුව" සමඟින් විගණනය කරන්න. අඩුම තරමින් එක් දුර්වල පරීක්ෂණයක්වත් සොයා, එය ශක්තිමත් කරන්න, සහ පරීක්ෂණ මඟින් ශ්රිතයේ සත්ය දෝෂයක් ඇති දැයි පරීක්ෂා කරන්න (කුඩා දෝෂයක් එකතු කිරීමෙන්).
පිරික්සුම් ලැයිස්තුව
- [ ] මම පරීක්ෂණ පිරමීඩය සඳහා සුදුසු ස්ථරය තෝරා ගත්තෙමි (ප්රමුඛතා ඒකකය)
- [ ] මට සතුටු අවස්ථාවට අමතරව සීමාවන් සහ දෝෂ අවස්ථා අවශ්ය විය
- [ ] සෑම පරීක්ෂණයකම අර්ථවත් ප්රකාශයක් අඩංගු බව මම සත්යාපනය කළෙමි
- [ ] මම AI ට කීවේ කේතය කළ යුතු දේ මිස එය කරන්නේ කුමක්ද යන්න නොවේ
- [ ] මම අවධානය යොමු කළේ සැබෑ අවදානම් මාර්ග කෙරෙහි මිස ආවරණ ගණන කෙරෙහි නොවේ
- [ ] මම UI පරීක්ෂණ වලදී ස්ථායී හඳුනාගැනීමක් භාවිතා කළෙමි, මම පෙළට බැඳුනේ නැත