એજન્ટ દ્વારા લખાયેલા કોડ માટે મ્યુટેશન ટેસ્ટિંગ
LLM-જનરેટેડ ટેસ્ટ સૂટ્સ 100% લાઇન અને બ્રાન્ચ કવરેજ પ્રાપ્ત કરી શકે છે, પરંતુ તાજેતરનો એક અભ્યાસ દર્શાવે છે કે મ્યુટેશન ટેસ્ટિંગમાં તેઓ માત્ર 4% સ્કોર કરે છે, જે વિશ્વસનીયતામાં રહેલી એવી ખામીને ઉજાગર કરે છે જે ડેવલપર્સ સ્પ્રિન્ટ રિવ્યુ દરમિયાન ચૂકી શકે છે.
સંશોધકોએ HumanEval-Java બેન્ચમાર્ક પર લાર્જ-લેંગ્વેજ-મોડલ કોડિંગ એજન્ટ્સ દ્વારા તૈયાર કરવામાં આવેલા ટેસ્ટ સૂટ્સનું મૂલ્યાંકન કર્યું. એક સૂટમાં કોડની દરેક લાઇન કવર કરવામાં આવી હતી અને દરેક કન્ડિશનલ બ્રાન્ચનું પરીક્ષણ કરવામાં આવ્યું હતું. જ્યારે આ જ સૂટનું મ્યુટેશન ટેસ્ટિંગ કરવામાં આવ્યું—જે એક એવી ટેકનિક છે જેમાં ટેસ્ટ બગ્સને શોધી શકે છે કે નહીં તે જોવા માટે નાની ખામીઓ (faults) દાખલ કરવામાં આવે છે—ત્યારે તે દાખલ કરવામાં આવેલા બગ્સના માત્ર એક નાના ભાગને જ પકડી શક્યું.
કવરેજ સારું લાગે છે, પરંતુ તેનો ખરેખર અર્થ શું થાય છે?
પરંપરાગત કવરેજ મેટ્રિક્સ એક ટેસ્ટ કેટલા સ્ટેટમેન્ટ્સ અથવા બ્રાન્ચ્સ ચલાવે છે તેની ગણતરી કરે છે. સ્પ્રિન્ટ ડેમોમાં આ મુખ્ય આંકડાઓ ટીમોને ખૂબ ગમે છે. જોકે, આ મેટ્રિક એ બાબત વિશે કંઈ જ કહેતું નથી કે જો કોડ ખોટો હોય તો ટેસ્ટ નિષ્ફળ જશે કે નહીં. મ્યુટેશન ટેસ્ટિંગ જાણીજોઈને ખામીઓ (mutants) દાખલ કરીને અને તેમાંથી કેટલા ટકા મ્યુટન્ટ્સ ટેસ્ટ ફેલ્યોરનું કારણ બને છે—જેને "મ્યુટેશન સ્કોર" કહેવામાં આવે છે—તે માપીને આ ખામીને પૂરી કરે છે.
અભ્યાસમાં, 100% કવરેજ ધરાવતું સૂટ લીપ-યર (leap-year) તારીખોના ખોટા સંચાલન જેવા સરળ લોજિકલ એરર સહિત લગભગ દરેક મ્યુટન્ટને ચૂકી ગયું હતું. 4% મ્યુટેશન સ્કોરનો અર્થ એ છે કે આ સૂટ માત્ર થોડા જ વાસ્તવિક બગ્સને પકડી શકશે.
AI-સહાયિત ડેવલપમેન્ટ માટે આ શા માટે મહત્વનું છે
- ખોટો આત્મવિશ્વાસ: ડેવલપર્સ કદાચ એવા ટેસ્ટ સૂટ પર વિશ્વાસ કરી શકે છે જે કાગળ પર સંપૂર્ણ લાગે છે.
- છુપાયેલા દોષો: ઘણા બગ્સ ધ્યાન બહાર નીકળી જાય છે.
- સુધારણા ખર્ચ: બગ્સને વહેલા પકડવા કરતાં પછીથી સુધારવાનો ખર્ચ ઘણો વધારે હોય છે.
વિરોધ પક્ષ: કવરેજ નકામું નથી
કવરેજ હજુ પણ તમને જણાવે છે કે કોડ પાથ ચાલે છે કે નહીં, પરંતુ તે ખામી શોધવાની ખાતરી આપતું નથી.
આગળ શું જોવું
- ટૂલિંગ ઇન્ટિગ્રેશન: મ્યુટેશન ટેસ્ટિંગને CI પાઇપલાઇન્સમાં સામેલ કરો.
- LLM સુધારાઓ: એજન્ટ્સને એવા ટેસ્ટ જનરેટ કરવા માટે તાલીમ આપો જે મ્યુટન્ટ્સને શોધી કાઢે (kill mutants).
- ઇન્ડસ્ટ્રી માર્ગદર્શિકા: એવા ધોરણો અપનાવો જે કવરેજને મ્યુટેશન સ્કોર સાથે જોડે છે.
મુખ્ય વાત (Takeaway): AI-જનરેટેડ ટેસ્ટ્સના ઉચ્ચ કવરેજ આંકડા હવે ગુણવત્તાનો પૂરતો પુરાવો નથી; ઓછો મ્યુટેશન સ્કોર એ સંકેત આપે છે કે ટેસ્ટ વાસ્તવિક બગ્સને પકડી શકશે નહીં, જે ડેવલપર્સને સેફ્ટી નેટ તરીકે મ્યુટેશન ટેસ્ટિંગ અપનાવવા માટે પ્રેરે છે.
