ഏജന്റുകൾ എഴുതിയ കോഡിനായുള്ള മ്യൂട്ടേഷൻ ടെസ്റ്റിംഗ് (Mutation Testing for Agent Written Code)

LLM ഉപയോഗിച്ച് നിർമ്മിച്ച ടെസ്റ്റ് സ്യൂട്ടുകൾക്ക് 100% ലൈൻ, ബ്രാഞ്ച് കവറേജ് (line and branch coverage) ലഭിച്ചേക്കാം, എന്നാൽ മ്യൂട്ടേഷൻ ടെസ്റ്റിംഗിൽ അവയ്ക്ക് വെറും 4% സ്കോർ മാത്രമേ ലഭിക്കുന്നുള്ളൂ എന്ന് സമീപകാല പഠനങ്ങൾ വ്യക്തമാക്കുന്നു. ഇത് ഡെവലപ്പർമാർ സ്പ്രിന്റ് റിവ്യൂകളിൽ ശ്രദ്ധിക്കാതെ പോകുന്ന ഒരു വിശ്വാസ്യതാവ്യത്യാസത്തെ (reliability gap) തുറന്നുകാട്ടുന്നു.

ഗവേഷകർ HumanEval-Java ബെഞ്ച്മാർക്കിൽ ലാർജ് ലാംഗ്വേജ് മോഡൽ (LLM) കോഡിംഗ് ഏജന്റുകൾ നിർമ്മിച്ച ടെസ്റ്റ് സ്യൂട്ടുകൾ വിലയിരുത്തി. ഒരു സ്യൂട്ട് കോഡിലെ ഓരോ വരിയും എല്ലാ കണ്ടീഷണൽ ബ്രാഞ്ചുകളും (conditional branch) പരിശോധിച്ചിരുന്നു. എന്നാൽ അതേ സ്യൂട്ട് മ്യൂട്ടേഷൻ ടെസ്റ്റിംഗിന് വിധേയമാക്കിയപ്പോൾ—ചെറിയ പിഴവുകൾ കോഡിൽ ഉൾപ്പെടുത്തി അവ ടെസ്റ്റുകൾ കണ്ടെത്തുന്നുണ്ടോ എന്ന് പരിശോധിക്കുന്ന രീതിയാണിത്—അതിൽ ഉൾപ്പെടുത്തിയ ബഗുകളിൽ വളരെ ചെറിയൊരു ഭാഗം മാത്രമേ അത് കണ്ടെത്തിയിരുന്നുള്ളൂ.

കവറേജ് മികച്ചതായി തോന്നാം, പക്ഷേ അതിന്റെ യഥാർത്ഥ അർത്ഥമെന്താണ്?

പരമ്പരാഗത കവറേജ് മെട്രിക്സുകൾ (coverage metrics) ഒരു ടെസ്റ്റ് എത്ര സ്റ്റേറ്റ്‌മെന്റുകളോ ബ്രാഞ്ചുകളോ പ്രവർത്തിപ്പിക്കുന്നു എന്ന് കണക്കാക്കുന്നു. സ്പ്രിന്റ് ഡെമോകളിൽ ഇത്തരം ഉയർന്ന കണക്കുകൾ കാണുന്നത് ടീമുകൾക്ക് ഏറെ തൃപ്തികരമാണ്. എങ്കിലും, കോഡിൽ തെറ്റുകൾ ഉണ്ടെങ്കിൽ ടെസ്റ്റുകൾ പരാജയപ്പെടുമോ എന്നതിനെക്കുറിച്ച് ഈ മെട്രിക് ഒന്നും പറയുന്നില്ല. കോഡിൽ മനഃപൂർവ്വം പിഴവുകൾ (mutants) വരുത്തി, ആ പിഴവുകൾ കാരണം എത്ര ശതമാനം ടെസ്റ്റുകൾ പരാജയപ്പെടുന്നു എന്ന് അളക്കുന്നതിലൂടെ (ഇതിനെ “mutation score” എന്ന് വിളിക്കുന്നു) മ്യൂട്ടേഷൻ ടെസ്റ്റിംഗ് ഈ വിടവ് നികത്തുന്നു.

