Continuous testing
निरंतर परीक्षण एक सॉफ्टवेयर रिलीज उम्मीदवार से जुड़े व्यावसायिक जोखिमों पर तत्काल प्रतिक्रिया प्राप्त करने के लिए सॉफ्टवेयर वितरण पाइपलाइन के हिस्से के रूप में स्वचालित परीक्षणों को निष्पादित करने की प्रक्रिया है। निरंतर परीक्षण को मूल रूप से विकासकर्ताओं को प्रतिक्रिया के लिए प्रतीक्षा समय को कम करने के एक तरीके के रूप में प्रस्तावित किया गया था, जिसमें विकास पर्यावरण-प्रेरित परीक्षणों के साथ-साथ अधिक पारंपरिक विकासकर्ता/परीक्षक-प्रेरित परीक्षण शामिल थे। निरंतर परीक्षण के लिए, परीक्षण का दायरा नीचे से ऊपर की आवश्यकताओं या उपयोगकर्ता कहानियों को मान्य करने से लेकर व्यापक व्यावसायिक लक्ष्यों से जुड़ी प्रणाली आवश्यकताओं का आकलन करने तक फैला हुआ है। गोद लेने के कारक 2010 के दशक में, सॉफ्टवेयर एक प्रमुख व्यावसायिक विभेदक बन गया है। नतीजतन, संगठन अब उम्मीद करते हैं कि सॉफ्टवेयर विकास दल कम वितरण चक्रों के भीतर अधिक, और अधिक नवीन, सॉफ्टवेयर प्रदान करेंगे। इन मांगों को पूरा करने के लिए, टीमों ने सिस्टम विकास जीवन चक्र (एस. डी. एल. सी.) को गति देने का प्रयास करने के लिए फुर्तीले, देवऑप्स और निरंतर वितरण जैसे कमजोर दृष्टिकोणों की ओर रुख किया है। वितरण पाइपलाइन के अन्य पहलुओं में तेजी लाने के बाद, टीमों को आम तौर पर पता चलता है कि उनकी परीक्षण प्रक्रिया उन्हें अपनी एस. डी. एल. सी. त्वरण पहल के अपेक्षित लाभों को प्राप्त करने से रोक रही है। परीक्षण और समग्र गुणवत्ता प्रक्रिया कई प्रमुख कारणों से समस्याग्रस्त बनी हुई है। पारंपरिक परीक्षण प्रक्रियाएँ बहुत धीमी होती हैं। फुर्तीला, देवऑप्स और निरंतर वितरण की बढ़ती लोकप्रियता के साथ पुनरावृत्ति की अवधि महीनों से हफ्तों या दिनों में बदल गई है। परीक्षण के पारंपरिक तरीके, जो मैनुअल परीक्षण और स्वचालित जी. यू. आई. परीक्षणों पर बहुत अधिक निर्भर करते हैं, जिन्हें लगातार अद्यतन करने की आवश्यकता होती है, गति नहीं रख सकते हैं। इस बिंदु पर, संगठन अपने परीक्षण स्वचालन प्रयासों को बढ़ाने की आवश्यकता को पहचानते हैं। मौजूदा परीक्षण प्रक्रिया में अधिक स्वचालन जोड़े जाने के बाद भी, प्रबंधकों के पास अभी भी किसी भी समय किसी भी अनुप्रयोग से जुड़े जोखिम के स्तर के बारे में पर्याप्त अंतर्दृष्टि की कमी है। इन जोखिमों को समझना निरंतर वितरण प्रक्रियाओं में शामिल तेजी से जाने/न जाने के निर्णय लेने के लिए महत्वपूर्ण है। यदि परीक्षण इस बात की समझ के बिना विकसित किए जाते हैं कि व्यवसाय जोखिम के एक स्वीकार्य स्तर को क्या मानता है, तो एक रिलीज उम्मीदवार होना संभव है जो सभी उपलब्ध परीक्षणों को पास करता है, लेकिन जिसे व्यवसाय के नेता जारी करने के लिए तैयार नहीं मानते हैं। परीक्षण के परिणामों को सटीक रूप से इंगित करने के लिए कि क्या प्रत्येक रिलीज उम्मीदवार व्यावसायिक अपेक्षाओं को पूरा करता है, परीक्षणों को डिजाइन करने का दृष्टिकोण सुरक्षा, प्रदर्शन, विश्वसनीयता और अनुपालन से संबंधित जोखिमों के लिए व्यवसाय की सहिष्णुता पर आधारित होना चाहिए। इकाई परीक्षणों के अलावा जो एक बहुत ही बारीक नीचे-ऊपर स्तर पर कोड की जांच करते हैं, रिलीज उम्मीदवार के व्यावसायिक जोखिम का ऊपर-नीचे मूल्यांकन प्रदान करने के लिए परीक्षणों के एक व्यापक समूह की आवश्यकता है। भले ही परीक्षण स्वचालित हो और परीक्षण प्रभावी रूप से व्यावसायिक जोखिम के स्तर को मापते हों, एक समन्वित अंत-से-अंत गुणवत्ता प्रक्रिया के बिना टीमों को आज के संपीड़ित वितरण चक्रों के भीतर व्यावसायिक अपेक्षाओं को पूरा करने में परेशानी होती है। प्रत्येक पुनरावृत्ति के अंत में जोखिमों को दूर करने की कोशिश करना विकास परीक्षण जैसी दोष रोकथाम रणनीतियों के माध्यम से उत्पाद में गुणवत्ता बनाने की तुलना में काफी धीमा और अधिक संसाधन-गहन दिखाया गया है। संगठन निरंतर परीक्षण को अपनाते हैं क्योंकि वे मानते हैं कि ये समस्याएं उन्हें वांछित गति से गुणवत्तापूर्ण सॉफ्टवेयर प्रदान करने से रोक रही हैं। वे सॉफ्टवेयर के बढ़ते महत्व के साथ-साथ सॉफ्टवेयर की विफलता की बढ़ती लागत को पहचानते हैं, और वे अब समय, दायरे और गुणवत्ता के बीच समझौता करने के लिए तैयार नहीं हैं। लक्ष्य और लाभ निरंतर परीक्षण का लक्ष्य नवीनतम निर्माण या रिलीज उम्मीदवार में व्यावसायिक जोखिम के स्तर के बारे में तेजी से और निरंतर प्रतिक्रिया प्रदान करना है। इस जानकारी का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि सॉफ्टवेयर किसी भी समय डिलीवरी पाइपलाइन के माध्यम से प्रगति के लिए तैयार है या नहीं। चूँकि परीक्षण जल्दी शुरू होता है और लगातार निष्पादित किया जाता है, इसलिए अनुप्रयोग जोखिमों को पेश किए जाने के तुरंत बाद उजागर किया जाता है। विकास दल तब उन समस्याओं को एस. डी. एल. सी. के अगले चरण में आगे बढ़ने से रोक सकते हैं। यह समय और प्रयास को कम करता है जिसे दोषों को खोजने और ठीक करने में खर्च करने की आवश्यकता होती है। नतीजतन, उस गति और आवृत्ति को बढ़ाना संभव है जिस पर गुणवत्ता वाले सॉफ़्टवेयर (सॉफ़्टवेयर जो जोखिम के स्वीकार्य स्तर की अपेक्षाओं को पूरा करता है) वितरित किया जाता है, साथ ही तकनीकी ऋण में कमी आती है। इसके अलावा, जब सॉफ्टवेयर की गुणवत्ता के प्रयासों और परीक्षण को व्यावसायिक अपेक्षाओं के साथ जोड़ा जाता है, तो परीक्षण निष्पादन कार्रवाई योग्य कार्यों की एक प्राथमिकता वाली सूची तैयार करता है (संभावित रूप से भारी संख्या में निष्कर्षों के बजाय जिन्हें मैनुअल समीक्षा की आवश्यकता होती है)। यह टीमों को उनके संगठन के लक्ष्यों और प्राथमिकताओं के आधार पर गुणवत्ता वाले कार्यों पर अपने प्रयासों पर ध्यान केंद्रित करने में मदद करता है जिनका सबसे अधिक प्रभाव पड़ेगा। इसके अतिरिक्त, जब दल पूरे एस. डी. एल. सी. में निरंतर परीक्षणों के एक व्यापक समूह को लगातार निष्पादित कर रहे होते हैं, तो वे प्रक्रिया की गुणवत्ता के साथ-साथ सॉफ्टवेयर की स्थिति के बारे में मैट्रिक्स एकत्र करते हैं। परिणामी मेट्रिक्स का उपयोग उन परीक्षणों की प्रभावशीलता सहित प्रक्रिया को फिर से जांचने और अनुकूलित करने के लिए किया जा सकता है। इस जानकारी का उपयोग एक प्रतिक्रिया लूप स्थापित करने के लिए किया जा सकता है जो टीमों को प्रक्रिया में वृद्धि करने में मदद करता है। बार-बार माप, कड़ी प्रतिक्रिया लूप और निरंतर सुधार देवऑप्स के प्रमुख सिद्धांत हैं। परीक्षण के दायरे में निरंतर परीक्षण में कार्यात्मक आवश्यकताओं और गैर-कार्यात्मक आवश्यकताओं दोनों का सत्यापन शामिल है। कार्यात्मक आवश्यकताओं (कार्यात्मक परीक्षण) के परीक्षण के लिए, निरंतर परीक्षण में अक्सर इकाई परीक्षण, एपीआई परीक्षण, एकीकरण परीक्षण और प्रणाली परीक्षण शामिल होते हैं। गैर-कार्यात्मक आवश्यकताओं के परीक्षण के लिए (गैर-कार्यात्मक परीक्षण-यह निर्धारित करने के लिए कि क्या अनुप्रयोग प्रदर्शन, सुरक्षा, अनुपालन, आदि के आसपास की अपेक्षाओं को पूरा करता है। ), इसमें स्थिर कोड विश्लेषण, सुरक्षा परीक्षण, प्रदर्शन परीक्षण आदि जैसी प्रथाएं शामिल हैं। सॉफ्टवेयर जारी करने वाले व्यवसाय या संगठन के लिए सबसे महत्वपूर्ण जोखिमों का जल्द से जल्द पता लगाने (या रोकथाम) के लिए परीक्षण तैयार किए जाने चाहिए। टीमों को अक्सर यह पता चलता है कि यह सुनिश्चित करने के लिए कि परीक्षण सूट लगातार चल सकता है और जोखिम के स्तर का प्रभावी ढंग से आकलन कर सकता है, जी. यू. आई. परीक्षण से ए. पी. आई. परीक्षण पर ध्यान केंद्रित करना आवश्यक है क्योंकि 1) ए. पी. आई. ("लेनदेन परत") को परीक्षण के तहत प्रणाली के लिए सबसे स्थिर इंटरफेस माना जाता है, और 2) जी. यू. आई. परीक्षणों को त्वरित रिलीज प्रक्रियाओं के विशिष्ट परिवर्तनों के साथ तालमेल रखने के लिए काफी पुनर्निर्माण की आवश्यकता होती है; ए. पी. आई. परत पर परीक्षण कम भंगुर और बनाए रखने में आसान होते हैं। परीक्षण निरंतर एकीकरण के दौरान या उसके साथ निष्पादित किए जाते हैं-कम से कम दैनिक। निरंतर वितरण का अभ्यास करने वाली टीमों के लिए, परीक्षण आमतौर पर दिन में कई बार किए जाते हैं, हर बार जब एप्लिकेशन को संस्करण नियंत्रण प्रणाली में अद्यतन किया जाता है। आदर्श रूप से, सभी परीक्षणों को सभी गैर-उत्पादन परीक्षण वातावरण में निष्पादित किया जाता है। सटीकता और निरंतरता सुनिश्चित करने के लिए, परीक्षण सबसे पूर्ण, उत्पादन जैसे वातावरण में किया जाना चाहिए। परीक्षण पर्यावरण स्थिरता बढ़ाने की रणनीतियों में वर्चुअलाइजेशन सॉफ्टवेयर (उन निर्भरताओं के लिए जिन्हें आपका संगठन नियंत्रित कर सकता है और छवि बना सकता है) सेवा वर्चुअलाइजेशन (आपके नियंत्रण के दायरे से परे या इमेजिंग के लिए अनुपयुक्त निर्भरताओं के लिए), और परीक्षण डेटा प्रबंधन शामिल हैं। सामान्य प्रथाओं का परीक्षण एक समन्वित, अंत से अंत तक गुणवत्ता प्रक्रिया के भीतर-व्यवसाय की प्राथमिकताओं के साथ संरेखित-विकास, क्यू. ए. और संचालन का सहयोग होना चाहिए। परीक्षण तार्किक रूप से-घटक, वृद्धिशील और दोहराने योग्य होने चाहिए; परिणाम निर्धारक और सार्थक होने चाहिए। सभी परीक्षणों को निर्माण पाइपलाइन में किसी बिंदु पर चलाने की आवश्यकता होती है, लेकिन सभी परीक्षणों को हर समय चलाने की आवश्यकता नहीं होती है क्योंकि कुछ परीक्षण अन्य (इकाई परीक्षण) की तुलना में अधिक संसाधन महंगे (एकीकरण परीक्षण) होते हैं। परीक्षण डेटा और पर्यावरण की बाधाओं को समाप्त करें ताकि परीक्षण उत्पादन जैसे वातावरण में लगातार और लगातार चल सकें। गलत सकारात्मक को कम करने, परीक्षण रखरखाव को कम करने और बहुआयामी संरचनाओं के साथ आधुनिक प्रणालियों में उपयोग के मामलों को अधिक प्रभावी ढंग से मान्य करने के लिए, टीमों को जी. यू. आई. परीक्षण पर ए. पी. आई. परीक्षण पर जोर देना चाहिए। चुनौती/बाधाएँ चूंकि आधुनिक अनुप्रयोग अत्यधिक वितरित हैं, इसलिए उनका उपयोग करने वाले परीक्षण सुइट्स को आम तौर पर उन निर्भरताओं तक पहुंच की आवश्यकता होती है जो परीक्षण के लिए आसानी से उपलब्ध नहीं हैं (जैसे, तृतीय-पक्ष सेवाएं, मेनफ्रेम जो केवल सीमित क्षमता में या असुविधाजनक समय पर परीक्षण के लिए उपलब्ध हैं, आदि)। इसके अलावा, फुर्तीली और समानांतर विकास प्रक्रियाओं के बढ़ते अपनाने के साथ, अंत से अंत तक कार्यात्मक परीक्षणों के लिए उन निर्भरताओं तक पहुंच की आवश्यकता होना आम बात है जो अभी भी विकसित हो रही हैं या अभी तक लागू नहीं की गई हैं। इस समस्या को लापता या अनुपलब्ध निर्भरताओं के साथ परीक्षण (ए. यू. टी.) बातचीत के तहत अनुप्रयोग का अनुकरण करने के लिए सेवा वर्चुअलाइजेशन का उपयोग करके संबोधित किया जा सकता है। इसका उपयोग यह सुनिश्चित करने के लिए भी किया जा सकता है कि विभिन्न परीक्षणों में डेटा, प्रदर्शन और व्यवहार सुसंगत हो। टीमों द्वारा निरंतर परीक्षण से बचने का एक कारण यह है कि उनका बुनियादी ढांचा परीक्षण सूट को लगातार निष्पादित करने के लिए पर्याप्त मापनीय नहीं है। इस समस्या को व्यवसाय की प्राथमिकताओं पर परीक्षणों पर ध्यान केंद्रित करके, परीक्षण आधार को विभाजित करके और अनुप्रयोग रिलीज स्वचालन उपकरणों के साथ परीक्षण को समानांतर करके संबोधित किया जा सकता है। निरंतर परीक्षण बनाम स्वचालित परीक्षण निरंतर परीक्षण का लक्ष्य स्थिर, उत्पादन जैसे परीक्षण वातावरण में "अत्यधिक स्वचालन" को लागू करना है। निरंतर परीक्षण के लिए स्वचालन आवश्यक है। लेकिन स्वचालित परीक्षण निरंतर परीक्षण के समान नहीं है। स्वचालित परीक्षण में टीम द्वारा एकत्र किए गए परीक्षणों के किसी भी सेट का स्वचालित, सी. आई.-संचालित निष्पादन शामिल है। स्वचालित परीक्षण से निरंतर परीक्षण की ओर बढ़ने में परीक्षणों के एक समूह को निष्पादित करना शामिल है जो विशेष रूप से एक रिलीज उम्मीदवार से जुड़े व्यावसायिक जोखिमों का आकलन करने और स्थिर, उत्पादन जैसे परीक्षण वातावरण के संदर्भ में इन परीक्षणों को नियमित रूप से निष्पादित करने के लिए डिज़ाइन किया गया है। स्वचालित और निरंतर परीक्षण के बीच कुछ अंतरः स्वचालित परीक्षण के साथ, एक परीक्षण विफलता एक महत्वपूर्ण मुद्दे से लेकर एक तुच्छ नामकरण मानक के उल्लंघन तक कुछ भी संकेत दे सकती है। निरंतर परीक्षण के साथ, एक परीक्षण विफलता हमेशा एक महत्वपूर्ण व्यावसायिक जोखिम का संकेत देती है। निरंतर परीक्षण के साथ, दोष बनाम व्यावसायिक जोखिमों को प्राथमिकता देने और सबसे महत्वपूर्ण जोखिमों को पहले संबोधित करने के लिए एक स्पष्ट कार्यप्रवाह के माध्यम से एक परीक्षण विफलता का समाधान किया जाता है। निरंतर परीक्षण के साथ, हर बार जब किसी जोखिम की पहचान की जाती है, तो पहले से ही पेश किए गए सभी समान दोषों को उजागर करने के साथ-साथ भविष्य में इसी समस्या को बार-बार होने से रोकने की एक प्रक्रिया होती है। 1990 के दशक से, निरंतर परीक्षण-संचालित विकास का उपयोग प्रोग्रामरों को तेजी से प्रतिक्रिया प्रदान करने के लिए किया गया है कि क्या उनके द्वारा जोड़ा गया कोड ए) ठीक से काम करता है और बी) अनजाने में मौजूदा कार्यक्षमता को बदल देता है या तोड़ देता है। यह परीक्षण, जो चरम प्रोग्रामिंग का एक प्रमुख घटक था, स्वचालित निर्माण के हिस्से के रूप में स्वचालित रूप से इकाई परीक्षणों (और कभी-कभी स्वीकृति परीक्षण या धुआं परीक्षण) को निष्पादित करता है, अक्सर दिन में कई बार। ये परीक्षण कार्यान्वयन से पहले लिखे जाते हैं; उत्तीर्ण परीक्षण इंगित करते हैं कि कार्यान्वयन सफल है। निरंतर परीक्षण उपकरण अनुसंधान फर्म फॉरेस्टर रिसर्च और गार्टनर ने परीक्षण स्वचालन उपकरणों के अपने वार्षिक मूल्यांकन में निरंतर परीक्षण को प्राथमिक विचार बनाया। गार्टनर ने 2019 में शोध का एक अद्यतन संस्करण प्रकाशित किया। गार्टनर ने 10 उपकरणों का मूल्यांकन किया जो उद्यम-श्रेणी परीक्षण स्वचालन उपकरणों के लिए उनके मानदंडों को पूरा करते थे। मूल्यांकन में गार्टनर ग्राहकों के साथ पूछताछ, उपकरण उपयोगकर्ताओं का सर्वेक्षण, गार्टनर के प्रश्नों के लिए विक्रेता प्रतिक्रियाएं, विक्रेता उत्पाद प्रदर्शन शामिल थे। गार्टनर को देशी विंडोज डेस्कटॉप अनुप्रयोग परीक्षण और एंड्रॉइड या आई. ओ. एस. परीक्षण समर्थन के साथ-साथ निम्नलिखित में से 3 का समर्थन करने के लिए उपकरणों की आवश्यकता थीः उत्तरदायी वेब अनुप्रयोग, मोबाइल अनुप्रयोग, पैकेज अनुप्रयोग, ए. पी. आई./वेब सेवाएं। 2019 के मैजिक क्वाड्रेंट शोध के परिणाम हैंः लीडर्सः एगप्लांट, स्मार्टबियर सॉफ्टवेयर, ट्राइसेंटिस चैलेंजर्सः आईबीएम, माइक्रो फोकस विजनरीजः ब्रॉडकॉम, पैरासॉफ्ट निच प्लेयर्सः फ्रॉग्लॉजिक, रेनोरेक्स, वर्कसॉफ्ट 2020 में, फॉरेस्टर रिसर्च ने 15 उपकरणों का मूल्यांकन किया जो उद्यम-श्रेणी परीक्षण कार्यात्मक स्वचालन उपकरणों के लिए उनके मानदंडों को पूरा करते थे। फॉरेस्टर ने पिछले शोध, उपयोगकर्ता की जरूरतों और विशेषज्ञ साक्षात्कारों के आधार पर 26 मानदंड निर्धारित किए, फिर फॉरेस्टर प्रश्नों, विक्रेता उत्पाद प्रदर्शनों और ग्राहक साक्षात्कारों के लिए विक्रेता प्रतिक्रियाओं के आधार पर उत्पादों बनाम उस मानदंड का मूल्यांकन किया। फॉरेस्टर को क्रॉस-ब्राउज़र, मोबाइल, यू. आई. और ए. पी. आई. परीक्षण क्षमताओं वाले उपकरणों की आवश्यकता होती है। 2020 की फॉरेस्टर लहर के परिणाम इस प्रकार हैंः अग्रणीः एसीसीईएलक्यू, एगप्लांट, पैरासॉफ्ट, ट्राइसेंटिस मजबूत प्रदर्शन करने वालेः ब्रॉडकॉम, आईबीएम, मेबल, माइक्रो फोकस, परफोर्स, सॉस लैब्स, स्मार्टबियर सॉफ्टवेयर दावेदारः साइरा, एक्सपायरटेस्ट, वर्कसॉफ्ट चैलेंजर्सः रैनोरेक्स निरंतर वितरण निरंतर एकीकरण डेवऑप्स रिलीज प्रबंधन सेवा वर्चुअलाइजेशन सॉफ्टवेयर परीक्षण परीक्षण स्वचालन आगे पढ़ने के लिए संदर्भ सॉफ्टवेयर परीक्षण