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

LLM-Guided Issue Generation from Uncovered Code Segments

यह शोध पत्र IssueSpecter को प्रस्तुत करता है, जो एक स्वचालित टूल है जो अनकवर्ड (uncovered) कोड सेगमेंट में बग्स की पहचान करने और पुनरुत्पादन चरणों (reproduction steps) एवं सुझाए गए सुधारों के साथ प्राथमिकता वाले, कार्रवाई योग्य इश्यू रिपोर्ट्स उत्पन्न करने के लिए कवरेज विश्लेषण और LLMs का लाभ उठाता है, जो मौजूदा अत्याधुनिक टूल्स की तुलना में बेहतर वैधता और रैंकिंग प्रदर्शन प्रदर्शित करता है।

मूल लेखक: Diany Pressato, Honghao Tan, Mariam Elmoazen, Shin Hwei Tan

प्रकाशित 2026-04-30
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Diany Pressato, Honghao Tan, Mariam Elmoazen, Shin Hwei Tan

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

कल्पना कीजिए कि आप एक विशाल, हलचल भरे रेस्टोरेंट (एक सॉफ्टवेयर प्रोजेक्ट) के हेड शेफ हैं। आपके पास निरीक्षकों (ऑटोमेटेड टेस्ट) की एक टीम है जो हर चूल्हा, ओवन और काउंटर की जांच करने के लिए रसोई में घूमती है ताकि यह सुनिश्चित हो सके कि सब कुछ साफ और काम कर रहा है। वे बहुत विस्तृत हैं, लेकिन उनकी एक कमी है: वे केवल उन्हीं क्षेत्रों की जांच करते हैं जिनके लिए उन्हें बताया जाता है।

रसोई के कुछ अंधेरे कोने, धूल भरी अलमारियां और भूले हुए दराज हैं जिन्हें निरीक्षक कभी नहीं देखते। ये हैं "अनकवर्ड कोड सेगमेंट्स" (uncovered code segments)। समस्या यह है कि सबसे खतरनाक बग्स (जैसे कोई सड़ा हुआ सामान या टूटा हुआ चाकू) अक्सर इन्हीं अंधेरे कोनों में छिपे होते हैं क्योंकि कभी किसी ने वहां देखा ही नहीं।

समस्या: "ओरेकल" ट्रैप (The "Oracle" Trap)

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

समाधान: IssueSpecter (द "घोस्ट हंटर")

लेखकों ने IssueSpecter नामक एक टूल बनाया है। एक नया निरीक्षण स्क्रिप्ट लिखने के बजाय, IssueSpecter एक घोस्ट हंटर (भूत पकड़ने वाला) या एक डिटेक्टिव (जासूस) की तरह काम करता है।

यह इस प्रकार काम करता है, स्टेप-दर-स्टेप:

  1. मैप (कवरेज एनालिसिस): सबसे पहले, IssueSpecter रसोई के नक्शे को देखता है और सटीक रूप से उन दराजों और अलमारियों की ओर इशारा करता है जिन्हें निरीक्षकों ने कभी नहीं खोला। ये हैं "अनकवर्ड सेगमेंट्स"।
  2. डिटेक्टिव (AI): यह कोड के इन अंधेरे, अनटेस्टेड टुकड़ों को लेता है और उन्हें एक सुपर-स्मार्ट AI डिटेक्टिव (एक लार्ज लैंग्वेज मॉडल) को सौंप देता है। AI का काम टेस्ट लिखना नहीं है; इसका काम कोड को पढ़ना और कल्पना करना है कि क्या गलत हो सकता है।
    • प्रॉम्प्ट (निर्देश): AI को बताया जाता है: "यहाँ कोड का एक हिस्सा है जिसे किसी ने टेस्ट नहीं किया है। एक विशेषज्ञ शेफ होने का नाटक करें। यहाँ जो भी तीन चीजें गलत हो सकती हैं, उन्हें खोजें। मुझे बताएं कि यह कितना बुरा है, दुर्घटना को कैसे दोहराया जाए, और इसे कैसे ठीक किया जाए।"
  3. रिपोर्ट (इश्यू जनरेशन): AI हर संभावित बग के लिए एक औपचारिक "इंसिडेंट रिपोर्ट" लिखता है। इन रिपोर्टों में शामिल हैं:
    • सेवेरिटी (गंभीरता): क्या यह एक मामूली खरोंच है या आग लगने का खतरा?
    • रेप्रोडक्शन स्टेप्स (दोहराने के चरण): "यदि आप X करते हैं, तो Y होगा, और रसोई में आग लग जाएगी।"
    • द फिक्स (समाधान): "आग को रोकने के लिए यहाँ नई रेसिपी दी गई है।"
  4. एडिटर (रैंकिंग): AI सैकड़ों संभावित समस्याएं ढूंढ सकता है, जिनमें से कई मामूली या काल्पनिक हो सकती हैं। IssueSpecter के पास दो-चरणीय एडिटर है:
    • रूल-बेस्ड फिल्टर: एक सरल चेकलिस्ट जो उन चीजों को प्राथमिकता देती है जो बहुत से लोगों को प्रभावित करती हैं या बहुत खतरनाक हैं।
    • AI री-रैंकिंग: दूसरा, अधिक स्मार्ट AI रिव्यू जो शीर्ष 10 उम्मीदवारों को देखता है और कहता है, "वास्तव में, यह सुरक्षा छेद (security hole) उस टाइपो (typo) की तुलना में अधिक जरूरी है।" यह सूची को फिर से व्यवस्थित करता है ताकि सबसे महत्वपूर्ण बग सबसे ऊपर रहें।

उन्होंने क्या पाया

