← नवीनतम पेपर
🤖 AI

TAM-Eval: Evaluating LLMs for Automated Unit Test Maintenance

यह शोध पत्र TAM-Eval प्रस्तुत करता है, जो एक व्यापक ढांचा और बेंचमार्क है जिसमें पायथन, जावा और गो (Go) में 1,539 वास्तविक दुनिया के परिदृश्य शामिल हैं, जो फ़ाइल स्तर पर यूनिट टेस्ट निर्माण, मरम्मत और अपडेट करने जैसे कार्यों को स्वचालित करने में वर्तमान LLMs की सीमित क्षमताओं का मूल्यांकन करता है।

मूल लेखक: Elena Bruches, Vadim Alperovich, Dari Baturova, Roman Derunets, Daniil Grebenkin, Georgy Mkrtchyan, Oleg Sedukhin, Mikhail Klementev, Ivan Bondarenko, Nikolay Bushkov, Stanislav Moiseev

प्रकाशित 2026-01-27
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Elena Bruches, Vadim Alperovich, Dari Baturova, Roman Derunets, Daniil Grebenkin, Georgy Mkrtchyan, Oleg Sedukhin, Mikhail Klementev, Ivan Bondarenko, Nikolay Bushkov, Stanislav Moiseev

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास अविश्वसनीय रूप से बुद्धिमान, सुशिक्षित रोबोटों (लार्ज लैंग्वेज मॉडल्स, या LLMs) की एक टीम है जो कोड लिखने में माहिर हैं। आप उनसे एक नई मशीन के लिए सुरक्षा नियमावली (safety manual) लिखने के लिए कहते हैं। वे एक अच्छा काम करते हैं। लेकिन क्या होता है जब मशीन में एक नया पुर्जा लगता है, या एक पेंच ढीला हो जाता है? उस नए यथार्थ से मेल खाने के लिए सुरक्षा नियमावली को अपडेट, ठीक या फिर से लिखने की आवश्यकता होती है।

यही वह समस्या है जिसे TAM-Eval हल करता है। जबकि हम जानते हैं कि ये AI रोबोट कोड लिख सकते हैं, हमें वास्तव में यह नहीं पता था कि क्या वे कोड बदलने पर सुरक्षा नियमावलियों (यूनिट टेस्ट) को बनाए रख (maintain) सकते हैं।

यहाँ एक सरल विवरण दिया गया कि शोधकर्ताओं ने क्या किया और उन्हें क्या मिला, कुछ रोजमर्रा के उपमाओं का उपयोग करते हुए।

1. समस्या: "सेट इट एंड फॉरगेट इट" (लिखा और भूल गया) का जाल

सॉफ्टवेयर में, "यूनिट टेस्ट" उन छोटी चेकलिस्ट की तरह होते हैं जो सत्यापित करते हैं कि मशीन का हर हिस्सा काम कर रहा है। जब मशीन बदलती है, तो इन चेकलिस्ट को भी अपडेट करना पड़ता है। यदि आप उन्हें अपडेट नहीं करते हैं, तो चेकलिस्ट यह कह सकती है कि "सब ठीक है!" जबकि मशीन वास्तव में खराब हो सकती है।

पिछले शोध ने AI से पूछा: "इस नई मशीन के लिए एक चेकलिस्ट लिखें।"
इस शोध पत्र ने AI से पूछा: "मशीन बदल गई है। यह पुरानी चेकलिस्ट है। इसे नई मशीन से मेल खाने के लिए ठीक करें, अपडेट करें, या फिर से लिखें।"

2. समाधान: AI के लिए एक "ड्राइविंग टेस्ट"

शोधकर्ताओं ने TAM-Eval (टेस्ट ऑटोमेटेड मेंटेनेंस इवैल्यूएशन) नामक एक फ्रेमवर्क बनाया। इसे AI रोबोटों के लिए एक विशेष ड्राइविंग टेस्ट के रूप में समझें जो सॉफ्टवेयर बनाए रखने की कोशिश कर रहे हैं।

सिर्फ AI को कहानी लिखने के लिए कहने के बजाय, उन्होंने AI को तीन विशिष्ट चुनौतियों के साथ एक सिम्युलेटेड गैरेज में रखा:

  • निर्माण (खाली पन्ना - The Blank Page): AI को मशीन के उस हिस्से के लिए पूरी तरह से नई चेकलिस्ट लिखनी होती है जिसका पहले कोई अस्तित्व नहीं था।
  • मरम्मत (टूटा हुआ उपकरण - The Broken Tool): AI को एक ऐसी चेकलिस्ट दी जाती है जो टूटी हुई है (शायद कोई टाइपो, या कोई छूटा हुआ स्टेप) और उसे इसे फिर से काम करने योग्य बनाने के लिए ठीक करना होता है।
  • अपडेट करना (नवीनीकरण - The Renovation): मशीन में एक नया इंजन लगा है। AI को पुरानी चेकलिस्ट देखनी होगी और उसे बदलना होगा ताकि वह नए इंजन के लिए अभी भी सही अर्थ रखती हो।

3. डेटासेट: वास्तविक दुनिया के परिदृश्यों का एक विशाल पुस्तकालय

यह सुनिश्चित करने के लिए कि यह केवल एक नकली परीक्षण नहीं था, उन्होंने काल्पनिक उदाहरणों का उपयोग नहीं किया। वे वास्तविक दुनिया (GitHub) में गए और Python, Java, और Go में लिखे गए वास्तविक सॉफ्टवेयर प्रोजेक्ट्स से 1,539 वास्तविक परिदृश्य खोजे।

