← नवीनतम पेपर
💻 computer science

Test vs Mutant: Adversarial LLM Agents for Robust Unit Test Generation

यह शोध पत्र AdverTest का प्रस्ताव करता है, जो एक एडवरसेरियल फ्रेमवर्क है जिसमें दो परस्पर क्रिया करने वाले LLM एजेंट—एक टेस्ट जनरेटर और एक म्यूटेंट जनरेटर—शामिल हैं, जो स्वचालित यूनिट टेस्ट जनरेशन में कोड कवरेज और बग डिटेक्शन क्षमताओं दोनों को सुधारने के लिए सह-विकसित (co-evolve) होते हैं।

मूल लेखक: Pengyu Chang, Yixiong Fang, Silin Chen, Yuling Shi, Beijun Shen, Xiaodong Gu

प्रकाशित 2026-02-11
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Pengyu Chang, Yixiong Fang, Silin Chen, Yuling Shi, Beijun Shen, Xiaodong Gu

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

कल्पना कीजिए कि आप एक बैंक के लिए एक हाई-टेक सुरक्षा प्रणाली बना रहे हैं। यह सुनिश्चित करने के लिए कि यह वास्तव में काम करती है, आप केवल एक व्यक्ति को ताले चेक करने के लिए नहीं रखते; बल्कि आप दो लोगों को काम पर रखते हैं जो लगातार एक-दूसरे को मात देने की कोशिश करते हैं।

यह पेपर, "Test vs Mutant," बिल्कुल यही बताता है, लेकिन कंप्यूटर सॉफ्टवेयर के लिए।

समस्या: "आलसी इंस्पेक्टर" की समस्या (The "Lazy Inspector" Problem)

जब डेवलपर्स कोड लिखते हैं, तो उन्हें "यूनिट टेस्ट" भी लिखने होते हैं—छोटे स्वचालित स्क्रिप्ट जो यह जांचते हैं कि कोड सही ढंग से काम कर रहा है या नहीं।

वर्तमान में, इसे करने के दो तरीके हैं:

  1. रोबोट वाला तरीका (पारंपरिक उपकरण): ये कठोर, गणितीय निरीक्षकों की तरह हैं। वे इमारत के हर कोने की जांच करने में बहुत अच्छे हैं, लेकिन वे अनाड़ी हैं। वे आपको बता सकते हैं कि "दरवाजा वहां है," लेकिन वे यह नोटिस करने में बहुत अच्छे नहीं हैं कि दरवाजा वास्तव में खुला है या उसका हैंडल ढीला है।
  2. मानव-समान तरीका (वर्तमान AI/LLMs): ये स्मार्ट, सहायक सहायकों की तरह हैं। वे ऐसे टेस्ट लिखते हैं जो मनुष्यों को बहुत पेशेवर और समझ में आने वाले लगते हैं, लेकिन वे अक्सर "आलसी" होते हैं। वे स्पष्ट चीजों की जांच करने पर ध्यान केंद्रित करते हैं (जैसे "क्या दरवाजा बंद है?") लेकिन वे चालाकी भरे, अजीब किनारों (edge cases) को मिस कर देते हैं (जैसे "क्या होता है अगर कोई दरवाजे को आधा खुला होने के दौरान खींचता है?")।

समाधान: एडवरटेस्ट (AdverTest - "चूहे और बिल्ली" का खेल)

शोधकर्ताओं ने AdverTest बनाया है, जो टेस्ट जनरेशन को एक बार के कार्य के रूप में देखने के बजाय, इसे दो AI एजेंटों के बीच एक प्रतिद्वंद्वी खेल (adversarial game) में बदल देता है। इसे एक डिफेंडर (रक्षक) और एक सबोटूर (विनाशक) के बीच एक पेशेवर द्वंद्व युद्ध की तरह समझें।

1. एजेंट टी (Agent T): डिफेंडर (द टेस्ट जनरेटर)

एजेंट टी का काम "सुरक्षा नियमावली" (यूनिट टेस्ट) लिखना है। वह ऐसे टेस्ट का सेट बनाना चाहता है जो इतना पूर्ण हो कि कोई भी बग उससे छिप न सके।

