software testing के प्रश्न और उत्तर

Software testing के 60 प्रश्न और उत्तर | 60 important Software testing interview, viva questions in hindi

पोस्ट को share करें-

Software testing के प्रश्न और उत्तर, software testing interview questions and answers in hindi, [software testing MCQ, viva questions], BCA के notes, computer notes, software testing notes, कंप्यूटर notes, software testing question pdf, सॉफ्टवेर टेस्टिंग के MCQ, software testing के नए प्रश्न, software testing for fresher, software testing for experienced, btech computer notes in hindi.

क्या आप भी एक software tester बनना चाहते है, और इसके लिए इंटरव्यू की तैयारियों में लगे हुए है? या फिर आप एक student  है, जो अपने software testing के concept को काफी मजबूत करना चाहते है, और इसमें और अच्छा बनना चाहते है?

इन दोनों में से आप भी कोई भी क्यों ना हो,आज आप बिल्कल सही जगह पे आए है, जहाँ हम software testing से समन्धित कुछ ऐसे topics के बारे में जानने वाले है, जो अमूमन interview या किसी viva में पूछे जाते आए है।

यहां, हर एक interview के साथ ही बड़ी कंपनियों में भी पूछे जाने वाले वास्तविक प्रश्न मिलेंगे, जो आपकी तैयारियों को और भी ज्यादा मजबूत करेंगे। और साथ ही यहाँ हर एक प्रश्न के साथ उसके उत्तर भी दिए गए है, ताकि तैयारी के समय की बचत हो सके।

यह आर्टिकल आपको अपने software testing के कौशल को और ज्यादा साफ़ करने और अपना आत्मविश्वास वापस पाने और किसी नौकरी के लिए तैयार होने में काफी मदद करेगी। साथ ही उन छात्रों की भी काफी ज्यादा मदद करेगी जो, इस विषय में अपने ज्ञान को और बढ़ाना चाहते है। तो आइये अब हम जानते है,ऐसे ही प्रश्नों के बारे में जो experts और teacher द्वारा इस विषय में काफी ज्यादा पूछे जाते है –

Table of Contents

Software development lifecycle (SDLC) किसे कहा जाता है?

यह software कंपनियों द्वारा इस्तेमाल किया जाने वाला एक process है, जिसकी मदद से वो कोई नया software तैयार करते है। यह किसी किसी high quality यानि की उच्च गुणवत्ता वाले सॉफ्टवेर को बनाने के काफी मदद करता है, जो customer की सारी मांगों को एक निर्धारित समय में पूरा कर सके। इसमें कई अलग-अलग steps इस्तेमाल किये जाते है, जो की है – 

software development life cycle
Fig : Software development life cycle

PLAN – इसमें सारी जरूरतों को analyse किया जाता है, साथ ही प्रोजेक्ट से जुड़े सारे स्कोप और risks को भी पहचाना जाता है।

DEFINE – सारी चीज़े analyse होने के बाद इसे और साफ़ ढंग से औपचारिक रूप से documented किया जाता है, जिसके बाद इसपे customer का approval लिया जाता है।

DESIGN – Approval मिलने के बाद, सारी छोटी-बड़ी details और dataflow के साथ सॉफ्टवेर product के सारे modules को डिजाईन किया जाता है।

BUILD –  इन सारी चीजों के बाद अब बारी आती है, हाई लेवल प्रोग्रामिंग languages का इस्तेमाल कर इस नए सॉफ्टवेर को तैयार करने की, जो की सॉफ्टवेर developers द्वारा की जाती है।

TEST – इसके बाद, जब modules तैयार हो जाते है तब बारी आती है इनकी टेस्टिंग की, ताकि यह सुनिश्चित किया जा सके की सॉफ्टवेर सही तरीके से काम कर रहा है की नही।

DEPLOY – टेस्टिंग के सफलतापूर्वक पूरा होने के बाद, software को production में यानि की इस्तेमाल करने के लिए भेज दिया जाता है।

MAINTENANCE –  इसके बाद बारी आती है software के रखरखाव की, जैसे की इसमें आने वाली दिक्कतों को सही करना, या इसमें कोई नया feature जोड़ना, आदि।

Software testing क्या होती है? (Software testing in hindi)

  •  यह एक तरीका होता है, जिसकी मदद से किसी सॉफ्टवेर में खराबियों को खोजा जाता है।
  • सही तरीके से होने पर यह सॉफ्टवेर में मौजूद सभी तरह के bugs को हटा देता है।
  • यह सुनिश्चित करता है की, सॉफ्टवेर customer के सभी जरूरतों को अच्छे से पूरा करे।
  • सॉफ्टवेर में किये जाने वाले सभी तरह के tests को पहले से ही plan कर लिया जाता है।
  • यह Pareto(80/20) के नियम को follow करता है, जिसके अनुसार 80% error सॉफ्टवेर के 20% हिस्से में ही होती है।

Software testing कितने प्रकार के होते है?

Software testing दो प्रकार के होते है, जो की है –

Functional टेस्टिंग – इस टेस्टिंग में सॉफ्टवेर में मौजूद सभी modules के functions को check किया जाता है। इसमें code मायने नही रखता, इसमें मुख्य चिंता का विषय सॉफ्टवेर के behavior यानि की व्यवहार को check करना होता है। इसके कुछ उदहारण है, यूनिट टेस्टिंग, इंटीग्रेशन टेस्टिंग, सिस्टम टेस्टिंग, आदि।

Non-Functional टेस्टिंग –  इस टेस्टिंग में सॉफ्टवेर के performance को check किया जाता है। इसके कुछ उदहारण है, लोड टेस्टिंग, स्ट्रेस टेस्टिंग, आदि। 

Unit या Component टेस्टिंग किसे कहा जाता है?

इस तरह के टेस्टिंग में किसी software के हर एक module में मौजूद हर एक function को अच्छे से टेस्ट किया जाता है, ताकि यह सुनिश्चित किया जा सके की, modules के सारे functions सही तरह से काम कर रहे है या नही। 

उदहारण के लिए, किसी सॉफ्टवेर का login पेज उसका एक module हो गया, जिसमे यूनिट टेस्टिंग की सहायता से उसमे मौजूद सभी functions जैसे की “User”, “Password”, “login_button” आदि को टेस्ट किया जाता है।   

Integration टेस्टिंग किसे कहाँ जाता है?

यूनिट टेस्टिंग में सभी modules को अलग-अलग टेस्ट करने के बाद, बारी आती है integration टेस्टिंग की, जिसमे इन्ही modules को एक साथ जोड़के, इनके बिच के data flow को check किया जा सके। 

Integration टेस्टिंग कितने प्रकार के होते है?

यह टेस्टिंग दो प्रकार के होते है, जोकि है –

1. Incremental – इसमें तीन प्रकार की testing शामिल होती है,जो की है –

  • Top-Down – इसमें parent module से child module के बिच के डेटा flow को check किया जाता है, ताकि सब सही तरीके से काम कर रहे हो। 
  • Bottom-Up – इसमें child module से parent module के बिच के डेटा flow को check किया जाता है, ताकि सब सही तरीके से काम कर रहे हो।
  • Sandwich – यह top-down और bottom-up का मिला हुआ रूप है। 

2. Non-Incremental – इसे “Big bang method” के नाम से भी जाना जाता है। इसमें सारे modules को एक साथ जोड़ कर, उनके बिच के डेटा flow को check किया जाता है। 

System software testing किसे कहते है?

  • इसमें किसी software को एक पूरे तैयार सिस्टम की तरह टेस्ट किया जाता है, ठीक उसी तरह जैसे कोई आम user आगे चलकर इसका इस्तेमाल करने वाला हो। 
  • यह “black box” के अंतर्गत आता है, जिसमे ज्यादा ध्यान सिर्फ इसके input और output पे दिया जाता है, नाकि internally यह कैसे काम कर रहा है उसपे। 
  • इसे end-to-end टेस्टिंग भी कहाँ जाता है, जो की developers और testers दोनों के द्वारा ही की जाती है।  

