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

PITMuS: A Tool for Automated Bug Dataset Generation via Source-Level Mutant Reconstruction

PITMuS एक ऐसा टूल है जो बाइटकोड-स्तरीय म्यूटेशन टेस्टिंग और सोर्स-स्तरीय डेटा जनरेशन के बीच के अंतर को पाटता है, जो PIT म्यूटेंट मेटाडेटा से निष्पादन योग्य (executable), सोर्स-स्तरीय बग वाले और ठीक किए गए कोड युग्मों का पुनर्निर्माण करता है, जिससे LLM-आधारित सॉफ्टवेयर इंजीनियरिंग कार्यों के प्रशिक्षण और मूल्यांकन के लिए नए, संदूषण-मुक्त (contamination-free) डेटासेट का निर्माण सक्षम होता है।

मूल लेखक: Tasfia Tasnim, Soneya Binta Hossain

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

मूल लेखक: Tasfia Tasnim, Soneya Binta Hossain

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

कल्पना कीजिए कि आप एक शिक्षक हैं जो एक रोबोट को टूटा हुआ कोड ठीक करना सिखाने की कोशिश कर रहे हैं। इसे प्रभावी ढंग से करने के लिए, रोबोट को एक "पहले और बाद का" चित्र देखने की आवश्यकता है: एक कोड का टुकड़ा जो सही ढंग से काम कर रहा है, और ठीक वही कोड टुकड़ा जिसमें एक विशिष्ट, जानबूझकर की गई गलती डाली गई है।

लंबे समय से, शोधकर्ता गलतियों की बनी-बनाई "पाठ्यपुस्तकों" (जैसे कि Defects4J नामक संग्रह) का उपयोग करते रहे हैं। लेकिन एक समस्या है: ये पाठ्यपुस्तकें पुरानी, स्थिर हैं, और रोबोट (AI मॉडल) ने इंटरनेट से उत्तर पहले ही याद कर लिए होंगे, जिससे ये परीक्षण अनुचित हो जाते हैं।

इस शोध पत्र के लेखकों, त्सफिया तस्निम और सोनिया बिंटा होसैन ने एक ऐसी मशीन बनाने की इच्छा व्यक्त की जो मौके पर ही ताज़ा, कस्टम-मेड "पाठ्यपुस्तकें" तैयार कर सके। उन्होंने PITMuS नामक एक टूल बनाया।

यहाँ PITMuS कैसे काम करता है, एक सरल उपमा के माध्यम से समझाया गया है:

समस्या: "अंधा" निरीक्षक

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

जब निरीक्षक को कोई कमज़ोर कड़ी मिलती है, तो वह एक रिपोर्ट लिखता है। लेकिन यह रिपोर्ट थोड़ी रहस्यमय नोट जैसी है: "मशीन #42, गियर #5, घड़ी की दिशा के बजाय घड़ी की विपरीत दिशा में घूम गया।"

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

समाधान: "ब्लूप्रिंट पुनर्निर्माता" (PITMuS)

लेखकों ने PITMuS बनाया ताकि यह एक अनुवादक और एक ड्राफ्ट्समैन के रूप में कार्य कर सके। यह निरीक्षक के रहस्यमय नोट और मूल ब्लूप्रिंट को लेता है और स्वचालित रूप से आपके लिए "पहले और बाद के" चित्र बना देता है।

यहाँ प्रक्रिया दी गई है:

  1. सुराग: PITMuS तीन चीजें लेता है:
    • निरीक्षक की रिपोर्ट (XML फ़ाइल जिसमें गलतियाँ सूचीबद्ध हैं)।
    • फैक्ट्री की मशीनरी (कंपाइल किया गया कोड फ़ाइलें)।
    • मूल ब्लूप्रिंट (मानव-पठनीय सोर्स कोड)।
  2. जासूसी कार्य: कभी-कभी, निरीक्षक का नोट अस्पष्ट होता है। उदाहरण के लिए, यदि कोड की एक लाइन A + B + C कहती है, और नोट कहता है "एक प्लस को माइनस में बदल दिया गया," तो टूल को यह पता लगाना होगा कि कौन सा प्लस चिन्ह बदला गया था।
    • PITMuS सटीक स्थान का पता लगाने के लिए "मशीनरी" (bytecode) के विवरण का उपयोग करता है, ठीक वैसे ही जैसे एक जासूस सीरियल नंबर का उपयोग करके सटीक पुर्जे का पता लगाता है।
  3. पुनर्निर्माण: एक बार जब इसे सटीक स्थान का पता चल जाता है, तो यह ब्लूप्रिंट को फिर से लिख देता है। यह फ़ाइलों का एक जोड़ा बनाता है:
    • अच्छा संस्करण (The Good Version): मूल, काम करने वाला कोड।
    • खराब संस्करण (The Bad Version): वह कोड जिसमें विशिष्ट गलती डाली गई है।
    • संदर्भ (The Context): यह कोड के ठीक ऊपर लिखी गई "निर्देश पुस्तिका" (डॉक्यूमेंटेशन) को भी साथ लेता है, ताकि AI को पता चल सके कि कोड को वास्तव में क्या करना चाहिए था।

उन्होंने क्या पाया

लेखकों ने इस टूल का परीक्षण आठ अलग-अलग वास्तविक दुनिया के सॉफ़्टवेयर प्रोजेक्ट्स पर किया (छोटे उपयोगिताओं से लेकर बड़ी लाइब्रेरी तक)।

  • सफलता दर: यह अविश्वसनीय रूप से सफल रहा। लगभग 69,000 संभावित गलतियों में से, PITMuS ने 69,198 को उपयोगी "पहले और बाद के" कोड पेयर्स में सफलतापूर्वक पुनर्निर्मित किया। इसकी सफलता दर 99.96% थी।
  • दस्तावेज़ीकरण: लगभग दो-तिहाई मामलों में, टूल ने साथ में मौजूद दस्तावेज़ों को भी प्राप्त कर लिया, जिससे AI को और अधिक संदर्भ मिला।
  • विफलताएं: बहुत छोटा हिस्सा (0.05% से कम) विफल रहा, जिसका मुख्य कारण यह था कि निरीक्षक के नोट ने उस लाइन नंबर की ओर इशारा किया जो जटिल, बहु-पंक्ति वाक्यों में छिपी वास्तविक गलती से पूरी तरह मेल नहीं खाती थी।

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

PITMuS केवल बग्स (bugs) नहीं ढूँढता; यह एक विशाल, व्यवस्थित लाइब्रेरी बनाता है।

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

संक्षेप में, PITMuS एक ऐसा टूल है जो सॉफ़्टवेयर त्रुटियों की एक उच्च-गति, कम-विवरण वाली रिपोर्ट लेता है और स्वचालित रूप से अगली पीढ़ी के सॉफ़्टवेयर इंजीनियरों और AI के लिए एक उच्च-गुणवत्ता, विस्तृत प्रशिक्षण मैनुअल में बदल देता है।

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

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

Digest आज़माएँ →