← नवीनतम पेपर
🤖 machine learning

ExplainFuzz: Explainable and Constraint-Conditioned Test Generation with Probabilistic Circuits

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

मूल लेखक: Annaëlle Baiget, Jaron Maene, Seongmin Lee, Benjie Wang, Guy Van den Broeck, Miryung Kim

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

मूल लेखक: Annaëlle Baiget, Jaron Maene, Seongmin Lee, Benjie Wang, Guy Van den Broeck, Miryung Kim

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

कल्पना कीजिए कि आप एक विशाल, जटिल फैक्ट्री के गुणवत्ता नियंत्रण निरीक्षक (quality control inspector) हैं जो सॉफ्टवेयर बनाती है। आपका काम सॉफ्टवेयर पर "टेस्ट इनपुट" (जैसे अजीब वाक्य, विचित्र कोड, या अजीब डेटा फाइलें) फेंकना है ताकि यह देखा जा सके कि क्या वह टूट जाता है। यदि सॉफ्टवेयर क्रैश हो जाता है या अजीब व्यवहार करता है, तो आपने एक बग (bug) ढूंढ लिया है!

समस्या यह है: मशीन पर सही तरह के पत्थर कैसे फेंके जाएं?

पुराने तरीके: अंधे होकर पत्थर फेंकना

  1. "ग्रामर रोबोट" (Grammar-based Fuzzers):
    कल्पना कीजिए कि एक रोबोट है जो व्याकरण के नियम जानता है (जैसे "एक वाक्य में कर्ता और क्रिया होनी चाहिए")। यह एक व्याकरण की दृष्टि से सही वाक्य बना सकता है, जैसे "The cat sat on the mat."
  • दोष: यह संदर्भ (context) को नहीं समझता। यह बना सकता है: "The cat sat on the moon." व्याकरण की दृष्टि से सही, लेकिन अजीब और अवास्तविक। यह आसानी से यह भी नहीं बता सकता कि, "हे, मैं विशेष रूप से कुत्ते के बारे में एक वाक्य चाहता हूँ," बिना अपनी पूरी प्रक्रिया को फिर से शुरू किए। यह बस वही बदलता रहता है जो वह पहले से जानता है।
  1. "जादुई ब्लैक बॉक्स" (Large Language Models/LLMs):
    कल्पना कीजिए कि एक सुपर-स्मार्ट जादूगर है जिसने दुनिया की हर किताब पढ़ ली है। आप उससे एक टेस्ट वाक्य मांगते हैं, और वह एक बेहतरीन वाक्य देता है।
  • दोष: यह एक ब्लैक बॉक्स है। आपको नहीं पता कि उसने उन शब्दों को क्यों चुना। यदि आप पूछते हैं, "आपने ड्रैगन को क्यों शामिल किया?" तो वह बस कह सकता है, "क्योंकि यह सही लगा।" यह चलाने के लिए धीमा और महंगा है। यह दीवार पर कंकड़ फेंकने के लिए एक जादूगर को काम पर रखने जैसा है; यह काम तो करता है, लेकिन यह बहुत अधिक (overkill) है और आप परिणाम पर सटीक नियंत्रण नहीं रख सकते।
  1. "साधारण सांख्यिकीविद्" (Probabilistic CFGs):
    कल्पना कीजिए कि एक रोबोट है जो नियम भी जानता है और यह भी जानता है कि "The" के बाद आमतौर पर एक संज्ञा (noun) आती है।
  • दोष: यह मान लेता है कि हर विकल्प स्वतंत्र है। इसे यह नहीं पता कि यदि आप शब्द "Group" का उपयोग करते हैं, तो आप बाद में "By" शब्द का उपयोग करने की बहुत अधिक संभावना रखते हैं। यह इनपुट के विभिन्न हिस्सों के बीच सूक्ष्म संबंधों को मिस कर देता है।

नया समाधान: ExplainFuzz (एक "स्मार्ट आर्किटेक्ट")

पेपर ExplainFuzz को पेश करता है। इसे एक स्मार्ट आर्किटेक्ट के रूप में सोचें जो टेस्ट इनपुट बनाता है।

