Software Quality Assurance
SQA का पूरा नाम software quality assurance है। SQA ऐसी क्रियाकलापों का एक समूह है जो यह सुनिश्चित करता है कि विकसित किये गए सॉफ्टवेयर में क्वालिटी उपस्थित है। SQA सॉफ्टवेयर डेवलपमेंट लाइफ-साइकिल(SDLC) के अंदर होने वाली प्रक्रिया है जो कि सॉफ्टवेयर क्वालिटी के लिए प्रयोग किये जाने वाली methods तथा process की समयानुसार जांच करता है।
सॉफ्टवेयर विकास की प्रक्रिया समय के अनुसार क्वालिटी के साथ सही सामंजस्य नहीं बिठा पा रही है ,इसके कारण विभिन्न सॉफ्टवेयर समय से पहले ही फेल हो जाते है अतः क्वालिटी के विकास के लिए नियंत्रण जरुरी हो गया है | quality assurance सिस्टम प्रोजेक्ट के लक्ष्यों को दर्शाता है ,तथा डेवलपमेंट के दौरान विभिन्न गतिविधियों पर भी ध्यान रखता है एरर को सफलतापूर्वक सुधारा जा सके |
सॉफ्टवेयर क्वालिटी से तात्पर्य है कि सॉफ्टवेयर, त्रुटि मुक्त(error free), आवश्यकताओं को पूरा करने वाला, समय पर डिलीवर होने वाला तथा बजट के अंदर आने वाला होना चाहिए और उसकी परफॉरमेंस उच्च कोटि की होनी चाहिए।
सॉफ्टवेयर क्वालिटी सॉफ्टवेयर के external तथा internal क्वालिटी पर आधारित होता है।External क्वालिटी का अर्थ है कि जब कोई यूजर सॉफ्टवेयर को चलाता है तो वह क्या experience करता है? जबकि internal क्वालिटी ऐसे पहलू पर आधारित होता है जो कि code-dependent होता है और ये कोड end-users को दिखाई नही देता है क्योंकि इनका coding से कोई भी मतलब नही होता है।
Importance of Quality Assurance in System development Life Cycle
(सिस्टम लाइफ साइकिल में क्वालिटी एश्योरेन्स का महत्व)
1.Quality factor specification: इस स्टेप का उद्देश्य उन तरीको को व्यक्त करना होता है,जो किसी कैंडिडेट सिस्टम की क्वालिटी के लिए उत्तरदायी होते है | किसी सिस्टम की क्वालिटी को व्यक्त करने वाले कारण निम्नलिखित है –
- Ease-of-use:-सॉफ्टवेयर को आसानी से चलाया जा सके अर्थात् सॉफ्टवेयर का यूजर-इंटरफ़ेस बेहतर होना चाहिए।
- Design:-सॉफ्टवेयर का डिज़ाइन अच्छा होना चाहिए क्योंकि यूज़र सॉफ्टवेयर के प्रति तभी आकर्षित होगा जब उसका डिज़ाइन बेहतर होगा।
- Speed:-सॉफ्टवेयर को कम समय गवांये अपनी सर्विस provide करनी चाहिए अर्थात् इसकी गति तेज होनी चाहिए।
- Security:-सॉफ्टवेयर secure होना चाहिए अर्थात् सॉफ्टवेयर में उपस्थित डेटा को कौन-कौन देख तथा प्रोसेस कर सकता है? अगर कोई इंटरनेट पर आधारित सॉफ्टवेयर है तो उसमें encryption तथा decryption होना चाहिए।
- Error-free:-सॉफ्टवेयर त्रुटियों से मुक्त होना चाहिए क्योंकि अगर सॉफ्टवेयर में errors होंगे तो सॉफ्टवेयर की reliability तथा security कम हो जायेगी जिससे सॉफ्टवेयर fail हो जायेगा।
- Portable:-सॉफ्टवेयर portable होना चाहिए अर्थात् सॉफ्टवेयर दूसरे environment पर भी आसानी से run होना चाहिए।
- Testability:-Testability का अर्थ है कि सॉफ्टवेयर को आसानी से टेस्ट किया जा सकें।
- Maintainability:-इसका अर्थ है कि अगर हमें सॉफ्टवेयर में कोई बदलाव करने हो तो हमें उसे आसानी से कर सकें।
- Readability:-सॉफ्टवेयर का source-कोड readable होना चाहिए अर्थात् जिसको आसानी से पढ़ा जा सकें।
- Reliability:-सॉफ्टवेयर reliable होना चाहिए अर्थात् जो सॉफ्टवेयर है वह अपनी performance पर स्थिर होना चाहिए।
- Functionality:- Functionality अर्थात् जो सॉफ्टवेयर है उसमें यूज़र के जरूरत के आधार पर functions होने चाहिए जिससे यूजर को उसमें कार्य करने में आसानी हो।
2.Software Requirement Specification: इस स्टेप का उद्देश्य रिक्वायरमेंट प्रदान करना होता है | डॉक्यूमेंट सॉफ्टवेयर के विकास और डिज़ाइन के लिए आवश्यक तकनीकियों को व्यक्त करता है | यह डॉक्यूमेंट यूजर और डेवलपर के बीच कम्युनिकेशन बढ़ाने में मदद करता है |
3.Software testing and Implementation: सिस्टम टेस्टिंग का उद्देश्य सिस्टम की सम्पूर्णता व शुद्धता का विश्वास दिलाना होता है | इम्प्लीमेंटेशन का उद्देश्य विभिन्न मॉड्यूल को एक लॉजिकल क्रम प्रदान करना होता है |
4.Maintenance and support: इस स्टेप के माध्यम से किसी भी सिस्टम को आवश्यक सॉफ्टवेयर परिवर्तन करने में सहायता मिलती है | इस स्टेप का क्वालिटी एश्योरेन्स लक्ष्य,गलतियों को सुधरने व सॉफ्टवेर के विकास के लिए आवश्यक विधियों का विकास करना होता है |
सॉफ्टवेयर क्वालिटी को measure करने के बहुत से criteria है और प्रत्येक पहलू की अपनी-अपनी importance होती है।