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