Multi-Agent LLM Collaboration for Unit Test Generation via Human-Testing-Inspired Workflows
यह शोध पत्र TestAgent को प्रस्तुत करता है, जो एक मल्टी-एजेंट एलएलएम (LLM) फ्रेमवर्क है जो विशेषीकृत प्लानर, जनरेटर और रिव्यूअर एजेंटों, डायनेमिक टूल इनवोकेशन और एक टेस्ट-विशेषज्ञता वाले नॉलेज ग्राफ के माध्यम से मानव परीक्षण वर्कफ़्लो का अनुकरण करता है, जो निष्पादन दर (execution rate), कोड कवरेज और म्यूटेशन स्कोर में मौजूदा स्वचालित यूनिट टेस्ट जनरेशन विधियों से काफी बेहतर प्रदर्शन करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक सुपर-स्मार्ट रोबोट को एक नए वीडियो गेम लेवल के लिए मैनुअल लिखना सिखाने की कोशिश कर रहे हैं। वह रोबोट प्रतिभाशाली है, लेकिन अगर आप सिर्फ कहेंगे, "मैनुअल लिखो," तो वह भ्रमित हो सकता है, पेचीदा हिस्सों को छोड़ सकता है, या ऐसे निर्देश लिख सकता है जो वास्तव में काम नहीं करते। यही समस्या पुराने तरीके के साथ है जब हम AI का उपयोग कंप्यूटर टेस्ट (छोटे प्रोग्राम जो यह जांचते हैं कि कोड काम कर रहा है या नहीं) लिखने के लिए करते हैं।
इस शोध पत्र के पीछे के शोधकर्ताओं ने महसूस किया कि AI को केवल एक कठोर, एकतरफा निर्देश सूची देने के बजाय, उन्हें इसे एक मानव डेवलपर टीम की तरह कार्य करने देना चाहिए। उन्होंने एक "मल्टी-एजेंट" सिस्टम बनाया, जो एक छोटी, वर्चुअल सॉफ्टवेयर कंपनी की तरह है जिसमें तीन विशेषज्ञ कर्मचारी मिलकर काम करते हैं:
- द प्लानर (The Planner): यह एजेंट एक जासूस की तरह है। कुछ भी लिखने से पहले, यह कोड का अध्ययन करता है ताकि यह समझ सके कि प्रोग्राम को वास्तव में क्या करना चाहिए और क्या गलत हो सकता है। यह "टेस्ट आवश्यकताओं" की एक चेकलिस्ट बनाता है।
- द जनरेटर (The Generator): यह एक निर्माता है। यह प्लानर की चेकलिस्ट लेता है और वास्तविक टेस्ट कोड लिखता है। लेकिन सबसे दिलचस्प बात यह है कि यह केवल एक बार लिखकर रुक नहीं जाता। यह टेस्ट चलाता है, देखता है कि क्या यह टूट जाता है, और यदि ऐसा होता है, तो यह पता लगाता है कि क्यों (क्या टेस्ट गलत था, या वास्तव में कोड में कोई बग था?)।
- द रिव्यूअर (The Reviewer): यह एक क्वालिटी कंट्रोल मैनेजर है। यह तैयार टेस्ट्स को देखता है और पूछता है, "क्या यह अच्छा है? क्या हमने कुछ छोड़ दिया है? क्या कोड पठनीय है?" यदि टेस्ट परफेक्ट नहीं हैं, तो यह जनरेटर को सुधारने के लिए विशिष्ट सलाह के साथ वापस भेज देता है।
पुराना तरीका क्यों विफल हुआ
यह शोध पत्र तर्क देता है कि पिछले AI तरीके एक टूटी हुई रेसिपी का पालन करने वाले रोबोट की तरह थे। वे "कठोर, प्रक्रियात्मक वर्कफ़्लो" का उपयोग करते थे, जिसका अर्थ है कि वे किसी भी स्थिति में होने वाली घटनाओं के बावजूद चरणों के एक निश्चित सेट का पालन करते थे। यदि AI फंस जाता या उसे अधिक जानकारी की आवश्यकता होती, तो पुराने सिस्टम अनुकूलित नहीं हो सकते थे। उन्होंने "कॉन्टेक्स्ट" (आसपास का कोड) को भी बहुत अनाड़ी तरीके से पकड़ा—जैसे कि एक शब्द खोजने के लिए पूरी विश्वकोश पढ़ने की कोशिश करना, या एक एकल वाक्य को देखने के कारण एक महत्वपूर्ण सुराग को मिस कर देना। लेखक स्पष्ट रूप से दिखाते हैं कि ये कठोर, नियम-आधारित दृष्टिकोण वास्तविक बग्स को पकड़ने या ऐसे टेस्ट बनाने में संघर्ष करते हैं जिन्हें इंसान वास्तव में समझ सकें।
सीक्रेट वेपन: अ नॉलेज ग्राफ (A Knowledge Graph)
"अनाड़ी कॉन्टेक्स्ट" की समस्या को ठीक करने के लिए, TESTAGENT एक नॉलेज ग्राफ बनाता है। इसे पूरे सॉफ्टवेयर प्रोजेक्ट का एक विशाल, इंटरैक्टिव मानचित्र समझें। केवल टेक्स्ट पढ़ने के बजाय, AI एजेंट कोड के विभिन्न हिस्सों के बीच के कनेक्शनों (जैसे कि एक फंक्शन दूसरे को कैसे कॉल करता है) के साथ "चल" सकते हैं। यह मानचित्र यह भी याद रखता है कि टीम ने रास्ते में क्या कुछ सीखा है, जैसे कि टेस्ट रिपोर्ट और बग विश्लेषण, ताकि उन्हें हर बार शून्य से शुरुआत न करनी पड़े।
परिणाम: यह कितना अच्छा काम कर रहा था?
टीम ने इस सिस्टम का परीक्षण छह अलग-अलग जावा (Java) प्रोजेक्ट्स पर किया और यहाँ तक कि पायथन (Python) प्रोजेक्ट्स पर भी इसे आजमाया। परिणाम काफी प्रभावशाली थे:
- टेस्ट चलाना: इसके द्वारा बनाए गए टेस्ट 97.46% समय सफलतापूर्वक चले।
- कवरेज: इसने कोड की 92.34% लाइनों और 90.24% निर्णय शाखाओं (decision branches - "यदि यह, तो वह" वाला लॉजिक) की जांच की।
- बग ढूंढना: यह सबसे बड़ी बात है। सिस्टम ने कृत्रिम "म्यूटेंट" बग्स (बग्स जिन्हें शोधकर्ताओं ने सिस्टम को परखने के लिए डाला था) में से 83.69% को खोज निकाला। यह अगले सबसे अच्छे टूल से बहुत अधिक है, जिसने केवल लगभग 43.59% बग्स ही खोजे थे।
- वास्तविक दुनिया के बग: जब उन्होंने मौजूदा कोड में वास्तविक बग्स को खोजने के लिए इसका उपयोग किया, तो इसने 154 वास्तविक बग्स को 92.22% की सटीकता (precision) के साथ सफलतापूर्वक पहचाना।
क्या यह अलग 'दिमागों' के साथ काम करता है?
शोधकर्ताओं ने जानना चाहा कि क्या यह टीम दृष्टिकोण काम करता है यदि हम "दिमाग" (अंतर्निहित AI मॉडल) को बदलकर कोई दूसरा मॉडल लगा दें। उन्होंने इसके लिए GPT-4o, DeepSeek-V3, और एक ओपन-सोर्स मॉडल जिसे Qwen3-30B-A3B कहा जाता है, का उपयोग किया।
- यह सिस्टम उन सभी के साथ काम कर गया। यहाँ तक कि ओपन-सोर्स मॉडल (जिसे स्थानीय रूप से मुफ्त में चलाया जा सकता है) ने भी सर्वश्रेष्ठ सर्च-आधारित टूल्स से बेहतर प्रदर्शन किया, हालांकि यह शीर्ष स्तर के GPT-4o जितना अच्छा नहीं था।
- शोध पत्र सुझाव देता है कि यह टीमवर्क की संरचना है जो अंतर पैदा करती है, न कि केवल AI की कच्ची शक्ति।
क्या यह केवल जावा के लिए है?
शोध पत्र ने स्पष्ट रूप से पायथन (Python) प्रोजेक्ट्स पर भी इसका परीक्षण किया। इसने 88.85% लाइन कवरेज और 78.89% ब्रांच कवरेज हासिल किया, जो विशेष रूप से पायथन के लिए डिज़ाइन किए गए अन्य टूल्स को भी पीछे छोड़ देता है। यह सुझाव देता है कि यह विधि लचीली है और केवल जावा की कोई ट्रिक नहीं है।
मानवीय स्पर्श (The Human Touch)
अंत में, टीम ने वास्तविक मानव डेवलपर्स से टेस्ट्स को देखने के लिए कहा। उन्होंने पाया कि TESTAGENT द्वारा लिखे गए टेस्ट अन्य टूल्स की तुलना में पढ़ने और समझने में बहुत आसान थे। डेवलपर्स को स्पष्ट नाम, तार्किक लेआउट और यह तथ्य पसंद आया कि टेस्ट वास्तव में समझ में आते थे।
निष्कर्ष (The Bottom Line)
शोध पत्र निष्कर्ष निकालता है कि इंसानों के काम करने के तरीके की नकल करके—योजना बनाना, निर्माण करना, समीक्षा करना और जटिल कोड को नेविगेट करने के लिए उपकरणों का उपयोग करना—हम एक ऐसा AI बना सकते हैं जो बेहतर और अधिक विश्वसनीय टेस्ट लिख सके। यह केवल कोड जेनरेट करने के बारे में नहीं है; यह उपयोगी कोड जेनरेट करने के बारे में है जो बग्स को समस्या पैदा करने से पहले पकड़ने में मदद करता है। लेखक कई भाषाओं और औद्योगिक प्रोजेक्ट्स पर अपने व्यापक प्रयोगों के आधार पर इन परिणामों के प्रति आश्वस्त हैं, जो यह दिखाते हैं कि यह "मानव-प्रेरित" टीम वर्क सॉफ्टवेयर टेस्टिंग के लिए एक आशाजनक मार्ग है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।