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

TestMiner: Software Testing Analysis for GitHub Repositories

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

मूल लेखक: Andre Hora, José Miguel Rojas, Romain Robbes

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

मूल लेखक: Andre Hora, José Miguel Rojas, Romain Robbes

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

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

यहाँ आता है TestMiner, जो इन कोड लाइब्रेरीज़ के लिए एक जादुई, हाई-टेक टॉर्च की तरह काम करता है। आपके अंधेरे में भटकने के बजाय, TestMiner ज़ूम करता है, पूरे प्रोजेक्ट को स्कैन करता है, और तुरंत आपके लिए एक नक्शा बना देता है।

यह नक्शा क्या दिखाता है?
इसे एक सॉफ्टवेयर प्रोजेक्ट के सुरक्षा जाल के लिए "हेल्थ डैशबोर्ड" के रूप में समझें।

  • "कहाँ" का नक्शा: यह आपको दिखाता है कि टेस्ट वास्तव में कहाँ छिपे हैं। क्या वे एक विशेष "टेस्ट" फ़ोल्डर में हैं, या वे मुख्य कोड के साथ ही मिले हुए हैं? यह एक खजाने के नक्शे की तरह है जो हर उस जगह को हाइलाइट करता है जहाँ 'X' का निशान है, चाहे खजाना किसी गहरी गुफा में दबा हो या सामने के बरामदे में रखा हो।
  • "टाइम ट्रैवल" चार्ट: यह आपको देखने देता है कि समय के साथ सुरक्षा जाल कैसे विकसित हुआ। क्या प्रोजेक्ट ने बस एक छोटा सा सुरक्षा जाल बनाया और धीरे-धीरे एक विशाल जाल बुना? या क्या इसने अचानक एक साथ सैकड़ों जाल जोड़ दिए? उदाहरण के लिए, इस टूल ने दिखाया कि fastapi प्रोजेक्ट अपने पहले संस्करण में लगभग शून्य टेस्ट फ़ाइलों से लेकर अपने नवीनतम संस्करण में लगभग 600 तक पहुँच गया।
  • "सामग्री" की सूची: यह उन विशेष उपकरणों और सहायकों की सूची बनाता है जिनका उपयोग प्रोजेक्ट अपने टेस्ट चलाने के लिए करता है, यह जानकारी एक "सॉफ्टवेयर बिल ऑफ मैटेरियल्स" (प्रोजेक्ट की सामग्रियों की रसीद की तरह) से निकालता है। यह पहचान सकता है कि क्या कोई प्रोजेक्ट Rust, Python, या Java के लिए विशिष्ट उपकरणों का उपयोग कर रहा है।

क्या यह वास्तव में काम करता है?
लेखकों ने इसे सिर्फ बनाकर उम्मीद नहीं की; उन्होंने इसे एक वास्तविक कक्षा में परखने के लिए रखा। उन्होंने यह टूल 50 स्नातक छात्रों (undergraduate students) को एक सॉफ्टवेयर टेस्टिंग कोर्स में दिया और उन्हें वास्तविक दुनिया के प्रोजेक्ट्स को एक्सप्लोर करने के लिए कहा। छात्रों ने केवल बटन नहीं दबाए; उन्होंने इस टूल का उपयोग करके उन गहरी अंतर्दृखों (insights) को उजागर किया जिन्हें खोजने में उन्हें मैन्युअल रूप से घंटों लग जाते।

एक छात्र ने TestMiner का उपयोग यह देखने के लिए किया कि एक लोकप्रिय प्रोजेक्ट Streamit ने अपने अधिकांश टेस्ट विशिष्ट फ़ोल्डर्स में रखे हैं क्योंकि इसमें Python वाला हिस्सा और एक भारी वेब इंटरफेस दोनों हैं। एक अन्य छात्र ने गौर किया कि एक प्रोजेक्ट Newtonsoft.Json ने समय के साथ अपनी टेस्ट फ़ाइलों को केवल 7 से बढ़ाकर 200 कर दिया, जो एक अचानक उछाल के बजाय एक स्थिर, रैखिक (linear) चढ़ाई को दर्शाता है। एक अन्य समूह ने खोज निकाला कि thefuck प्रोजेक्ट ने Git कमांड्स का भारी परीक्षण करने पर ध्यान केंद्रित किया क्योंकि वे कमांड्स उपयोगकर्ताओं के लिए नोटोरियस रूप से भ्रमित करने वाले होते हैं।

छात्रों ने पाया कि TestMiner ने उन्हें "मॉकिंग" (जहाँ कोड इंटरनेट से बात करने का नाटक करता है ताकि समय बचाया जा सके), "फिक्स्चर" (टेस्ट के लिए पुन: प्रयोज्य सेटअप), और यहाँ तक कि यह समझने में भी मदद की कि कैसे कुछ प्रोजेक्ट्स अपने टेस्ट का उपयोग जीवित दस्तावेज़ (living documentation) के रूप में करते हैं। फीडबैक सकारात्मक था: टूल ने जटिल सॉफ्टवेयर इंस्टॉल किए बिना या लैब सेटअप किए बिना, वास्तविक दुनिया के सॉफ्टवेयर को समझने में बहुत आसानी प्रदान की।

यह टूल क्या नहीं है?
यह जानना महत्वपूर्ण है कि TestMiner क्या नहीं है। यह खराब कोड को ठीक करने या हर एक बग को खोजने वाली कोई जादुई छड़ी नहीं है। इसके लिए आपको अपने कंप्यूटर पर कुछ भी इंस्टॉल करने की आवश्यकता नहीं है; यह सीधे आपके वेब ब्राउज़र में चलता है। यह डेवलपर्स को वास्तव में टेस्ट लिखने की आवश्यकता को भी प्रतिस्थापित नहीं करता है; यह केवल आपको यह देखने में मदद करता है कि वहाँ पहले से क्या मौजूद है।

लेखक सावधानीपूर्वक नोट करते हैं कि टूल GitHub के सार्वजनिक डेटा पर निर्भर करता है, जिसकी एक गति सीमा (फ्री यूजर्स के लिए लगभग 60 अनुरोध प्रति घंटा) है। यदि आप इस सीमा तक पहुँच जाते हैं, तो कुछ फीचर्स रुक सकते हैं, हालांकि आप सीमा को बढ़ाकर 5,000 अनुरोध प्रति घंटा करने के लिए एक विशेष "टोकन" जोड़कर गति बढ़ा सकते हैं। साथ ही, क्योंकि यह वेब से डेटा पढ़ता है, इसलिए कभी-कभी लिंक कोड से पूरी तरह मेल नहीं खा सकते यदि प्रोजेक्ट बहुत तेज़ी से बदल रहा हो।

निष्कर्ष
TestMiner यह सुझाव देता है कि एक अस्त-व्यस्त, मैन्युअल खोज को एक दृश्य, त्वरित अवलोकन में बदलकर, हम छात्रों और डेवलपर्स को सॉफ्टवेयर प्रोजेक्ट्स की "सुरक्षा संस्कृति" को बहुत तेज़ी से समझने में मदद कर सकते हैं। यह हर टेस्टिंग रहस्य के लिए कोई पूर्ण समाधान नहीं है, लेकिन यह एक शक्तिशाली नया लेंस है जो सॉफ्टवेयर टेस्टिंग की अदृश्य दुनिया को दृश्यमान, समझने योग्य और थोड़ा मनोरंजक भी बनाता है।

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

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

Digest आज़माएँ →