Acceptance टेस्टिंग किसे कहते है?

इस प्रकार के Software testing में यह check किया जाता है की, किसी एक नए software को इसके users या customers द्वारा अपनाया जा सकता है की नही। साथ ही इसमें यह भी टेस्ट किया जाता है की software असली दुनिया में इस्तेमाल होने वाल डेटा के साथ सही से काम कर पता है की नही।

इसे कई और नामों से भी जाना जाता है, जैसे की –

  • RBT – Red box टेस्टिंग। 
  • UAT – User acceptance टेस्टिंग। 
  • FAT – Final acceptance टेस्टिंग। 

Reliability टेस्टिंग किसे कहा जाता है?

  • इस Software testing में यह check किया जाता है की एक software कितना reliable है।
  • इसमें ये देखा जाता है की, कोई एक software किसी एक निर्धारित समय में किसी काम को बिना फेल हुए पूरा कर सकता है की नही।
  • उदहारण के लिए, अगर कोई mining software है, जिसका काम डेटा माइन करना है, तो यहाँ यह टेस्ट किया जायेगा की क्या वो software लगातार दस घंटो तक बिना फेल हुए यह काम कर सकता है की नही।   

Usability टेस्टिंग किसे कहते है?

इस Software testing में यह टेस्ट किया जाता है की, एक आम user किसी एक software को कितनी आसानी से इस्तेमाल कर सकता है। इसमें यह देखा जाता है की एक user में कितनी skill होनी चाहिए की ताकि वो उस software को जल्दी से सिख कर उसका इस्तेमाल कर सके। इसे टेस्ट करने के कुछ factors होते है, जो की है –

  • सॉफ्टवेर में आसान भाषा का इस्तेमाल हो।
  • यह आसानी से सभी तक उपलब्ध हो। 
  • सॉफ्टवेर users के लिए सही help text message दे। 
  • इसमें navigation अच्छा हो। 
  • सॉफ्टवेर सही से error message दे सके। 
  • इसका डिजाईन user-friendly हो।     आदि।   

Smoke टेस्टिंग किसे कहते है?

स्मोक टेस्टिंग किसी software के basic और critical functions को पहले टेस्ट किया जाता है, और उसके सही ढंग से काम करने पे ही, आगे की testings जाती है। उदहारण के लिए अगर किसी software का login पेज ही सही तारिके से काम नही कर रहा हो, तो उसमे कोई user लॉग इन ही नही कर पाएंगे और अपना आगे का कोई काम नही कर पाएंगे। 

ऐसे हालत से आगे की बाकि टेस्टिंग करने के जगह इस login module को ठीक करना ज्यदा जरुरी होता है, क्युकी यह software का एक critical और major पार्ट होता है। 

इस software testing के दो प्रकार होते है, जो की है – 

1. Formal स्मोक टेस्टिंग – इस प्रकार के software testing में सारे टेस्टिंग डेटा को document किया जाता है। 
2. Informal स्मोक टेस्टिंग – इस प्रकार के software testing में स्मोक टेस्टिंग के डेटा को document नही किया जाता है।

स्मोक टेस्टिंग कई और नामों से जाना जाता है,जैसे की –

  • Confidence टेस्टिंग। 
  • Sanity टेस्टिंग। 
  • Dry run टेस्टिंग। 
  • Health टेस्टिंग।
  • Positive टेस्टिंग।     आदि। 

Regression टेस्टिंग किसे कहते है?

इस Software testing में यह check किया जाता है की, software में जोड़ा गया कोई नया module उसमे मौजूद पुराने modules के काम में कोई परेशानी तो नही ला रहा। जब भी software में कोई नया module जोड़ा जाता है, वो पूरे प्रोग्राम में कुछ ना कुछ code change लता है। इसीलिए यह सुनिश्चित करना काफी जरुरी होता है की, software कुछ नए modules को add करने के बाद भी सही ढंग से काम कर रहा हो।

Regression software testing के तीन प्रकार होते है, जो की है –

  • Unit regression testing इसमें सिर्फ बदले गए पार्ट या module को टेस्ट किया जाता है। 
  • Regional regression testing इसमें बदले गए पार्ट और उसके impact यानि की वो जिन बाकि हिस्सों पर अपना असर डालेगा, उसका टेस्ट किया जाता है। Impact area का पता impact analysis मीटिंग के बाद लगाया गता है।      
  • Full regression testing – इसमें बदले गए पार्ट और साथ ही एप्लीकेशन के बाकि के सारे parts को भी टेस्ट किया जाता है।  

Sanity टेस्टिंग क्या होती है?

  • यह regression testing का ही subset होता है, जिसमे यह टेस्ट किया जाता है की जो कोड change किये गए है, वो सही से काम कर रहे है या नही।
  • यह टेस्ट काफी जल्दी किया जा सकता है, क्युकी इसमें किसी भी तरह की documentation की आवश्यकता नही होती है। 
  • इसमें छोटे sections और functionalities को काफी deeply टेस्ट किया जाता है ।  
  • अगर sanity टेस्टिंग के दौरान कोई defect सामने आता है, तो project को reject कर दिया जाता है, जो की regression टेस्टिंग में लगने वाले समय की बचत करता है।   

Alpha टेस्टिंग किसे कहते है?

यह acceptance टेस्टिंग का ही एक प्रकार होता है, जिसे किसी software product के रिलीज़ से पहले किया जाता है। उदहारण के लिए किसी एक software को आम जनता के इस्तेमाल से पहले उसे बनाने वाली organization के अंदर ही कुछ लोगो द्वारा इस्तेमाल करके देखा जाता है।   

Beta टेस्टिंग किसे कहते है?

इसमें किसी software के version को कुछ सिमित लोगों तक रिलीज़ किया जाता है, ताकि वे लोग इसे इस्तेमाल करके अपना feedback दे सके।  

Security टेस्टिंग क्या होती है?

इस प्रकार के Software testing में यह टेस्ट किया जाता है की, एक software सिस्टम विभिन्न स्रोतों से होने वाले attacks से कितना ज्यादा सुरक्षित है। साथ ही इसमें यह भी देखा जाता है की एक सिस्टम हमारे महत्वपूर्ण डेटा को खुद में कितना सुरक्षित रख सकता है, ताकि उसे चुराया ना जा सके। 

Compatibility टेस्टिंग क्या होती है?

इस Software testing में यह check किया जाता है की, एक software अलग-अलग devices में कितना compatible है। उदहारण के लिए, एक नए website को हर एक browser में चलाकर देखा जाता है की, वो कैसा काम कर रहा है।

Install टेस्टिंग क्या होती है?   

इस प्रकार के software testing में यह देखा जाता है की, installation के बाद एक software अपनी expectations के अनुसार काम कर रहा है की नही।  

Recovery टेस्टिंग किसे कहाँ जाता है?

इस प्रकार के software testing में यह टेस्ट किया जाता है की, अचानक किसी hardware क्रेश या software failure के बाद, system हमारे डेटा को recover कर सकता है की नही। उदहारण के लिए अगर हम Gmail के कोई मेल लिख रहे हो, और अचानक system बंद हो जाये, तो यह check किया जायेगा की दोबारा Gmail एप्लीकेशन खोलने पर हमारा लिखा हुआ मेल “Draft” module में save हुआ है की नही।  

Compliance Software testing क्या है?   

  • Compliance का अर्थ होता है, industry standards। यह वो नियम होते है, जिन्हें सरकारों या बड़ी कंपनियों द्वारा बनाया जाता है, और इनका पालन करना industry में मौजूद सभी कंपनियों के लिए अनिवार्य होता है। 
  • इस टेस्टिंग में भी यही check किया जाता है की, कोई भी software बाज़ार में आने से पहले सभी निर्धारित नियमों का पालन करे, ताकि आगे चलकर कंपनी को किसी भी तरह की दिक्कत का सामना ना करना परे।
  • यह नियम कुछ भी हो सकते है, जैसे की सारे web pages का responsive होना, या डेटा को अपने देश की सीमा के बाहर स्टोर ना करना, इत्यादि।    

