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

Heterogeneous Prompting and Execution Feedback for SWE Issue Test Generation and Selection

यह शोध पत्र e-Otter++ प्रस्तुत करता है, जो एक नवीन टेस्ट जनरेटर है जो हेट्रोजेनियस प्रॉम्प्टिंग और एक्जीक्यूशन फीडबैक का लाभ उठाकर सॉफ्टवेयर इंजीनियरिंग इश्यूज में गायब या गलत कोड की चुनौती को दूर करता है ताकि स्वचालित रूप से रिप्रोडक्शन टेस्ट्स बना सके, जिससे TDD-Bench Verified बेंचमार्क पर 63% का स्टेट-ऑफ-द-आर्ट फेल-टू-पास रेट प्राप्त होता है।

मूल लेखक: Toufique Ahmed, Jatin Ganhotra, Avraham Shinnar, Martin Hirzel

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

मूल लेखक: Toufique Ahmed, Jatin Ganhotra, Avraham Shinnar, Martin Hirzel

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

कल्पना कीजिए कि आप एक जासूस हैं जो एक विशाल, अव्यवस्थित पुस्तकालय (सॉफ्टवेयर कोड) में एक रहस्य को सुलझाने की कोशिश कर रहे हैं। एक संरक्षक (डेवलपर) आपके पास आता है और कहता है, "इस किताब में कुछ गलत है, लेकिन मैं ठीक से समझा नहीं सकता कि क्या, और मेरे पास इस गलती का कोई विशिष्ट उदाहरण भी नहीं है।"

सॉफ्टवेयर की दुनिया में, इसे SWE Issue कहा जाता है। आमतौर पर, किसी बग को ठीक करने के लिए, आपको एक "पुनरुत्पादन परीक्षण" (reproduction test) की आवश्यकता होती—एक विशिष्ट स्क्रिप्ट जो कहती है, "यदि आप X करते हैं, तो लाइब्रेरी क्रैश हो जानी चाहिए।" यह साबित करता है कि बग मौजूद है। लेकिन अक्सर, ऐसे स्क्रिप्ट अभी तक मौजूद नहीं होते।

यह शोध पत्र e-Otter++ नामक एक नया जासूसी उपकरण पेश करता है। इसका काम केवल समस्या के उलझे हुए विवरण को पढ़कर उस "क्रैश स्क्रिप्ट" (परीक्षण) को स्वचालित रूप से लिखना है, इससे पहले कि वास्तविक सुधार (fix) लिखा ही जाए।

e-Otter++ कैसे काम करता है, इसे सरल उपमाओं के माध्यम से समझाया गया है:

1. समस्या: "अंधा" जासूस

आमतौर पर, यदि आप किसी बुद्धिमान AI (एक लार्ज लैंग्वेज मॉडल) से एक परीक्षण लिखने के लिए कहते हैं, तो वह अनुमान लगाने की कोशिश करता है। यदि आप एक बार पूछते हैं, तो यह गलत हो सकता है। यदि आप इसे ठीक 10 बार एक ही निर्देशों के साथ पूछते हैं, तो यह आपको केवल गलत अनुमानों के 10 थोड़े अलग संस्करण दे सकता है। यह एक दोस्त से उस फिल्म का वर्णन करने के लिए पूछने जैसा है जिसे उसने केवल एक बार देखा था; यदि आप उससे 10 बार पूछते हैं, तो वह शायद वही गलती दोहराता रहेगा।

2. पहली तरकीब: "हेटरोजीनियस प्रॉम्प्टिंग" (कॉस्ट्यूम पार्टी)

बेहतर अनुमान प्राप्त करने के लिए, e-Otter++ केवल AI से 10 बार एक ही सवाल नहीं पूछता। इसके बजाय, यह पूछने के तरीके को बदल देता है, जैसे AI को अलग-अलग वेशभूषा पहनाना या उसे अलग-अलग दृष्टिकोण देना।

  • "मास्क" (Masks): कल्पना करें कि AI एक पहेली देख रहा है। कभी-कभी, e-Otter++ पहेली के कुछ हिस्सों को ढक देता है (कोड संदर्भ) ताकि AI कम जानकारी के आधार पर अनुमान लगा सके। अन्य समय में, यह केवल विशिष्ट हिस्से दिखाता है। यह AI को समस्या को अलग तरह से देखने के लिए मजबूर करता है।
  • "मॉर्फ्स" (Morphs): कल्पना करें कि बग रिपोर्ट भ्रमित करने वाली शब्दावली में लिखी गई है। e-Otter++ AI को रिपोर्ट को विभिन्न शैलियों में फिर से लिखने के लिए कहता है:
    • द स्टैंडर्डाइज़र (The Standardizer): एक बिखरे हुए नोट को एक औपचारिक, संरचित रिपोर्ट में बदल देता है।
    • द सिम्प्लीफायर (The Simplifier): भ्रमित करने वाली तकनीकी शब्दावली को हटा देता है ताकि इसे समझना आसान हो सके।
    • द ड्रॉपर (The Dropper): विशिष्ट कोड स्निपेट्स को हटा देता है जो भ्रामक हो सकते हैं (जैसे AI को उस टूल का उपयोग करने के लिए कहना जो लाइब्रेरी के पास वास्तव में नहीं है)।
    • द प्री-थिंकर (The Pre-Thinker): AI को पहले समाधान का अनुमान लगाने के लिए कहता है, फिर उस अनुमान का उपयोग परीक्षण लिखने के लिए करता है।

