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

How Far Are We from Detecting Flaky Tests? On the Limits of Code-Based Detection

यह शोध पत्र तर्क देता है कि वर्तमान कोड-आधारित फ्लैकी टेस्ट डिटेक्टर दोषपूर्ण बेंचमार्क और मूल्यांकन प्रोटोकॉल द्वारा सीमित हैं जो वास्तविक कोड विश्लेषण के बजाय डेटा शॉर्टकट पर निर्भर करते हैं, और इसके बजाय निष्पादन साक्ष्य (execution evidence) और पर्यावरणीय संदर्भ से फ्लैकीनेस का पता लगाने पर केंद्रित एक पुनर्गठित दृष्टिकोण का प्रस्ताव करता है।

मूल लेखक: Ömer Oktay Gültekin, Alexander Berndt, Jonathan Bell, Thomas Bach, Sebastian Baltes

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

मूल लेखक: Ömer Oktay Gültekin, Alexander Berndt, Jonathan Bell, Thomas Bach, Sebastian Baltes

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

कल्पना कीजिए कि आप एक जासूस हैं जो एक रहस्य सुलझाने की कोशिश कर रहे हैं: कंप्यूटर प्रोग्राम के कौन से टेस्ट "फ्लैकी" (flaky) हैं?

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

लंबे समय तक, शोधकर्ताओं को लगा कि उन्होंने एक जादुई क्रिस्टल बॉल ढूंढ ली है। उन्होंने एआई (AI) जासूस बनाए जो टेस्ट कोड (लिखित निर्देशों) को देख सकते थे और तुरंत कह सकते थे, "आह, यह वाला झूठ बोल रहा है!" ये एआई मॉडल अपने रिपोर्ट कार्ड पर अविश्वसनीय रूप से उच्च अंक प्राप्त कर रहे थे, जिनमें से कुछ दावा कर रहे थे कि वे 98% बार सही होते हैं।

लेकिन यह शोध पत्र, जिसे शोधकर्ताओं की एक टीम ने लिखा है, यहाँ पर्दा उठाने के लिए है और कहने के लिए है: रुको, क्रिस्टल बॉल जादुई नहीं है; यह सिर्फ एक चाल है।

महान "फिक्स-कमिट" (Fix-Commit) शॉर्टकट

शोधकर्ताओं ने पाया कि एआई जासूस धोखाधड़ी कर रहे थे। उन्हें IDoFT नामक एक डेटासेट पर टेस्ट किया जा रहा था, जो "शॉर्टकट्स" से भरा था।

कल्पना कीजिए कि आप एक छात्र को नकली सिक्का पहचानने के लिए सिखा रहे हैं। आप उन्हें एक असली सिक्का दिखाते हैं, और फिर आप उन्हें एक नकली सिक्का दिखाते हैं जिसे टेप के एक टुकड़े से चिपकाया गया है। छात्र ने नकली सिक्के को पहचानना नहीं सीखा; उसने बस टेप को पहचानना सीख लिया।

यही हो रहा था। पुराने डेटासेट्स में, "नॉन-फ्लैकी" (non-flaky) टेस्ट अक्सर वे "फ्लैकी" टेस्ट होते थे जिन्हें डेवलपर ने अभी-अभी ठीक किया था। एआई ने यह नहीं सीखा कि क्या चीज़ एक टेस्ट को अस्थिर बनाती है; इसने बस "टूटे हुए" संस्करण और "ठीक किए गए" संस्करण के बीच के सूक्ष्म अंतरों को पहचानना सीख लिया। यह नकली सिक्के को नहीं, बल्कि टेप को पहचानने जैसा था।

जब शोधकर्ताओं ने इस "टेप" (शॉर्टकट) को हटा दिया और एआई को उन टेस्ट्स को देखने के लिए मजबूर किया जहाँ "नॉन-फ्लैकी" टेस्ट्स की पुष्टि 500 बार बिना किसी विफलता के चलाने के बाद की गई थी, तो जादू गायब हो गया। एआई का स्कोर केवल गिरा ही नहीं; वह पूरी तरह ध्वस्त हो गया।