Localization टेस्टिंग किसे कहते है?

  • इस Software testing में किसी निर्धारित जगह में इस्तेमाल होने वाले software version के quality की टेस्टिंग की जाती है।
  • यह Software testing सिर्फ software के लोकल version पे ही की जाती है। 
  • इसमें यह सुनिश्चित किया जाता है की, एक software किसी निर्धारित region में अच्छे में अच्छे से इस्तेमाल किया जा सके।
  • इसमें किसी निर्धारित देश के लिए बने software version में date, currency, आदि जैसे formats को check किया जाता है।
  • यह टेस्टिंग की कुल कीमत को काफी कम करती है, हालाँकि इसे करने करने के लिए लोकल एक्सपर्ट की जरुरत होती है।  

Ad Hoc टेस्टिंग क्या होता है?

इस टेस्टिंग को बिलकुल random तरीके से और informally यानि की बिना किसी documentation के किया जाता है। इसमें requirements को नही देखा जाता, और एप्लीकेशन को कही से भी और किसी भी तरीके से टेस्ट कर लिया जाट है, ताकि इसकी खामियों को खोजा जा सके।

यह टेस्टिंग इसलिए की जाती है, ताकि असली दुनिया में इसके इस्तेमाल के समय users से सामने किसी भी तरह की मुश्किल ना आए। इस software testing को कई और नामों से भी जाना जाता है, जैसे की –

  • Monkey टेस्टिंग। 
  • Gorilla टेस्टिंग। 
  • Random टेस्टिंग।
  • Negative टेस्टिंग।

Exploratory टेस्टिंग किसे कहाँ जाता है?

इस प्रकार के software testing में टेस्टर द्वारा पहले पूरे एप्लीकेशन को खुद से explore किया जाता है, ताकि वो इसके काम को समाज सके। जिसके बाद वो टेस्ट cases तैयार कर इसकी software testing करते है। इस तरह की टेस्टिंग तब की जाती है, जब हमारे पास किसी भी तरह की requirement मौजूद नही होती, और हमे खुद से इसे समझना पड़ता है, ताकि हम इसकी सही ढंग से टेस्टिंग कर सके। 

Defect किसे कहां जाता है?

जब सॉफ्टवेर developer, अपनी कोडिंग के बाद किसी feature को check करते है, और उन्हें expected और actual में प्राप्त रिजल्ट में फर्क मिलता है, तो उसे ही “defect” कहाँ जाता है। और इस defect को development के समय ही ठीक कर लिया जाता है।   

Bug किसे कहां जाता है?

जब software testing के दौरान किसी टेस्टर को expected और actual में प्राप्त रिजल्ट में फर्क मिलता है, तो उसे “bug” कहां जाता है। और हम यह भी कह सकते है की, defect का ही informal नाम होता है bug, जिसे एक टेस्टर द्वारा किसी developer के पास सही करने के लिए भेजा जाता है। 

Error किसे कहां जाता है?

जब किसी सॉफ्टवेर की कोडिंग के दौरान, उसके कोड में कुछ mistake यानि की गड़बर हो जाती है, जिस कारण वो पूरा कोड compile या run नही हो पता, उसे ही “error” कहां जाता है। 

Software failure किसे कहां जाता है?

जब असली दुनिया में किसी software के इस्तेमाल के समय user के सामने कुछ परेशानिया आती है, उन्हें ही सॉफ्टवेर failure कहाँ जाता है। 

Performance टेस्टिंग क्या होती है?

इस तरह के software testing में किसी एप्लीकेशन में काफी ज्यादा load देकर उसकी स्थिरता यानि की stability और उसकी प्रतिक्रिया करने का समय यानि की response time को check किया जाता है। 

  • Stability – इसमें यह देखा जाता है की, जब किसी एप्लीकेशन को एक साथ काफी लोग इस्तेमाल कर रहे हो, तब वो कितना स्तिर रहता है।
  • Response time – इसमें यह देखा जाता है की, किसी request को server तक जाने, वहां किसी प्रोग्राम को run करने और request को वापस हमारे system तक लाने में कितना समय लगता है। 
  • Load – यह users की संख्या होती है, जो किसी एप्लीकेशन को किसी एक निर्धारित यानि की particular समय में इस्तेमाल कर रहे होते है।

Performance टेस्टिंग कितने प्रकार के होते है?

यह software testing पांच प्रकार के होते है, जो की है –

Load टेस्टिंग – इसमें एप्लीकेशन में उसके design के अनुसार निर्धारित या उससे कम load देकर उसकी stability और response time को check किया जाता है। 

Stress टेस्टिंग – इस software testing में एप्लीकेशन में उसके design के अनुसार निर्धारित से ज्यादा load देकर उसकी stability और response time को check किया जाता है। 

Scalability टेस्टिंग – इसमें एप्लीकेशन में उसके design के अनुसार निर्धारित से ज्यादा load देकर उसकी stability और response time को check किया जाता है। और साथ ही इसमें एप्लीकेशन के उस breaking point को खोजा जाता है, जहाँ यह एप्लीकेशन crash हो जाए। 

Volume/Flood टेस्टिंग – इस software testing में एप्लीकेशन के डेटाबेस में काफी मात्र में डेटा भरके, उसकी stability और response time को check किया जाता है। 

Soak/Endorence टेस्टिंग – इस प्रकार के software testing में किसी एप्लीकेशन में काफी लम्बे समय तक load देकर, उसकी stability और response time को check किया जाता है। 

Web security टेस्टिंग किसे कहा जाता है? 

इस तरह की software testing को web एप्लीकेशन पर किया जाता है, ताकि उसकी security को check किया जा सके। इसमें यह देखा जाता है की एक web एप्लीकेशन unauthorised users और hackers से कितना सुरक्षित है। 

Web security टेस्टिंग के कितने प्रकार होते है? 

इस टेस्टिंग के सात प्रकार होते है, जो की है –

URL Manipulation – इसमें यह देखा जाता है की, सिर्फ किसी url की मदद से कोई व्यक्ति पर्सनल पेज तक ना जा सके। उदहारण के लिए अगर हम Facebook का इस्तेमाल कर रहे है, और हमारे खुद के प्रोफाइल में login करके अगर हम url को copy कर ले और उसे किसी दूसरे व्यक्ति को भेज दे, तो यहाँ यह check किया जायेगा की वो व्यक्ति बिना user id और पासवर्ड के ही सिर्फ उस url की मदद से हमारे पर्सनल प्रोफाइल में तो नही घुस पा रहा।   

Session Expiry – इसमें यह check किया जाता है की थोरे समय तक इस्तेमाल ना होने पर एप्लीकेशन दोबारा से login पेज पर पहुच जाये और उसे खोलने के लिए user को दोबारा अपनी id और पासवर्ड वहां डालना परे। कई तरह की softwares खासकर banking एप्लीकेशन में यह एक काफी महत्वपूर्ण feature होता है, जिसकी मदद से किसी भी तरह की फ्रॉड को होने से रोका जा सकता है।

Privilege Elevation – इसमें यह देखा जाता है की किसी system में किसी व्यक्ति को इतनी Privilege यानि की विशेषाधिकार ना मिल सके, ताकि वो उसका गलत फायदा उठा ले। 

SQL Injection – इसमें यह check किया जाता है की, कोई हैकर सिर्फ कुछ SQL commands की मदद से एप्लीकेशन के डेटाबेस में मौजूद महत्वपूर्ण जानकारी को ना चुरा सके।

Cookie based testing – इसमें एप्लीकेशन की cookies को चेक किया जाता है, जो की information का एक टुकरा होता है, जिसे web server से web ब्राउज़र में भेजा जाता है। इसके दो प्रकार होते है, जो की है –

  • Session cookies –  यह ब्राउज़र में कुछ समय के लिए स्टोर रहती है, जो कुछ समय बाद खुद ही डिलीट हो जाती है।
  • Persistent cookies –  यह कंप्यूटर की memory/hard disk में स्टोर होती है, जो खुद बा खुद डिलीट नही होती। या तो यूजर खुद इसे डिलीट कर सकता है, या किसी एक expiry date के बाद ये खुद डिलीट हो जाती है।