ഈ പഠനത്തിൽ, 100% കവറേജ് ഉണ്ടായിരുന്നിട്ടും ലീപ് ഇയർ തീയതികൾ കൈകാര്യം ചെയ്യുന്നതിലെ ലളിതമായ ലോജിക് പിഴവുകൾ ഉൾപ്പെടെയുള്ള മിക്ക മ്യൂട്ടന്റുകളെയും (mutants) ആ സ്യൂട്ട് തിരിച്ചറിഞ്ഞില്ല. 4% മ്യൂട്ടേഷൻ സ്കോർ എന്നാൽ ആ സ്യൂട്ട് വളരെ കുറച്ച് യഥാർത്ഥ ബഗുകൾ മാത്രമേ കണ്ടെത്തിയിട്ടുള്ളൂ എന്നാണ് അർത്ഥമാക്കുന്നത്.

AI സഹായത്തോടെയുള്ള ഡെവലപ്‌മെന്റിൽ ഇത് പ്രധാനമാകുന്നത് എന്തുകൊണ്ട്?

  • തെറ്റായ ആത്മവിശ്വാസം: പേപ്പറിൽ മികച്ചതായി തോന്നുന്ന ഒരു ടെസ്റ്റ് സ്യൂട്ടിനെ ഡെവലപ്പർമാർ വിശ്വസിച്ചേക്കാം.
  • മറഞ്ഞിരിക്കുന്ന പിഴവുകൾ: പല ബഗുകളും ശ്രദ്ധിക്കപ്പെടാതെ കടന്നുപോയേക്കാം.
  • പരിഹാരത്തിനുള്ള ചിലവ്: ബഗുകൾ നേരത്തെ കണ്ടെത്തുന്നതിനേക്കാൾ കൂടുതൽ ചിലവ് അവ പിന്നീട് പരിഹരിക്കാൻ ആവശ്യമായി വരും.

മറ്റൊരു വശം: കവറേജ് അപ്രസക്തമല്ല

കോഡ് പാത്തുകൾ പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് കവറേജ് ഇപ്പോഴും പറഞ്ഞുതരുന്നുണ്ട്, എന്നാൽ അത് പിഴവുകൾ കണ്ടെത്തും എന്ന് ഉറപ്പുനൽകുന്നില്ല.

ഇനി ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ

  • ടൂളിംഗ് ഇന്റഗ്രേഷൻ: മ്യൂട്ടേഷൻ ടെസ്റ്റിംഗിനെ CI പൈപ്പ്‌ലൈനുകളിൽ ഉൾപ്പെടുത്തുക.
  • LLM മെച്ചപ്പെടുത്തലുകൾ: മ്യൂട്ടന്റുകളെ കണ്ടെത്തുന്ന (kill mutants) ടെസ്റ്റുകൾ നിർമ്മിക്കാൻ ഏജന്റുകളെ പരിശീലിപ്പിക്കുക.
  • വ്യവസായ മാനദണ്ഡങ്ങൾ: കവറേജിനൊപ്പം മ്യൂട്ടേഷൻ സ്കോറുകളും കൂടി ഉൾപ്പെടുത്തുന്ന മാനദണ്ഡങ്ങൾ സ്വീകരിക്കുക.

ചുരുക്കത്തിൽ: AI നിർമ്മിച്ച ടെസ്റ്റുകളിൽ നിന്നുള്ള ഉയർന്ന കവറേജ് കണക്കുകൾ ഇനി ഗുണനിലവാരത്തിന്റെ മതിയായ തെളിവല്ല; കുറഞ്ഞ മ്യൂട്ടേഷൻ സ്കോർ എന്നത് ടെസ്റ്റുകൾ യഥാർത്ഥ ബഗുകൾ കണ്ടെത്തില്ല എന്നതിന്റെ സൂചനയാണ്. അതിനാൽ, ഒരു സുരക്ഷാ കവചമായി (safety net) മ്യൂട്ടേഷൻ ടെസ്റ്റിംഗ് സ്വീകരിക്കാൻ ഡെവലപ്പർമാരോട് ഇത് ആവശ്യപ്പെടുന്നു.