टीम ने 13 अलग-अलग ओपन-सोर्स "रेस्टोरेंट्स" (पायथन प्रोजेक्ट्स) पर इसका परीक्षण किया।

  • वॉल्यूम (मात्रा): उन्होंने 10,000 से अधिक संभावित बग रिपोर्ट जेनरेट कीं।
  • सटीकता (Accuracy): जब मानव विशेषज्ञों ने शीर्ष 130 रिपोर्टों को देखा, तो 84.6% वास्तविक समस्याएं थीं या जांच के योग्य थीं। केवल लगभग 15% ही गलत अलार्म थे (AI द्वारा बनाया गया कोई ऐसा बग जो अस्तित्व में ही नहीं था)।
  • विविधता (Variety): उन्होंने हर तरह के मुद्दे पाए: लॉजिक एरर (रेसिपी का कोई मतलब नहीं निकल रहा), बाउंड्री एरर (क्या होता है अगर आप बहुत अधिक नमक डाल दें?), और यहाँ तक कि सुरक्षा छेद (कोई पिछले दरवाजे से अंदर घुस सकता है)।

"मैजिक" ऑफ रैंकिंग (The "Magic" of Ranking)

रैंकिंग के बारे में एक सबसे महत्वपूर्ण खोज यह थी।

  • यदि आप केवल सरल नियमों का उपयोग करते हैं (जैसे "सेवेरिटी के आधार पर सॉर्ट करें"), तो आप सबसे खतरनाक बग को मिस कर सकते हैं क्योंकि यह कम खतरनाक दिखने वाले बग जैसा ही लगता है।
  • एक उदाहरण में (HTTPie प्रोजेक्ट), साधारण नियमों ने एक गंभीर "पाथ ट्रेवर्सल" (Path Traversal) सुरक्षा छेद (जहाँ एक हैकर दीवारों के पार जा सकता है) को सूची में स्थान संख्या #7 पर रखा।
  • AI री-रैंकर ने महसूस किया कि यह कितना खतरनाक है और इसे स्थान संख्या #1 पर ले आया। बिना AI के, एक व्यस्त डेवलपर शीर्ष 3 के बाद पढ़ना बंद कर देता और इस महत्वपूर्ण खतरे को मिस कर देता।

यह प्रतियोगिता से कैसे तुलना करता है

लेखकों ने IssueSpecter की तुलना CoverUp से की, जो एक अत्याधुनिक टूल है जो इन अनकवर्ड क्षेत्रों के लिए नए टेस्ट जेनरेट करने की कोशिश करता है।

  • CoverUp कोड को तोड़ने के लिए एक स्क्रिप्ट लिखने की कोशिश करता है।
  • IssueSpecter कोड को पढ़ता है और रिपोर्ट लिखता है कि यह क्यों टूटा हुआ है।
  • परिणाम: IssueSpecter ने थोड़े अधिक वैध बग ढूंढे (81% बनाम 76%) और, सबसे महत्वपूर्ण बात, डेवलपर्स को एक तैयार-मेड रिपोर्ट दी। CoverUp के साथ, डेवलपर को अभी भी जेनरेट किए गए टेस्ट को पढ़ना होगा, यह समझना होगा कि वह क्या कहना चाह रहा है, और फिर सुधार लिखना होगा। IssueSpecter उन्हें "इंसिडेंट रिपोर्ट" और "रिपेयर मैनुअल" दोनों एक ही पैकेज में सौंप देता है।

वास्तविक दुनिया के उदाहरण (केस स्टडीज)

पेपर तीन विशिष्ट "भूतों" को उजागर करता है जिन्हें IssueSpecter ने पकड़ा:

  1. मेमोरी ईटर (The Memory Eater): एक HTTP क्लाइंट लाइब्रेरी में, बड़े फाइलों को प्रोसेस करते समय कोड कंप्यूटर की सारी मेमोरी खा रहा था क्योंकि इसमें कोई "स्टॉप" बटन नहीं था। IssueSpecter ने इसे खोजा और एक सीमा (limit) जोड़ने का सुझाव दिया।
  2. साइलेंट डेटा लूज़र (The Silent Data Loser): एक gzip डिकंप्रेसर में, यदि आप दो कंप्रेस्ड फाइलें एक साथ भेजते हैं, तो टूल बिना किसी चेतावनी के चुपचाप दूसरी फाइल को फेंक देता है। IssueSpecter ने इसे पाया और बचे हुए डेटा की जांच के लिए एक लूप (loop) का सुझाव दिया।
  3. टाइप ट्रैप (The Type Trap): एक प्रॉम्प्ट हैंडलर में, यदि कोई उपयोगकर्ता डिक्शनरी को की (key) के रूप में उपयोग करने की कोशिश करता है, तो कोड क्रैश हो जाता है। IssueSpecter ने इस "अनहैशेबल टाइप" (unhashable type) त्रुटि को पहचाना और इसे बेहतर ढंग से संभालने के लिए सुधार का सुझाव दिया।

निचोड़ (The Bottom Line)

IssueSpecter एक ऐसा टूल है जो कहता है: "केवल उसे टेस्ट न करें जिसे आप जानते हैं; बल्कि उसे देखें जिसे आप अनदेखा कर रहे हैं।" अनटेस्टेड कोड के मैप को एक AI डिटेक्टिव के साथ जोड़कर, जो उस कोड को पढ़ और समझ सकता है, यह डेवलपर्स को उन छिपे हुए, खतरनाक बग्स को खोजने में मदद करता है जिन्हें पारंपरिक टेस्टिंग मिस कर देती है, और उन्हें प्राथमिकता के आधार पर सूची देता है कि सबसे पहले क्या ठीक करना है।

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

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

Digest आज़माएँ →