Cross site request forgery (CSRF) – इसमें यह टेस्ट किया जाता है की, एप्लीकेशन में url encrypted है या नही। Url में किसी भी तरह का sensitive डेटा जैसे की id, पासवर्ड, क्रेडिट कार्ड details, आदि मौजूद नही होने चाहिए।

Cross site scripting (XSS) – इसमें यह देखा जाता है की, वेब एप्लीकेशन को इस्तेमाल करने के दौरान उसमे किसी भी तरह का pop-ups ads ना आए, जो की किसी तरह का फ्रॉड हो सकता है, जो सायद हमारे एप्लीकेशन से डेटा को भी चुरा ले।

Severity और Priority क्या होती है?

Severity का मतलब होता है की एक bug किसी एप्लीकेशन के काम और business workflow को कितने हद तक प्रभावित कर सकता है। इसके चार प्रकार होते है –

  • Blocker – यह तब होता है, जब कोई एप्लीकेशन खुल ही ना रहा हो। 
  • Critical – यह तब होता है, जब एप्लीकेशन के महत्वपूर्ण functions ही ना काम कर रहे हो। 
  • Major –  यह तब होता है, जब एप्लीकेशन के कुछ छोटे-मोटे functions काम ना कर रहे हो, हालाँकि उसके सभी महत्वपूर्ण functions काम कर सारे हो।
  • Minor –  यह काफी साधारण bug होते है, जो business workflow को बिलकुल भी प्रभावित नही करते, जैसे की font, spelling, color, आदि में समस्या।

वही, Priority उस महत्त्व और समय को निर्धारित करता है, जिसमे हम उस bug को सही करना चाहते हो। इसके प्रकार – P0, P1, P2, आदि। और (P) के बाद नंबर जितना कम होता है, priority उतनी ज्यादा होती है।

Severity और Priority के उदहारण?

High severity और high priority उदहारण के लिए कोई ऐसा एप्लीकेशन है, जिसमे user login ही नही कर पा रहे, जिसे की blocker type भी कहा जाता है।

High severity और low priority उदहारण के लिए कोई एक रिपोर्ट generating एप्लीकेशन है, जिसमे monthly रिपोर्ट तो सही बन रहे है, मगर yearly रिपोर्ट बनने में परेशानी आ रही है। और क्युकी yearly रिपोर्ट की जरुरत हर वक़्त नही होती, इसीलिए इसे low priority में रखा जाता है, जिसे आने वाले versions में भी सही किया जा सके।

Low severity और high priority –  उदहारण के लिए logo, design या color में गरबरी। हालाँकि यह business workflow को नही रोकते मगर इसके कारण एप्लीकेशन दिखने में ख़राब लग सकती है, जिस कारण इसे जल्द से जल्द सही किया जाता है।

Low severity और low priority – उदहारण के लिए एप्लीकेशन के “about us” पेज में हुई कुछ spelling की गलती। और क्युकी ज्यादातर users इस पेज में जाते ही नही है, इसीलिए इस bug को बाद में भी आने वाले versions में सही किया जा सकता है।

Latent defect किसे कहा जाता है?

  • यह एक प्रकार का bug होता है, जो की किसी सॉफ्टवेर में काफी समय से मौजूद होता है, मगर उसकी खोज अभी हुई होती है। 
  • यह पहले से मौजूद defect होता है, जो की काफी inspection के बाद सामने आता है। 
  • यह अमूमन छुपा हुआ और एक low Priority का bug होता है। 

Bug life cycle क्या होती है? (Bug life cycle in hindi )

  • Software testing में यह किसी bug की स्थिति को दर्शाता है, जिसे किसी software में खोजा गया हो। 
  • इसका इस्तेमाल किसी bug की current status पे नजर रखने के लिए किया जाता है, ताकि इसे आसानी से fix किया जा सके। 
  • इसे  defect life cycle के नाम से भी जाना जाता है।

Defect status क्या है?

  • यह bug life cycle में किसी bug की वर्तमान स्थिति को दर्शाता है। 
  • इसका उद्देश्य bug की वर्त्तमान स्थिति पर नजर रखना होता है, ताकि bug life साइकिल में हो रही progress को समझा जा सके।

Defect status के अलग-अलग states क्या है?

इसमें कई अलग-अलग स्थितिया होती है, जैसे की –

NEW – जब कोई bug पहले बार सामने आता है, तब उसे “new” के status में रखा जाता है। 

ASSIGNED – किसी bug के मिलने के बाद, उसे development टीम के पास भेजा जाता है, और तब उसका status “assigned” में बदला जाता है।

OPEN –  जब कोई developer उस bug के ऊपर काम करना शुरु करते है, तकिउसे सही किया जा सके।

FIXED – जब developer द्वारा कोड में कुछ बदलाव कर, उसे सही किया जाता है, तब उसे “fixed” status के अंदर रखा जाता है। 

PENDING RESTART – Bug को सही करने के बाद developer उस कोड को testers के पास भेजते है, ताकि उसकी जाँच की जा सके। और क्युकी उस bug के कारण टेस्टर के तरफ से software testing रुकी हुई रहती है, इसे “pending restart” के status में रखा जाता है।

RETEST – इसमें टेस्टर यह check करते है की, developer द्वारा सही किया गया कोड, ठीक ढंग से काम कर रहा है की नही।

VERIFIED – अगर सही किया गया bug ठीक ढंग से काम कर रहा हो, तब उसे “verified” का status दिया जाता है।

REOPEN – अगर सही किए गए कोड में दोबारा से कोई दिक्कत आती है, तब उसे दोबारा से developer के पास सही करने के लिए भेजा जाता है, और उसका status “reopen” किया जाता है।

CLOSED – अगर bug पूरी तरह से खत्म हो जाए, तो उसे “closed” कर दिया जाता है।

software testing bug life cycle
Fig : Bug life cycle

DUPLICATE – अगर developer के पास भेजा गया कोई bug पहले मिले किसी दूसरे bug के concept पे भी आधारित होता है, तो उसे “duplicate” के status में रखा जाता है।

REJECTED – अगर developer को लगता है, की उसके पास भेजा गया कोई bug असल में कोई bug है ही नही, तो उसे “rejected‘ status में डाला जाता है।

DEFERRED – अगर खोजा गया कोई bug एप्लीकेशन में कुछ ज्यादा दिक्कत नही दे सकता, और जिसे आने वाले versions में भी सही किया जा सकता है, तो उसे “deferred” के status में रखा जाता है।

NOT A BUG – अगर खोजा गया bug किसी एप्लीकेशन के महत्वपूर्ण functionalities में कोई दिक्कत नही लाये, तो उसे “not a bug” का status मिलता है।

Test cases और test scenario क्या होते है?  

Test Scenario Test Cases 
यह हाई लेवल documentations होते है।  यह detailed documentations होते है। 
सिर्फ इसे देखकर किसी सॉफ्टवेर को टेस्ट करना काफी मुश्किल होते है, जब तक की हमे किसी सॉफ्टवेर product की अच्छी जानकारी ना हो। इसे देखकर किसी सॉफ्टवेर को अच्छे से टेस्ट किया जा सकता है, चाहे हमे सॉफ्टवेर product की अच्छी जानकारी हो या ना हो।  
टेस्ट scenario में वो डेटा मौजूद नही होता, जिसे किसी एप्लीकेशन में दाल उसकी टेस्टिंग जी जा सके। इसमें वो सभी डेटा मौजूद होता ही, जिसकी मदद से हम एक एप्लीकेशन को टेस्ट कर सकते है। 
Software testing में यह सिर्फ एक छोटा वाक्य होता है, जो सिर्फ यह बताता है की हमे क्या टेस्ट करना है। इसमें टेस्ट scenario, steps to reproduce, precondition, expected रिजल्ट, actual रिजल्ट, आदि जैसे डेटा मौजूद होते है।  
इसे तैयार करने में कम समय लगता है।इसे तैयार करने में ज्यादा समय लगता है।
इसकी मदद से हम किसी एप्लीकेशन के functionalities को validate कर सकते है।  इसकी इसकी मदद से हम यह check करते है की, टेस्ट scenario सही है या नही। 
टेस्ट केस के मुकाबले इसे तैयार और execute करने में कम resources लगते है। इसे तैयार और execute करने में ज्यादा resources लगते है। 