"प्रोजेक्ट-डिस्क जॉइंट" (Project-Disjoint) वास्तविकता की जाँच

शोधकर्ताओं ने यह भी पाया कि एआई उन विशिष्ट प्रोजेक्ट्स को याद करने में अच्छा था जिनका उसने अध्ययन किया था, लेकिन नए प्रोजेक्ट्स पर अनुमान लगाने में वह बहुत खराब था।

इसे ऐसे समझें जैसे कोई छात्र एक विशिष्ट गणित की किताब के उत्तर रट लेता है। यदि आप उन्हें उसी स्कूल की वही किताब देते हैं, तो वे ए+ पाते हैं। लेकिन यदि आप उन्हें किसी दूसरे स्कूल की अलग किताब देते हैं, तो वे फेल हो जाते हैं।

शोधकर्ताओं ने एक "प्रोजेक्ट-डिस्क जॉइंट" नियम का उपयोग करके परीक्षण किया: एआई को उन प्रोजेक्ट्स पर अनुमान लगाना था जिन्हें उसने पहले कभी नहीं देखा था। इन सख्त नियमों के तहत, एआई का प्रदर्शन एक रैंडम गेसर (random guesser) से बेहतर नहीं था जो बस यह कहता है कि "यह टेस्ट फ्लैकी है!" या "यह टेस्ट ठीक है!" जो भी उत्तर अधिक सामान्य है।

वास्तव में, एक नए, सावधानीपूर्वक बनाए गए डेटासेट C-IDoFT (जिसमें 57 प्रोजेक्ट्स के 54,468 टेस्ट शामिल हैं) पर, एआई की फ्लैकी टेस्ट खोजने की क्षमता लगभग शून्य हो गई। यह एक निरंतर बेसलाइन से बेहतर प्रदर्शन नहीं कर सका। पहले के उच्च स्कोर? वे केवल टेस्ट सेटअप के आर्टिफैक्ट्स (artifacts) थे, वास्तविक जासूसी कौशल नहीं।

असली सुराग कहाँ है?

तो, यदि कोड सुराग नहीं है, तो वह क्या है?

शोधकर्ता सीआई लॉग्स (CI logs - डिजिटल डायरी कि जब टेस्ट चले तो क्या हुआ) की गहराई में गए। उन्होंने 86 वास्तविक दुनिया के "एंड-टू-एंड" (End-to-End) टेस्ट्स (बड़े, जटिल टेस्ट जो पूरे सिस्टम की जांच करते हैं) को देखा।

उन्होंने पाया कि इन 42% फ्लैकी टेस्ट्स के लिए, वे कोड और लॉग को देखकर यह पता लगा सकते थे कि वे क्यों विफल हुए। आमतौर पर, यह नेटवर्क की खराबी या सर्वर के धीमे होने जैसा कुछ था।

लेकिन बाकी 58% के लिए? कोड और लॉग बेकार थे। कारण "एक्ज़ीक्यूशन एनवायरनमेंट" (execution environment) में छिपा था—शायद एक विशिष्ट टाइमिंग इश्यू, एक अजीब नेटवर्क देरी, या कोई ऐसा रिसोर्स जो उस सटीक सेकंड में व्यस्त था। टेस्ट कोड खुद जवाब नहीं जानता था।

बड़ी सीख

यह पेपर सुझाव देता है कि हम गलत सवाल पूछ रहे हैं। हम पूछ रहे हैं, "क्या यह टेस्ट फ़ाइल फ्लैकी है?" केवल फ़ाइल के टेक्स्ट के आधार पर।

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

निष्कर्ष:

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

इस पेपर का दावा यह नहीं है कि इसने फ्लैकी टेस्ट की पहेली को सुलझा लिया है। इसके बजाय, यह साबित करता है कि कोड से बना "जादुई क्रिस्टल बॉल" टूटा हुआ है। असली सुराग उस बिखराव और अराजकता में छिपे हैं कि सॉफ्टवेयर वास्तव में कैसे चलता है, न कि पृष्ठ पर लिखे साफ-सुथरे निर्देशों में।

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

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

Digest आज़माएँ →