वे गुणवत्ता के प्रति बहुत सख्त थे, जैसे कि एक संग्रहालय क्यूरेटर:

  • उन्होंने उन प्रोजेक्ट्स को हटा दिया जो बहुत छोटे या अव्यवस्थित थे।
  • उन्होंने उन प्रोजेक्ट्स को हटा दिया जहाँ टेस्ट पहले से ही टूटे हुए या अस्थिर (flaky) थे।
  • उन्होंने यह सुनिश्चित किया कि "मशीन" (कोड) वास्तव में चलती थी और "चेकलिस्ट" (टेस्ट) वास्तव में काम करती थी, इससे पहले कि वे प्रयोग शुरू करें।

4. वे AI को कैसे ग्रेड करते थे

उन्होंने केवल यह नहीं पूछा, "क्या AI ने ऐसा कुछ लिखा जो कोड जैसा दिखता है?" उन्होंने कोड को एक सैंडबॉक्स (एक सुरक्षित, अलग डिजिटल गैरेज) में चलाया और तीन चीजें जांचीं:

  1. पास रेट (Pass Rate): क्या चेकलिस्ट बिना क्रैश हुए वास्तव में चली?
  2. कवरेज (Coverage): क्या चेकलिस्ट ने वास्तव में मशीन के महत्वपूर्ण हिस्सों की जांच की, या उसने केवल आसान चीजों की जांच की?
  3. म्यूटेशन स्कोर (Mutation Score): यह एक चतुर तकनीक है। शोधकर्ताओं ने गुप्त रूप से मशीन को छोटे, यादृच्छिक तरीकों से बिगाड़ा (जैसे प्लस साइन को माइनस साइन से बदलना)। यदि AI की चेकलिस्ट ने उस खराबी को पकड़ लिया, तो उसे अंक मिले। यदि चेकलिस्ट ने मशीन के खराब होने के बावजूद कहा "सब ठीक है", तो वह विफल हो गई।

5. परिणाम: "लिखने में अच्छे, रखरखाव में संघर्षरत"

परिणाम एक वास्तविकता की जाँच (reality check) की तरह थे। सबसे स्मार्ट AI मॉडल (जैसे GPT-5 और अन्य) भी रखरखाव के कार्यों के साथ संघर्ष कर रहे थे।

  • "पहली कोशिश" की समस्या: पहली कोशिश में, अधिकांश AI मॉडल एक काम करने वाली चेकलिस्ट बनाने में विफल रहे। उन्होंने अक्सर ऐसा कोड लिखा जो दिखने में सही था लेकिन जब आपने इसे चलाने की कोशिश की तो यह क्रैश हो गया।
  • "दूसरा मौका" प्रभाव: शोधकर्ताओं ने AI को तीन बार प्रयास करने की अनुमति दी। यदि AI विफल हुआ, तो उन्होंने उसे एरर मैसेज दिखाया (जैसे एक शिक्षक कहता है, "आप एक कॉमा भूल गए")। इन संकेतों के साथ, AI बहुत बेहतर हो गया।
  • भाषा का आश्चर्य:
    • Go: AI ने यहाँ आश्चर्यजनक रूप से अच्छा प्रदर्शन किया। शोधकर्ताओं का मानना है कि ऐसा इसलिए है क्योंकि Go एक बहुत ही सख्त और व्यवस्थित भाषा है, जिससे AI के लिए नियमों का अनुमान लगाना आसान हो जाता है।
    • Java: AI ऐसा कोड लिख सकता था जो चल सके, लेकिन यह अक्सर कोड के महत्वपूर्ण हिस्सों की वास्तव में जांच करने में विफल रहा। यह एक ऐसी चेकलिस्ट लिखने जैसा था जो कहती है "पहियों की जांच करें" लेकिन वास्तव में उन्हें कभी देखती ही नहीं।
    • Python: AI ने लंबी, शब्दबहुल चेकलिस्ट लिखीं जो कभी-कभी बहुत जटिल थीं।

बड़ी सीख:
सबसे अच्छा AI मॉडल (GPT-5) तीसरी कोशिश तक लगभग 42% टेस्ट को पूरी तरह से काम करने में सफल रहा। हालांकि यह ठीक लग सकता है, शोधकर्ता बताते हैं कि महत्वपूर्ण सॉफ्टवेयर के लिए, हमें लगभग पूर्ण विश्वसनीयता की आवश्यकता होती है। AI अभी भी इतनी गलतियाँ कर रहा है कि इसे अपने आप सुरक्षा चेकलिस्ट बनाए रखने के लिए भरोसेमंद नहीं माना जा सकता।

6. यह क्यों मायने रखता है

पेपर निष्कर्ष निकालता है कि जबकि AI नया कोड जेनरेट करने में महान है, यह एक अच्छा देखभाल करने वाला (caretaker) बनने की प्रक्रिया में अभी भी सीख रहा है। इसे अपनी गलतियों को बार-बार ठीक करने के लिए "वेरिफायर" (जैसे कंपाइलर और एरर चेकर) की अधिक मदद की आवश्यकता है।

उन्होंने अपने "ड्राइविंग टेस्ट" (TAM-Eval) को ओपन-सोर्स सॉफ्टवेयर के रूप में जारी किया है ताकि अन्य शोधकर्ता इसका उपयोग बेहतर AI टूल बनाने के लिए कर सकें।

संक्षेप में: AI एक प्रतिभाशाली प्रशिक्षु (apprentice) है जो एक नई रेसिपी लिख सकता है, लेकिन यदि आप उससे किसी सामग्री को बदलने के बाद पुरानी रेसिपी को अपडेट करने के लिए कहते हैं, तो वह अक्सर यह जांचना भूल जाता है कि नया व्यंजन वास्तव में स्वादिष्ट है या नहीं। हमें इसे अपने काम का खुद स्वाद लेना सिखाने की आवश्यकता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →