"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > परतदार परीक्षणों को कैसे पहचानें और कम करें: सर्वोत्तम अभ्यास और रणनीतियाँ।

परतदार परीक्षणों को कैसे पहचानें और कम करें: सर्वोत्तम अभ्यास और रणनीतियाँ।

2024-07-31 को प्रकाशित
ब्राउज़ करें:162

How to Identify and Mitigate Flaky Tests: Best Practices and Strategies.

सीआई/सीडी पाइपलाइनों में परीक्षण विश्वसनीयता और दक्षता बढ़ाना

एक परतदार परीक्षण एक ऐसा परीक्षण है जो परीक्षण किए जा रहे कोड में कोई बदलाव किए बिना कभी-कभी सफल हो जाता है और कभी-कभी विफल हो जाता है। ये परीक्षण विशेष रूप से परेशानी भरे हो सकते हैं क्योंकि वे परीक्षण सूट की विश्वसनीयता को कमजोर करते हैं।

मान लीजिए कि आपकी सीआई/सीडी पाइपलाइन इस तरह से कॉन्फ़िगर की गई है कि बिल्ड पास होने के बाद ही, यदि आपका कोड पूर्वनिर्धारित परीक्षण मामलों का एक सेट पास करता है।

एक आदर्श स्थिति में, आपको प्रत्येक परीक्षण मामले के लिए प्राथमिकता निर्धारित करनी होगी और कम से कम कुछ प्रतिशत मामलों को पास करने के लिए नवीनतम कोड आधार को मानना ​​होगा।

लेकिन परतदार परीक्षण मामलों के कारण, जो विफल होते रहते हैं, क्योंकि वे पुराने हो सकते हैं या उपयोग का मामला बदल दिया गया है, आपका परीक्षण मामला विफल हो जाता है और पुल अनुरोध को मर्ज करना एक बुरा सपना बन जाता है। उत्तीर्ण मामलों के प्रतिशत को कम करने के बजाय, हमें उन परीक्षण मामलों को नया स्वरूप देने पर विचार करना चाहिए।

फ़्लैकी टेस्ट को समझने का कारण.

  1. अप्रत्याशित परीक्षण परिणाम: अस्थिर परीक्षण कभी-कभी उत्तीर्ण होने और कभी-कभी असफल होने से अप्रत्याशितता का कारण बनते हैं, भले ही कोड नहीं बदला हो। यह यादृच्छिकता परीक्षण परिणामों पर भरोसा करना कठिन बना सकती है।

  2. कॉम्प्लेक्स डिबगिंग: परतदार परीक्षण के मूल कारण का पता लगाना चुनौतीपूर्ण हो सकता है क्योंकि समस्या लगातार पुन: उत्पन्न नहीं हो सकती है, जिससे इसे पहचानना और ठीक करना कठिन हो जाता है।

  3. बर्बाद समय और संसाधन: डेवलपर्स परीक्षणों को दोबारा चलाने, झूठी सकारात्मकताओं की जांच करने और उन मुद्दों को डीबग करने में काफी समय खर्च कर सकते हैं जो वास्तव में कोड की कार्यक्षमता से संबंधित नहीं हैं।

  4. निरंतर एकीकरण (सीआई) पर प्रभाव: परतदार परीक्षण निरंतर एकीकरण पाइपलाइनों को बाधित कर सकते हैं, जिससे अनावश्यक निर्माण विफलताएं हो सकती हैं और स्वचालित परीक्षण प्रक्रियाओं की समग्र दक्षता कम हो सकती है।

  5. झूठा आत्मविश्वास या अविश्वास: अस्थिर परीक्षण या तो छिटपुट रूप से उत्तीर्ण होने पर गलत आत्मविश्वास पैदा कर सकते हैं या अप्रत्याशित रूप से विफल होने पर परीक्षण सूट में अविश्वास पैदा कर सकते हैं, जिससे परीक्षण परिणामों पर भरोसा करना कठिन हो जाता है।

    &&&]

