What is Testing Strategies in Software Engineering ?
गलतियो को खोजने के इरादे से जब किसी program को execute कराया जाता है तो उसे testing कहते हैं। जब program में कोई bugs आ जाता है तो उसे ढूंढने के लिए testing की जाती है। यह एक ऐसी प्रक्रिया है जो program को अंतिम उपयोगकर्ता को submitted करने से पहले किया जाता है।
Strategy for Software Testing:
Software testing करने के लिए एक रणनीति तैयार करने की आवश्यकता होती है क्योंकि अच्छी रणनीति (strategies) तैयार करने के पहले यदि software को deliver कर दिया गया तो उसके fail होने की संभावना बहुत अधिक होती है इसलिए निम्न क्रम में software testing होना आवश्यक होता है:
- Software के test-cases को अच्छी तरह से एक series में रखना।
- Software testing के लिए एक road map बनाकर रखना।
- Software testing के road map में यह निर्धारित करना कि वह कितने समय में कितने प्रयास के बाद, और कितने संसाधनों के बाद delivery के लिए तैयार होगा।
- Software testing के लिए test-case design तैयार किया जाना।
- Test execution, test result collection और evaluation की गणना करना।
- Test result को मापा जाना, और समस्याओं का जल्दी से जल्दी समाधान निकालना testing strategy का एक भाग होता है।
Who test software?
Software कि testing दो प्रकार के कर्मचारियों द्वारा किया जाता है पहला वे होते हैं जो अलग से testing के लिए appoint होते हैं और दूसरा software developer होते हैं। पहले प्रकार के testing करने वाले व्यक्ति यह देखते हैं कि software में किस प्रकार का दोष है यह देखते हैं कि software चलने में किसी प्रकार का कोई बाधा तो नहीं आ रहा है।
Read Also - USER INTERFACE DESIGN AND TESTING STRATEGIES IN SOFTWARE ENGINEERING
दूसरे प्रकार के testing करने वाले व्यक्ति slow गति से कार्य करते हैं यह क्योंकि पूरी तरह system को समझते हैं इसलिए यह software को अंतिम रूप हैं और यदि ये गलतिया नहीं ढूंढ पाते तो वह customer को delivery के लिए तैयार होता है।
Testing Objective:
Testing के कुछ प्रमुख उद्देश्य निम्नलिखित होते हैं:
- Testing program में गलतियों को ढूंढने के लिए किया जाता है।
- यह एक प्रक्रिया है जिसे अंतिम उपयोगकर्ता को लाभ पहुॅचाने के उद्देश्य के लिए किया जाता है।
- एक अच्छा testing वह होता है जो कम से कम समय में गलतियों को ढूंढकर निकाले और ऐसी गलतियों को ढुंढे जिसे पूर्व में अनदेखा कर दिया गया हो।
- अच्छा testing उसे कहते हैं जिसके द्वारा ऐसे bugs को ढूंढा गया हो जिसे पूर्व में नहीं ढूंढा जा सका हो।
- अच्छा testing के द्वारा अलग-अलग श्रेणीयो के त्रुटियों को दिखाता है।
- Testing का उद्देश्य केवल software की गलतियों को ढूंढना होता है न की ऐसी गलतियों को जो उपस्थित नहीं होतें।
- Testing से यह स्पष्ट होता है कि सभी functions निर्धारित settings के अनुसार कार्य कर रहें है या नहीं।
Software Tester:
Software को बनाने के बाद उसे test करने के लिए कुछ software बनाये गये है जो बने हुए software में गलतियों को पकड़ने का कार्य करते हैं इस प्रकार के software को software tester कहते हैं।
इस प्रकार के software यह पहचान सकते हैं कि यह जो software है उसके प्रयोग से computer के hardware को किसी प्रकार की क्षति नहीं होगी। इस प्रकार के कुछ software को ROM chip में पहले से ही feed कर दिया जाता है जो computer में execute होने वाले software की लगातार जॉच करते रहते हैं।
Testable Software:
किसी software में यदि निम्न लक्षण पाया जाता है तो उसे testable software कहेंगे -
i) Simple:
Code का simplicity होना, program में कार्यात्मक एवं संरचनात्मक गुणो का होना।
ii) Understandable:
Architecture design का समझने योग्य होना, एवं संगठित करने के लिए documentation किया जाना।
iii) Stable:
Testing के दौरान software में परिवर्तन की संभावना नगण्य होती हैं इसके बावजूद यह वर्तमान test को अमान्य नहीं करते।
iv) Observable:
गलत इनपुट को आसानी से पहचाना जा सकता है और अंदरूनी गलतियों का automatic ही पता लगाया जा सकता है।
v) Operable:
गुणवत्ता की जॉच किया जा सकता है इसमें software के काम को देखा जाता है कि वह बेहतर तरीके से कार्य कर रहें है या नहीं।
vi) Independence:
Software को एक स्वतंत्र module के रूप में तैयार किया जा सकता है जिससे उसकी स्वतंत्र रूप से जॉच किया जा सकता है।
Tester characteristics:
निम्न गुण होते हैं उसे एक अच्छा जॉच करने वाले की श्रेणी में रख सकते हैं:
i) जिसमें अधिक से अधिक त्रुटी खोजने की क्षमता हो- Tester को यह समझना चाहिए कि कभी भी software fail हो सकता है।
ii) अच्छा tester व्यर्थ के चिजो को ध्यान नहीं देता- Testing का समय कम होता है इसलिए जो जॉच की जाती है उसे किसी दुसरे जॉच में शामिल नहीं किया जाना चाहिए।
iii) अच्छा tester बड़े लक्ष्य को ध्यान देता है- ऐसी testing पर अधिक ध्यान देना चाहिए जो संपूर्ण class के गलतियों को उजागर करता हों।
iv) अच्छा testing न तो सरल होना चाहिए और न ही कठिन - Testing को सरल बनाने के लिए error की पहचान करके प्रत्येक testing को अलग-अलग करना चाहिए।
Read Also - WHAT IS DESIGN ENGINEERING AND DESIGN PROCESS IN SOFTWARE ENGINEERING
What is Verification and Validation testing ?
Validation एक ऐसी प्रक्रिया है जिसमें यह देखेंगे कि वह end user की आवश्यकता को पूरा करता है या नहीं। Validation को software के मूल्यांकन करने की प्रक्रिया मान सकते हैं। इसके द्वारा हम यह देखते हैं कि क्या validation से निर्धारित व्यवसायिक जरूरत पूरा हो रहा है या नहीं। Validation में निम्न तत्व होते हैं:
- यह software development प्रक्रिया का अंतिम चरण है जिससे यह निर्णय होता है कि software ग्राहक के अपेक्षा और आवश्यकताओ में खरा उतर रहा है या नहीं।
- Code का execution के समय validation निर्धारित करके उसे उसके execution पर विराम लगया जा सकता है। इसका उदाहरण है कि आप एक text box में व्यक्ति का उम्र लेते हैं तो उस text box के input range को 0 से 150 के बीच निर्धारित कर देते हैं जिससे range से बाहर उम्र enter करते ही उसे रोक देगा।
- Verification से यह निर्धारित होता है कि जो software बनाया गया है वह उपयोग के लिए सभी प्रकार से योग्य है और व्यापार की आवश्यकताए उससे पूरी हो रही है।
- Verification में सभी गतिशील परिक्षण तकनीक सम्मिलित होते हैं।
- Verification के तुरंत बाद ही validation का कार्य किया जाता है।
- Verification में black box testing, white box testing, gray box testing इत्यादि activities सम्मिलित होते हैं।
System testing:
इसके पहले दिये गये diagram में देखेंगे तो पायेगे की system testing, software testing का एक level है। यह पूर्ण और एकीकृत software testing के समय उपयोगी होता है। इस testing का उद्देश्य यह देखना होता है कि system के मूल्यांकन के लिए निर्धारित आवश्यकता का पालन सही प्रकार से किया जा रहा है।
0 Comments