Test case design technique क्या होती है?

यह वो software testing techniques होती है, जिनकी मदद से किसी सॉफ्टवेर एप्लीकेशन को टेस्ट करने के लिए टेस्ट cases को तैयार किया जाता है। यह कई प्रकार के होते है, जैसे की –

ERROR GUESSING – इसमें किसी सॉफ्टवेर में negative डेटा को डाला जाता है, ताकि उसमे किसी तरह के error को खोजा जा सके। उदहारण के लिए अगर कोई input box सिर्फ positive values लेता है, तो हम उसमे negative values डालेंगे, और किसी तरह का bug खोजने की कोशिश करेंगे। 

BOUNDARY VALUE ANALYSIS – इस process में input value के extreme ends या boundaries को टेस्ट किया जाता है। इसमें basic idea सबसे minimum, maximum, maximum से just ऊपर और minimum से just निचे के values को डालकर एप्लीकेशन को टेस्ट करना होता है।

उदहारण के लिए, अगर कोई एक input box है, जिसमे हम सिर्फ 1 से 100 तक की संख्या ही दाल सकते है, तो इसे टेस्ट करने के लिए हमे 100 के 100 नंबर डालने की जरुरत नही होते, और इसके बदले हम boundary value analysis तकनीक की सहायता लेते है और सिर्फ extreme values डालते है।

यहाँ हम 1 को “A” मानेंगे और 100 को “B”, और टेस्टिंग के लिए हमारी values होंगी – 

Valid 
A-1Invalid 
A+1Valid 
100 BValid 
99 B-1 Valid 
101B+1 Invalid 
54 Middle value Valid 

जैसा की हम देख सकते है, यहाँ 100 नंबर डालके टेस्ट करने के वजाय हमने सिर्फ 7 अलग डेटा डालकर ही इसकी टेस्टिंग कर ली, जिससे समय और resources दोनों की ही बचत होते है।

EQUIVALENCE PARTITIONING – इसमें हम किसी टेस्ट condition को अलग-अलग groups में divide कर देते है, और अगर group एक डेटा टेस्टिंग में पास हो जाता है, तो पुरे group को ही पास मान लिया जाता है। और अगर group का कोई डेटा टेस्टिंग में फैल हो जाता है, तो पुरे group को ही फैल कर दिया जाता है।

उदहारण के लिए, अगर कोई input box है, जो 1 से 1000 तक का डेटा ले सकता है, तो हम उसमे equivalence partitioning का उपयोग कुछ इस प्रकार कर सकते है, जो की है –

  • एक group में हम 1 से 1000 तक के सारे positive valid डेटा को लेंगे, औए अगर इसमें कुछ डेटा टेस्ट में पास हो जाते है, तो पुरे ग्रुप को ही पास मान लिया जायेगा।
  • एक ग्रुप में हम सभी डेटा minimum value से निचे यानि की 1 से निचे के लेंगे, जिसमे हर डेटा ही invalid होना चाहिए।
  • एक ग्रुप में हम सभी डेटा maximum value से ऊपर यानि की 1000 से ऊपर के लेंगे, जिसमे भी हर डेटा invalid होना चाहिए।

इसके हर ग्रुप से डेटा को तैयार करने के लिए हमे,  boundary value analysis तकनीक की सहायता लेनी होगी।

DECISION TABLE –  इसमें एक से ज्यादा logic वाले condition के लिए टेस्ट डेटा तैयार किया जाता है। उदहारण के लिए अगर कोई “food app” है, जिसमे conditions कुछ ऐसे है, जैसे की –

  • New ग्राहक को – 15% discount 
  • Repeat ग्राहक को – 10% discount 
  • Coupon कोड में – 30% discount 

तो यहाँ हमारा डेटा टेबल कुछ ऐसे तैयार होगा, जो की है –

Condition R1R2R3R4R5R6R7R8
N.C. 15% TTTTFFFF
R.C. 10%TTFFTTFF
C.C. 30%TFTFTFTF
Result Invalid Invalid 45%15%40%10%Invalid Invalid 
  • इसमें condition के हिसाब से सारे डेटा को ऐसे ही टेबल के रूप में तैयार किया जाता है, जिनकी मदद से बाद में इसकी टेस्टिंग की जाती है।
  • इसमें नियम होता है – Number of टेस्ट केस = no of rules = 2 no of conditions
  • और इस तकनीक को cause effect टेबल के नाम से भी जाना जाता है।

STATE TRANSITION TECHNIQUE – इसमें किसी सॉफ्टवेर सिस्टम को अलग-अलग state और screens पे टेस्ट किया जाता है। और इसमें सारे अलग-अलग stages और phrases को टेस्ट किया जाता है।

software testing State transition method
Fig : State transition method

उदहारण के लिए अगर किसी “food app” में कोई व्यक्ति अपना पासवर्ड तीन बार गलत डालता है, तो उसे खुद बा खुद ब्लाक हो जाना चाहिए। 

तो यहाँ शुरु से लेकर तीनो attempt तक एप्लीकेशन को पूरी तरह से टेस्ट किया जायेगा, ताकि यह सुनिश्चित किया जा सके की हर एक स्टेज सही से कम कर रहा है।

Test plan के अलग-अलग stages क्या है?

टेस्ट प्लान में कई अलग-अलग stages होते है, जैसे की –

Objective इसमें टेस्ट प्लान को लिखने के aim को रखा जाता है। 
Scope इसमें यह देखा जाता है की, कौन से features को टेस्ट किया जायेगा, और किसे नही।
Testing Methodology इसके यह तय किया जाता है की, एप्लीकेशन में किस तरह की software testing की जाएगी।
Approach इसमें यह देखा जाता है की, future में एप्लीकेशन को किस तरह से टेस्ट किया जायेगा।
Assumption इसमें प्रोजेक्ट के अनुसार कई तरह से assumptions किये जाते है। 
Risk इसमें प्रोजेक्ट से जुड़े सभी risks को लिखा जाता है, जो की किसी assumptions के गलत साबित होने पर सामने आ सकते है।  
Backup / Mitigation plan  इसमें वो सारे तरीके रखे जाते है, जो किसी भी तरह के risk को दूर करने के काम आए।
Roles &Responsibilityइसमें software testing टीम से जुड़े सभी लोगों के roles और responsibilities लिखे जाते है।
Schedulingइसमें software testing से जुड़े सभी कार्यो के start और end time को नोट किया जाता है।
Defect tracking इसमें यह देखा जाता है की, किस प्रकार की और कौन सी tool का इस्तेमाल  software testing के दौरान bug को ट्रैक करने के लिए किया जायेगा।  
Test environment/Test bed यह वो environment होता है, जिसमे software testing टीम किसी software तो टेस्ट करती है। 
Entry & Exit Criteria यह वो conditions होते है, जिन्हें किसी भी तरह की टेस्टिंग से दूसरी तरह की  software testing के तरफ आगे बढ़ने से पहले पूरा करना आवश्यक होता है।   
Test automationइसमें यह देखा जाता है की, एप्लीकेशन के कौन से features को automated tools की मदद से टेस्ट किया जायेगा। 
Deliverables  यह वो documents होते है, जिन्हें software testing टीम द्वारा customers को दिया जाता है, जिसमे टेस्टिंग से जुड़े सारे details मौजूद होते है।
Template इसमें यह सुनिश्चित किया जाता है की, टेस्ट reports को किस template में लिखा जायेगा।

