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

SPARC: Scenario Planning and Reasoning for Automated C Unit Test Generation

SPARC एक न्यूरो-सिम्बोलिक फ्रेमवर्क है जो कंट्रोल फ्लो ग्राफ विश्लेषण, वैलिडेटेड ऑपरेशन मैप्स और इटरेटिव कंपाइलर फीडबैक को जोड़कर उच्च-स्तरीय इंटेंट और C की कठोर बाधाओं के बीच के अंतर को पाटता है, जिससे मौजूदा LLM-आधारित या सिम्बोलिक एक्जीक्यूशन दृष्टिकोणों की तुलना में काफी अधिक प्रभावी और रखरखाव योग्य स्वचालित यूनिट टेस्ट उत्पन्न होते हैं।

मूल लेखक: Jaid Monwar Chowdhury, Chi-An Fu, Reyhaneh Jabbarvand

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

मूल लेखक: Jaid Monwar Chowdhury, Chi-An Fu, Reyhaneh Jabbarvand

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

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

यह पेपर एक नया तरीका पेश करता है जिसे SPARC कहा जाता है, जो इस रोबोट को एक परफेक्ट "यूजर मैनुअल" (यूनिट टेस्ट) लिखने में मदद करता है।

SPARC कैसे काम करता है, इसे सरल उपमाओं (analogies) में तोड़कर यहाँ समझाया गया है:

समस्या: द "लीप-टू-कोड" ट्रैप (Leap-to-Code Trap)

यदि आप बस एक मानक AI (जैसे कि एक "वैनिला प्रॉम्प्ट") से कहें कि "इस मशीन के लिए एक टेस्ट लिखो," तो वह अक्सर घबरा जाता है। वह एक ही बार में पूरा मैनुअल लिखने का अनुमान लगाने की कोशिश करता है।

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

समाधान: SPARC (द आर्किटेक्ट अप्रोच)

SPARC खेल बदल देता है। AI को एक बार में पूरा मैनुअल लिखने के लिए कहने के बजाय, SPARC एक कंस्ट्रक्शन आर्किटेक्ट की तरह काम करता है जो काम को चार अलग-अलग, प्रबंधनीय चरणों में विभाजित करता है।

1. ब्लूप्रिंट (कंट्रोल फ्लो ग्राफ - Control Flow Graph)

सबसे पहले, SPARC केवल कोड को देखता ही नहीं; यह हर उस संभावित रास्ते का एक नक्शा बनाता है जिससे मशीन गुजर सकती है।

  • उपमा: एक भूलभुलैया की कल्पना करें। भूलभुलैया से बाहर निकलने का रास्ता खोजने का अनुमान लगाने के बजाय, SPARC कागज पर हर गलियारा, डेड एंड और शॉर्टकट खींच देता है। उसे पता है कि मशीन के माध्यम से जाने के कितने तरीके हैं।

2. टूलबॉक्स (ऑपरेशन मैप - Operation Map)

AI द्वारा कोड की एक भी लाइन लिखने से पहले, SPARC उसे अनुमत औजारों की एक सख्त सूची देता है।

  • उपमा: यदि आप एक घर बना रहे हैं, तो आप बिल्डर को यह अंदाज़ा नहीं लगाने देते कि हथौड़ा कैसा दिखता है। आप उन्हें एक विशिष्ट बॉक्स थमा देते हैं जिसमें केवल वही हथौड़े, कीलें और आरी हैं जो वास्तव में आपके गैरेज में मौजूद हैं। यह AI को ऐसे नकली औजारों का आविष्कार करने से रोकता है जो काम नहीं करते।

3. सिनेरियो प्लानर (पाथ-टारगेटेड सिंथेसिस - Path-Targeted Synthesis)

अब, SPARC AI को कहता है: "ठीक है, अब पाथ A का टेस्ट करते हैं।" AI उस एक विशेष पथ के लिए एक टेस्ट लिखता है। फिर, "अब पाथ B का टेस्ट करते हैं।"

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

4. सेफ्टी इंस्पेक्टर (इटरेटिव वैलिडेशन - Iterative Validation)

AI द्वारा एक टेस्ट लिखने के बाद, SPARC उसे चलाकर देखता है। यदि टेस्ट क्रैश होता है या विफल हो जाता है, तो वह उसे केवल फेंक नहीं देता। वह त्रुटि को AI को दिखाता है और कहता है, "इस विशिष्ट गलती को ठीक करो," और फिर से प्रयास करता है।

  • उपमा: यह एक शिक्षक की तरह है जो होमवर्क चेक कर रहा है। यदि आप गणित का सवाल गलत करते हैं, तो शिक्षक गलती पर गोला लगाता है और कहता है, "फिर से कोशिश करो," बजाय इसके कि वह आपको सीधे शून्य दे दे और आगे बढ़ जाए। SPARC टेस्ट को ठीक करने के लिए ऐसा तीन बार तक करता है।

यह बेहतर क्यों है? (परिणाम)

शोधकर्ताओं ने SPARC का परीक्षण 59 वास्तविक दुनिया के C प्रोजेक्ट्स (जैसे डेटा सॉर्ट करने या इमेज हैंडल करने वाले जटिल एल्गोरिदम) पर किया।

  • बेहतर कवरेज: जबकि "वैनिला" AI लगभग 30% पेचीदा रास्तों को मिस कर देता था, SPARC ने लगभग सभी को खोज लिया। यह एक वीडियो गेम लेवल में छिपे हुए हर जाल को खोजने जैसा है।
  • कम हैलुसिनेशन (Hallucinations): क्योंकि SPARC ने AI को एक सख्त "टूलबॉक्स" (ऑपरेशन मैप) दिया, इसलिए AI ने नकली फंक्शन्स बनाना बंद कर दिया।
  • मानवीय स्वीकृति: जब वास्तविक मानव डेवलपर्स ने टेस्ट देखे, तो उन्होंने कहा कि SPARC के टेस्ट पढ़ने में बहुत आसान, तार्किक और बनाए रखने में आसान थे, जबकि AI के शुरुआती प्रयास काफी कठिन थे।
  • लागत प्रभावी: आश्चर्यजनक रूप से, SPARC सबसे महंगे, शक्तिशाली AI मॉडल्स की तरह ही सस्ते और छोटे AI मॉडल्स के साथ भी उतना ही अच्छा काम करता है। यहाँ प्रक्रिया (ब्लूप्रिंट और टूलबॉक्स) AI की बौद्धिक क्षमता से अधिक महत्वपूर्ण थी।

मुख्य निष्कर्ष (The Bottom Line)

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

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

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

Digest आज़माएँ →