← नवीनतम पेपर
💻 computer science

MR-Adopt: Automatic Deduction of Input Transformation Function for Metamorphic Testing

MR-Adopt एक नवीन दृष्टिकोण है जो बड़े भाषा मॉडल (large language models) और डेटा-फ्लो विश्लेषण (data-flow analysis) का लाभ उठाकर हार्ड-कोडेड मेटामॉर्फिक संबंधों (metamorphic relations) से सामान्यीकरण योग्य इनपुट रूपांतरण फलनों (input transformation functions) को स्वचालित रूप से निकालने के लिए, जिससे नए इनपुट के साथ उनका पुन: उपयोग संभव हो सके और परीक्षण पर्याप्तता (test adequacy) में महत्वपूर्ण सुधार हो सके, का उपयोग करता है।

मूल लेखक: Congying Xu, Songqiang Chen, Jiarong Wu, Shing-Chi Cheung, Valerio Terragni, Hengcheng Zhu, Jialun Cao

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

मूल लेखक: Congying Xu, Songqiang Chen, Jiarong Wu, Shing-Chi Cheung, Valerio Terragni, Hengcheng Zhu, Jialun Cao

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

कल्पना कीजिए कि आप एक फैक्ट्री के क्वालिटी इंस्पेक्टर हैं जो कस्टम केक बनाता है। आपके पास एक रेसिपी बुक (सॉफ्टवेयर) है और मूल बेकर्स (डेवलपर्स) द्वारा लिखे गए टेस्ट नोट्स का एक सेट है।

समस्या: "हार्ड-कोडेड" रेसिपी

ज्यादातर समय, ये टेस्ट नोट्स अविश्वसनीय रूप से विशिष्ट होते हैं लेकिन नई स्थितियों के लिए बहुत उपयोगी नहीं होते। वे कुछ इस तरह दिखते हैं:

"जनवरी 1st को बना एक केक लें। जनवरी 2nd के लिए दूसरा केक बनाएं। जांचें कि क्या दूसरा केक पहले वाले से ठीक एक दिन पुराना है।"

यह उन दो विशिष्ट तारीखों के लिए बहुत अच्छा काम करता है। लेकिन क्या होगा अगर आप फरवरी 29th या दिसंबर 31st के लिए फैक्ट्री का परीक्षण करना चाहते हैं? ये नोट्स आपको यह नहीं बताते कि पहली तारीख से दूसरी तारीख तक कैसे पहुँचना है। वे बस कहते हैं, "यह तारीख A है, और यह तारीख B है।"

क्योंकि ये नोट्स 'नियम' (परिवर्तन/ट्रांसफॉर्मेशन) को नहीं समझाते, इसलिए आप नए टेस्ट स्वचालित रूप से जनरेट नहीं कर सकते। आप हर उस तारीख के लिए नए नोट्स मैन्युअल रूप से लिखने में फंस जाते हैं जिसे आप टेस्ट करना चाहते हैं। यह एक बहुत बड़ी बाधा (bottleneck) बन जाता है। सॉफ्टवेयर की दुनिया में, शोधकर्ताओं ने पाया कि इनमें से 70% टेस्ट नोट्स "हार्ड-कोडेड" होते हैं—इनमें इनपुट और अपेक्षित परिणाम तो होते हैं, लेकिन वे उस "जादुई फॉर्मूले" को गायब रखते हैं जो तारीखों को आपस में जोड़ता है।

समाधान: MR-Adopt (द "रूल डिटेक्टिव")

यह पेपर MR-Adopt नामक एक नए टूल का परिचय देता है। MR-Adopt को एक सुपर-स्मार्ट जासूस (जो लार्ज लैंग्वेज मॉडल्स या AI द्वारा संचालित है) के रूप में सोचें, जिसका काम उन विशिष्ट, हार्ड-कोडेड नोट्स को देखना और उनके पीछे छिपे नियम का पता लगाना है।

MR-Adopt कैसे काम करता है, इसे एक सरल उदाहरण से समझते हैं:

चरण 1: "इमेजिनेशन गेम" (उदाहरण जनरेट करना)

यदि आप जासूस को केवल एक उदाहरण दिखाते हैं (जनवरी 1 \to जनवरी 2), तो वे अनुमान लगा सकते हैं कि नियम "1 दिन जोड़ना" है। लेकिन वे यह भी अनुमान लगा सकते हैं कि नियम "वर्ष को 2025 में बदलना" है क्योंकि केवल यही एक चीज़ बदली है।

जासूस को गलत अनुमान लगाने से रोकने के लिए, MR-Adopt पहले AI को और अधिक उदाहरणों की कल्पना करने के लिए कहता है।

  • "ठीक है, यदि जनवरी 1, जनवरी 2 बन जाता है, तो क्या होगा यदि हम जून 15 से शुरू करें? क्या यह जून 16 बन जाएगा?"
  • "क्या होगा यदि हम फरवरी 28 से शुरू करें? क्या यह मार्च 1 बन जाएगा?"

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

चरण 2: "कोड शेफ" (नियम लिखना)

अब जब AI के पास बहुत सारे उदाहरण हैं (जनवरी 1 \to जनवरी 2, जून 15 \to जून 16, आदि), तो वह वास्तव में उस "जादुई फॉर्मूले" (कोड) को लिखने की कोशिश करता है जो किसी भी तारीख A को तारीख B में बदल दे।

हालाँकि, AI शेफ कभी-कभी वे अतिरिक्त सामग्रियां भी डाल देते हैं जिनकी उन्हें ज़रूरत नहीं होती, या वे ऐसी सामग्रियों का उपयोग करते हैं जो आपकी रसोई में मौजूद ही नहीं हैं (जैसे कि "उड़ने वाले चम्मच" का उपयोग करने की कोशिश करना)।

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

परिणाम: एक फैक्ट्री जो खुद चलती है

एक बार जब MR-Adopt नियम (जैसे, "एक दिन जोड़ें") समझ जाता है, तो यह उस नियम को किसी भी तारीख पर लागू कर सकता है।

  • पहले: आप केवल उन्हीं दो तारीखों का परीक्षण कर सकते थे जिन्हें मूल बेकर ने लिखा था।
  • बाद में: आप स्वचालित रूप से हजारों तारीखों का परीक्षण कर सकते हैं।

पेपर दिखाता है कि MR-Adopt का उपयोग करके:

  1. अधिक बग मिले: उन्होंने पहले की तुलना में 18.9% अधिक बग (म्यूटेशन स्कोर) पाए।
  2. बेहतर कवरेज: उन्होंने 10.6% अधिक कोड (लाइन कवरेज) का परीक्षण किया।

यह क्यों महत्वपूर्ण है

इसे एक मैनुअल कार से ऑटोोनमस (स्वचालित) कार में अपग्रेड करने के रूप में सोचें।

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

संक्षेप में, MR-Adopt पुराने, कठोर टेस्ट नोट्स को लचीले, स्वचालित निर्देशों में बदल देता है, जिससे सॉफ्टवेयर टेस्टिंग बहुत तेज़, स्मार्ट और अधिक गहन हो जाती है।

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

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

Digest आज़माएँ →