← नवीनतम पेपर
🤖 AI

Evaluating LLM-Based Regression Test Generation

यह शोध पत्र Cleverest प्रस्तुत करता है, जो एक फीडबैक-निर्देशित, ज़ीरो-शॉट LLM फ्रेमवर्क है जो रिग्रेशन टेस्ट जनरेशन को मशीन ट्रांसलेशन के रूप में फ्रेम करता है ताकि कमिट संदेशों से प्रभावी टेस्ट केस तेजी से तैयार किए जा सकें, और यह पाता है कि यह दो मिनट से भी कम समय में उतने बग्स ढूंढ लेता है जितने स्टेट-ऑफ-द-आर्ट फज़र्स 24 घंटों में ढूंढते हैं और जब इसे सीड कॉर्पस के रूप में उपयोग किया जाता है तो यह आगे के फज़िंग की प्रभावशीलता को महत्वपूर्ण रूप से बढ़ाता है।

मूल लेखक: Jing Liu, Seongmin Lee, Eleonora Losiouk, Marcel Böhme

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

मूल लेखक: Jing Liu, Seongmin Lee, Eleonora Losiouk, Marcel Böhme

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

कल्पना कीजिए कि आपके पास एक विशाल, जटिल मशीन है, जैसे कि एक कार का इंजन या कोई परिष्कृत वीडियो गेम कंसोल। हर बार जब एक मैकेनिक (एक सॉफ्टवेयर डेवलपर) किसी समस्या को ठीक करने या कोई नया फीचर जोड़ने के लिए मशीन के एक छोटे से हिस्से में बदलाव करता है, तो उसे यह सुनिश्चित करना होता है कि मशीन का बाकी हिस्सा अभी भी काम कर रहा है। इसे रिग्रेशन टेस्टिंग (regression testing) कहा जाता है।

आमतौर पर, यह एक धीमा, मैन्युअल काम है। आपको यह देखने के लिए विशिष्ट निर्देश (टेस्ट केस) लिखने होते हैं कि नए बदलाव ने कहीं और कुछ बिगाड़ तो नहीं दिया। लेकिन क्या होगा अगर आप एक सुपर-स्मार्ट रोबोट से सेकंडों में अपने लिए वे निर्देश लिखवा सकें?

यही वह चीज़ है जिसे यह शोध पत्र (paper) एक्सप्लोर करता है। शोधकर्ताओं ने Cleverest नामक एक टूल बनाया है जो एक "लार्ज लैंग्वेज मॉडल" (LLM) का उपयोग करता है—वही तरह का AI जो चैटबॉट्स को शक्ति देता है—ताकि वह एक टेस्ट राइटर की तरह काम कर सके।

यहाँ बताया गया है कि यह कैसे काम करता है, सरल उपमाओं (analogies) का उपयोग करते हुए:

1. काम: "अनुवादक" (The Translator)

एक सॉफ्टवेयर अपडेट को डैशबोर्ड पर छोटे गए एक नोट की तरह समझें: "मैंने बाईं पहिया के बोल्ट को कस दिया है।"

  • समस्या: कंप्यूटर को यह नहीं पता कि "बोल्ट कसने" का वास्तविक दुनिया में क्या अर्थ है। इसे यह साबित करने के लिए कि यह काम कर गया, एक भौतिक परीक्षण (physical test) की आवश्यकता होती है।
  • Cleverest का समाधान: Cleverest एक अनुवादक की तरह काम करता है। यह मैकेनिक के नोट (कमिट मैसेज) और परिवर्तनों की सूची (कोड डिफ) को लेता है और उन्हें एक भौतिक परीक्षण में अनुवादित करता है। यह कहता है, "ठीक है, मैकेनिक ने बोल्ट कसा है। अब मैं कार को एक स्पीड बंपर के ऊपर से चलाऊंगा और देखूंगा कि पहिया निकल तो नहीं गया।"

2. प्रक्रिया: "फीडबैक लूप" (The Feedback Loop)

Cleverest केवल एक बार अनुमान नहीं लगाता और उम्मीद नहीं करता। यह एक फीडबैक लूप का उपयोग करता है, जो एक छात्र द्वारा अभ्यास क्विज़ देने और तुरंत ग्रेड प्राप्त करने जैसा है।

  1. ड्राफ्ट (Draft): Cleverest एक टेस्ट लिखता है (जैसे, एक विशिष्ट जावास्क्रिप्ट प्रोग्राम या XML फ़ाइल)।
  2. रन (Run): यह बदलाव से पहले और बदलाव के बाद सॉफ्टवेयर पर इस टेस्ट को चलाता है।
  3. ग्रेड (Grade): एक "एग्जीक्यूशन एनालाइज़र" परिणामों की जांच करता है। क्या टेस्ट ने प्रोग्राम को क्रैश कर दिया? क्या आउटपुट बदल गया? क्या इसने कोड के उस हिस्से को छुआ भी जिसे बदला गया था?
  4. सुधार (Improve): यदि टेस्ट बग खोजने में विफल रहा या इसने सही कोड को नहीं छुआ, तो Cleverest को "ग्रेड" (फीडबैक) मिलता है और वह फिर से प्रयास करता है, अपने टेस्ट को तब तक परिष्कृत करता है जब तक कि वह सही न हो जाए।

3. परिणाम: गति बनाम शक्ति (Speed vs. Power)