2. एजेंट एम (Agent M): सबोटूर (द म्यूटेंट जनरेटर)

एजेंट एम का काम एक "हैकर" बनना है। वह डिफेंडर की नियमावली को देखता है और कहता है, "ठीक है, तुमने चेक किया कि दरवाजा लॉक है, लेकिन क्या होगा अगर मैं ताले को थोड़ा सा बदल दूँ ताकि वह लॉक दिखे पर वास्तव में न हो?" वह "म्यूटेंट्स" (Mutants) बनाता है—कोड में छोटी, सूक्ष्म त्रुटियां जिन्हें विशेष रूप से वर्तमान टेस्ट से बच निकलने के लिए डिज़ाइन किया गया है।

यह "खेल" कैसे काम करता है (The Loop)

यह केवल एक बार की लड़ाई नहीं है; यह विकास का एक निरंतर चक्र है:

  • चरण 1: तोड़फोड़ (The Sabotage)। एजेंट एम कई छोटी, चालाक खामियां (Mutants) बनाता है।
  • चरण 2: निरीक्षण (The Inspection)। इन म्यूटेंट्स के विरुद्ध वर्तमान टेस्ट चलाए जाते हैं। यदि कोई म्यूटेंट "जीवित" रहता है (यानी टेस्ट ने बग को नहीं पकड़ा), तो इसका मतलब है कि डिफेंडर के पास एक अंधा मोड़ (blind spot) है।
  • चरण 3: विकास (The Evolution)।
    • डिफेंडर (एजेंट टी) उन जीवित बचे म्यूटेंट्स को देखता है और कहता है, "आहा! तुमने मुझे उस विशिष्ट चाल से चकमा दिया। मुझे उस चीज़ को पकड़ने के लिए एक नया, स्मार्ट टेस्ट लिखने की आवश्यकता है।"
    • सबोटूर (एजेंट एम) देखता है कि डिफेंडर कहाँ मजबूत है और कहता है, "ठीक है, अगर तुम दरवाजों पर नजर रख रहे हो, तो मैं खिड़कियों के साथ छेड़छाड़ करने की कोशिश करूँगा।"

वे यह करते रहते हैं—एक रक्षा करने में स्मार्ट होता जाता है, दूसरा हमला करने में स्मार्ट होता जाता है—जब तक कि सॉफ्टवेयर अविश्वसनीय रूप से मजबूत न हो जाए।

यह क्यों मायने रखता है? (परिणाम)

शोधकर्ताओं ने वास्तविक दुनिया के, टूटे हुए सॉफ्टवेयर (जैसे Defects4J जैसे प्रसिद्ध डेटासेट का उपयोग करके) पर इसका परीक्षण किया। परिणाम प्रभावशाली थे:

  • बेहतर बग पकड़ना: इसने मानक उद्योग उपकरणों और "आलसी AI" तरीकों की तुलना में काफी अधिक वास्तविक बग पकड़े। यह मानक टूल्स से लगभग 63% बेहतर था।
  • केवल अधिक नहीं, बल्कि स्मार्ट: पुराने टूल्स के विपरीत जो केवल कोड की हर लाइन को छूने की कोशिश करते हैं, AdverTest लॉजिक (तर्क) पर ध्यान केंद्रित करता है। यह केवल कमरे में घूमना नहीं चाहता; यह सुनिश्चित करना चाहता है कि कमरा वास्तव में सुरक्षित है।
  • लागत प्रभावी: भले ही यह एक गहन "युद्ध" है, यह वास्तव में अन्य उच्च-स्तरीय AI तरीकों की तुलना में अधिक कुशल और चलाने में सस्ता साबित हुआ।

एक वाक्य में सारांश

AI से केवल "कुछ टेस्ट लिखने" के लिए कहने के बजाय, AdverTest एक डिजिटल ट्रेनिंग कैंप बनाता है जहाँ एक "हैकर AI" और एक "टेस्टर AI" एक-दूसरे से लड़ते हैं जब तक कि सॉफ्टवेयर लगभग अभेद्य न हो जाए।

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

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

Digest आज़माएँ →