Smoke टेस्टिंग और Sanity टेस्टिंग में क्या अंतर है?  

  • Smoke टेस्टिंग का उपयोग एप्लीकेशन की stability को टेस्ट करने के लिए किया जाता है, वही sanity टेस्टिंग का इस्तेमाल एप्लीकेशन की rationality को टेस्ट करने के लिए किया जाता है।
  • Smoke टेस्टिंग developer और टेस्टर दोनो के द्वारा ही की जाती है, वही sanity टेस्टिंग सिर्फ टेस्टर द्वारा ही किया जाता है।
  • Smoke टेस्टिंग किसी एप्लीकेशन के critical functionalities को verify करता है, वही sanity टेस्टिंग एप्लीकेशन में जोड़े गए किसी नए feature को verify करता है।
  • Smoke टेस्टिंग पूरे एप्लीकेशन सिस्टम को verify करती है, वही sanity टेस्टिंग सिर्फ किसी विशेष component को verify करती है। 
  • Smoke टेस्टिंग acceptance टेस्टिंग का subset होता है, वही sanity टेस्टिंग regression टेस्टिंग का subset होता है।
  • Smoke टेस्टिंग को document किया जाता है, मगर  sanity टेस्टिंग को document नही किया जाता।

System टेस्टिंग और Integration टेस्टिंग में क्या अंतर है?  

  • System software testing में पूरे एप्लीकेशन सिस्टम को एक बार में टेस्ट किया जाता है, वही integration टेस्टिंग में एप्लीकेशन में मौजूद दो component के बिच के connection और dataflow को टेस्ट किया जाता है।
  • System टेस्टिंग को इंटीग्रेशन टेस्टिंग के बाद किया जाता है, वही integration software testing को यूनिट टेस्टिंग के बाद किया जाता है।
  • System टेस्टिंग में सिर्फ black box टेस्टिंग तकनीको कैस्तेमल किया जाता है, वही integration टेस्टिंग में white box और black box दोनों ही तकनीको का इस्तेमाल किया जाता है।
  • System software testing में functional और non-functional दोनों ही तरह की टेस्टिंग की जाती है, वही integration टेस्टिंग में आपस में जुड़े components की functional पह्लुए टेस्ट की जाती है।
  • System टेस्टिंग में performance टेस्टिंग, security टेस्टिंग, आदि जैसी तकनीको का इस्तेमाल किया जाता है, वही integration software testing में top-down, bottom-up, big bang, आदि जैसी तकनीको का इस्तेमाल किया जाता है।     

Functional टेस्टिंग और System टेस्टिंग में क्या अंतर है?  

  • Functional टेस्टिंग सिस्टम टेस्टिंग का ही एक पार्ट होता है, जिसका उद्देश्य एप्लीकेशन में मौजूद functions के सही काम को सुनिश्चित करना होता है, वही system टेस्टिंग का उद्देश्य यह सुनिश्चित करना होता है की एक पूरी तरह से तैयार एप्लीकेशन सिस्टम सारी requirements को पूरा कर रहा है की नही।
  • Functional टेस्टिंग एप्लीकेशन के सारे functionalities को टेस्ट करता है, जिनमे stress, load, security, आदि जैसे factors शामिल होते है, वही  system टेस्टिंग में end product के सारे internal और external components की जांच की जाती है।    
  • Functional टेस्टिंग के लिए manual और automation दोनों की software testing तरीको का इस्तेमाल किया जाता है, वही system टेस्टिंग के लिए automation tools का इस्तेमाल काफी उपयोगी होता है।
  • Functional टेस्टिंग यह वर्णन करती है की एक सॉफ्टवेर product क्या-क्या कर सकती है, वही system टेस्टिंग यह वर्णन करती है की एक सॉफ्टवेर product कितने अच्छे से काम कर रही है।      

Defect या bug के क्या कारण हो सकते है?

किसी software testing में Defect या bug के पाए जाने के कई कारण हो सकते है, जैसे की –

  • Wrong implementation (कोड का गलत इस्तेमाल)     
  • Missing implementation (किसी feature को छोड़ देना)
  • Extra implementation (ज्यादा features जोड़ देना)

Static और dynamic टेस्टिंग में क्या अंतर है?

Static testing Dynamic testing 
इसे software testing को verification के तौर पे किया जाता है। इसे software testing को validation के तौर पे किया जाता है। 
इसमें कोड और requirements को review किया जाता है। इसमें component, integration, system टेस्टिंग, आदि जैसे काम किये जाते है।
यह सॉफ्टवेर के deploy होने से पहले किया जाता है।इसे सॉफ्टवेर के deploy होने के बाद किया जाता है।
यह defect को रोकना के लिए किया जाता है। इसे बाद में defect को खोजने और उसे सही करने के लिए किया जाता है। 
यह कम costly होता है।यह ज्यादा costly होता है।
इसे development के शुरुवाती stages में किया जाता है।इसे development के आखरी stages में किया जाता है।
इसे शुरुवाती stages में ही किसी संभावित defect को खोजने के लिए किया जाता है।इसे आखरी stages में defect को पकड़ने के लिए किया जाता है।
इसे करते वक़्त software हमारे सामने तैयार नही होता है।इसे करते वक़्त software हमारे सामने इस्तेमाल के लिए तैयार होता है।

Defect clustering किसे कहा जाता है?

  • यह तब होता है, जब कुछ ही modules में सॉफ्टवेर में मिलने वाले ज्यादा तर bug होते है, जो की इसके operational failure का कारण बनते है।
  • इसका यह मतलब होता है की, defects पूरे एप्लीकेशन में एक समान तरीके से नही फैले होते है, और इसके वजाए वो एक छोटे से हिस्से में ही मौजूद रहते है।
  • इस ज्यादातर काफी बड़े एप्लीकेशन systems में देखा जाता है, जहाँ उसकी complexity और size उसके quality पर फर्क डालती है।
  • यह pareto (80/20) नियम पर आधारित होता है, जिसका मतलब यह होता है की 80% defects किसी सिस्टम के सिर्फ 20% हिस्से में ही होते है।
  • टेस्ट designers इस तकनी का इस्तेमाल कर टेस्ट केस प्लान करते है, ताकि सिर्फ उन हिस्सों पर ध्यान दिया जा सके जिनमे ज्यादा defect मौजूद है। और इन हिस्सों को “Hot Spot” भी कहा जाता है। 
  • इसकी सहायता से testers अब सिर्फ उन हिस्सों पर focus कर सकते है, जिनमे ज्यादा समस्या मौजूद हो।
  • साथ ही इस तकनीक के इस्तेमाल से समय और पैसों दोनों की ही काफी बचत होती है।

Software testing के principles क्या है?

Software testing के सात principles यानि की सिद्धांत होते है, जो की है –

  1. Testing to find defect – इसका मतलब यह होता है की, किसी एक सॉफ्टवेर टेस्टर को हमेशा defect को खोजने के उद्द्श्ये से ही काम करना चाहिए, ताकि वो ज्यादा से ज्यादा bugs को खोज सके।
  1. Bug free software is not possible – इसका मतलब यह होता है की, कोई भी सॉफ्टवेर पूरी तरह से bug free नही हो सकता, और उसमे कुछ ना कुछ bug मौजूद होंगे ही।
  1. No exhaustive testing –  इसका मतलब यह होता है की, किसी टेस्टर एक सॉफ्टवेर सिस्टम में एक ही तरह का टेस्ट बार-बार नही करना चाहिए।
  1. Pesticide paradox – इसका मतलब यह होता है की, जब हम software testing के लिए एक ही तरह के test cases को लम्बे समय तक इस्तेमाल करते है, तो वो नए तरह के bug को खोजने में फेल हो जाते है। इसी कारण टेस्ट cases को समय-समय पर update करना काफी आवश्यक होता है।
  1. Early testing – इसका मतलब यह होता है की, जितनी जल्दी हो सके हमे किसी सॉफ्टवेर सिस्टम के ऊपर टेस्टिंग शुरु कर देनी चाहिए, ताकि ज्यादा से ज्यादा bugs को जल्दी से fix किया जा सके।
  1. Context based –  इसका मतलब यह होता है की, हमेशा रियल लाइफ और जरुरत के हिसाब से ही software testing को पूरा करना चाहिए।
  1. Defect clustering –  इसका मतलब यह होता है की, software testing के दौरान हमेशा उन जगहों पर ज्यादा ध्यान देना चाहिए, जहाँ ज्यादा bugs मौजूद हो।

