सॉफ्टवेयर परीक्षण पद्धतियाँ: QA मॉडल
⚡ स्मार्ट सारांश
सॉफ्टवेयर टेस्टिंग मेथोडोलॉजी उन रणनीतियों और परीक्षण प्रकारों को परिभाषित करती है जिनका उपयोग यह प्रमाणित करने के लिए किया जाता है कि कोई एप्लिकेशन क्लाइंट की अपेक्षाओं को पूरा करता है। वॉटरफॉल, इटरेटिव, एजाइल और एक्सट्रीम प्रोग्रामिंग, ये सभी परीक्षण के प्रारंभ होने और फीडबैक प्राप्त होने के समय को निर्धारित करते हैं।
सॉफ्टवेयर परीक्षण पद्धति क्या है?
सॉफ़्टवेयर परीक्षण पद्धति को रणनीतियों और परीक्षण प्रकारों के रूप में परिभाषित किया जाता है जिनका उपयोग यह प्रमाणित करने के लिए किया जाता है कि परीक्षण के तहत आवेदन क्लाइंट की अपेक्षाओं को पूरा करता है। परीक्षण पद्धतियों में AUT को मान्य करने के लिए कार्यात्मक और गैर-कार्यात्मक परीक्षण शामिल हैं। परीक्षण पद्धतियों के उदाहरण हैं इकाई का परीक्षण, एकीकरण जांच, सिस्टम परीक्षण, प्रदर्शन का परीक्षण आदि। प्रत्येक परीक्षण पद्धति में एक परिभाषित परीक्षण उद्देश्य, परीक्षण रणनीति और डिलिवरेबल्स होते हैं।
नोट: चूँकि सॉफ़्टवेयर परीक्षण किसी भी विकास पद्धति का एक अभिन्न अंग है, इसलिए कई कंपनियाँ बोलचाल की भाषा में विकास पद्धतियाँ और परीक्षण पद्धतियाँ शब्द का उपयोग करती हैं। इसलिए परीक्षण पद्धतियाँ परीक्षण पद्धतियों की उपरोक्त परिभाषा के विपरीत वाटरफॉल, एजाइल और अन्य QA मॉडल को भी संदर्भित कर सकती हैं। विभिन्न परीक्षण प्रकारों पर चर्चा पाठकों के लिए मूल्य नहीं जोड़ती है। इसलिए, हम विभिन्न विकास मॉडलों पर चर्चा करेंगे।
परीक्षण पद्धति बनाम परीक्षण प्रकार बनाम परीक्षण रणनीति
उपरोक्त टिप्पणी उद्योग में मौजूद एक वास्तविक अस्पष्टता की ओर इशारा करती है। बातचीत में तीन शब्दों का इस्तेमाल एक दूसरे के स्थान पर किया जाता है, लेकिन परियोजना दस्तावेज़ में उनके अर्थ अलग-अलग होते हैं, और उन्हें लेकर भ्रम की स्थिति पैदा करने से ऐसे परीक्षण योजनाएँ बनती हैं जो गलत प्रश्न का उत्तर देती हैं।
| अवधि | प्रश्न इसका उत्तर है | द्वारा तय किया गया | उदाहरण |
|---|---|---|---|
| परीक्षण पद्धति | विकास चक्र में परीक्षण की भूमिका कब और कैसे आती है? | उपयोग में लाया जा रहा विकास मॉडल | वॉटरफॉल, इटरेटिव, एजाइल, एक्सट्रीम प्रोग्रामिंग |
| परीक्षण प्रकार | उत्पाद के किस पहलू का सत्यापन किया जा रहा है? | जोखिम और आवश्यकता कवरेज | इकाई, एकीकरण, प्रणाली, प्रदर्शन, सुरक्षा |
| परीक्षण स्तर | सॉफ्टवेयर की जांच किस स्तर तक की जाती है? | निर्माण पदानुक्रम में स्थिति | घटक, एकीकरण, प्रणाली, स्वीकृति |
| परीक्षण रणनीति | गुणवत्ता के प्रति हमारा संगठनात्मक दृष्टिकोण क्या है? | QA नेतृत्व, सभी परियोजनाओं पर लागू होता है | जोखिम आधारित, स्वचालन प्राथमिकता, बाईं ओर स्थानांतरण |
| जाँच की योजना | यह परियोजना वास्तव में किस चीज का परीक्षण करेगी, कब करेगी और किसके द्वारा करेगी? | टेस्ट मैनेजर, परियोजना विशिष्ट | कार्यक्षेत्र, समय-सारणी, संसाधन, प्रवेश और निकास मानदंड |
एक उपयोगी नियम: कार्यप्रणाली लय निर्धारित करती है, प्रकार लक्ष्य निर्धारित करता है, और परीक्षण योजना यह प्रतिबद्धता को दर्ज करता है। नीचे दिए गए अनुभाग कार्यप्रणाली की जांच करते हैं।
झरना मॉडल
यह क्या है?
में झरना मॉडल, सॉफ्टवेयर विकास विभिन्न चरणों जैसे आवश्यकता विश्लेषण, डिजाइन आदि के माध्यम से प्रगति करता है – क्रमिक रूप से.
इस मॉडल में, अगला चरण तभी शुरू होता है जब पिछला चरण पूरा हो जाता है।
परीक्षण का दृष्टिकोण क्या है?
वाटरफॉल मॉडल में पहला चरण आवश्यकता चरण है जिसमें परीक्षण शुरू करने से पहले सभी परियोजना आवश्यकताओं को पूरी तरह से परिभाषित किया जाता है। इस चरण के दौरान, परीक्षण टीम परीक्षण के दायरे, परीक्षण रणनीति पर विचार-विमर्श करती है और एक विस्तृत परीक्षण योजना का मसौदा तैयार करती है।
सॉफ्टवेयर का डिजाइन पूरा हो जाने के बाद, टीम परीक्षण मामलों के निष्पादन की ओर बढ़ेगी, ताकि यह सुनिश्चित किया जा सके कि विकसित सॉफ्टवेयर अपेक्षा के अनुरूप कार्य करेगा।
इस पद्धति में, परीक्षण दल अगले चरण पर तभी आगे बढ़ता है जब पिछला चरण पूरा हो जाता है।
| फायदे | नुकसान |
|---|---|
| इस सॉफ्टवेयर इंजीनियरिंग मॉडल की योजना बनाना और उसका प्रबंधन करना बहुत आसान है। इसलिए, जिन परियोजनाओं में आवश्यकताओं को स्पष्ट रूप से परिभाषित किया गया है और पहले से ही बताया गया है, उन्हें वॉटरफॉल मॉडल का उपयोग करके आसानी से परखा जा सकता है। | वाटरफॉल मॉडल में, आप अगले चरण की शुरुआत तभी कर सकते हैं जब पिछला चरण पूरा हो जाए। इसलिए, यह मॉडल अनियोजित घटनाओं और अनिश्चितता को समायोजित नहीं कर सकता। |
| यह पद्धति उन परियोजनाओं के लिए उपयुक्त नहीं है जहां आवश्यकताएं बार-बार बदलती रहती हैं। |
Iterative विकास
यह क्या है?
इस मॉडल में, एक बड़ी परियोजना को छोटे-छोटे भागों में विभाजित किया जाता है, और प्रत्येक भाग को वॉटरफॉल मॉडल के कई चरणों से गुज़ारा जाता है। एक चरण के अंत में, एक नया मॉड्यूल विकसित किया जाता है या किसी मौजूदा मॉड्यूल को बेहतर बनाया जाता है। इस मॉड्यूल को सॉफ़्टवेयर आर्किटेक्चर में एकीकृत किया जाता है और पूरे सिस्टम का एक साथ परीक्षण किया जाता है।
परीक्षण का तरीका क्या है?
जैसे ही पुनरावृत्ति पूरी हो जाती है, पूरी प्रणाली परीक्षण के अधीन हो जाती है। परीक्षण से प्राप्त फीडबैक तुरंत उपलब्ध होता है और अगले चक्र में शामिल किया जाता है। पिछले पुनरावृत्तियों से प्राप्त अनुभव के आधार पर क्रमिक पुनरावृत्ति में आवश्यक परीक्षण समय को कम किया जा सकता है।
| फायदे | नुकसान |
|---|---|
| पुनरावृत्तीय विकास का मुख्य लाभ यह है कि प्रत्येक चक्र के अंत में परीक्षण फीडबैक तुरंत उपलब्ध हो जाता है। | यह मॉडल संचार व्यय को काफी हद तक बढ़ा देता है, क्योंकि प्रत्येक चक्र के अंत में, डिलीवरेबल्स, प्रयास आदि के बारे में फीडबैक देना आवश्यक होता है। |
चंचल कार्यप्रणाली
यह क्या है?
पारंपरिक सॉफ्टवेयर विकास पद्धतियां इस आधार पर काम करती हैं कि पूरे प्रोजेक्ट में सॉफ्टवेयर की आवश्यकताएं स्थिर रहती हैं। लेकिन जटिलता में वृद्धि के साथ, आवश्यकताओं में कई बदलाव होते हैं और वे लगातार विकसित होती रहती हैं। कई बार, ग्राहक खुद भी निश्चित नहीं होता कि उसे क्या चाहिए। हालाँकि पुनरावृत्त मॉडल इस मुद्दे को संबोधित करता है, फिर भी यह वॉटरफॉल मॉडल पर आधारित है।
एजाइल कार्यप्रणाली में, सॉफ्टवेयर को वृद्धिशील, तीव्र चक्रों में विकसित किया जाता है। प्रक्रियाओं और उपकरणों के बजाय ग्राहकों, डेवलपर्स और क्लाइंट के बीच बातचीत पर जोर दिया जाता है। एजाइल कार्यप्रणाली व्यापक योजना के बजाय परिवर्तन का जवाब देने पर ध्यान केंद्रित करती है।
परीक्षण का दृष्टिकोण क्या है?
वृद्धिशील परीक्षण का उपयोग एजाइल विकास विधियों में किया जाता है और इसलिए, परियोजना के प्रत्येक रिलीज़ का गहन परीक्षण किया जाता है। यह सुनिश्चित करता है कि सिस्टम में किसी भी बग को अगले रिलीज़ से पहले ठीक कर दिया जाए।
| फायदे | नुकसान |
|---|---|
| आवश्यकताओं के अनुपालन हेतु किसी भी समय परियोजना में परिवर्तन करना संभव है। | निरंतर ग्राहक संपर्क का अर्थ है ग्राहक, सॉफ्टवेयर विकास और परीक्षण टीमों सहित सभी हितधारकों पर अतिरिक्त समय का दबाव। |
| यह वृद्धिशील परीक्षण जोखिम को न्यूनतम करता है। |
चरम कार्यक्रम
यह क्या है?
एक्सट्रीम प्रोग्रामिंग एक प्रकार की चुस्त कार्यप्रणाली है जो छोटे विकास चक्रों में विश्वास करती है। एक परियोजना को सरल इंजीनियरिंग कार्यों में विभाजित किया जाता है। प्रोग्रामर सॉफ़्टवेयर के एक सरल टुकड़े को कोड करते हैं और फीडबैक के लिए ग्राहक से संपर्क करते हैं। Revग्राहक के विचारों को शामिल किया जाता है और डेवलपर्स अगले कार्य के लिए आगे बढ़ते हैं।
एक्सट्रीम प्रोग्रामिंग में डेवलपर्स आमतौर पर जोड़ियों में काम करते हैं।
चरम कार्यक्रम इसका उपयोग उन स्थानों पर किया जाता है जहां ग्राहकों की आवश्यकताएं लगातार बदलती रहती हैं।
परीक्षण का दृष्टिकोण क्या है?
एक्सट्रीम प्रोग्रामिंग एक टेस्ट-संचालित विकास का अनुसरण करती है जिसका वर्णन इस प्रकार है –
- एक जोड़ें परीक्षण का मामला नई कार्यक्षमता को सत्यापित करने के लिए टेस्ट सूट का उपयोग किया जाएगा, जिसे अभी विकसित किया जाना बाकी है।
- सभी परीक्षण चलाएं और स्पष्ट रूप से जोड़ा गया नया परीक्षण मामला विफल होना चाहिए क्योंकि कार्यक्षमता अभी तक कोडित नहीं है
- सुविधा/कार्यक्षमता को क्रियान्वित करने के लिए कुछ कोड लिखें
- टेस्ट सूट को फिर से चलाएँ। इस बार, नया टेस्ट केस पास हो जाना चाहिए क्योंकि फंक्शनली कोड किया गया है
| फायदे | नुकसान |
|---|---|
| जिन ग्राहकों के मन में सॉफ्टवेयर डिजाइन को लेकर अस्पष्ट विचार हैं, वे एक्सट्रीम प्रोग्रामिंग का उपयोग कर सकते हैं। | सॉफ्टवेयर विकास टीम और ग्राहकों के बीच बैठकों से समय की आवश्यकता बढ़ जाती है। |
| निरंतर परीक्षण और छोटे रिलीज का निरंतर एकीकरण सुनिश्चित करता है कि वितरित सॉफ्टवेयर कोड उच्च गुणवत्ता का हो |
वी-मॉडल और सर्पिल मॉडल
अधिकांश परियोजनाओं में दो और मॉडल दिखाई देते हैं और पूरी तस्वीर को पूरा करते हैं, क्योंकि प्रत्येक मॉडल अलग-अलग तरीके से वॉटरफॉल दृष्टिकोण की एक कमजोरी का समाधान करता है।
वी-मॉडल। अक्सर सत्यापन और प्रमाणीकरण कहा जाने वाला वी-मॉडल, विकास के प्रत्येक चरण को एक संबंधित परीक्षण चरण के साथ जोड़ता है, जिसे वी के दो भुजाओं के रूप में दर्शाया जाता है। आवश्यकताएँ स्वीकृति परीक्षण के साथ, उच्च स्तरीय डिज़ाइन सिस्टम परीक्षण के साथ, निम्न स्तरीय डिज़ाइन एकीकरण परीक्षण के साथ और कोडिंग इकाई परीक्षण के साथ जोड़ी जाती हैं। इसका लाभ यह है कि परीक्षण डिज़ाइन कोडिंग के बाद के बजाय प्रत्येक विकास चरण के साथ ही शुरू हो जाता है, इसलिए स्वीकृति परीक्षण लिखने वाला व्यक्ति किसी दोष के बनने से महीनों पहले ही अस्पष्ट आवश्यकताओं का पता लगा लेता है। इसकी कमजोरी वॉटरफॉल मॉडल से विरासत में मिली है: यह मॉडल अभी भी आवश्यकताओं को स्थिर मानता है।
सर्पिल मॉडल। यह चक्रीय प्रक्रिया स्पष्ट जोखिम विश्लेषण पर आधारित है। प्रत्येक चक्र में चार गतिविधियाँ होती हैं: उद्देश्यों का निर्धारण, जोखिमों की पहचान और समाधान, विकास और परीक्षण, और फिर अगले चरण की योजना बनाना। इस प्रकार, परीक्षण जोखिम के उच्चतम स्तर पर केंद्रित होता है, न कि समान रूप से वितरित होता है। यह एयरोस्पेस या बैंकिंग कोर सिस्टम जैसे बड़े, महंगे और लंबे समय तक चलने वाले कार्यक्रमों के लिए उपयुक्त है, जहाँ जोखिम का देर से पता चलने पर भारी नुकसान हो सकता है। एक छोटे वेब प्रोजेक्ट के लिए, प्रत्येक चक्र में औपचारिक जोखिम विश्लेषण का अतिरिक्त खर्च शायद ही उचित होता है।
दोनों मॉडल वॉटरफॉल पद्धति और एजाइल रिस्पॉन्सिवनेस के बीच स्थित हैं। जहां रिलीज की आवृत्ति दोनों से अधिक मायने रखती है, वहां एक DevOps पाइपलाइन टेस्टिंग को निरंतर एकीकरण में धकेलती है ताकि प्रत्येक कमिट स्वचालित रूप से सत्यापित हो जाए।
कौन सी सॉफ्टवेयर पद्धति चुनें?
सॉफ़्टवेयर विकास और उसके अनुरूप परीक्षण के लिए ढेरों पद्धतियाँ उपलब्ध हैं। प्रत्येक परीक्षण तकनीक और कार्यप्रणाली एक विशिष्ट उद्देश्य के लिए डिज़ाइन की गई है और उसके अपने सापेक्ष गुण और दोष हैं।
किसी विशेष कार्यप्रणाली का चयन कई कारकों पर निर्भर करता है जैसे परियोजना की प्रकृति, ग्राहक की आवश्यकता, परियोजना की समय-सारणी आदि।
परीक्षण के दृष्टिकोण से, कुछ कार्यप्रणाली विकास जीवन चक्र के प्रारम्भ में ही परीक्षण इनपुट पर जोर देती हैं, जबकि अन्य कार्यप्रणाली तब तक प्रतीक्षा करती हैं जब तक कि सिस्टम का कार्यशील मॉडल तैयार न हो जाए।
सॉफ्टवेयर परीक्षण पद्धतियाँ कैसे स्थापित करें?
सॉफ़्टवेयर परीक्षण पद्धतियों को केवल सॉफ़्टवेयर कोड के परीक्षण के लिए स्थापित नहीं किया जाना चाहिए। बड़ी तस्वीर पर विचार किया जाना चाहिए और परियोजना का मुख्य लक्ष्य परीक्षण पद्धति से संतुष्ट होना चाहिए। प्रतिष्ठित की इस सूची को देखें सॉफ्टवेयर परीक्षण सेवा प्रदाता जो आपकी परियोजना के लक्ष्यों के अनुरूप प्रभावी परीक्षण रणनीतियां स्थापित करने में आपकी सहायता कर सकते हैं।
निर्धारण
यथार्थवादी समय-निर्धारण सफल परीक्षण पद्धति के कार्यान्वयन की कुंजी है और समय-निर्धारण को टीम के प्रत्येक सदस्य की आवश्यकताओं को पूरा करना चाहिए।
परिभाषित डिलिवरेबल्स
टीम के सभी सदस्यों को एक ही पृष्ठ पर रखने के लिए, अच्छी तरह से परिभाषित डिलीवरेबल्स प्रदान किए जाने चाहिए। डिलीवरेबल्स में बिना किसी अस्पष्टता के सीधी सामग्री होनी चाहिए।
परीक्षण दृष्टिकोण
एक बार शेड्यूलिंग पूरी हो जाने और परिभाषित डिलीवरेबल्स उपलब्ध हो जाने के बाद, परीक्षण टीम को सही परीक्षण दृष्टिकोण तैयार करने में सक्षम होना चाहिए। परिभाषा दस्तावेजों और डेवलपर बैठकों से टीम को परियोजना के लिए इस्तेमाल किए जा सकने वाले सर्वोत्तम परीक्षण दृष्टिकोण के बारे में संकेत मिलना चाहिए।
रिपोर्टिंग
पारदर्शी रिपोर्टिंग हासिल करना बहुत कठिन है, लेकिन यह कदम परियोजना में प्रयुक्त परीक्षण दृष्टिकोण की प्रभावशीलता निर्धारित करता है।





