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

TestWeaver: Execution-aware, Feedback-driven Regression Testing Generation with Large Language Models

TestWeaver एक नवीन LLM-आधारित रिग्रेशन टेस्टिंग दृष्टिकोण है जो हल्के प्रोग्राम विश्लेषण—विशेष रूप से बैकवर्ड स्लाइसिंग, समान टेस्ट केस चयन और निष्पादन में इन-लाइन एनोटेशन—को एकीकृत करके कवरेज पठारों (coverage plateaus) पर विजय प्राप्त करता है, ताकि केंद्रित निष्पादन संदर्भ प्रदान किए जा सकें जो टेस्ट जनरेशन की प्रभावशीलता को बढ़ाते हैं और कोड कवरेज वृद्धि को त्वरित करते हैं।

मूल लेखक: Cuong Chi Le, Cuong Duc Van, Tung Duy Vu, Thai Minh Pham Vu, Hoang Nhat Phan, Huy Nhat Phan, Tien N. Nguyen

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

मूल लेखक: Cuong Chi Le, Cuong Duc Van, Tung Duy Vu, Thai Minh Pham Vu, Hoang Nhat Phan, Huy Nhat Phan, Tien N. Nguyen

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

कल्पना कीजिए कि आप एक बहुत ही बुद्धिमान, लेकिन थोड़ा लापरवाह रोबोट (एक लार्ज लैंग्वेज मॉडल या LLM) को एक विशाल, जटिल हवेली (एक कंप्यूटर प्रोग्राम) के एक विशिष्ट कमरे में घुसने का तरीका सिखाने की कोशिश कर रहे हैं। आपका लक्ष्य निर्देशों का एक सेट (एक टेस्ट केस) लिखना है जो रोबोट को उस विशिष्ट दरवाजे (कोड की एक लाइन) से होकर गुजरने के लिए प्रेरित करे जिसे उसने पहले कभी नहीं देखा है।

समस्या यह है कि हवेली बहुत बड़ी है। यदि आप रोबोट को पूरी हवेली का नक्शा दे देते हैं, तो वह घबरा जाता है, भ्रमित हो जाता है और अंदाज़े लगाने लगता है। वह रसोई में जा सकता है, फिर लाइब्रेरी में, फिर गैरेज में, लेकिन वह अटारी में मौजूद उस एक विशिष्ट दरवाजे को खोजने में बार-बार चूक जाता है। इसे "कवरेज प्लेटो" (Coverage Plateau) कहा जाता है: रोबट कोशिश तो करता रहता है, लेकिन वह नए कमरों को खोजने के बजाय बस उन्हीं परिचित गलियारों में घूमता रहता है।

TestWeaver एक नया टूल है जिसे इस समस्या को ठीक करने के लिए डिज़ाइन किया गया है। पूरे नक्शे को रोबोट को सौंपकर यह कहने के बजाय कि "जाओ और वह दरवाजा ढूंढो," TestWeaver एक सुपर-स्मार्ट गाइड की तरह काम करता है जो रोबोट को सफल होने में मदद करने के लिए तीन चतुर तरकीबों का उपयोग करता है।

1. "स्पॉटलाइट" की तरकीब (बैकवर्ड स्लाइसिंग - Backward Slicing)

रोबोट को पूरी हवेली दिखाने के बजाय, TestWeaver केवल उस गलियारे पर एक स्पॉटलाइट डालता है जो सीधे लक्षित दरवाजे की ओर जाता है। यह सभी अप्रासंगिक कमरों, बेसमेंट और बगीचे को हटा देता है।

  • रूपक (Metaphor): कल्पना कीजिए कि आप एक बिखरी हुई मेज पर एक विशिष्ट चाबी खोजने की कोशिश कर रहे हैं। यदि आप रोबोट को पूरी बिखरी हुई मेज दिखाएंगे, तो वह विचलित हो जाएगा। TestWeaver उस मेज को साफ कर देता है, जिससे केवल चाबी और उसके आस-पास का क्षेत्र ही बचता है। यह रोबोट को भ्रमित होने या "भ्रमित होने" (ऐसी चीजें बनाने जो वहां नहीं हैं) से रोकता है और उसे पूरी तरह से लक्ष्य तक पहुँचने वाले मार्ग पर ध्यान केंद्रित करने में मदद करता है।

