गतिशील परीक्षण
डायनेमिक टेस्टिंग एक सॉफ्टवेयर टेस्टिंग विधि है, जिसका उपयोग सॉफ्टवेयर कोड के डायनामिक व्यवहार का परीक्षण करने के लिए किया जाता है। डायनामिक टेस्टिंग का मुख्य उद्देश्य डायनेमिक वेरिएबल्स या वैरिएबल के साथ सॉफ़्टवेयर व्यवहार का परीक्षण करना है जो निरंतर नहीं हैं और सॉफ़्टवेयर रनटाइम वातावरण में कमजोर क्षेत्रों का पता लगा रहे हैं। डायनामिक व्यवहार का परीक्षण करने के लिए कोड को निष्पादित किया जाना चाहिए।
हम सभी जानते हैं कि परीक्षण सत्यापन और सत्यापन है, और परीक्षण को पूरा करने में 2 Vs लगते हैं। 2 Vs में से, वेरिफिकेशन को स्टेटिक टेस्टिंग कहा जाता है और दूसरे को "V" कहा जाता है, Validation को डायनामिक टेस्टिंग के रूप में जाना जाता है।
गतिशील परीक्षण उदाहरण
आइए समझते हैं कि एक उदाहरण के साथ डायनामिक परीक्षण कैसे करें:
मान लीजिए हम एक लॉगिन पृष्ठ का परीक्षण कर रहे हैं, जहां हमारे पास दो फ़ील्ड हैं "उपयोगकर्ता नाम" और "पासवर्ड" और उपयोगकर्ता नाम अल्फ़ान्यूमेरिक तक सीमित है।
जब उपयोगकर्ता "Guru99" के रूप में उपयोगकर्ता नाम दर्ज करता है, तो सिस्टम उसी को स्वीकार करता है। जहां जब उपयोगकर्ता गुरु 99 @ 123 के रूप में प्रवेश करता है तब एप्लिकेशन एक त्रुटि संदेश फेंकता है। यह परिणाम दिखाता है कि कोड उपयोगकर्ता इनपुट के आधार पर गतिशील रूप से कार्य कर रहा है ।
डायनामिक परीक्षण तब होता है जब आप एक इनपुट प्रदान करके वास्तविक एप्लिकेशन के साथ काम कर रहे होते हैं और एप्लिकेशन के वास्तविक व्यवहार की तुलना अपेक्षित व्यवहार से करते हैं। दूसरे शब्दों में, त्रुटियों को खोजने के इरादे से सिस्टम के साथ काम करना।
इसलिए उपरोक्त कथनों के आधार पर हम कह सकते हैं या निष्कर्ष निकाल सकते हैं कि सही सॉफ्टवेयर बनाने के लिए डायनेमिक टेस्टिंग एक अंतिम उपयोगकर्ता के रूप में सॉफ्टवेयर अनुप्रयोगों को अलग-अलग वातावरण में सत्यापित करने की एक प्रक्रिया है।
गतिशील परीक्षण क्या करता है?
डायनामिक परीक्षणों का मुख्य उद्देश्य यह सुनिश्चित करना है कि सॉफ़्टवेयर की स्थापना के दौरान और बाद में सॉफ़्टवेयर ठीक से काम करता है, किसी भी बड़ी खामियों के बिना एक स्थिर अनुप्रयोग सुनिश्चित करता है (यह कथन इसलिए किया जाता है क्योंकि कोई सॉफ़्टवेयर त्रुटि मुक्त नहीं है, परीक्षण केवल दोषों की उपस्थिति दिखा सकता है और अनुपस्थिति नहीं)
डायनेमिक टेस्ट का मुख्य उद्देश्य सॉफ्टवेयर की स्थिरता सुनिश्चित करना है; एक उदाहरण के साथ इस पर चर्चा करते हैं।
एक बैंकिंग एप्लिकेशन में, हमें अलग-अलग स्क्रीन मिलते हैं जैसे कि मेरा खाता अनुभाग, निधि अंतरण, बिल भुगतान, आदि ... इन सभी स्क्रीन में राशि क्षेत्र होता है जो कुछ वर्णों को स्वीकार करता है।
मान लीजिए कि मेरे खाते के क्षेत्र में राशि 25,000 और फंड ट्रांसफर के रूप में $ 25,000 और बिल पे स्क्रीन के रूप में $ 25000 के रूप में राशि प्रदर्शित होती है, हालांकि यह राशि समान है, जिस तरह से राशि प्रदर्शित की जाती है, इसलिए यह सॉफ्टवेयर को गैर-प्रासंगिक नहीं बनाता है।
संगति केवल कार्यक्षमता तक सीमित नहीं है यह प्रदर्शन, प्रयोज्य, अनुकूलता आदि जैसे विभिन्न मानकों को भी संदर्भित करती है, इसलिए गतिशील परीक्षण करना बहुत महत्वपूर्ण हो जाता है।
गतिशील परीक्षण के प्रकार
डायनामिक टेस्टिंग को दो श्रेणियों में वर्गीकृत किया गया है
- व्हाइट बॉक्स परीक्षण
- ब्लैक बॉक्स परीक्षण
नीचे दिए गए चित्रात्मक प्रतिनिधित्व से हमें गतिशील परीक्षण के प्रकार, परीक्षण के स्तर आदि के बारे में एक विचार मिलता है।
आइए हम प्रत्येक प्रकार के परीक्षण के बारे में संक्षेप में चर्चा करें और यह अभीष्ट उद्देश्य है
व्हाइट बॉक्स परीक्षण - व्हाइट बॉक्स परीक्षण एक सॉफ्टवेयर परीक्षण विधि है जिसमें आंतरिक संरचना / डिजाइन परीक्षक को ज्ञात होती है। व्हाइट बॉक्स परीक्षण का मुख्य उद्देश्य यह देखना है कि सिस्टम कोड के आधार पर कैसा प्रदर्शन कर रहा है। यह मुख्य रूप से डेवलपर्स या व्हाइट बॉक्स टेस्टर्स द्वारा किया जाता है जिन्हें प्रोग्रामिंग पर ज्ञान है।
ब्लैक बॉक्स परीक्षण - ब्लैक बॉक्स परीक्षण परीक्षण की एक विधि है जिसमें आंतरिक संरचना / कोड / डिज़ाइन परीक्षक को ज्ञात नहीं है । परीक्षण के तहत प्रणाली की कार्यक्षमता को सत्यापित करने के लिए इस परीक्षण का मुख्य उद्देश्य और इस प्रकार के परीक्षण को पूर्ण परीक्षण सूट को निष्पादित करना है और मुख्य रूप से परीक्षकों द्वारा निष्पादित किया जाता है, और किसी भी प्रोग्रामिंग ज्ञान की आवश्यकता नहीं है।
ब्लैक बॉक्स टेस्टिंग फिर से दो वर्गों में विभाजित किया गया है।
वे
- क्रियात्मक परीक्षण
- गैर-कार्यात्मक परीक्षण
क्रियात्मक परीक्षण:
कार्यात्मक परीक्षण यह सत्यापित करने के लिए किया जाता है कि विकसित की गई सभी विशेषताएं कार्यात्मक विनिर्देशों के अनुसार हैं, और यह QA टीम द्वारा लिखित कार्यात्मक परीक्षण मामलों को निष्पादित करके किया जाता है, कार्यात्मक परीक्षण चरण में, सिस्टम को इनपुट प्रदान करके, आउटपुट की पुष्टि करके परीक्षण किया जाता है और अपेक्षित परिणामों के साथ वास्तविक परिणामों की तुलना करना।
कार्यात्मक परीक्षण के विभिन्न स्तर हैं जिनमें से सबसे महत्वपूर्ण हैं
- यूनिट टेस्टिंग - आम तौर पर यूनिट कोड का एक छोटा सा टुकड़ा होता है जो टेस्ट करने योग्य होता है, यूनिट टेस्टिंग सॉफ्टवेयर की अलग-अलग यूनिट में किया जाता है और डेवलपर्स द्वारा किया जाता है
- इंटीग्रेशन टेस्टिंग - इंटीग्रेशन टेस्टिंग वह टेस्टिंग है जो यूनिट टेस्टिंग के बाद की जाती है और यह सभी इंडिविजुअल यूनिट्स को मिलाकर किया जाता है जो टेस्टेबल होते हैं और जो डेवलपर्स या टेस्टर द्वारा परफॉर्म किए जाते हैं।
- सिस्टम टेस्टिंग - सिस्टम टेस्टिंग यह सुनिश्चित करने के लिए किया जाता है कि क्या सिस्टम आवश्यकताओं के अनुसार प्रदर्शन करता है और आम तौर पर प्रदर्शन किया जाता है जब पूरा सिस्टम तैयार हो जाता है, यह बिल्डरों द्वारा किया जाता है जब QA टीम को बिल्ड या कोड जारी किया जाता है
- स्वीकृति परीक्षण - स्वीकृति परीक्षण यह सत्यापित करने के लिए किया जाता है कि क्या सिस्टम व्यावसायिक आवश्यकताओं को पूरा कर चुका है और उपयोग करने के लिए तैयार है या तैनाती के लिए तैयार है और आमतौर पर अंतिम उपयोगकर्ताओं द्वारा निष्पादित किया जाता है।
गैर-कार्यात्मक परीक्षण : गैर-कार्यात्मक परीक्षण एक परीक्षण तकनीक है जो कार्यात्मक पहलुओं पर ध्यान केंद्रित नहीं करती है और मुख्य रूप से सिस्टम की गैर-कार्यात्मक विशेषताओं जैसे कि मेमोरी लीक, प्रदर्शन या प्रणाली की मजबूती पर केंद्रित है। गैर-कार्यात्मक परीक्षण सभी परीक्षण स्तरों पर किया जाता है।
कई गैर-कार्यात्मक परीक्षण तकनीकें हैं जिनमें से सबसे महत्वपूर्ण हैं
- प्रदर्शन परीक्षण - प्रदर्शन परीक्षण यह जांचने के लिए किया जाता है कि वांछित नेटवर्क लोड के तहत सिस्टम का प्रतिक्रिया समय सामान्य है या नहीं।
- रिकवरी टेस्टिंग - रिकवरी टेस्टिंग इस बात को सत्यापित करने की एक विधि है कि सिस्टम क्रैश और हार्डवेयर विफलताओं से कितनी अच्छी तरह से उबरने में सक्षम है।
- संगतता परीक्षण - संगतता परीक्षण यह सत्यापित करने के लिए किया जाता है कि सिस्टम विभिन्न वातावरणों में कैसे व्यवहार करता है।
- सुरक्षा परीक्षण - सुरक्षा परीक्षण आवेदन की मजबूती को सत्यापित करने के लिए किया जाता है, अर्थात यह सुनिश्चित करने के लिए कि केवल उपयोगकर्ता / भूमिकाएं ही सिस्टम तक पहुंच पा रही हैं
- प्रयोज्यता परीक्षण - प्रयोज्यता परीक्षण प्रणाली की प्रयोज्यता को सत्यापित करने की एक विधि है, जो उपयोगकर्ताओं को इस बात की पुष्टि करने के लिए है कि उपयोगकर्ता प्रणाली के साथ कितने सहज हैं।
गतिशील परीक्षण तकनीक
STLC में डायनामिक टेस्टिंग तकनीकों में परीक्षण, टेस्ट प्लानिंग, टेस्ट केस डिजाइन और कार्यान्वयन, टेस्ट पर्यावरण सेटअप, टेस्ट केस निष्पादन, बग रिपोर्टिंग और अंत में टेस्ट क्लोजर के लिए आवश्यकताएँ विश्लेषण जैसे विभिन्न कार्य शामिल हैं। गतिशील परीक्षण तकनीकों में सभी कार्य परीक्षण प्रक्रिया में पिछले कार्य के पूरा होने पर निर्भर हैं।
STLC में, हम कह सकते हैं कि वास्तविक डायनामिक परीक्षण प्रक्रिया टेस्ट केस डिजाइन से शुरू होती है, आइए प्रत्येक गतिविधि के विवरण पर चर्चा करें।
प्रक्रिया में आने से पहले उस रणनीति पर चर्चा करें जो डायनामिक परीक्षण के लिए आवश्यक है।
टेस्ट रणनीति मुख्य रूप से उपलब्ध संसाधनों और समय-सीमा पर केंद्रित होनी चाहिए। इन कारकों के आधार पर, परीक्षण का उद्देश्य, परीक्षण का दायरा, परीक्षण के चरण या चक्र, पर्यावरण का प्रकार, मान्यताओं या चुनौतियों का सामना करना पड़ सकता है, जोखिम, आदि का दस्तावेजीकरण किया जाना है।
एक बार जब रणनीति को परिभाषित किया जाता है और प्रबंधन द्वारा स्वीकार किया जाता है तब वास्तविक प्रक्रिया परीक्षण केस डिजाइन शुरू होता है
टेस्ट डिजाइन और कार्यान्वयन क्या है
इस चरण में हम पहचान करते हैं,
- परीक्षण किया जाना है
- टेस्ट की स्थिति को सुधारे
- कवरेज आइटम वितरित करें
- टेस्ट केस को टाल दें
टेस्ट पर्यावरण सेटअप
हमें यह सुनिश्चित करना है कि परीक्षण पर्यावरण हमेशा उत्पादन पर्यावरण के समान होना चाहिए, इस चरण में हमें परीक्षण मशीनों का निर्माण और प्रबंधन करना है।
परीक्षण निष्पादन
इस चरण के दौरान, परीक्षण मामलों को वास्तव में निष्पादित किया जाता है।
बग रिपोर्ट पर कब्जा
निष्पादन के आधार पर यदि अपेक्षित और वास्तविक परिणाम समान नहीं हैं, तो परीक्षण मामले को असफल के रूप में चिह्नित किया जाना चाहिए और एक बग को लॉग इन किया जाना चाहिए।
डायनामिक परीक्षण के लाभ
- डायनामिक टेस्टिंग उन अनियंत्रित दोषों को प्रकट कर सकता है जिन्हें बहुत कठिन या जटिल माना जाता है और जिन्हें स्थैतिक विश्लेषण के माध्यम से कवर नहीं किया जा सकता है
- डायनामिक टेस्टिंग में, हम सॉफ्टवेयर को निष्पादित करते हैं, अंत से अंत तक, त्रुटि मुक्त सॉफ्टवेयर सुनिश्चित करते हैं जो बदले में एक उत्पाद और परियोजना की गुणवत्ता को बढ़ाता है।
- डायनामिक टेस्टिंग किसी भी सुरक्षा खतरे का पता लगाने के लिए एक आवश्यक उपकरण बन जाता है
गतिशील परीक्षण के नुकसान
- डायनामिक टेस्टिंग टाइम कंज्यूमिंग है क्योंकि यह एप्लिकेशन / सॉफ्टवेयर या कोड को निष्पादित करता है जिसके लिए भारी मात्रा में संसाधनों की आवश्यकता होती है
- डायनामिक टेस्टिंग से प्रोजेक्ट / उत्पाद की लागत बढ़ जाती है क्योंकि यह सॉफ़्टवेयर जीवन चक्र में जल्दी शुरू नहीं होता है और इसलिए बाद के चरणों में तय किए गए किसी भी मुद्दे के परिणामस्वरूप लागत में वृद्धि हो सकती है।
निष्कर्ष:
सॉफ्टवेयर इंजीनियरिंग में, सत्यापन और सत्यापन दो उपाय हैं जो यह जांचने के लिए उपयोग किए जाते हैं कि सॉफ्टवेयर उत्पाद आवश्यकताओं के विनिर्देशों को पूरा करता है। स्थैतिक परीक्षण में सत्यापन शामिल है जबकि गतिशील परीक्षण में सत्यापन शामिल है। साथ में वे लागत प्रभावी गुणवत्ता सॉफ्टवेयर देने में मदद करते हैं।
इस लेख में राधिका रेनामाला का योगदान है