software testing in hindi

 

सॉफ्टवेयर परीक्षण कैसे काम करता है?




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

सॉफ्टवेयर परीक्षण के प्रकार

कई अलग-अलग प्रकार के सॉफ़्टवेयर परीक्षण हैं, जिनमें से प्रत्येक विशिष्ट उद्देश्यों और रणनीतियों के साथ हैं:

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

प्रत्येक मामले में, आधार आवश्यकताओं को मान्य करना एक महत्वपूर्ण मूल्यांकन है। उतना ही महत्वपूर्ण, खोजपूर्ण परीक्षण एक परीक्षक या परीक्षण टीम को कठिन-से-पूर्वानुमान परिदृश्यों और स्थितियों को उजागर करने में मदद करता है जो सॉफ़्टवेयर त्रुटियों का कारण बन सकते हैं।

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


सॉफ्टवेयर परीक्षण का इतिहास


सॉफ्टवेयर के विकास के साथ-साथ सॉफ्टवेयर परीक्षण का आगमन हुआ, जिसकी शुरुआत द्वितीय विश्व युद्ध के ठीक बाद हुई थी। कंप्यूटर वैज्ञानिक टॉम किलबर्न को सॉफ्टवेयर का पहला टुकड़ा लिखने का श्रेय दिया जाता है, जो 21 जून, 1948 को इंग्लैंड के मैनचेस्टर विश्वविद्यालय में शुरू हुआ था। यह मशीन कोड निर्देशों का उपयोग करके गणितीय गणना करता है।


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

"1990 के दशक में, गुणवत्ता आश्वासन नामक एक अधिक व्यापक प्रक्रिया के लिए परीक्षण से एक संक्रमण था, जो पूरे सॉफ्टवेयर विकास चक्र को कवर करता है और परीक्षण मामलों की योजना, डिजाइन, निर्माण और निष्पादन की प्रक्रियाओं को प्रभावित करता है, मौजूदा परीक्षण मामलों और परीक्षण के लिए समर्थन करता है। वातावरण, ”अलेक्जेंडर यारोशको ने uTest डेवलपर साइट पर अपने पोस्ट में कहा।

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

निरंतर परीक्षण

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

चक्र में पहले परीक्षण गतिविधियों को करने से विकास के बाद के विचार के बजाय परीक्षण प्रयास को सबसे आगे रखने में मदद मिलती है। पहले सॉफ्टवेयर परीक्षणों का मतलब यह भी था कि दोषों को हल करना कम खर्चीला है।

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


सॉफ्टवेयर परीक्षण क्यों महत्वपूर्ण है

कुछ सॉफ्टवेयर विकसित करते समय गुणवत्ता नियंत्रण की आवश्यकता के खिलाफ तर्क दे सकते हैं। देर से वितरण या सॉफ़्टवेयर दोष ब्रांड की प्रतिष्ठा को नुकसान पहुंचा सकते हैं - जिससे निराश और खोए हुए ग्राहक हो सकते हैं। चरम मामलों में, एक बग या दोष परस्पर जुड़े सिस्टम को ख़राब कर सकता है या गंभीर खराबी का कारण बन सकता है।

एयरबैग सेंसर डिटेक्टरों में एक सॉफ्टवेयर दोष के कारण निसान को 1 मिलियन से अधिक कारों को वापस बुलाने पर विचार करें। या एक सॉफ्टवेयर बग जिसके कारण 1.2 बिलियन अमरीकी डालर का सैन्य उपग्रह प्रक्षेपण विफल हो गया। 2   संख्याएँ अपने लिए बोलती हैं। अमेरिका में सॉफ़्टवेयर विफलताओं ने 2016 में अर्थव्यवस्था को 1.1 ट्रिलियन अमेरिकी डॉलर की संपत्ति का नुकसान पहुंचाया। इससे भी अधिक, उन्होंने 4.4 बिलियन ग्राहकों को प्रभावित किया। 3

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

  • वास्तु दोष
  • खराब डिजाइन निर्णय
  • अमान्य या गलत कार्यक्षमता
  • सुरक्षा कमजोरियां
  • मापनीयता के मुद्दे

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


सॉफ़्टवेयर परीक्षण सर्वोत्तम अभ्यास

सॉफ्टवेयर परीक्षण एक सामान्य प्रक्रिया का अनुसरण करता है। कार्यों या चरणों में परीक्षण वातावरण को परिभाषित करना, परीक्षण मामलों को विकसित करना, स्क्रिप्ट लिखना, परीक्षण परिणामों का विश्लेषण करना और दोष रिपोर्ट प्रस्तुत करना शामिल है।

परीक्षण में समय लग सकता है। छोटे निर्माण के लिए मैन्युअल परीक्षण या तदर्थ परीक्षण पर्याप्त हो सकता है। हालांकि, बड़े सिस्टम के लिए, टूल का उपयोग अक्सर कार्यों को स्वचालित करने के लिए किया जाता है। स्वचालित परीक्षण टीमों को विभिन्न परिदृश्यों को लागू करने में मदद करता है, विभेदकों का परीक्षण करता है (जैसे कि क्लाउड वातावरण में घटकों को स्थानांतरित करना), और क्या काम करता है और क्या नहीं, इस पर तुरंत प्रतिक्रिया प्राप्त करता है।

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

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

Post a Comment

0 Comments

Contact Form