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

Synthesizing File-Level Data for Unit Test Generation with Chain-of-Thoughts via Self-Debugging

यह शोध पत्र एक नवीन स्व-डीबगिंग डेटा-डिस्टिलेशन दृष्टिकोण प्रस्तावित करता है जो विश्वसनीय चेन-ऑफ-थॉट स्पष्टीकरणों के साथ उच्च-गुणवत्ता वाले यूनिट टेस्ट प्रशिक्षण उदाहरण उत्पन्न करता है, जिसके परिणामस्वरूप एक फाइन-ट्यून्ड मॉडल प्राप्त होता है जो टेस्ट असांशन पास दरों, ब्रांच कवरेज और म्यूटेशन स्कोर में अत्याधुनिक वाणिज्यिक मॉडलों से काफी बेहतर प्रदर्शन करता है।

मूल लेखक: Ziyue Hua, Tianyu Chen, Yeyun Gong, Shuai Lu, Peng Cheng, Qinglin Zhu, Yibo He, Yingjie Fu, Wenpin Jiao, Wei Yang, Tao Xie

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

मूल लेखक: Ziyue Hua, Tianyu Chen, Yeyun Gong, Shuai Lu, Peng Cheng, Qinglin Zhu, Yibo He, Yingjie Fu, Wenpin Jiao, Wei Yang, Tao Xie

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

कल्पना कीजिए कि आप एक बहुत ही बुद्धिमान लेकिन अनुभवहीन प्रशिक्षु (apprentice) को एक जटिल मशीन के लिए मैनुअल लिखना सिखाने की कोशिश कर रहे हैं। मैनुअल को एकदम सटीक होना चाहिए: इसमें यह स्पष्ट रूप से बताया जाना चाहिए कि मशीन कैसे काम करती है, और इसमें "तनाव परीक्षण" (stress tests) का एक सेट भी शामिल होना चाहिए जो यह साबित करे कि मशीन को उसकी सीमा तक धकेलने पर भी वह टूटती नहीं है।

यह शोध पत्र एक नई विधि पेश करता है जिसे Repo-Smith कहा जाता है, जो एक AI (एक लार्ज लैंग्वेज मॉडल) को सॉफ्टवेयर कोड के लिए ये सटीक स्ट्रेस टेस्ट लिखना सीखने में मदद करती है।

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

समस्या: "कॉपी-पेस्ट" करने वाला प्रशिक्षु

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

  • समस्या: वास्तविक दुनिया के टेस्ट बेहतरीन होते हैं, लेकिन उनके साथ कोई "सोचने की प्रक्रिया" (thought process) जुड़ी नहीं होती। यह एक प्रशिक्षु को बना-बनाया केक दिखाने जैसा है, लेकिन उसे यह नहीं बताया जाता कि आपने चीनी क्यों डाली या आपको कैसे पता चला कि ओवन पर्याप्त गर्म था।
  • विकल्प: हम AI से कह सकते हैं कि वह टेस्ट लिखते समय खुद से एक "सोचने की प्रक्रिया" (Chain-of-Thought) बनाए। लेकिन शोध में पाया गया कि जब AI उस टेस्ट को समझाने की कोशिश करता है जिसे उसने अभी-अभी खुद बनाया है, तो वह अक्सर झूठ बोलता है या भ्रमित हो जाता है। यह उस प्रशिक्षु जैसा है जो अपनी बनाई हुई रेसिपी को समझाने की कोशिश कर रहा है; वह शायद कोई चरण भूल जाए या कोई नकली सामग्री बता दे।

समाधान: "स्व-सुधार" कार्यशाला (Self-Correcting Workshop)

लेखकों ने एक सिस्टम बनाया जिसे Repo-Script कहा जाता है, जो एक मास्टर शिल्पकार की कार्यशाला की तरह काम करता है। AI को केवल एक बार टेस्ट लिखने के लिए कहने के बजाय, वे उसे एक कठोर प्रशिक्षण चक्र (training loop) से गुजारते हैं।

इसे एक वीडियो गेम की तरह समझें जहाँ AI को एक लेवल पार करना होता है (टेस्ट लिखना), लेकिन यदि वह विफल हो जाता है, तो उसे एक संकेत मिलता है और उसे फिर से प्रयास करना पड़ता है।

चरण 1: पहला प्रयास (ड्राफ्ट)