यह कैसे काम करता है, इस सरल उपमा का उपयोग करते हुए:

1. ब्लूप्रिंट सीखना (The Probabilistic Circuit)

केवल नियमों को याद करने के बजाय, आर्किटेक्ट वास्तविक दुनिया के हजारों उदाहरणों (जैसे वास्तविक SQL क्वेरी या XML फाइलें) का अध्ययन करता है। यह एक विशाल, पारदर्शी 3D मानचित्र (जिसे प्रोबेबिलिस्टिक सर्किट कहा जाता है) बनाता है कि वास्तव में इन इनपुट्स की संरचना कैसे होती है।

  • जादू: यह मानचित्र केवल यह नहीं कहता कि "A के बाद B आता है।" यह जटिल संबंधों को समझता है। यह जानता है: "यदि मैं 'Group' क्लॉज देखता हूँ, तो 90% संभावना है कि बाद में 'By' क्लॉज दिखाई देगा, और 10% संभावना है कि नहीं दिखेगा।" यह उस संदर्भ (context) को पकड़ता है जिसे अन्य विधियाँ मिस कर देती हैं।

2. "क्यों" बटन (Explainability)

जादुई जादूगर के विपरीत, यह आर्किटेक्ट पारदर्शी है। आप इससे सवाल पूछ सकते हैं:

  • "एक रैंडम इनपुट में 'JOIN' शब्द होने की कितनी संभावना है?"
  • "दिया गया है कि मेरे पास एक 'SELECT' स्टेटमेंट है, तो अगला सबसे संभावित शब्द क्या है?"
    आप मानचित्र को देख सकते हैं और देख सकते हैं कि संभावनाओं की गणना ठीक कैसे की जाती है। यह एक ब्लैक बॉक्स नहीं है; यह एक ग्लास बॉक्स है।

3. "कन्स्ट्रेंट" डायल (Conditioned Generation)

यह इसकी सुपरपावर है। आप आर्किटेक्ट को बता सकते हैं: "मैं एक टेस्ट केस बनाना चाहता हूँ, लेकिन इसमें 'GROUP BY' क्लॉज का होना अनिवार्य है।"

  • आर्किटेक्ट अपने 3D मानचित्र को देखता है, उस पथ को खोजता है जहाँ "GROUP BY" मौजूद है, और एक आदर्श, वास्तविक इनपुट बनाता है जो उस नियम को पूरा करता है।
  • यह केवल अनुमान नहीं लगाता; यह गणितीय रूप से गारंटी देता है कि इनपुट नियमों के अनुकूल है और आपकी विशिष्ट शर्त को पूरा करता है।

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

पेपर ने दो जटिल भाषाओं पर इसका परीक्षण किया: SQL (डेटाबेस क्वेरी) और XML (डेटा फाइलें)।

  • यथार्थवाद (Realism): ExplainFuzz द्वारा बनाए गए इनपुट "ग्रामर रोबोट" या "साधारण सांख्यिकीविद्" की तुलना में वास्तविक मानवीय डेटा के बहुत अधिक करीब थे। उनके निरर्थक होने की संभावना बहुत कम थी।
  • बग खोजना: जब उन्होंने सॉफ्टवेयर में बग खोजने के लिए इन इनपुट्स को फेंका:
    • पुराने "ग्रामर रोबोट" (Grammarinator) ने SQL मामलों में 35% और XML मामलों में 10% बग पाए।
    • ExplainFuzz ने SQL मामलों में 63% और XML मामलों में 100% बग पाए!
  • विविधता (Diversity): इसने केवल बार-बार एक ही तरह के बग नहीं ढूंढे। इसने सॉफ्टवेयर को तोड़ने के कई अधिक अनूठे तरीके खोजे क्योंकि यह डेटा के गहरे, छिपे हुए संबंधों को समझता था।

निचोड़ (The Bottom Line)

ExplainFuzz अंधे होकर पत्थर फेंकने वाले से एक गाइडेड मिसाइल सिस्टम में अपग्रेड करने जैसा है, जिसके पास लक्ष्य का स्पष्ट दृश्य है।

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

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

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

Digest आज़माएँ →