From Business Requirements to Test Assertions: Evaluating LLM-Generated Oracles on Real Bugs
यह शोध पत्र वास्तविक दुनिया के बग्स के लिए प्राकृतिक-भाषा व्यावसायिक आवश्यकताओं से सीधे सामान्यीकरण योग्य टेस्ट ओरेकल (test oracles) उत्पन्न करने की पांच लार्ज लैंग्वेज मॉडल्स की क्षमता का मूल्यांकन करने वाले एक पायलट अध्ययन को प्रस्तुत करता है, जिसमें यह पाया गया कि हालांकि एलएलएम (LLMs) गैर-मामूली सफलता प्राप्त करते हैं, लेकिन उनका प्रदर्शन मॉडल और बग के अनुसार काफी भिन्न होता है, और आवश्यकता के गुणों तथा ओरेकल सटीकता के बीच कोई पता लगाने योग्य रैखिक संबंध नहीं है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक जासूस हैं जो एक रहस्य सुलझाने की कोशिश कर रहे हैं, लेकिन आपके पास न तो अपराध स्थल की तस्वीरें हैं और न ही संदिग्ध का इकबालिया बयान। आपके पास केवल पीड़ित के बॉस का एक अस्पष्ट नोट है: "चोर शायद चमकदार लाल डिब्बा ले गया होगा, लेकिन हो सकता है कि वह नीला वाला हो, और उन्होंने निश्चित रूप से हरा वाला नहीं लिया।" आपका काम एक नियम पुस्तिका (एक "ओरेकल") लिखना है जो आपको भविष्य में चोर को पहचानने का सटीक तरीका बताए।
यही वह चुनौती है जिस पर यह शोध पत्र काम करता है। सॉफ्टवेयर की दुनिया में, एक "टेस्ट ओरेकल" (test oracle) उस नियम पुस्तिका की तरह होता है जो कहता है, "यदि प्रोग्राम X करता है, तो उत्तर Y होना चाहिए।" वर्षों से, ये नियम पुस्तिकाएं लिखना एक बड़ा सिरदर्द रहा है, खासकर उन गैर-विशेषज्ञों के लिए जो कोड लिखने के लिए AI का उपयोग कर रहे हैं लेकिन यह जांच नहीं सकते कि वह वास्तव में सही है या नहीं।
शोधकर्ताओं ने पूछा: क्या एक अत्यंत बुद्धिमान AI (एक लार्ज लैंग्वेज मॉडल, या LLM) उस अस्पष्ट बॉस के नोट को पढ़ सकता है और बिना वास्तविक कोड या अपराध स्थल को देखे, अपने आप एक सटीक नियम पुस्तिका लिख सकता है?
यह पता लगाने के लिए, उन्होंने 10 वास्तविक, ऐतिहासिक सॉफ्टवेयर बग्स (जैसे डिजिटल मशीन में छोटी गड़बड़ियाँ) का उपयोग करके एक "ट्रेनिंग कैंप" तैयार किया। प्रत्येक बग के लिए, उन्होंने एक चतुर काम किया:
- उन्होंने देखा कि बग को कैसे ठीक किया गया।
- उन्होंने उस सुधार को सरल अंग्रेजी "बिजनेस रिक्वायरमेंट" (वही अस्पष्ट नोट) में अनुवादित किया।
- उन्होंने स्वयं एक परफेक्ट नियम पुस्तिका ( "गोल्ड स्टैंडर्ड") लिखी।
- फिर, उन्होंने पांच अलग-अलग AI मॉडलों (जैसे DeepSeek-V3, Llama-3, और Mistral-7B) से केवल उस सरल अंग्रेजी नोट का उपयोग करके अपनी नियम पुस्तिकाएं लिखने को कहा।
बड़ी खोज: AI एक "सपना देखने वाला" (Dreamer) है, "वास्तविकतावादी" (Realist) नहीं
परिणाम "वाह" और "रुको ज़रा" का मिश्रण थे।
सबसे पहले, AI मॉडल ऐसी नियम पुस्तिकाएं लिख सकते थे जो काम करती थीं! वे केवल बड़बड़ाहट नहीं थीं। वास्तव में, उन्होंने कुछ बग्स पर काम काफी अच्छे से किया। उदाहरण के लिए, टाइम ज़ोन वाले एक बग (बग 8) पर, हर एक AI मॉडल ने परफेक्ट स्कोर प्राप्त किया। लेकिन अंकों को एक विशिष्ट तरीके से गिनने वाले एक कठिन बग (बग 3) पर, मॉडल संघर्ष करते दिखे, जहाँ स्कोर गिरकर 0.20 (1.0 के पैमाने पर जहाँ 1.0 पूर्ण है) तक पहुँच गया।
सबसे मजेदार बात यह है: AI मॉडल नियम के विचार का पालन करने में, नियम की वास्तविकता की तुलना में बेहतर थे।
जब शोधकर्ताओं ने AI की नियम पुस्तिका की तुलना "गोल्ड स्टैंडर्ड" (मानव द्वारा लिखित विचार कि क्या होना चाहिए) से की, तो AI औसतन 88% बार उससे मेल खा गया। लेकिन जब उन्होंने AI की नियम पुस्तिका की तुलना वास्तविक कंप्यूटर कोड ("सिस्टम अंडर टेस्ट") से की, तो मिलान घटकर लगभग 85% रह गया।
इसे ऐसे समझें: यदि आप किसी ड्राइंग के आधार पर AI से एक "तेज़ कार" का वर्णन करने के लिए कहते हैं, तो वह एक चिकनी, लाल स्पोर्ट्स कार का वर्णन कर सकता है (ड्राइंग से मेल खाता हुआ)। लेकिन यदि गैरेज में वास्तविक कार एक जंग लगी, धीमी ट्रक है, तो AI का वर्णन ट्रक से मेल नहीं खाएगा। AI शब्दों (रिक्वायरमेंट) को समझने में इतना अच्छा है कि वह कभी-कभी यह भूल जाता है कि वास्तव में कोड क्या करता है। वह एक "स्पेसिफिकेशन ड्रीमर" (विवरण का स्वप्नद्रष्टा) है, न कि "कोड रियलिस्ट" (कोड का यथार्थवादी)।
"कठिनाई" का मिथक: यह नोट के कितना भ्रमित करने वाला होने के बारे में नहीं है
शोधकर्ताओं ने सोचा: "क्या AI इसलिए विफल हो रहा है क्योंकि नोट्स बहुत भ्रमित करने वाले हैं या उनमें बहुत अधिक तकनीकी शब्दावली है?" उन्होंने प्रत्येक नोट को 1 से 5 के पैमाने पर "तकनीकी" और "अस्पष्ट" (vague) होने के लिए रेट किया।
उन्हें एक पैटर्न मिलने की उम्मीद थी: "ओह, नोट जितना अधिक भ्रमित करने वाला होगा, AI उतना ही खराब प्रदर्शन करेगा।"
लेकिन ऐसा नहीं हुआ।
शोधकर्ताओं ने पाया कि नोट के कितने भ्रमित करने वाला होने और AI के प्रदर्शन के बीच कोई स्पष्ट संबंध नहीं है। चाहे नोट बहुत सरल था या बहुत तकनीकी, AI का प्रदर्शन किसी अनुमानित रेखा का पालन नहीं करता था। AI विशिष्ट प्रकार के तर्क (जैसे जटिल गणित या यूनिकोड वर्ण) के साथ संघर्ष करता था, चाहे प्रश्न को किसी भी तरह से प्रस्तुत किया गया हो।
हम कितने आश्वस्त हैं?
लेखक सावधानी बरतते हुए कहते हैं कि यह एक पायलट अध्ययन है—एक छोटा, प्रारंभिक प्रयोग यह देखने के लिए कि क्या यह विचार संभव है। उन्होंने एक ही प्रोजेक्ट (Java का "Lang" लाइब्रेरी) के 10 बग्स का परीक्षण किया। वे यह दावा नहीं कर रहे हैं कि उन्होंने इस समस्या को "हल" कर दिया है या AI अब हर जगह मानव परीक्षकों की जगह ले सकता है।
उन्होंने पाया कि:
- हाँ, AI सरल अंग्रेजी से उपयोगी नियम पुस्तिकाएं बना सकता है।
- हाँ, AI आवश्यकता के इरादे (intent) से मेल खाने में, कोड की वास्तविकता की तुलना में बेहतर है।
- नहीं, आवश्यकता की "भ्रमित करने वाली प्रकृति" यह भविष्यवाणी नहीं करती कि AI कैसा प्रदर्शन करेगा।
- लेकिन, AI अभी भी गलतियाँ करता है, विशेष रूप से कठिन गणित या अजीब वर्णों (characters) को संभालने में, और कमजोर मॉडल कभी-कभी ऐसा कोड लिखते हैं जो चलता भी नहीं है।
निष्कर्ष
यह पेपर सुझाव देता है कि AI बिजनेस रिक्वायरमेंट्स से टेस्ट रूल्स लिखने के लिए एक आशाजनक सहायक है, जो एक मददगार इंटर्न की तरह काम करता है जो बॉस के विजन को पूरी तरह से समझता है लेकिन वास्तविक मशीन के सूक्ष्म और जटिल विवरणों को मिस कर सकता है। यह कोई जादुई छड़ी नहीं है जो सब कुछ हल कर देती है, लेकिन यह एक शक्तिशाली नया उपकरण है जो हमें बग्स को तेज़ी से पकड़ने में मदद कर सकता है—यदि हम इसके काम की दोबारा जांच करना याद रखें, खासकर जब नंबर जटिल होते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।