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

Call-Chain-Aware LLM-Based Test Generation for Java Projects

CAT जावा प्रोजेक्ट्स के लिए एक नवीन LLM-आधारित टेस्ट जनरेशन दृष्टिकोण है जो कॉल-चेन और डिपेंडेंसी कॉन्टेक्स्ट को प्रॉम्प्ट्स में स्पष्ट रूप से शामिल करने के लिए स्टैटिक एनालिसिस का उपयोग करके कोड कवरेज में सुधार करता है।

मूल लेखक: Guancheng Wang, Qinghua Xu, Lionel C. Briand, Zhaoqiang Guo, Kui Liu

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

मूल लेखक: Guancheng Wang, Qinghua Xu, Lionel C. Briand, Zhaoqiang Guo, Kui Liu

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

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

समस्या: "केवल रेसिपी वाला" रोबोट

वर्तमान AI (लार्ज लैंग्वेज मॉडल्स) उन बहुत स्मार्ट रोबोट्स की तरह हैं जिन्होंने लाखों कुकबुक्स पढ़ रखी हैं। यदि आप उनसे "एक कप केक बनाने" के लिए कहते हैं, तो वे अद्भुत काम करते हैं। वे सामग्री और चरणों को जानते हैं।

हालाँकि, यदि आप उनसे "एक पांच-स्तरीय वेडिंग केक बनाने" के लिए कहते हैं, तो वे अक्सर विफल हो जाते हैं। क्यों? क्योंकि एक वेडिंग केक केवल एक रेसिपी नहीं है; यह निर्भरताओं का एक विशाल जाल है। आप बीच वाले स्तर (middle tier) को तब तक नहीं बना सकते जब तक कि निचला स्तर स्थिर न हो जाए। आप केक पर फ्रॉस्टिंग तब तक नहीं कर सकते जब तक आपने बटरक्रीम न बना ली हो। आप वास्तव में तब तक शुरू भी नहीं कर सकते जब तक आपने एक विशिष्ट फार्म से एक विशिष्ट ऑर्गेनिक आटा प्राप्त न कर लिया हो।

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

समाधान: CAT (एक "मास्टर शेफ असिस्टेंट")

शोधकर्ताओं ने CAT नामक एक नया सिस्टम बनाया है। केवल एक छोटे से घटक की रेसिपी देने के बजाय, CAT एक मास्टर शेफ असिस्टेंट की तरह कार्य करता है जो रोबोट के कटोरा छूने से पहले ही पूरा किचन तैयार कर देता है।

CAT स्टैटिक एनालिसिस (Static Analysis) का उपयोग करता है। इसे एक "प्री-फ्लाइट इंस्पेक्शन" की तरह समझें। AI द्वारा टेस्ट लिखना शुरू करने से पहले, CAT पूरे "किचन" (पूरे सॉफ्टवेयर प्रोजेक्ट) को स्कैन करता है और तीन महत्वपूर्ण चीजों का मानचित्र तैयार करता है:

  1. कॉल चेन (कार्यों का क्रम - The Order of Operations): CAT AI को बताता है, "फ्रॉस्टिंग तक पहुँचने के लिए, आपको पहले बैटर मिलाना होगा, फिर उसे बेक करना होगा, और फिर उसे ठंडा होने देना होगा।" यह घटनाओं के क्रम को मैप करता है ताकि AI उस केक पर फ्रॉस्टिंग करने की कोशिश न करे जो अभी तक बेक ही नहीं हुआ है।
  2. डिपेंडेंसी कॉन्टेक्स्ट (सामान की सूची - The Dependency Context): CAT पहचानता है कि हर एक चीज़ की आवश्यकता है। "आपको केवल आटा नहीं चाहिए; आपको इस विशिष्ट ब्रांड का आटा चाहिए, जिसके लिए इस विशिष्ट मिक्सर की आवश्यकता है, जिसके लिए इस विशिष्ट पावर आउटलेट की आवश्यकता है।" यह AI को ठीक से बताता है कि टेस्ट शुरू करने के लिए उसे आवश्यक वस्तुओं को कैसे "बनाना" है।
  3. थर्ड-पार्टी कनेक्शन (विशेष आपूर्तिकर्ता - The Third-Party Connections): कभी-कभी, एक रेसिपी के लिए किसी बाहरी वेंडर से विशेष सामग्री की आवश्यकता होती है। CAT इन "बाहरी" निर्भरताओं की पहचान करता है ताकि AI इस बात पर न अटक जाए कि वे कहाँ से आए।

यह कैसे काम करता है (कार्यप्रवाह/Workflow)

CAT एक लूप का पालन करता है:

  • चरण 1: तैयारी (जनरेशन): CAT किचन का मानचित्र बनाता है, AI को "मास्टर रेसिपी" (प्रॉम्ट) सौंपता है, और कहता है, "यहाँ क्रम और सामग्रियां दी गई हैं। अब, टेस्ट लिखें।"
  • चरण 2: स्वाद परीक्षण (सुधारना - The Taste Test): यदि AI एक ऐसा टेस्ट लिखता है जिसका "स्वाद खराब है" (चलने में विफल या त्रुटियों के साथ), तो CAT हार नहीं मानता। यह "खराब स्वाद" (एरर मैसेज) को लेता है, उसे AI को दिखाता है, और कहता है, "आप यहाँ चीनी भूल गए हैं; फिर से प्रयास करें।" यह तब तक ठीक करता रहता है जब तक कि टेस्ट काम न करने लगे या इसका समय समाप्त न हो जाए।

परिणाम: एक बहुत बेहतर बेकर

शोधकर्ताओं ने वास्तविक दुनिया के सॉफ्टवेयर प्रोजेक्ट्स का उपयोग करके CAT का मौजूदा "सर्वश्रेष्ठ" तरीकों के मुकाबले परीक्षण किया। परिणाम प्रभावशाली थे:

  • बेहतर कवरेज: CAT कोड के हर हिस्से को "चखने" (लाइन और ब्रांच कवरेज) में काफी बेहतर था। इसने केवल केक के ऊपरी हिस्से की जांच नहीं की; इसने बीच के हिस्से, निचले हिस्से और फिलिंग की भी जांच की।
  • वास्तविक दुनिया के लिए तैयार: यहाँ तक कि जब इसका परीक्षण बिल्कुल नए सॉफ्टवेयर पर किया गया जिसे AI ने पहले कभी नहीं देखा था (जिसका अर्थ था कि वह केवल उत्तर को "याद" नहीं कर सकता था), तब भी CAT पुराने तरीकों की तुलना में बहुत बेहतर प्रदर्शन करता रहा।

संक्षेप में

पुराना तरीका: AI को एक एकल निर्देश देना और यह उम्मीद करना कि वह बाकी की जटिल दुनिया को खुद समझ लेगा।
CAT का तरीका: AI को कनेक्शन का एक मानचित्र, आवश्यक उपकरणों की एक सूची, और कार्यों के सही क्रम का एक मार्गदर्शक देना ताकि वह एक जटिल सिस्टम को सफलतापूर्वक नेविगेट कर सके।

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

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

Digest आज़माएँ →