परतदार परीक्षण मामलों को कम करने के तरीके।

  1. कम करने के लिए सर्वोत्तम अभ्यास: परतदार परीक्षणों को कम करने के लिए, डेवलपर्स बाहरी निर्भरता का मजाक उड़ा सकते हैं, नियतात्मक डेटा का उपयोग कर सकते हैं, यह सुनिश्चित कर सकते हैं कि परीक्षण अलग-थलग हैं, और निष्पादन के समय या क्रम पर भरोसा करने से बचें।

  2. स्वचालित जांच: स्वचालित उपकरण लागू करना जो कई बार परीक्षण चलाकर और परिणामों की तुलना करके परतदार परीक्षणों का पता लगाता है, जो विकास चक्र की शुरुआत में परतदारपन को पहचानने और उसका समाधान करने में मदद कर सकता है।

  3. परीक्षण अलगाव: यह सुनिश्चित करना कि प्रत्येक परीक्षण साझा स्थितियों या बाहरी कारकों पर भरोसा किए बिना, पूर्ण अलगाव में चलता है, परतदारपन की संभावना को काफी कम कर सकता है।

  4. नियमित रखरखाव: परतदार परीक्षणों को हटाने या ठीक करने के लिए परीक्षण सूट की नियमित रूप से समीक्षा और पुनर्रचना करने से समय के साथ परीक्षण प्रक्रिया की अखंडता और विश्वसनीयता बनाए रखने में मदद मिलती है।

परतदार परीक्षण मामलों को कम करने के लिए विभिन्न रणनीतियाँ और उपकरण

  1. जेनकिंस, सर्कलसीआई, ट्रैविस सीआई: इन जैसे सतत एकीकरण/निरंतर परिनियोजन (सीआई/सीडी) उपकरण विफल होने वाले परीक्षणों को फिर से चलाने के लिए कॉन्फ़िगर किए जा सकते हैं, जिससे परतदार परीक्षणों की पहचान करने में मदद मिलती है। परतदार परीक्षणों से निपटने के लिए उनके पास अक्सर प्लगइन या अंतर्निहित समर्थन होता है।

  2. Docker: परीक्षण चलाने के लिए पृथक वातावरण बनाने के लिए कंपनियां डॉकर का उपयोग करती हैं। यह सुनिश्चित करता है कि हर बार जब परीक्षण निष्पादित किए जाते हैं तो उनमें एक सुसंगत और स्वच्छ वातावरण होता है, जिससे पर्यावरणीय मतभेदों के कारण होने वाली शिथिलता कम हो जाती है।

  3. वर्चुअल मशीनें (वीएम): डॉकर के समान, वीएम का उपयोग नियंत्रित और पृथक वातावरण में परीक्षण चलाने को सुनिश्चित करने के लिए किया जा सकता है, जिससे अन्य प्रक्रियाओं या निर्भरताओं से हस्तक्षेप कम हो जाता है।

  4. मशीन लर्निंग का उपयोग करके सांख्यिकीय विश्लेषण: कुछ उन्नत सिस्टम परीक्षण परिणामों का विश्लेषण करने और परतदार परीक्षणों के संकेतक पैटर्न की पहचान करने के लिए मशीन लर्निंग का उपयोग करते हैं। यह सक्रिय रूप से परतदारपन को पहचानने और उसका समाधान करने में मदद कर सकता है।

  5. कोड समीक्षा नीतियां और संस्करण नियंत्रण हुक: सख्त कोड समीक्षा नीतियों को लागू करना जिसमें परतदारता के संभावित स्रोतों की जांच शामिल है, परतदार परीक्षणों को शुरू होने से रोका जा सकता है।
    परिवर्तनों को मर्ज करने से पहले नियंत्रित तरीके से परीक्षण चलाने के लिए प्री-कमिट हुक या अन्य संस्करण नियंत्रण तंत्र का उपयोग करने से परतदार परीक्षणों को जल्दी पकड़ा जा सकता है।