इन "मास्क" और "मॉर्फ्स" को मिलाकर, e-Otter++ संभावित परीक्षणों का एक विशाल, विविध पूल बनाता है। यह 10 अलग-अलग लोगों से अपराध स्थल का वर्णन करने के लिए कहने जैसा है, लेकिन प्रत्येक व्यक्ति को अलग-अलग सुराग और बोलने का अलग तरीका दिया गया है। इससे इस बात की संभावना बढ़ जाती है कि कम से कम एक व्यक्ति सही अनुमान लगा ले।

3. दूसरी तरकीब: "एग्जीक्यूशन फीडबैक" (ट्रायल रन)

एक बार जब AI एक परीक्षण बनाता है, तो e-Otter++ केवल उस पर भरोसा नहीं करता। यह परीक्षण को पुराने कोड (बग वाले संस्करण) पर चलाता है।

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

4. तीसरी तरिक: "सरोगेट पैच" (डमी फिक्स)

यहाँ सबसे कठिन हिस्सा है: यह जानने के लिए कि एक परीक्षण अच्छा है, इसे नए कोड (फिक्स) पर पास होना चाहिए। लेकिन फिक्स अभी मौजूद नहीं है! आप सबसे अच्छे परीक्षण को कैसे चुन सकते हैं?

e-Ot Otter++ एक चतुर वर्कअराउंड का उपयोग करता है:

  1. यह एक अलग AI सिस्टम (Agentless) से कई नकली फिक्स (सरोगेट पैच) उत्पन्न करने के लिए कहता है। ये पूर्ण नहीं हैं, लेकिन करीब हैं।
  2. यह इन नकली फिक्स के विरुद्ध सभी उम्मीदवार परीक्षणों को चलाता है।
  3. यदि कोई परीक्षण नकली फिक्स पर पास हो जाता है, तो इसकी संभावना है कि वह एक अच्छा परीक्षण है।
  4. अंत में, यह सबसे अच्छे परीक्षण को इस आधार पर चुनता है कि कौन सा कोड के सबसे महत्वपूर्ण हिस्सों को कवर करता है।

परिणाम: एक बड़ी छलांग

इस शोध पत्र ने दो प्रमुख बेंचमार्क (TDD-Bench और SWT-bench) पर इस प्रणाली का परीक्षण किया।

  • पिछला सर्वश्रेष्ठ: शीर्ष प्रणालियाँ लगभग 37% से 38% बार एक काम करने वाला परीक्षण उत्पन्न कर पाती थीं।
  • e-Otter++: इन नई तरकीबों (सवाल पूछने का तरीका बदलकर और फिल्टर करने के लिए नकली फिक्स का उपयोग करके) का उपयोग करते हुए, e-Otter++ ने एक बेंचमार्क पर 63% और दूसरे पर 52.5% की सफलता दर हासिल की।

यह क्यों महत्वपूर्ण है

लेखकों का कहना है कि यह मुख्य रूप से दो तरीकों से मदद करता है:

  1. मानव के लिए: यह "टेस्ट-ड्रिवन डेवलपमेंट" (बग ठीक करने से पहले परीक्षण लिखना) के उबाऊ हिस्से को स्वचालित करता है, जिससे डेवलपर्स के लिए बग की पुष्टि करना और उन्हें ठीक करना आसान हो जाता है।
  2. AI एजेंटों के लिए: कई AI कोडिंग एजेंट इन परीक्षणों पर निर्भर करते हैं ताकि उन्हें पता चल सके कि उन्होंने बग को ठीक किया है या नहीं। बेहतर परीक्षण प्रदान करके, e-Otter++ अन्य AI एजेंटों को अपना काम बेहतर ढंग से करने में मदद करता है।

संक्षेप में, e-Otter++ एक स्मार्ट, अधिक रचनात्मक और अधिक कठोर तरीका है जिससे AI से यह "प्रमाण" लिखने के लिए कहा जाता है कि एक सॉफ्टवेयर बग मौजूद है और उसे ठीक कर दिया गया है, बिना किसी मानव द्वारा उस प्रमाण को लिखे जाने की प्रतीक्षा किए।

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

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

Digest आज़माएँ →