PBT-Bench: Benchmarking AI Agents on Property-Based Testing
यह शोध पत्र PBT-Bench प्रस्तुत करता है, जो 40 पायथन लाइब्रेरीज़ के माध्यम से 100 क्यूरेटेड समस्याओं का एक बेंचमार्क है जिसे दस्तावेज़ीकरण से सिमेंटिक इनवेरिएंट्स (semantic invariants) निकालने और प्रॉपर्टी-बेस्ड टेस्टिंग के लिए लक्षित इनपुट-जेनरेशन रणनीतियों को निर्मित करने की AI एजेंटों की क्षमता का मूल्यांकन करने के लिए डिज़ाइन किया गया है, जो यह प्रकट करता है कि हालांकि स्पष्ट स्कैफोल्डिंग (scaffolding) मध्यम क्षमता वाले मॉडलों की सहायता करती है, फिर भी सबसे शक्तिशाली LLMs के लिए भी महत्वपूर्ण प्रदर्शन अंतराल और मॉडल-विशिष्ट विफलताएं बनी रहती हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप सॉफ्टवेयर टूल्स की एक विशाल लाइब्रेरी में छिपे हुए दोषों को खोजने के लिए जासूसों (AI एजेंटों) की एक टीम को काम पर रख रहे हैं।
आमतौर पर, जब हम इन जासूसों का परीक्षण करते हैं, तो हम उन्हें एक विशिष्ट सुराग देते हैं: "दरवाजा नंबर 5 पर एक टूटा हुआ ताला है; जाओ इसे ठीक करो।" या, हम कहते हैं: "यहाँ एक विशिष्ट चाबी है जो काम नहीं करती; इसे साबित करने के लिए एक टेस्ट लिखें।"
लेकिन PBT-Bench एक बहुत कठिन सवाल पूछता है। यह कहता है: "यहाँ सॉफ्टवेयर लाइब्रेरी का निर्देश मैनुअल है। इसे पढ़ें। उन नियमों को समझें जिनका सॉफ्टवेयर को पालन करना चाहिए (जैसे 'एक सॉर्ट की गई लिस्ट हमेशा सॉर्ट की हुई रहनी चाहिए')। फिर, एक ऐसी मशीन का आविष्कार करें जो लाखों अलग-अलग परिदृश्यों (scenarios) को बेतरतीब ढंग से उत्पन्न करे ताकि वह सॉफ्टवेयर को उन नियमों को तोड़ने के लिए मजबूर कर सके।"
इसे प्रॉपर्टी-बेस्ड टेस्टिंग (Property-Based Testing - PBT) कहा जाता है। यह केवल एक विशिष्ट टूटी हुई चाबी को खोजने के बारे में नहीं है; यह एक ऐसी मशीन बनाने के बारे में है जो सॉफ्टवेयर को तब तक हिलाती (shake करती) रहे जब तक कि उसके रहस्य सामने न आ जाएं।
यहाँ इस पेपर द्वारा किए गए कार्यों का सरल उपमाओं (analogies) के साथ विवरण दिया गया है:
1. समस्या: "विशिष्ट सुराग" का जाल (The "Specific Clue" Trap)
AI के पिछले अधिकांश परीक्षण ऐसे थे जैसे किसी जासूस को अपराध स्थल की एक विशिष्ट फोटो देकर पूछना, "क्या आपने इसे देखा?"
- सीमा: यदि AI ने केवल उस फोटो को याद कर लिया है, तो वह पास हो जाता है। लेकिन सॉफ्टवेयर के वास्तविक बग बहुत चालाक होते हैं। वे केवल बहुत विशिष्ट, अजीब परिस्थितियों में ही दिखाई देते हैं (जैसे बारिश, हवा और एक विशिष्ट प्रकार के जूते का एक विशेष संयोजन)।
- अंतराल (Gap): मौजूदा परीक्षण यह नहीं देखते थे कि क्या AI खुद उन अजीब परिस्थितियों का आविष्कार कर सकता है। उन्होंने केवल यह जांचा कि क्या AI एक ज्ञात, सरल बग के लिए टेस्ट लिख सकता है।
2. समाधान: PBT-Bench (द "शेकिंग मशीन" लैब)
शोधकर्ताओं ने PBT-Bench नामक एक नई लैब बनाई।
- सेटअप: उन्होंने 40 वास्तविक दुनिया के पायथन (Python) सॉफ्टवेयर लाइब्रेरी (जैसे तारीखों, डेटा या गणित को संभालने वाले टूल्स) लिए।
- जाल (Traps): उन्होंने इन टूल्स में गुप्त रूप से 365 "स्टेल्थ बग्स" (stealth bugs) डाल दिए। ये कोई स्पष्ट गलतियाँ नहीं हैं; ये गहरे तार्किक दोष (logical errors) हैं।
- उपमा: कल्पना करें कि एक तराजू है जो 99% समय बिल्कुल सही काम करता है, लेकिन यदि आप एक ही समय में दो समान भारी पत्थर रखते हैं, तो वह अचानक सोचता है कि वजन शून्य है।
- चुनौती: AI एजेंटों को केवल यूजर मैनुअल (डॉक्यूमेंटेशन) दिया गया था। उन्हें नियमों को पढ़ना था, यह अनुमान लगाना था कि तराजू कहाँ टूट सकता है, और एक "रैंडम जनरेटर" (जिसे Hypothesis नामक टूल का उपयोग करके बनाया गया) लिखना था ताकि वे लाखों पत्थर के संयोजनों को आजमा सकें और उस खराबी को ढूंढ सकें।
3. कठिनाई के स्तर (The "Riddle" Scale)
उन्होंने बग्स को तीन स्तरों में वर्गीकृत किया:
- स्तर 1 (आसान पहेली): बग तब होता है जब आप कुछ स्पष्ट चीजें आजमाते हैं (जैसे तराजू पर बहुत भारी पत्थर रखना)।
- स्तर 2 (मध्यम पहेली): बग केवल तभी होता है जब आप दो विशिष्ट नियमों को मिलाते हैं (जैसे "पत्थर भारी होना चाहिए और कमरा अंधेरा होना चाहिए")।
- स्तर 3 (कठिन पहेली): यह एक "प्रोटोकॉल उल्लंघन" (protocol violation) है। यह केवल तभी होता है जब आप क्रम में गलत तरीके से क्रियाओं का एक विशिष्ट क्रम करते हैं, जैसे कि एक डांस स्टेप जो पूरे रूटीन को बिगाड़ देता है। यह AI के लिए समझना सबसे कठिन है।
4. प्रयोग: आठ जासूस, दो रणनीतियाँ
उन्होंने 8 अलग-अलग AI मॉडल्स (जैसे Claude, DeepSeek, Gemini, आदि) का परीक्षण दो अलग-अलग निर्देशों का उपयोग करके किया:
- रणनीति A (ओपन-एंडेड डिटेक्टिव): "एक बग खोजो और एक टेस्ट लिखो।" (कोई संकेत नहीं)।
- रणनीति B (स्कैफोल्डिंग डिटेक्टिव): "यहाँ 'Hypothesis' नामक एक विशिष्ट टूल है। यहाँ एक टेम्पलेट है। यहाँ उन नियमों के प्रकार दिए गए हैं जिन्हें आपको खोजना चाहिए। अब एक बग खोजो।"
5. परिणाम: बग किसने ढूंढे?
- "मध्यम" जासूस संकेतों के साथ जीते: वे AI मॉडल जो कोडिंग में पहले से ही काफी अच्छे थे लेकिन सबसे अच्छे नहीं थे, उन्हें "स्कैफोल्डिंग" निर्देश देने पर भारी सुधार (20% से अधिक) हुआ। यह अंधेरे कमरे में उन्हें टॉर्च देने जैसा था।
- "शीर्ष" जासूसों को संकेतों की आवश्यकता नहीं थी: सबसे बुद्धिमान AI (Claude Sonnet 4.6) अपने आप में अच्छा था। विशिष्ट टेम्पलेट देने से थोड़ा मदद मिली, लेकिन अन्य मॉडल्स की तुलना में उतना नहीं जितना उन्हें मदद मिली।
- "कमजोर" जासूस उलझ गए: दो मॉडल्स के लिए, विशिष्ट निर्देशों ने उन्हें वास्तव में खराब बना दिया। यह एक शेफ को सख्त रेसिपी देने जैसा है जो बेहतर ढंग से सुधार (improvisation) कर सकता है; रेसिपी ने उन्हें भ्रमित कर दिया।
- "अनसुलझे" बग: सबसे अच्छे AI के साथ भी, कुछ बग छिपे रहे। दो विशिष्ट बग इतने पेचीदा थे कि किसी भी एक से अधिक 16 अलग-अलग AI सेटअप उन्हें विश्वसनीय रूप से नहीं ढूंढ सके। यह दिखाता है कि अभी भी सुधार की बहुत गुंजाइश है।
6. मुख्य निष्कर्ष (The Big Takeaway)
यह पेपर सिद्ध करता है कि प्रॉपर्टी-बेस्ड टेस्टिंग एक अनूठा कौशल है। सिर्फ इसलिए कि एक AI कोड लिखने में अच्छा है, इसका मतलब यह नहीं है कि वह रैंडम परिदृश्यों का आविष्कार करके कोड का परीक्षण करने में भी अच्छा है।
- "यूनियन" प्रभाव: यदि आप सभी अलग-अलग AI मॉडल्स के परिणामों को मिलाते हैं, तो वे 99.5% बग्स को ढूंढ लेते हैं। यह सुझाव देता है कि हालांकि कोई भी एकल AI पूर्ण नहीं है, लेकिन उनका एक समूह (एक "एन्सेम्बल") लगभग सब कुछ पकड़ सकता है।
- "अज्यूम" (Assume) का जाल: AI ने एक सामान्य गलती की, जिसमें उसने
assume()नामक एक फ़िल्टर का उपयोग किया। इसने कहा, "आइए केवल उन मामलों का परीक्षण करें जहाँ X सत्य है," और अनजाने में उसी अजीब मामले को बाहर कर दिया जहाँ बग मौजूद था। यह एक जासूस के कहने जैसा है, "मैं चोर को तभी देखूंगा अगर उसने टोपी पहनी हो," और टोपी न पहनने वाले चोर को मिस कर देना।
सारांश
शोधकर्ताओं ने AI एजेंटों के लिए एक जिम बनाया है ताकि वे सॉफ्टवेयर में छिपी दरारों को खोजने के लिए उसे "हिलाने" (shake करने) का अभ्यास कर सकें। उन्होंने पाया कि हालांकि AI बेहतर हो रहा है, फिर भी वह सबसे जटिल, बहु-चरणीय तार्किक जाल के साथ संघर्ष करता है। उन्होंने यह भी पाया कि AI को एक विशिष्ट "टेस्टिंग फ्रेमवर्क" देने से कमजोर मॉडल्स को बहुत मदद मिलती है, लेकिन कभी-कभी यह सबसे मजबूत मॉडल्स को भी भ्रमित कर सकता है।
उन्होंने अपने सभी टूल्स और डेटा को जारी कर दिया है ताकि अन्य शोधकर्ता भविष्य के बेहतर "जासूस" बनाने का प्रयास कर सकें।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।