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

Can Old Tests Do New Tricks for Resolving SWE Issues?

TestPrune एक पूर्णतः स्वचालित तकनीक है जो LLM-आधारित बग पुनरुत्पादन और पैच सत्यापन को बढ़ाने के लिए बड़े रिग्रेशन टेस्ट सूट्स को रणनीतिक रूप से कम करती है, जो न्यूनतम API लागत ओवरहेड के साथ SWE-Bench बेंचमार्क पर समस्या समाधान दरों में महत्वपूर्ण सुधार करती है।

मूल लेखक: Yang Chen, Toufique Ahmed, Reyhaneh Jabbarvand, Martin Hirzel

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

मूल लेखक: Yang Chen, Toufique Ahmed, Reyhaneh Jabbarvand, Martin Hirzel

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

बड़ी समस्या: बहुत अधिक शोर, बहुत कम संकेत

कल्पना कीजिए कि आप एक विशाल, अराजक शहर (एक बड़ा सॉफ़्टवेयर प्रोजेक्ट) में अपराध को सुलझाने की कोशिश कर रहे एक जासूस हैं। आपके पास "नियमों" (रिग्रेशन टेस्ट सुइट) की एक विशाल नोटबुक है जो कहती है, "यदि आप मेन स्ट्रीट पर चलते हैं, तो आपको कार से नहीं टकराना चाहिए।" ये नियम यह सुनिश्चित करने के लिए बेहतरीन हैं कि जब आप छोटे बदलाव करें तो शहर बिखर न जाए।

हालाँकि, जब कोई नया, अजीब अपराध (एक नया बग) होता है, तो जासूस (एक AI एजेंट) को यह पता लगाने की ज़रूरत होती है कि ठीक कहाँ और कैसे सुधार किया जाए। समस्या यह है कि शहर में हज़ारों नियम हैं। यदि आप एक विशिष्ट अपराध को हल करने के लिए उन सभी नियमों को पढ़ने की कोशिश करते हैं, तो आप अभिभूत हो जाते हैं। इसमें बहुत समय लगता है, बहुत अधिक पैसा खर्च होता है, और जासूस उन नियमों से विचलित हो जाता है जो "मेन स्ट्रीट" के बारे में हैं, जबकि अपराध वास्तव में "एल्म स्ट्रीट" पर हुआ था।

सॉफ़्टवेयर की दुनिया में, ये "नियम" टेस्ट (परीक्षण) हैं। वर्तमान AI उपकरण परीक्षणों की पूरी लाइब्रेरी को पढ़कर बग्स को ठीक करने की कोशिश करते हैं। यह धीमा, महंगा और अक्सर भ्रमित करने वाला होता है क्योंकि उनमें से अधिकांश टेस्ट का उस विशिष्ट बग से कोई लेना-देना नहीं होता है।

समाधान: TestPrune (एक स्मार्ट लाइब्रेरियन)

इस पेपर के लेखकों ने TestPrune नामक एक टूल बनाया है। TestPrune को एक सुपर-स्मार्ट लाइब्रेरियन के रूप में समझें जिसे पता है कि किसी विशिष्ट शोध विषय के लिए आपको किन किताबों की आवश्यकता है।

जासूस को पूरी लाइब्रेरी देने के बजाय, TestPrune अपराध के विवरण (इश्यू रिपोर्ट) और शहर के मानचित्र (कोडबेस) को देखता है। फिर यह एक स्मार्ट AI (एक लार्ज लैंग्वेज मॉडल) से पूछता है कि कौन से हिस्से संदिग्ध हैं। एक बार जब इसे संदिग्ध क्षेत्रों का पता चल जाता है, तो यह नियमों की लाइब्रेरी को स्कैन करता है और केवल उन 9 से 11 नियमों को निकालता है जो वास्तव में उस विशिष्ट अपराध के लिए प्रासंगिक हैं।

यह हज़ारों अप्रासंगिक नियमों को हटा देता है। यह 10,000 पन्नों का विश्वकोश पढ़ने के बजाय एक एकल, सटीक 3-पन्ने के 'चीट शीट' को पढ़ने जैसा है।

यह कैसे काम करता है ("नए ट्रिक्स")

