Echo: Graph-Enhanced Retrieval and Execution Feedback for Issue Reproduction Test Generation
इको (Echo) एक उन्नत एजेंट है जो कोड ग्राफ, स्वचालित क्वेरी परिशोधन और निष्पादन फीडबैक का लाभ उठाकर एकल, उच्च-गुणवत्ता वाले इश्यू रिप्रोडक्शन टेस्ट केस उत्पन्न करता है, जिससे SWT-Bench Verified डेटासेट पर 66.28% की नई अत्याधुनिक सफलता दर प्राप्त होती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक जासूस हैं जो एक अपराध को सुलझाने की कोशिश कर रहे हैं, लेकिन आपके पास एकमात्र सुराग एक धुंधला, हाथ से लिखा हुआ नोट है जिसमें एक गवाह ने लिखा है, "लाल कार के साथ कुछ अजीब हुआ, लेकिन मुझे ठीक से नहीं पता कि क्या।"
सॉफ्टवेयर की दुनिया में, यह "लाल कार" एक बग (bug) है, और "अजीब नोट" एक बग रिपोर्ट (bug report) है। डेवलपर्स अक्सर उपयोगकर्ताओं से ऐसे अस्पष्ट विवरण प्राप्त करते हैं। बग को ठीक करने के लिए, डेवलपर को उस सटीक स्थिति को फिर से बनाना (recreate) होता है जिसने समस्या पैदा की थी। इसे इश्यू को रीप्रोड्यूस करना (reproducing the issue) कहा जाता है।
आमतौर पर, एक मानव डेवलपर को कोड को पढ़ना पड़ता है, अनुमान लगाना पड़ता है कि क्या गलत हुआ, और यह साबित करने के लिए एक विशिष्ट टेस्ट स्क्रिप्ट लिखनी पड़ती है कि बग मौजूद है। यह धीमा, उबाऊ और कठिन काम है।
इको (Echo) से मिलिए। इको को एक सुपर-स्मार्ट, अथक जासूसी रोबोट के रूप में सोचें जो उस बिखरे हुए नोट को पढ़ सकता है, अपराध स्थल (कोड) की जांच कर सकता है, और वह सटीक टेस्ट स्क्रिप्ट लिख सकता है जो यह साबित करे कि बग मौजूद है—वह भी अपने आप।
यहाँ बताया गया है कि इको कैसे काम करता है, जिसे सरल उपमाओं (analogies) में विभाजित किया गया है:
1. "कोड मैप" (गूगल सर्च से बेहतर)
अधिकांश AI उपकरण केवल कीवर्ड्स खोजकर सुराग ढूंढने की कोशिश करते हैं, जैसे गूगल पर "लाल कार" टाइप करना। यदि कोड बहुत बड़ा है, तो वे अक्सर अप्रासंगिक फाइलों में खो जाते हैं या असली सुराग को मिस कर देते हैं।
इको की सुपरपावर: इको पूरे कोड शहर का एक 3D मैप बनाता है। यह केवल "कार" शब्द को नहीं खोजता; यह समझता है कि "इंजन" कैसे "पहियों" से जुड़ा है, और "पहिए" कैसे "सड़क" से जुड़े हैं।
- उपमा: लाइब्रेरी में किताबों को उनके शीर्षक से खोजने के बजाय, इको के पास एक जादुई नक्शा है जो दिखाता है कि कौन सी किताब, कौन सा पेज और कौन सा पैराग्राफ उस सुराग को रखता है जिसकी आपको आवश्यकता है। इसके पास एक "स्मार्ट असिस्टेंट" भी है जो आपकी खोज क्वेरी को फिर से लिख देता है यदि पहली वाली पर्याप्त नहीं थी, ताकि यह सुनिश्चित हो सके कि उसे परफेक्ट सबूत मिले।
2. "ट्रायल रन" (रोबोट का जिम)
एक बार जब इको सुराग ढूंढ लेता है, तो वह एक टेस्ट स्क्रिप्ट लिखने की कोशिश करता है। लेकिन यहाँ एक पेच है: स्क्रिप्ट लिखना आसान है; लेकिन यह सुनिश्चित करना कि वह वास्तव में उसी कंप्यूटर पर चले जहाँ बग मौजूद है, कठिन है। अलग-अलग प्रोजेक्ट्स के अलग-अलग नियम होते हैं, जैसे जिम के अलग-अलग उपकरण।
इको की सुपरपावर: इको केवल स्क्रिप्ट लिखकर उम्मीद नहीं करता। इसके पास एक इन-बिल्ट जिम है जहाँ यह वास्तव में टेस्ट को चलाने की कोशिश करता है।
- उपमा: कल्पना कीजिए कि एक शेफ रेसिपी लिख रहा है। अधिकांश उपकरण केवल रेसिपी प्रिंट करते हैं। इको वास्तव में रसोई में जाता है, चूल्हा जलाता है और पकवान बनाने की कोशिश करता है। यदि चूल्हा काम नहीं करता या सामग्री गायब है, तो इको धुआं देखकर जान जाता है, "ठीक है, मुझे रेसिपी बदलने की जरूरत है।"
3. "टाइम-ट्रैवलर का चेक" (अंतिम प्रमाण)
आप कैसे जानेंगे कि आपने जो टेस्ट लिखा है वह वास्तव में बग को साबित करता है? हो सकता है कि टेस्ट इसलिए फेल हुआ हो क्योंकि टेस्ट में ही कोई गलती थी, न कि बग के कारण।
इको की सुपरपावर: इको एक चतुर ट्रिक का उपयोग करता है। यह दूसरे AI (या टूल) से पूछता है कि बग को कैसे ठीक किया जाए और सॉफ्टवेयर का एक "पैच किया हुआ" (patched) संस्करण बनाता है जहाँ बग कथित तौर पर खत्म हो गया है।
- उपमा: इको अपने टेस्ट को बगी वर्जन (Buggy Version) (जहाँ कार क्रैश होती है) और फिक्स्ड वर्जन (Fixed Version) (जहाँ कार सुचारू रूप से चलती है) दोनों पर चलाता है।
- यदि टेस्ट बगी वर्जन पर क्रैश होता है लेकिन फिक्स्ड वर्जन पर काम करता है, तो इको जानता है: "आहा! मुझे असली बग मिल गया!"
- यदि टेस्ट दोनों पर क्रैश होता है, या दोनों पर काम करता है, तो इको जानता है: "मेरा टेस्ट गलत है। मुझे फिर से कोशिश करने की जरूरत है।"
4. "वन-शॉट वंडर" (दक्षता)
पुराने AI उपकरण एक ही समस्या को 100 बार हल करने की कोशिश करेंगे, 100 अलग-अलग टेस्ट स्क्रिप्ट बनाएंगे और फिर उनमें से सबसे अच्छा चुनेंगे। यह 100 जासूसों को रिपोर्ट लिखने के लिए कहने और यह उम्मीद करने जैसा है कि उनमें से एक सही हो जाए। यह महंगा और धीमा है।
इको की रणनीति: इको पहली बार में ही सही होने पर ध्यान केंद्रित करता है। यह अपने "जिम रन" और "टाइम-ट्रैवल चेक" से मिलने वाले फीडबैक का उपयोग करके एक ही टेस्ट को तब तक परिष्कृत (refine) करता है जब तक कि वह परफेक्ट न हो जाए।
- उपमा: बोर्ड पर 100 डार्ट फेंकने और यह उम्मीद करने के बजाय कि एक भी निशाने पर लग जाए, इको एक डार्ट फेंकता है, देखता है कि वह कहाँ गिरा, अपने निशाने को थोड़ा एडजस्ट करता है, और तब तक दोबारा फेंकता है जब तक कि वह केंद्र में न लग जाए। यह स्मार्ट है और कम ऊर्जा का उपयोग करता है।
परिणाम
जब शोधकर्ताओं ने वास्तविक दुनिया के सॉफ्टवेयर बग्स (जिसे SWT-Bench कहा जाता है) पर इको का परीक्षण किया, तो यह चैंपियन बन गया।
- इसने 66% मामलों में बग को सफलतापूर्वक रीप्रोड्यूस किया।
- इसने अन्य सभी ओपन-सोर्स टूल्स को पीछे छोड़ दिया, यहाँ तक कि उन टूल्स को भी जो अधिक महंगे या शक्तिशाली AI मॉडल का उपयोग करते हैं।
- इसने यह सब अपने प्रतिस्पर्धियों की तुलना में सस्ता और तेज़ तरीके से किया।
सारांश में
इको एक स्मार्ट सिस्टम है जो:
- मैप को पढ़ता है (कोड ग्राफ) ताकि सही सुराग मिल सकें।
- टेस्ट को चलाकर देखता है (एक्ज़ीक्यूशन) कि क्या यह काम करता है।
- फिक्स को चेक करता है (डुअल-वर्जन) यह साबित करने के लिए कि बग असली है।
- एक ही टेस्ट को तब तक सुधारता है जब तक कि वह परफेक्ट न हो जाए।
यह "बग को फिर से बनाने" के कठिन और मैनुअल काम को एक स्वचालित और विश्वसनीय प्रक्रिया में बदल देता है, जिससे डेवलपर्स सॉफ्टवेयर को तेज़ी से और अधिक विश्वसनीयता के साथ ठीक कर पाते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।