कुछ बड़े संगठनों की रणनीतियाँ

  1. गूगल:
  • असफल परीक्षण दोबारा चलाएं: Google की एक नीति है जहां वे परीक्षण फिर से चलाते हैं जो यह निर्धारित करने में विफल रहते हैं कि विफलता सुसंगत है या नहीं। इससे परतदार परीक्षणों की पहचान करने में मदद मिलती है। उनके पास अपने व्यापक परीक्षण सुइट्स में फ़्लैकनेस को प्रबंधित करने और कम करने के लिए आंतरिक उपकरण और बुनियादी ढाँचा भी है।

  • परीक्षण अलगाव: Google यह सुनिश्चित करने के लिए परीक्षण अलगाव के महत्व पर जोर देता है कि परीक्षण एक-दूसरे के साथ हस्तक्षेप नहीं करते हैं, जो परतदारता को कम करने में महत्वपूर्ण है।

  1. माइक्रोसॉफ्ट:
  • टेस्ट एनालिटिक्स और रिपोर्टिंग: माइक्रोसॉफ्ट परतदार परीक्षणों को ट्रैक करने के लिए विस्तृत टेस्ट एनालिटिक्स और रिपोर्टिंग टूल का उपयोग करता है। समय के साथ परीक्षण परिणामों का विश्लेषण करके, वे पैटर्न की पहचान कर सकते हैं और परतदार परीक्षणों का पता लगा सकते हैं।

  • परतदार परीक्षणों को अलग करना: माइक्रोसॉफ्ट कभी-कभी परतदार परीक्षणों को अलग कर देता है, उन्हें मुख्य परीक्षण सूट से अलग कर देता है जब तक कि उन्हें समग्र परीक्षण परिणामों को प्रभावित करने से रोकने के लिए ठीक नहीं किया जाता है।

3. फेसबुक:

  • डिटॉक्स: फेसबुक ने अपने मोबाइल ऐप्स का परीक्षण करने के लिए डिटॉक्स नामक एक ओपन-सोर्स लाइब्रेरी विकसित की। डिटॉक्स यह सुनिश्चित करता है कि परीक्षण एक सुसंगत स्थिति और वातावरण में चलाए जाते हैं, जिससे अतुल्यकालिक संचालन और अन्य समय संबंधी समस्याओं के कारण होने वाली परत कम हो जाती है।

  • निरंतर परीक्षण: फेसबुक अपनी विकास प्रक्रिया में निरंतर परीक्षण को एकीकृत करता है, स्वचालित रूप से परीक्षणों को फिर से चलाने और विकास चक्र में परतदार व्यवहार की पहचान करने के लिए टूल का उपयोग करता है।

4. नेटफ्लिक्स:

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

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

5. लिंक्डइन:

  • परतदार परीक्षण प्रबंधन उपकरण: लिंक्डइन ने विशेष रूप से परतदार परीक्षणों के प्रबंधन के लिए उपकरण विकसित किए हैं। ये उपकरण परतदार परीक्षणों को ट्रैक करने, उनकी घटना की दृश्यता प्रदान करने और उनके समाधान को प्राथमिकता देने में मदद करते हैं।

  • परीक्षण पर्यावरण मानकीकरण: लिंक्डइन परिवर्तनशीलता को कम करने और यह सुनिश्चित करने के लिए परीक्षण वातावरण को मानकीकृत करने पर ध्यान केंद्रित करता है कि परीक्षण सुसंगत परिस्थितियों में चलते हैं, जो परतदारता को कम करने में मदद करता है।

लेखक के बारे में

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/apoorvtomar/how-to-identify-and-mitigate-flaky-tests-best-practices-and-strategies-1cb0?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग से संपर्क करें @163.com हटाएं
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3