Software testing life cycle क्या है?

  • यह एक तरह का process होता है, जिसकी मदद से एक सॉफ्टवेयर कंपनी किसी सिस्टम की software testing करते है।
  • इसमें कई सारे steps होते है, जिन्हें एक के बाद एक इस्तेमाल कर software testing को पूरा किया जाता है।
  • यह सॉफ्टवेर development life cycle (SDLC) का ही एक हिस्सा होती है।
  • और defect tracking इसका यानि की software testing का एक हिस्सा होता है, जिसमे की bug के status को ट्रैक किया जाता है।
  • Software testing में इस्तेमाल होने वाले steps है –  
Requirement collection इसमें नए तैयार होने वाले सॉफ्टवेयर सिस्टम के लिए सारे requirements को collect किया जाता है।  
System study इसमें B.A यानि की business analyst द्वारा सिस्टम की study की जाती है।
Test plan फिर टेस्ट प्लान को तैयार किया जाता है।
Test cases फिर टेस्ट प्लान के हिसाब से टेस्ट केस तैयार किये जाता है।
Execution फिर टेस्ट केस को run करके software testing की जाती है।

Analyst द्वारा सिस्टम की study करने के बाद,टेस्ट प्लान तैयार किया जाता है और उसके बाद फिर से टेस्टर द्वारा भी सिस्टम की study की जाती है, ताकि इससे जुड़े सभी possible scenerio को समझा जा सके।

इसके बाद software testing के लिए टेस्टर द्वारा टेस्ट केस को तैयार किया जाता है। इसके बाद “traceability matrix” तैयार की जाती है, जो यह सुनिश्चित करती है की हर एक requirement के लिए कम से कम एक टेस्ट केस जरुर मौजूद हो।

Traceability matrix तीन प्रकार के होते है जो की है –

  • Forward T.M / Horizontal T.M – इसे टेस्ट केस को तैयार करने से पहले किया जाता है।
  • Backward T.M / Vertical T.M – इसे टेस्ट केस के तैयार होने के बाद किया जाता है।
  • Bidirectional T.M – यह forward और backward दोनों का मिश्रण होता है। 

इन सभी steps के बाद, software testing के लिए टेस्ट cases को execute किया जाता है। और इसके बाद defect या bug की tracking की जाती है।

इन सभी process के पूरा होने पर, टेस्ट केस execution की रिपोर्ट तैयार की जाती है। और अंत में इसके conclusion पे चर्चा के लिए retrospective या postmortem मीटिंग conduct किजाती है।       

Waterfall model क्या होता है?

यह software development life cycle का एक काफी classic मॉडल होता है, जिसमे सारे steps एक के बाद एक follow किये जाते है। यह मॉडल कई phases में divide होता है, और एक फेज का output दूसरे फेज का input होता है।

यह एक काफी simple model होता है, जो छोटे projects के लिए काफी अच्छा होता है। और साथ ही इसमें tasks को arrange करना भी काफी आसान होता है।   

software development waterfall model
Fig : Waterfall model

हालाँकि इसमें requirement changes की कोई संभावना नही होती है, जिस कारण बड़े और लंबे projects में इसमे काफी परेशानिया हो सकती है। और साथ ही इसके progress को नापना भी काफी कठिन होता है।  

Spiral model क्या होता है?

यह SDLC यानि की “software development lifecycle” का एक प्रकार होता है, जो की किसी circular spiral रूप का होता है। और इसने हर एक iteration यानि की चक्र को एक cycle कहाँ जाता है।

Spiral model के advantages –     

इस model को इस्तेमाल करने के कई advantages होते है, जैसे की –

  • इसमें हर एक cycle पे software testing की जाती है, जिसके बाद ही आगे बढ़ा जाता है।
  • इसमें customer हर एक module के पुरा होने के बाद, उसे इस्तेमाल कर सकता है।
  • इस मॉडल में हर एक iteration के बाद requirements में बदलाव किये जा सकते है।
  • यह एक controlled यानि की नियंत्रित model होता है, क्युकी इसमें हर एक module को टेस्ट करने के बाद ही, अगले module या साइकिल में जाया जाता है।   आदि।
software development spiral model
Fig : Spiral model

Spiral model के disadvantages –     

इस model को इस्तेमाल करने के कई disadvantages भी है, जैसे की –

  • एक iteration के बिच में requirements में बदलाव नही किया जा सकता। 
  • इसका हर एक साइकिल एक waterfall मॉडल की ही तरह होता है।
  • इसमें requirements और design की टेस्टिंग नही की जाती।         आदि।   

Verification and validation (V&V) model क्या होता है?

इसके हर एक स्टेज पे verification और validation के process को किया जाता है, जैसे की – 

  • इसमें पहले Customer requirement specification (CRS) को रिव्यु किया जाता है, जिसके बाद acceptance टेस्ट प्लान को तैयार कर, acceptance टेस्ट केस लिखे जाते है। 
  • फिर System requirement specification (SRS) को CRS के against चेक किया जाता है, जिसके बाद सिस्टम टेस्ट प्लान तैयार कर, सिस्टम टेस्ट केस लिखे जाते है। 
  • इसके बाद high level design (HLD) को SRS के against चेक किया जाता है, जिसके बाद इंटीग्रेशन टेस्ट प्लान तैयार कर, integration टेस्ट केस लिखे जाते है। 
  • फिर low level design (LLD) को HLD के against चेक किया जाता है, जिसके बाद functional टेस्ट प्लान तैयार कर, functional टेस्ट केस लिखे जाते है।
  • इन सारे process के बाद कोडिंग शुरु की जाती है, और ऊपर बढ़ते हुए सारे टेस्ट cases को चेक किया जाता है। और उनके पास होने पर सॉफ्टवेर सिस्टम को deploy किया जाता है। 
software development Verification and validation model
Fig : V&V model

इस मॉडल की यह खासियत होती है की, इसमें टेस्टर को software testing करने के लिए development तक का इंतजार नही करना पड़ता। और इसमें developer और टेस्टर साथ-साथ ही काम शुरु कर सकते है।

Prototype model क्या होता है?

  • इस मॉडल में पहले requirements को देखा जाता है, जिसके बाद सिस्टम की fiscal study की जाती है। 
  • इनके आधार पर अब एक prototype को डिजाईन और develop किया जाता है।
  • इसके बाद इस तैयार design की टेस्टिंग की जाती है, और इसमें कोई खामी मिलने पर इसे दोबारा से डिजाईन और development के लिए भेजा जाता है।
  • किसी तरह की खामी ना मिलने पर prototype को customer के पास review के लिए भेजा जाता है।
  • अगर customer प्राप्त prototype से सहमत नही होते, तो इसे दोबारा से डिजाईन और development के लिए भेजा जाता है। 
  • और अगर customer प्राप्त prototype से सहमत होते है, तो उस prototype को original डिजाईन के लिए भेज दिया जाता है।
  • इसके बाद इसकी कोडिंग की जाती है, और फिर टेस्टिंग की जाती है।
  • तब जाकर इसे customer के सिस्टम में install कर दिया जाता है। 

यह मॉडल तब बहुत काम में आता है, जब customer को यह idea नही हो पता की उन्हें असल में कैसा सॉफ्टवेर चाहिए। ऐसे में उन्हें पहले prototypes की सहायता से अपने requirements और design को समझने में मदद की जाती है, जिसके बाद ही असली सॉफ्टवेर को तैयार किया जाता है। 

Agile model क्या होता है?

यह आज सबसे ज्यादा इस्तेमाल होने वाला software development मॉडल है। यह एक iterative और incremental मॉडल है, जिसमे modules लगातार जुड़ते रह सकते है। और इसे इस्तेमाल करने वाले कंपनी customer के requirement changes को development के किसी भी समय अच्छे से हैंडल कर सकती है।   