पेपर दिखाता है कि ये "पुराने टेस्ट" (जो मनुष्यों द्वारा पहले से लिखे गए हैं) "नए ट्रिक्स" कर सकते हैं यदि आप बस सही वाले चुन लें। TestPrune AI को बग्स ठीक करने में मदद करने के लिए दो मुख्य रणनीतियों का उपयोग करता है:

  1. अपराध स्थल को फिर से बनाना (Reproduction):
    बग को ठीक करने से पहले, आपको यह साबित करने की आवश्यकता है कि वह मौजूद है। AI एक नया टेस्ट लिखने की कोशिश करता है जो टूटे हुए कोड पर विफल (fail) हो लेकिन ठीक किए गए कोड पर सफल (pass) हो।

    • TestPrune के बिना: AI अंधे होकर अनुमान लगाता है या बहुत अधिक पुराने नियमों को पढ़ने की कोशिश करता है, जिससे वह भ्रमित हो जाता है।
    • TestPrune के साथ: AI को उन "पुराने नियमों" को सौंपा जाता है जो टूटे हुए क्षेत्र को कवर करते हैं। यह AI को बेहतर संदर्भ (context) देता है, जिससे उसे एक परफेक्ट "क्राइम सीन रिक्रिएशन" टेस्ट लिखने में मदद मिलती है।
    • परिणाम: AI बग के अस्तित्व को साबित करने में बेहतर हो जाता है (6.2% से 9.0% का सुधार)।
  2. सुधार की जाँच करना (Validation):
    एक बार जब AI एक फिक्स (सुधार) प्रस्तावित करता है, तो उसे यह सुनिश्चित करने की आवश्यकता होती है कि उस फिक्स ने किसी और चीज़ को नहीं तोड़ा है।

    • TestPrune के बिना: AI हज़ारों टेस्ट चलाता है। यदि कोई टेस्ट विफल हो जाता है, तो AI घबरा सकता है और सोच सकता है कि फिक्स खराब है, भले ही वह टेस्ट फिक्स के लिए अप्रासंगिक रहा हो।
    • TestPrune के साथ: AI केवल छोटे, प्रासंगिक टेस्ट चलाता है। यदि वे पास हो जाते हैं, तो फिक्स संभवतः अच्छा है। यदि वे विफल होते हैं, तो AI को पता होता है कि कहाँ बदलाव करना है।
    • परिणाम: AI अधिक बग्स को सही ढंग से ठीक करता है (8.0% से 12.9% सुधार) और यह तेज़ी से करता है।

परिणाम: तेज़, सस्ता और स्मार्ट

इस पेपर का परीक्षण वास्तविक दुनिया के सॉफ़्टवेयर प्रोजेक्ट्स (जिन्हें SWE-Bench Lite और SWE-Bench Verified बेंचमार्क कहा जाता है) पर किया गया। यहाँ उन्होंने क्या पाया:

  • भारी कमी: उन्होंने उन टेस्ट्स की संख्या को 1,000 गुना से अधिक कम कर दिया जिन्हें AI को चलाना पड़ता था। 10,000 टेस्ट चलाने के बजाय, वे केवल लगभग 9 टेस्ट चलाते थे।
  • गति: पूरी लाइब्रेरी चलाने में लगभग 24 मिनट लगे। TestPrune लिस्ट चलाने में केवल 52 सेकंड लगे।
  • लागत: TestPrune का उपयोग करने में अतिरिक्त लागत लगभग कुछ भी नहीं है। यह प्रति बग फिक्स केवल लगभग 0.02से0.02 से 0.05 जोड़ता है (मानक AI मॉडल का उपयोग करके)।
  • सफलता दर: इस "स्मार्ट फ़िल्टर" का उपयोग करके, AI एजेंटओं ने पहले की तुलना में काफी अधिक बग्स को सफलतापूर्वक हल किया।

निचोड़

यह पेपर अपने शीर्षक के प्रश्न का जोरदार जवाब देता है: हाँ। पुराने टेस्ट "नए ट्रिक्स" कर सकते हैं, लेकिन केवल तभी जब आप उन सभी को समान मानना बंद कर दें। यह समझने के लिए कि किसी विशिष्ट समस्या के लिए कौन से पुराने टेस्ट सबसे उपयुक्त हैं, AI का उपयोग करके उन चुनिंदा टेस्ट्स को चुनने से, हम सॉफ़्टवेयर रिपेयर को तेज़, सस्ता और बहुत अधिक सटीक बना सकते हैं।

मुख्य बात: आपको किसी समस्या को हल करने के लिए बड़ी लाइब्रेरी की आवश्यकता नहीं है; आपको बस सही किताब खोजने के लिए एक बेहतर लाइब्रेरियन की आवश्यकता है। TestPrune वही लाइब्रेरियन है।

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

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

Digest आज़माएँ →