सॉफ्टवेयर परीक्षण में एम्बेडेड परीक्षण क्या है?
एम्बेडेड सिस्टम क्या हैं?
एम्बेडेड सिस्टम इलेक्ट्रॉनिक रूप से नियंत्रित डिवाइस होते हैं, जहाँ सॉफ़्टवेयर और हार्डवेयर आपस में कसकर जुड़े होते हैं। एम्बेडेड सिस्टम में कई तरह के कंप्यूटिंग डिवाइस हो सकते हैं। ये पीसी होते हैं जिन्हें एप्लिकेशन-विशिष्ट कार्यों को संचालित करने के लिए अन्य डिवाइस में शामिल किया जाता है। अंतिम उपयोगकर्ता को आमतौर पर उनके अस्तित्व के बारे में पता भी नहीं होता है।
एंबेडेड परीक्षण
एंबेडेड परीक्षण एम्बेडेड सिस्टम में सॉफ़्टवेयर और हार्डवेयर दोनों की कार्यात्मक और गैर-कार्यात्मक विशेषताओं की जाँच करने और यह सुनिश्चित करने के लिए एक परीक्षण प्रक्रिया है कि अंतिम उत्पाद दोष मुक्त है। एम्बेडेड परीक्षण का मुख्य उद्देश्य यह सत्यापित करना और मान्य करना है कि एम्बेडेड हार्डवेयर और सॉफ़्टवेयर का अंतिम उत्पाद क्लाइंट की आवश्यकताओं को पूरा करता है या नहीं।
एम्बेडेड सॉफ़्टवेयर परीक्षण जाँचता है और सुनिश्चित करता है कि संबंधित सॉफ़्टवेयर अच्छी गुणवत्ता का है और सभी आवश्यकताओं का अनुपालन करता है। एम्बेडेड सॉफ़्टवेयर परीक्षण चिकित्सा उपकरण, रेलवे, विमानन, वाहन उद्योग आदि जैसे महत्वपूर्ण अनुप्रयोगों में सुरक्षा की गारंटी देने के लिए एक उत्कृष्ट दृष्टिकोण है। सॉफ़्टवेयर प्रमाणन प्रदान करने के लिए सख्त और सावधानीपूर्वक परीक्षण महत्वपूर्ण है।
एम्बेडेड सॉफ़्टवेयर परीक्षण कैसे करें
सामान्यतः, आप चार कारणों से परीक्षण करते हैं:
- सॉफ्टवेयर में बग ढूंढने के लिए
- उपयोगकर्ताओं और कंपनी दोनों के लिए जोखिम को कम करने में मदद करता है
- विकास और रखरखाव लागत में कटौती
- प्रदर्शन में सुधार करने के लिए
एम्बेडेड परीक्षण में निम्नलिखित गतिविधियाँ की जाती हैं:
1. सॉफ्टवेयर कुछ इनपुट के साथ प्रदान किया गया है।
2. सॉफ्टवेयर का एक टुकड़ा निष्पादित किया जाता है।
3. सॉफ्टवेयर की स्थिति का अवलोकन किया जाता है, तथा आउटपुट की अपेक्षित विशेषताओं के लिए जांच की जाती है, जैसे कि आउटपुट अपेक्षित परिणाम से मेल खाता है या नहीं, आवश्यकताओं के अनुरूप है या नहीं, तथा सिस्टम क्रैश की अनुपस्थिति है या नहीं।
एम्बेडेड सॉफ़्टवेयर परीक्षण के प्रकार
मूलतः, परीक्षण के पाँच स्तर हैं जिन्हें एम्बेडेड सॉफ़्टवेयर पर लागू किया जा सकता है
सॉफ्टवेयर यूनिट परीक्षण
यूनिट मॉड्यूल या तो फ़ंक्शन या क्लास होता है। यूनिट परीक्षण विकास टीम द्वारा किया जाता है, मुख्य रूप से डेवलपर द्वारा और आमतौर पर सहकर्मी-समीक्षा मॉडल में किया जाता है। मॉड्यूल के विनिर्देश के आधार पर परीक्षण मामले विकसित किए जाते हैं।
एकीकरण जांच
एकीकरण परीक्षण को दो खंडों में वर्गीकृत किया जा सकता है:
- सॉफ्टवेयर एकीकरण परीक्षण
- सॉफ्टवेयर/हार्डवेयर एकीकरण परीक्षण.
अंत में, हार्डवेयर डोमेन और सॉफ़्टवेयर घटकों की परस्पर क्रिया का परीक्षण किया जाता है। इसमें अंतर्निहित परिधीय उपकरणों और सॉफ़्टवेयर के बीच परस्पर क्रिया की जांच शामिल हो सकती है।
एम्बेडेड सॉफ़्टवेयर विकास की एक अनूठी विशेषता है जो वास्तविक वातावरण पर ध्यान केंद्रित करती है, जिसमें सॉफ़्टवेयर चलाया जाता है, आम तौर पर सॉफ़्टवेयर के समानांतर बनाया जाता है। यह परीक्षण के लिए असुविधा का कारण बनता है क्योंकि व्यापक परीक्षण एक सिम्युलेटेड स्थिति में नहीं किया जा सकता है।
सिस्टम यूनिट परीक्षण
अब परीक्षण किया जाने वाला मॉड्यूल एक पूर्ण फ्रेमवर्क है जिसमें संपूर्ण सॉफ्टवेयर कोड के अतिरिक्त सभी शामिल हैं वास्तविक समय ऑपरेटिंग सिस्टम (आरटीओएस) और प्लेटफ़ॉर्म से संबंधित भाग जैसे कि इंटरप्ट, टास्किंग मैकेनिज्म, संचार इत्यादि। पॉइंट ऑफ़ कंट्रोल प्रोटोकॉल अब किसी फ़ंक्शन या विधि आह्वान के लिए कॉल नहीं है, बल्कि RTOS संदेश कतारों का उपयोग करके भेजा/प्राप्त किया गया संदेश है।
एम्बेडेड सिस्टम निष्पादन का समर्थन करने के लिए सिस्टम की क्षमता का मूल्यांकन करने के लिए सिस्टम संसाधनों का अवलोकन किया जाता है। इस पहलू के लिए, ग्रे-बॉक्स परीक्षण पसंदीदा परीक्षण विधि है। संगठन के आधार पर, सिस्टम यूनिट परीक्षण या तो डेवलपर या समर्पित सिस्टम एकीकरण टीम का कर्तव्य है।
सिस्टम एकीकरण परीक्षण
परीक्षण किया जाने वाला मॉड्यूल एक नोड के भीतर घटकों के एक सेट से शुरू होता है। नियंत्रण और अवलोकन के बिंदु (पीसीओ) नेटवर्क से संबंधित संचार प्रोटोकॉल और आरटीओएस, जैसे नेटवर्क संदेश और आरटीओएस घटनाओं का मिश्रण हैं। घटक के अतिरिक्त, एक वर्चुअल परीक्षक भी नोड की भूमिका निभा सकता है।
सिस्टम सत्यापन परीक्षण
परीक्षण किया जाने वाला मॉड्यूल एक पूर्ण कार्यान्वयन वाला सबसिस्टम या पूर्ण एम्बेडेड सिस्टम है। इस अंतिम परीक्षण का उद्देश्य बाहरी इकाई की कार्यात्मक आवश्यकताओं को पूरा करना है। ध्यान दें कि बाहरी इकाई या तो कोई व्यक्ति हो सकती है, या दूरसंचार नेटवर्क में कोई डिवाइस हो सकती है, या दोनों हो सकती है।
अंतर: एम्बेडेड परीक्षण और सॉफ्टवेयर परीक्षण
| सॉफ़्टवेयर परीक्षण | एंबेडेड परीक्षण |
|---|---|
| सॉफ्टवेयर परीक्षण केवल सॉफ्टवेयर से संबंधित है। | एम्बेडेड परीक्षण सॉफ्टवेयर और हार्डवेयर दोनों से संबंधित है। |
| विश्व में औसतन 90% परीक्षण पूर्णतः मैनुअल ब्लैक बॉक्स परीक्षण होते हैं। | एम्बेडेड परीक्षण एम्बेडेड सिस्टम या चिप्स पर किया जाता है, यह ब्लैक बॉक्स या व्हाइट बॉक्स परीक्षण हो सकता है। |
| परीक्षण के प्राथमिक क्षेत्र हैं GUI जांच, कार्यक्षमता, सत्यापन और कुछ स्तर का डेटाबेस परीक्षण। | परीक्षण के प्राथमिक क्षेत्र हार्डवेयर को दिए गए इनपुट की संख्या के आधार पर उसका व्यवहार है। |
| सॉफ्टवेयर परीक्षण मुख्यतः क्लाइंट-सर्वर, वेब और मोबाइल आधारित अनुप्रयोगों पर किया जाता है। | एम्बेडेड परीक्षण आम तौर पर हार्डवेयर पर किया जाता है। |
| उदाहरणार्थ, गूगल Mail, याहू Mail, Android अनुप्रयोगों. | उदाहरण के लिए, स्वास्थ्य सेवा क्षेत्र की मशीनें, कंप्यूटर में प्रयुक्त माइक्रोकंट्रोलर। |
चुनौतियाँ: एम्बेडेड सॉफ़्टवेयर परीक्षण
एम्बेडेड सॉफ्टवेयर परीक्षण के दौरान आने वाली कुछ चुनौतियाँ:
हार्डवेयर निर्भरता
हार्डवेयर निर्भरता एम्बेडेड सॉफ़्टवेयर परीक्षण के दौरान सामना की जाने वाली मुख्य कठिनाइयों में से एक है क्योंकि हार्डवेयर तक सीमित पहुँच होती है। हालाँकि, एमुलेटर और सिमुलेटर वास्तविक डिवाइस के व्यवहार को सटीक रूप से प्रस्तुत नहीं कर सकते हैं और सिस्टम प्रदर्शन और एप्लिकेशन की उपयोगिता का गलत अर्थ दे सकते हैं।
ओपन सोर्स सॉफ्टवेयर
एम्बेडेड सॉफ़्टवेयर घटकों में से अधिकांश प्रकृति में ओपन सोर्स हैं, इन-हाउस नहीं बनाए गए हैं और इसके लिए पूर्ण परीक्षण उपलब्ध नहीं है। परीक्षण संयोजनों और परिणामी परिदृश्यों की एक विस्तृत श्रृंखला है।
सॉफ्टवेयर बनाम हार्डवेयर दोष
दूसरा पहलू यह है कि जब किसी नए हार्डवेयर के लिए सॉफ्टवेयर विकसित किया जा रहा हो, तो इस प्रक्रिया के दौरान हार्डवेयर में दोषों का उच्च अनुपात पाया जा सकता है। पाया गया दोष केवल सॉफ्टवेयर तक ही सीमित नहीं है। यह हार्डवेयर से भी संबंधित हो सकता है।
पुनरुत्पादनीय दोष
एम्बेडेड सिस्टम के मामले में दोषों को पुन: उत्पन्न करना/पुनः बनाना कठिन होता है। यह एम्बेडेड परीक्षण प्रक्रिया को प्रत्येक दोष की घटना को मानक मामले की तुलना में काफी अधिक मूल्य देने के लिए बाध्य करता है, दोष की नींव का पता लगाने के लिए सिस्टम को बदलने के लिए जितना संभव हो उतना डेटा इकट्ठा करने के अलावा।
निरंतर सॉफ़्टवेयर अद्यतन
एम्बेडेड सिस्टम को नियमित सॉफ़्टवेयर अपडेट की आवश्यकता होती है जैसे कर्नेल अपग्रेड, सुरक्षा फ़िक्स, अलग-अलग डिवाइस ड्राइवर, आदि। सॉफ़्टवेयर अपडेट प्रभाव से पहचानी जाने वाली बाधाएँ बग पहचान को मुश्किल बनाती हैं। इसके अतिरिक्त, यह बिल्ड और परिनियोजन प्रक्रिया के महत्व को बढ़ाता है।
सारांश
एम्बेडेड सॉफ़्टवेयर परीक्षण में कुछ कठिनाइयाँ हैं जो इसे नियमित सॉफ़्टवेयर परीक्षण से ज़्यादा कठिन बनाती हैं। सबसे बुनियादी मुद्दा हार्डवेयर वातावरण पर कड़ी निर्भरता है जिसे सॉफ़्टवेयर के साथ-साथ तैयार किया जाता है, और विश्वसनीय सॉफ़्टवेयर परीक्षण करने के लिए नियमित रूप से इसकी आवश्यकता होती है। कभी-कभी कस्टम टूल के बिना सॉफ़्टवेयर का परीक्षण करना भी मुश्किल होता है, जो बाद के चरणों में परीक्षण पर ध्यान केंद्रित करने को बेहद आकर्षक बनाता है।
सबसे महत्वपूर्ण बातों में से एक यह है कि आपको इस बारे में सोचना चाहिए कि आपको अक्सर स्वचालित सॉफ़्टवेयर परीक्षण का विकल्प चुनना चाहिए। एम्बेडेड स्वचालित परीक्षण एक तेज़ प्रक्रिया है जिसे पूरा होने में कुछ घंटे लगेंगे, और इस तरह, आपके सॉफ़्टवेयर का मुद्दा सुलझ जाता है।