AI कोड के एक टुकड़े (फोकल फाइल) को देखता है और एक टेस्ट फाइल और अपनी सोच की व्याख्या लिखने की कोशिश करता है।

  • उपमा: प्रशिक्षु स्ट्रेस टेस्ट का एक ड्राफ्ट लिखता है।

चरण 2: "स्व-डीबगिंग" लूप (ट्रायल रन)

यही असली जादू है। सिस्टम स्वचालित रूप से AI द्वारा लिखे गए टेस्ट को एक वास्तविक कंप्यूटर वातावरण में चलाता है।

  • यदि टेस्ट क्रैश हो जाता है: सिस्टम AI को बताता है, "आपने एक ऐसा दरवाजा खोलने की कोशिश की जो मौजूद ही नहीं है। अपने इम्पोर्ट स्टेटमेंट्स (import statements) को ठीक करें।"
  • यदि टेस्ट चलता है लेकिन उत्तर गलत है: सिस्टम कहता है, "आपने गलत बॉक्स चेक किया है। अपने लॉजिक को ठीक करें।"
  • यदि टेस्ट चलता है लेकिन कोई कोना छूट गया है: सिस्टम कहता है, "आपने मशीन का पिछला हिस्सा टेस्ट नहीं किया। उसके लिए एक टेस्ट जोड़ें।"

AI फिर अपनी गलतियों को सुधारता है और टेस्ट का एक नया संस्करण लिखता है। वह ऐसा बार-बार करता है (5 राउंड तक), जिससे वह हर बार बेहतर होता जाता है।

चरण 3: "संपीड़न" (अंतिम पाठ)

यहाँ एक चतुर तरकीब है। टेस्ट ठीक करने के बाद, AI के पास विचारों का एक लंबा, अस्त-व्यस्त इतिहास होता है: "पहले मैंने X सोचा, फिर मुझे एहसास हुआ कि मैं गलत था, फिर मैंने Y आज़माया, फिर मैंने एक त्रुटि देखी, फिर मैंने इसे ठीक किया..."

सिस्टम AI को इस अस्त-व्यस्त इतिहास को एक साफ, सटीक कहानी में कंप्रेस (compress) करने के लिए कहता है।

  • उपमा: कल्पना कीजिए कि प्रशिक्षु ने अपनी गलतियों और सुधारों की एक 50 पन्नों की डायरी लिखी है। सिस्टम उससे इसे एक सटीक 2-पन्नों के गाइड के रूप में फिर से लिखने के लिए कहता है जो कहता है, "यहाँ बताया गया है कि आपको यह टेस्ट वास्तव में कैसे बनाना चाहिए, जिसमें वे सबक भी शामिल हैं जो हमने सीखे हैं।"
  • यह एक उच्च-गुणवत्ता वाली "सोचने की प्रक्रिया" बनाता है जो वास्तव में सत्य है क्योंकि इसी की वजह से एक काम करने वाला टेस्ट तैयार हुआ है।

परिणाम: एक "सुपर-प्रशिक्षु"

शोधकर्ताओं ने इस पद्धति का उपयोग 74,518 उदाहरणों का एक विशाल डेटासेट बनाने के लिए किया। प्रत्येक उदाहरण में शामिल है:

  1. वह कोड जिसे टेस्ट किया जाना है।
  2. सटीक टेस्ट फाइल।
  3. सटीक, कंप्रेस्ड "सोचने की प्रक्रिया" जो वहां तक पहुँचने के तरीके की व्याख्या करती है।

इसके बाद उन्होंने इस डेटासेट का उपयोग करके एक नए AI मॉडल को प्रशिक्षित किया। परिणाम प्रभावशाली थे:

  • नए AI ने 36.17% बार टेस्ट पास किए (उस समय उपलब्ध सर्वश्रेष्ठ व्यावसायिक मॉडल्स के लगभग 27% की तुलना में)।
  • इसने कोड के अधिक हिस्सों को कवर किया (43.90% ब्रांच कवरेज)।
  • यह छिपे हुए बग्स को खोजने में बहुत बेहतर था (88.66% म्यूटेशन स्कोर)।

मुख्य निष्कर्ष

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

संक्षेप में: Repo-Smith AI की गलतियों को उसके सबसे अच्छे शिक्षक में बदल देता है।

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

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

Digest आज़माएँ →