Agile model के advantages- 

इस मॉडल को इस्तेमाल करने के कई advantages होते है, जैसे की –

  • यह इस्तेमाल के लिए एक काफी आसान मॉडल होता है।
  • Development के किसी भी स्टेज मे requirement changes allow होती है।
  • इसमें modules काफी जल्दी रिलीज़ होते है।
  • इसका main उद्देश्य modules को जल्दी रिलीज़ कर customers के satisfaction को हासिल करना होता है।
  • इसमें developer, testers, business analyst और customers के बिच communication काफी अच्छा रहता है।
  • इसमें हमेशा meetings होती रहती है, ताकि customers तक एक अच्छी quality के सॉफ्टवेर को पहुचाया जा सके।    आदि।  

Agile model के disadvantages- 

इस मॉडल को इस्तेमाल करने के कई disadvantages भी होते है, जैसे की – 

  • इसमें डिजाईन और documentation पर कम focus किया जाता है।
  • इस software testing और development मॉडल में लम्बे समय तक चलने वाले projects को हैंडल करना काफी मुश्किल होता है।
  • इसमें ज्यादातर सीनियर developers और testers ही decisions लेते है, जिस कारण किसी प्रोजेक्ट में जूनियर developers और testers का दायरा यानि की स्कोप काफी कम हो जाता है।    आदि। 

Scrum का मतलब क्या होता है?

  • यह कुछ नियम होते है,जिनका इस्तेमाल agile मॉडल मे किया जाता है।
  • इन methods का इस्तेमाल कर एक नया सॉफ्टवेर सिस्टम तैयार किया जाता है।
  • और यह एक तरह का framework होता है, जिसे agile process को manage करने के लिए इस्तेमाल किया जाता है।   

Scrum methodology के terms?

Scrum master – यह अक्सर सीनियर developer, टेस्टर, business analyst, या product मेनेजर होते है, जिनका काम यह देखना होता है की, customers तक सॉफ्टवेर की डिलीवरी एक निर्धारित समय में हो जाए।

Product backlog – इसमें किसी प्रोजेक्ट के सारे details मौजूद होता है, जो यह बताते है की इसमें आगे क्या-क्या करना है।

Sprint – यह एक टाइम period होता है, जिसके बाद किसी नए module को इस्तेमाल के लिए रिलीज़ करना होता है। 

Sprint planning – इसे scrum मास्टर, B.A, या product मेनेजर द्वारा किया किया जाता है। 

Scrum meetings – यह daily होने वाले standup मीटिंग होते है, जिनमे developers, testers, B.A, और product मेनेजर शामिल होते है।

Sprint retrospective meeting –  यह हर sprint के अंत में होने वाली मीटिंग होती है, जिसमे यह discuss किया जाता है की, इस sprint के दौरान क्या-क्या सही और क्या गलत काम हुए है।

Bug trianch meeting – इसे टेस्ट engineers द्वारा conduct किया जाता है, जिसमे product owners भी शामिल होते है। और इसमें current sprint में सिस्टम के bugs के बारे में discuss किया जाता है। और साथ ही पिछले sprint में पाए गए ओपन bugs के बारे में भी चर्चा की जाती है।

Stories – यह सॉफ्टवेर सिस्टम के किसी feature या module को कहा जाता है।  

Epic – stories के collection यानि की समूह को epic कहा जाता है।

Story point – यह developers और testers द्वारा निर्धारित किया हुआ एक समय होता है, जिसमे उन्हें किसी विशेष कार्य को पूरा करना होता है।

Swag – यह story point के तरह ही है, लेकिन घंटों के रूप में।  

Test driven development (TDD) क्या है?

  • Software testing के इस process में किसी feature या module पे काम कर रहा कोई developer पहले एक failing टेस्ट तैयार करता है।
  • इसके बाद वो सिर्फ उतना ही कोड करते है, जिससे उनका वो failing टेस्ट पास हो जाये।
  • ऐसा होने पर वो दोबारा एक failing टेस्ट लिखते है, और फिर से उसे पास करने के लायक कोडिंग करते है।
  • और ऐसा तब तक किया जाता है, जब तक एक पूरी तरह से अच्छे से काम कर रहा feature या module तैयार ना हो जाए।  

Path testing किसे कहते है?

  • इसका इस्तेमाल software testing में टेस्ट cases को डिजाईन करने के लिए किया जाता है।
  • Software testing में इसका इस्तेमाल एक दूसरे से independent टेस्ट cases को पहचानना और तैयार करना होता है।
  • Software testing में इसका main उद्द्श्ये ये सुनिश्चित करना होता है की, टेस्टिंग में हर एक path कवर और execute हो सके।
  • और software testing में इसके इस्तेमाल से बिना काम के redundant टेस्ट cases को कम करने में भी सहायता मिलती है।  

FAQ (Frequently Asked Questions)

Software testing का क्या आर्थ है? 

Software testing यह मूल्यांकन और सत्यापित करने की प्रक्रिया है कि, जिसमे यह सुनिश्चित किया जाता है की, एक सॉफ्टवेयर सिस्टम वैसा ही काम करे जिसके लिए उसे बनाया गया है। इसके अलावा भी इसके इस्तेमाल में, software testing के समय सॉफ्टवेयर सिस्टम में मौजूद bugs को हटाना, इसकी विकास लागत को कम करना और इसके प्रदर्शन में सुधार करना शामिल है।

Software testing के चरण क्या हैं?

किसी सॉफ्टवेयर को रिलीज़ करने से पहले प्रत्येक सॉफ़्टवेयर और टेस्ट इंजीनियर को कुछ आवश्यक सॉफ़्टवेयर परीक्षण करने होते है, जैसे की –

1. को़ड की समीक्षा। 
2. बुनियादी कार्यक्षमता परीक्षण। 
3. यह सुनिश्चित करके शुरू करें कि प्रत्येक स्क्रीन पर सिस्टम सही काम कर रहा है। 
4. Static कोड का विश्लेषण। 
5. यूनिट टेस्टिंग का परीक्षण। 
6. सिस्टम में single user परीक्षण।   आदि। 

आशा करता हूं कि आज आपलोंगों को कुछ नया सीखने को ज़रूर मिला होगा। अगर आज आपने कुछ नया सीखा तो हमारे बाकी के आर्टिकल्स को भी ज़रूर पढ़ें ताकि आपको ऱोज कुछ न कुछ नया सीखने को मिले, और इस article को अपने दोस्तों और जान पहचान वालो के साथ ज़रूर share करे जिन्हें इसकी जरूरत हो। धन्यवाद।

Also read –

आखिर क्या है Metaverse, जो बदल देगी पूरी इन्टरनेट की दुनिया

Manual software टेस्टिंग के 10 महत्वपूर्ण इंटरव्यू प्रश्न

SQL के 50 इंटरव्यू प्रश्न और उत्तर

Online learning के 15 बहतरीन वेबसाइट

बायोडाटा लिखने का शानदार तरीका


पोस्ट को share करें-

Similar Posts

9 Comments

  1. sir apane bahot acche se yah blog me samajaya hai very nice blog aur very useful hai yah blog padhane ke badh bahot logoko bahot fayada hone wala hai.

  2. sir apane bahot acche se yah blog me samajaya hai very nice blog aur very useful hai yah blog padhane ke badh bahot logoko bahot fayada hone wala hai.

  3. I loved this blog, itne acche se to YouTube me bhi samajh nahi aata tha. Thank you so much 🙏 for this blog

  4. Hi my loved one! I want to say that this article is awesome, nice written and include approximately all important infos. I would like to look extra posts like this .

  5. One Click Vids is a content revolution! It’s transformed my YouTube and TikTok presence and made earning from affiliate offers a breeze. Trust me—affordable and ridiculously easy to use!

  6. I was examining some of your content on this site and I think this site is very informative ! Retain putting up.

Leave a Reply

Your email address will not be published. Required fields are marked *