शोधकर्ताओं ने 8 लोकप्रिय प्रोग्रामों (जैसे PDF रीडर, जावास्क्रिप्ट इंटरप्रेटर और XML पार्सर) में 72 विभिन्न सॉफ्टवेयर अपडेट पर Cleverest का परीक्षण किया।

  • गति का दैत्य (The Speed Demon): Cleverest अविश्वसनीय रूप से तेज़ है। इसने एक अत्याधुनिक प्रतिस्पर्धी (जिसे WAFLGo कहा जाता है) द्वारा 24 घंटों में खोजे गए बग्स को 2 मिनट से कम समय में खोज लिया।
    • उपमा: यह ऐसा है जैसे Cleverest एक स्प्रिंटर (धावक) है जो सेकंडों में सड़क में गड्ढा ढूंढ लेता है, जबकि WAFLGo एक मैराथन धावक है जो अंततः उसी गड्ढे को ढूंढ लेता है लेकिन वहां तक पहुँचने में पूरा दिन लगा देता है।
  • "सीड" शक्ति (The "Seed" Power): भले ही Cleverest तुरंत बग नहीं ढूंढ पाया, लेकिन इसके द्वारा लिखे गए टेस्ट अक्सर "आधे रास्ते तक" पहुँच चुके थे। जब शोधकर्ताओं ने Cleverest के टेस्ट लिए और उन्हें एक पारंपरिक फज़र (fuzzer - एक टूल जो सॉफ्टवेयर को तोड़ने के लिए रैंडम डेटा फेंकता है) में डाला, तो उस फज़र ने अकेले की तुलना में दोगुने बग खोजे।
    • उपमा: Cleverest ने खजाना नहीं पाया, लेकिन उसने उसके ठीक बगल में एक गड्ढा खोद दिया। जब फज़र आया, तो उसे बस कुछ इंच और खोदना पड़ा और सोना मिल गया।

4. गुप्त सामग्री: "नोट" मायने रखता है (The "Note" Matters)

सबसे दिलचस्प निष्कर्षों में से एक यह है कि Cleverest काफी हद तक डेवलपर द्वारा लिखे गए नोट पर निर्भर करता है।

  • अच्छा नोट: यदि डेवलपर लिखता है, "मैंने एक बग ठीक किया जहाँ फ्लोटिंग-पॉइंट नंबरों के कारण सिस्टम क्रैश हो रहा था," तो Cleverest समझ जाता है और फ्लोटिंग-पॉइंट नंबरों के साथ एक टेस्ट बनाता है।
  • बुरा नोट: यदि डेवलपर लिखता है, "Fixed #123," तो Cleverest भ्रमित हो जाता है। उसे नहीं पता कि "123" का क्या मतलब है, इसलिए वह एक अच्छा टेस्ट नहीं लिख सकता।
  • प्रयोग: शोधकर्ताओं ने खराब नोट्स लिए और उनमें केवल कुछ शब्द जोड़कर उन्हें वर्णनात्मक बनाया। अचानक, Cleverest का प्रदर्शन आसमान छू गया।
    • उपमा: यदि आप शेफ से कहते हैं, "मेरे लिए कुछ अच्छा बनाओ," तो वह सलाद बना सकता है। यदि आप कहते, "मेरे लिए एक तीखा, ग्लूटेन-मुक्त पास्ता व्यंजन बनाओ," तो वह बिल्कुल वही बनाता है जो आप चाहते हैं। निर्देश जितने विशिष्ट होंगे, परिणाम उतना ही बेहतर होगा।

5. निर्णय (The Verdict)

यह शोध पत्र निष्कर्ष निकालता है कि:

  1. LLMs इस काम के लिए बेहतरीन हैं: वे किसी कोड परिवर्तन के मानव विवरण को बहुत तेज़ी से एक काम करने वाले टेस्ट केस में बदल सकते हैं।
  2. यह पठनीय फॉर्मेट पर सबसे अच्छा काम करता है: यह टेक्स्ट फाइल्स, कोड और XML जैसी चीजों के परीक्षण में बहुत अच्छा है। यह जटिल, बाइनरी फॉर्मेट (जैसे PDF) के साथ थोड़ा संघर्ष करता है क्योंकि उन्हें AI के लिए "विज़ुअलाइज़" करना कठिन होता है।
  3. यह एक आदर्श साथी है: Cleverest का उद्देश्य मानव परीक्षकों या जटिल फज़िंग टूल्स को पूरी तरह से बदलना नहीं है। इसके बजाय, यह एक सुपर-फास्ट असिस्टेंट है जो काम शुरू करता है। यह टेस्ट का पहला ड्राफ्ट लिखता है, जिसे इंसान सुधार सकते हैं या जिसका उपयोग अन्य टेस्टिंग टूल्स को सुपरचार्ज करने के लिए किया जा सकता है।

संक्षेप में, Cleverest यह साबित करता है कि यदि आप AI को सॉफ्टवेयर परिवर्तन का स्पष्ट विवरण देते हैं, तो यह लगभग तुरंत वह टेस्ट लिख सकता है जिससे पता चल सके कि उस बदलाव ने किसी चीज़ को बिगाड़ा है या नहीं, जिससे डेवलपर्स के घंटों का काम बच जाता है।

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

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

Digest आज़माएँ →