2. "लगभग पहुँच गए" की तरकीब (क्लोजेस्ट टेस्ट केस - Closest Test Case)

कभी-कभी, रोबोट दरवाजे तक पहुँचने की कोशिश करता है लेकिन वह एक कदम पहले ही रुक जाता है। TestWeaver रोबोट के पिछले प्रयासों को देखता है और उनमें से उस प्रयास को ढूँढता है जो दरवाजे के सबसे करीब था।

  • रूपक: कल्पना कीजिए कि रोबोट ने एक सीढ़ी चढ़ने की कोशिश की लेकिन वह तीसरी सीढ़ी पर ही रुक गया। TestWeвेर कहता है, "देखो, तुम लगभग पहुँच ही गए थे! तुम तीसरी सीढ़ी पर रुक गए थे। दरवाजा चौथी सीढ़ी के ठीक ऊपर है। चलो देखते हैं कि तुम ठीक कहाँ रुके थे और यह समझने की कोशिश करते हैं कि अगला कदम कैसे उठाया जाए।" शुरुआत से शुरू करने के बजाय, यह अपने पिछले 'निकट-लक्ष्य' का उपयोग अगले प्रयास के लिए एक आधार के रूप में करता है।

3. "लाइव कमेंट्री" की तरकीब (एक्जीक्यूशन इन-लाइन्स - Execution In-lines)

जब रोबोट दोबारा कोशिश करता है और असफल होता है, तो TestWeaver केवल "फिर से प्रयास करें" नहीं कहता। यह निर्देशों को लाइव कमेंट्री के साथ फिर से लिखता है। यह चरणों के ठीक बगल में नोट्स जोड़ता है, जैसे कि, "इस क्षण में, रोबोट ने एक लाल चाबी पकड़ी हुई है," या "दरवाजा बंद है क्योंकि लाइट बंद है।"

  • रूपक: यह एक कोच की तरह है जो वास्तविक समय में आंकड़े चिल्लाकर बता रहा है। रोबोट को यह अनुमान लगाने के बजाय कि गेम की स्थिति क्या है, कोच उसे बताता है, "आपके पास 50 हेल्थ पॉइंट्स हैं, और दुश्मन आपके बाईं ओर है।" यह रोबोट को कोड के अंदर वास्तव में क्या हो रहा है, इसकी स्पष्ट तस्वीर देता है, जिससे उसे यह समझने में मदद मिलती है कि लक्ष्य तक पहुँचने के लिए किस बदलाव की आवश्यकता है।

परिणाम

लेखकों ने इस सिस्टम का परीक्षण 35 वास्तविक दुनिया के सॉफ्टवेयर प्रोजेक्ट्स (जैसे कि विभिन्न हवेलियों का एक संग्रह) पर किया। उन्होंने पाया कि:

  • बेहतर कवरेज: TestWeaver ने पिछले सर्वोत्तम तरीकों की तुलना में अधिक "कमरे" (कोड की लाइनें) खोजे। इसने 68% कोड कवर किया, जबकि अन्य तरीकों ने केवल 61% और 46% कवर किया।
  • तेजी से सफलता: यह अपनी चरम प्रदर्शन क्षमता तक बहुत तेज़ी से पहुँचा। जबकि अन्य तरीके लंबे समय तक विफलता के चक्रों (प्लेटो) में फंसे रहे, TestWeVer प्रगति करता रहा क्योंकि इसका मार्गदर्शन बहुत विशिष्ट था।
  • लागत प्रभावी: भले ही यह अधिक स्मार्ट था, लेकिन इसे चलाने में बहुत अधिक पैसा खर्च नहीं हुआ क्योंकि इसने रोबोट को छोटे, स्पष्ट निर्देश दिए (कम "शोर" जिसे प्रोसेस करना पड़े)।

संक्षेप में, TestWever रोबोट को एक विशाल हवेली में बिना किसी दिशा के भटकने से रोकता है। इसके बजाय, यह उसे एक केंद्रित स्पॉटलाइट, उसके पिछले सबसे अच्छे प्रयास का संदर्भ और आगे के मार्ग के लिए लाइव कमेंट्री देता है, जिससे वह अंततः उस विशिष्ट दरवाजे को खोज पाता है जिसे वह ढूंढ रहा था।

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

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

Digest आज़माएँ →