मैनुअल बनाम ऑटोमेटेड टेस्टिंग
मैनुअल टेस्टिंग में एक व्यक्ति उत्पाद चलाता है और परिणाम पर फ़ैसला करता है; ऑटोमेटेड टेस्टिंग में एक स्क्रिप्ट उत्पाद चलाती है और परिणाम की तुलना अपेक्षित मान से करती है। कोई भी दूसरे की जगह नहीं लेता। ऑटोमेशन ही हर बदलाव पर हज़ारों चीज़ें दोबारा जाँचने का एकमात्र तरीक़ा है; और इंसान ही वह चीज़ देखने का एकमात्र तरीक़ा है जिसे जाँचने का किसी ने सोचा ही नहीं।
यह गाइड दोनों की तुलना उन आयामों पर करती है जो टीम के लिए मायने रखते हैं — समय के साथ लागत, फ़ीडबैक की गति, हर एक किस तरह के दोष पकड़ता है, रखरखाव और ज़रूरी कौशल — और टेस्ट प्रयास को दोनों में बाँटने का ऐसा नियम देती है जो व्यवहार में टिकता है।
हर शब्द का असल में क्या मतलब है
मैनुअल टेस्टिंग दो अलग गतिविधियों को ढकती है। स्क्रिप्टेड मैनुअल टेस्टिंग लिखे हुए टेस्ट केस को स्टेप-दर-स्टेप चलाती है और पास या फ़ेल दर्ज करती है; यह दोहराने योग्य पर धीमी है, और मैनुअल टेस्टिंग का वही हिस्सा है जिसकी जगह ऑटोमेशन लेता है। एक्सप्लोरेटरी टेस्टिंग, जिसे सेम केनर ने परिभाषित किया और जेम्स बाख व एलिज़ाबेथ हेंड्रिक्सन ने विकसित किया, एक साथ सीखना, टेस्ट डिज़ाइन और निष्पादन है: टेस्टर पिछले क़दम से जो पता चला, उससे अगला क़दम तय करता है। यह "बिना योजना की टेस्टिंग" नहीं है — सेशन का चार्टर, टाइम-बॉक्स और नोट्स होते हैं — और यही वह हिस्सा है जिसकी जगह ऑटोमेशन नहीं ले सकता।
ऑटोमेटेड टेस्टिंग किसी टूल द्वारा पहले से लिखी जाँचों का निष्पादन है: यूनिट टेस्ट, API टेस्ट, Selenium, Cypress, Playwright या Appium से चलाए गए UI टेस्ट, परफ़ॉर्मेंस स्क्रिप्ट। टूल तय नहीं करता कि क्या जाँचना है; किसी व्यक्ति ने एक बार, स्क्रिप्ट लिखते समय, यह तय किया था। इसलिए ऑटोमेशन सिर्फ़ वे दोष पकड़ता है जिनका किसी ने अनुमान लगाया था — जो ठीक वही है जिसके लिए रिग्रेशन सूट होता है, और ठीक वही कारण है कि यह पूरी रणनीति नहीं हो सकता।
आमने-सामने
मैनुअल टेस्टिंग
स्टेप-दर-स्टेप चलाए गए स्क्रिप्टेड टेस्ट केस, और एक्सप्लोरेटरी सेशन
- लागत वक्र:
- हर बार चलने पर लगभग उतनी ही
- फ़ीडबैक की गति:
- घंटे या दिन, जब टेस्टर उपलब्ध हो
- क्या पकड़ता है:
- नए दोष, उपयोगिता की समस्याएँ, भ्रामक फ़्लो, आवश्यकताओं की ग़लत धारणाएँ
- निरंतरता:
- व्यक्ति बदलता है: रिग्रेशन के लिए कमज़ोरी, खोज के लिए ताक़त
- रखरखाव:
- टेस्ट केस भी अपडेट माँगते हैं, पर पुराना केस नरमी से फ़ेल होता है
- कवरेज:
- निर्णय, सिर्फ़ मैनुअल: लेआउट, शब्द, लहजा, एक्सेसिबिलिटी का एहसास, “क्या इसका मतलब बनता है”
- कौशल:
- एक्सप्लोरेटरी टेस्टिंग के लिए: उत्पाद और डोमेन ज्ञान वाले टेस्टर
ऑटोमेटेड टेस्टिंग
टूल द्वारा पहले से लिखी जाँचों का निष्पादन
- लागत वक्र:
- शुरू में ज़्यादा (लिखना, इन्फ़्रास्ट्रक्चर), हर रन पर कम: सिर्फ़ कई बार चलने वाली जाँचों के लिए वसूल होता है
- फ़ीडबैक की गति:
- मिनट, हर कमिट पर
- क्या पकड़ता है:
- रिग्रेशन: जो काम करता था और बंद हो गया
- निरंतरता:
- स्क्रिप्ट हर बार एक ही तरह चलती है
- रखरखाव:
- उत्पाद बदलने पर स्क्रिप्ट टूटती हैं, ख़ासकर UI स्क्रिप्ट; रखरखाव बजट असली लागत का हिस्सा है
- कवरेज:
- पैमाना, सिर्फ़ ऑटोमेशन: हज़ार डेटा संयोजन, हर ब्राउज़र, हर रात
- कौशल:
- रखरखाव-योग्य कोड लिखने वाले इंजीनियर
ये दो कौशल अलग लोगों के हो सकते हैं, या अलग दिनों में एक ही व्यक्ति के।
- लागत वक्र — मैनुअल टेस्टिंग हर बार चलने पर लगभग उतनी ही लागत लेती है; ऑटोमेशन शुरू में ज़्यादा (लिखना, इन्फ़्रास्ट्रक्चर) और हर रन पर कम, इसलिए यह सिर्फ़ उन जाँचों के लिए वसूल होता है जो कई बार चलती हैं।
- फ़ीडबैक की गति — ऑटोमेटेड सूट हर कमिट पर मिनटों में रिपोर्ट देता है; मैनुअल पास घंटों या दिनों में होता है और तब जब टेस्टर उपलब्ध हो।
- क्या पकड़ता है — ऑटोमेशन रिग्रेशन पकड़ता है: जो काम करता था और बंद हो गया। मैनुअल और एक्सप्लोरेटरी टेस्टिंग नए दोष, उपयोगिता की समस्याएँ, भ्रामक फ़्लो और आवश्यकताओं की ग़लत धारणाएँ पकड़ती हैं।
- निरंतरता — स्क्रिप्ट हर बार एक ही तरह चलती है; व्यक्ति बदलता है — जो रिग्रेशन के लिए कमज़ोरी और खोज के लिए ताक़त है।
- रखरखाव — उत्पाद बदलने पर स्क्रिप्ट टूटती हैं, ख़ासकर UI स्क्रिप्ट; रखरखाव बजट असली लागत का हिस्सा है। मैनुअल टेस्ट केस भी अपडेट माँगते हैं, पर पुराना केस नरमी से फ़ेल होता है।
- निर्णय की कवरेज — लेआउट, शब्द, लहजा, एक्सेसिबिलिटी का एहसास, "क्या इसका मतलब बनता है" — सिर्फ़ मैनुअल। पैमाने की कवरेज — हज़ार डेटा संयोजन, हर ब्राउज़र, हर रात — सिर्फ़ ऑटोमेशन।
- कौशल — ऑटोमेशन को ऐसे इंजीनियर चाहिए जो रखरखाव-योग्य कोड लिखें; एक्सप्लोरेटरी टेस्टिंग को उत्पाद और डोमेन ज्ञान वाले टेस्टर। ये अलग लोग हैं या अलग दिनों में एक ही व्यक्ति।
मैनुअल टेस्टिंग कब जीतती है
- नए फ़ीचर — किसी ऐसी चीज़ पर पहला पास जो पहले कभी काम नहीं करती थी, जहाँ अपेक्षित व्यवहार अभी खोजा जा रहा है।
- उपयोगिता और लोकलाइज़ेशन — क्या अरबी लेआउट दाएँ-से-बाएँ सही पढ़ा जाता है, क्या एरर मैसेज समझ में आता है, क्या फ़्लो भ्रामक है।
- अस्थिर इंटरफ़ेस — हर स्प्रिंट में बदलने वाला UI स्थिर होने तक UI ऑटोमेशन को रखरखाव का गड्ढा बना देता है।
- एक बार की जाँचें — कोई माइग्रेशन, डेटा फ़िक्स, रिलीज़-दिन का सत्यापन जो कभी दोहराया नहीं जाएगा।
- एक्सप्लोरेटरी सेशन — टाइम-बॉक्स्ड, चार्टर-आधारित उन दोषों की खोज जिनका किसी केस ने अनुमान नहीं लगाया; कुशल टेस्टर की प्रति घंटा सबसे ऊँची दोष-उपज।
ऑटोमेशन कब जीतता है
- रिग्रेशन — हर वह जाँच जो हर रिलीज़ पर पास होनी चाहिए, CI में चलने वाले सूट में हो; उसे इंसानों से दोहरवाना सबसे कम मूल्य की टेस्टिंग करने का सबसे महँगा तरीक़ा है।
- API और कॉन्ट्रैक्ट जाँचें — सटीक अनुरोध, सटीक रिस्पॉन्स, तुलना के लिए स्पेसिफ़िकेशन: ऑटोमेशन का आदर्श लक्ष्य, UI टेस्ट से सस्ता और स्थिर।
- डेटा-ड्रिवन केस — सैकड़ों इनपुट पर वही स्टेप: बाउंड्री वैल्यू, मुद्राएँ, लोकेल, फ़ॉर्मेट।
- क्रॉस-ब्राउज़र और क्रॉस-डिवाइस — हर समर्थित ब्राउज़र और स्क्रीन साइज़ पर एक ही यात्रा, जिसे कोई टीम हाथ से नहीं कर सकती।
- परफ़ॉर्मेंस और लोड — मैनुअली असंभव: कॉन्करेंट ट्रैफ़िक पैदा करना और मापना परिभाषा से ही ऑटोमेशन है।
आज़माएँ: रिग्रेशन सिनेरियो जनरेटर आज़माएँ: AI रिग्रेशन टेस्ट जनरेटर आज़माएँ: OpenAPI → टेस्ट केस आज़माएँ: API कॉन्ट्रैक्ट वैलिडेटर आज़माएँ: Concurrent रिक्वेस्ट टेस्ट जनरेटर
क्या ऑटोमेट करें यह तय करना: पिरामिड और एक सरल नियम
टेस्ट पिरामिड — बहुत से यूनिट टेस्ट, कम API और इंटीग्रेशन टेस्ट, बहुत कम एंड-टू-एंड UI टेस्ट — एक लागत मॉडल है: जाँच सबसे निचले उस स्तर पर रहे जहाँ उसे व्यक्त किया जा सकता है, क्योंकि निचले स्तर तेज़, ज़्यादा स्थिर और रखरखाव में सस्ते हैं। API स्तर पर टेस्ट किया गया बिज़नेस नियम UI टेस्ट नहीं माँगता; UI टेस्ट सिर्फ़ उस फ़्लो के लिए हो जो UI में विफल हो सकता है।
किसी भी एक जाँच के लिए नियम है: उसे ऑटोमेट करें अगर वह कई बार चलेगी, उसका निश्चित अपेक्षित परिणाम है, और वह इतनी स्थिर चीज़ टेस्ट करती है कि स्क्रिप्ट को हर स्प्रिंट फिर लिखना न पड़े। आवृत्ति, निश्चितता और स्थिरता। जो जाँच इन तीनों में से किसी में विफल हो, उसे व्यक्ति से करवाना बेहतर है, या अभी बिल्कुल नहीं।
- ऑटोमेशन API स्तर से शुरू करें; UI यात्राएँ सिर्फ़ सबसे महत्वपूर्ण फ़्लो के लिए जोड़ें।
- सूट को तेज़ रखें — एक घंटे लेने वाला सूट हर बदलाव पर चलना बंद हो जाता है और चुपचाप ऐसी रात्रि रिपोर्ट बन जाता है जिसे कोई नहीं पढ़ता।
- फ़्लेकी टेस्ट तुरंत हटाएँ या ठीक करें; बिना कारण कभी-कभी लाल होने वाला सूट टीम को लाल की अनदेखी सिखाता है।
- हर तिमाही सूट में डुप्लिकेट और मृत जाँचों की समीक्षा करें; ऑटोमेशन जमा होता जाता है।
आज़माएँ: AI टेस्ट केस ऑप्टिमाइज़र आज़माएँ: AI डुप्लिकेट टेस्ट केस डिटेक्टर
टीमें दोनों को कैसे जोड़ती हैं
जो पैटर्न काम करता है वह प्रतिशत का बँटवारा नहीं बल्कि श्रम का विभाजन है। ऑटोमेटेड रिग्रेशन सूट उसकी रक्षा करता है जो पहले से काम करता है और पाइपलाइन — GitLab CI, GitHub Actions या समकक्ष — में हर बदलाव पर चलता है, ताकि डेवलपर को मिनटों में पता चले कि किसी बदलाव ने कुछ तोड़ा। टेस्टर अपना समय सूट से आगे बिताते हैं: आवश्यकताओं की समीक्षा, नए फ़ीचर के लिए केस डिज़ाइन, उस पर एक्सप्लोरेटरी सेशन, और फ़ीचर स्थिर होने पर रखने लायक केस ऑटोमेशन को सौंपना।
AI टूल दोनों के मसौदा-चरण में फ़िट होते हैं: स्टोरी या API स्पेसिफ़िकेशन से उम्मीदवार टेस्ट केस बनाना, नेगेटिव और एज केस सुझाना, किसी बदलाव के रिग्रेशन सिनेरियो का मसौदा बनाना। ये लिखना छोटा करते हैं; क्या रखना है इसका चुनाव और एक्सप्लोरेटरी निर्णय टेस्टर के पास रहते हैं।
अक्सर पूछे जाने वाले सवाल
क्या ऑटोमेटेड टेस्टिंग मैनुअल टेस्टिंग की जगह ले सकती है?
यह स्क्रिप्टेड मैनुअल रिग्रेशन — ज्ञात जाँचों को हाथ से दोहराने — की जगह लेती है, और लेनी चाहिए। यह एक्सप्लोरेटरी टेस्टिंग, उपयोगिता के निर्णय या आवश्यकताओं की समीक्षा की जगह नहीं ले सकती, क्योंकि स्क्रिप्ट सिर्फ़ वही जाँचती है जिसका किसी ने अनुमान लगाया। जिन टीमों ने "सब कुछ ऑटोमेट" किया, उनके पास आमतौर पर मज़बूत रिग्रेशन सूट और बढ़ते हुए ऐसे प्रोडक्शन दोष होते हैं जिनके लिए किसी ने स्क्रिप्ट नहीं लिखी।
कितने प्रतिशत टेस्ट ऑटोमेट होने चाहिए?
कोई सही प्रतिशत नहीं है; बँटवारा उत्पाद पर निर्भर है। स्थिर, API-प्रधान उत्पाद अपनी 90% जाँचें ऑटोमेटेड चला सकता है; तेज़ी से बदलते UI और मज़बूत उपयोगिता-घटक वाला उत्पाद कहीं कम। बेहतर सवाल यह है कि क्या हर रिलीज़ पर चलने वाली हर जाँच ऑटोमेटेड है, और क्या हर नए फ़ीचर को एक्सप्लोरेटरी ध्यान मिलता है।
AI-जनित टेस्टिंग मैनुअल है या ऑटोमेटेड?
दोनों नहीं — यह टेस्ट डिज़ाइन सहायता है। AI टूल किसी विवरण से टेस्ट केस, सिनेरियो या बग रिपोर्ट का मसौदा बनाता है; व्यक्ति उन्हें चुनता और सुधारता है, और फिर वे किसी भी अन्य केस की तरह हाथ से या ऑटोमेशन से चलाए जाते हैं।
हमें कौन-सा ऑटोमेशन टूल इस्तेमाल करना चाहिए?
वह जिसका रखरखाव आपके इंजीनियर कर सकें। Selenium सबसे ज़्यादा ब्राउज़र और भाषाएँ सपोर्ट करता है; आधुनिक वेब ऐप के लिए Cypress और Playwright लिखने और डिबग करने में तेज़ हैं; Appium नेटिव मोबाइल कवर करता है। API के लिए उत्पाद के अपने टेस्ट फ़्रेमवर्क की भाषा आमतौर पर सबसे अच्छी है। टूल से ज़्यादा मायने सूट को तेज़, स्थिर और छोटा रखना रखता है।
हम कैसे मापें कि बँटवारा सही है?
दो संख्याएँ: कमिट से रिग्रेशन परिणाम तक का समय (मिनटों में होना चाहिए), और प्रोडक्शन दोषों का वह हिस्सा जिसे कोई मौजूदा ऑटोमेटेड जाँच पकड़ सकती थी (समय के साथ घटना चाहिए)। पहला लंबा है तो सूट बहुत धीमा या UI-भारी है; दूसरा ऊँचा है तो सूट वह कवर नहीं कर रहा जो मायने रखता है।
संदर्भ
- ISTQB Certified Tester Foundation Level (CTFL) v4.0सॉफ़्टवेयर टेस्टिंग का फ़ाउंडेशन पाठ्यक्रम: टेस्ट स्तर और प्रकार, टेस्ट डिज़ाइन तकनीकें, टेस्ट प्रबंधन और टूल।
- Agile Testing: A Practical Guide for Testers and Agile Teams (Lisa Crispin, Janet Gregory)एजाइल टेस्टिंग क्वाड्रेंट और टेस्टर डिलीवरी टीम के भीतर कैसे काम करते हैं — "सही परत पर टेस्टिंग" का आधार।
- Explore It! Reduce Risk and Increase Confidence with Exploratory Testing (Elisabeth Hendrickson)एक्सप्लोरेटरी टेस्टिंग का अनुशासन: चार्टर, इनपुट और स्टेट बदलने के ह्यूरिस्टिक, और यह स्क्रिप्टेड टेस्ट का पूरक कैसे है।
- Lessons Learned in Software Testing: A Context-Driven Approach (Cem Kaner, James Bach, Bret Pettichord)बग रिपोर्टिंग, टेस्ट डिज़ाइन, ऑटोमेशन और टेस्टिंग प्रबंधन पर व्यावहारिक सबक — कॉन्टेक्स्ट-ड्रिवन स्कूल।
- Selenium DocumentationWebDriver से ब्राउज़र ऑटोमेशन का आधिकारिक दस्तावेज़, वेट, लोकेटर और Grid सहित।
- Cypress DocumentationCypress से ब्राउज़र में एंड-टू-एंड और कंपोनेंट टेस्टिंग का आधिकारिक दस्तावेज़।
- Appium DocumentationiOS और Android पर नेटिव, हाइब्रिड और मोबाइल-वेब ऐप के ऑटोमेशन का आधिकारिक दस्तावेज़।
- GitLab CI/CDपाइपलाइन, जॉब और आर्टिफ़ैक्ट कैसे परिभाषित होते हैं — जहाँ हर बदलाव पर ऑटोमेटेड रिग्रेशन सूट चलता है।
अभ्यास
सिनेमा बुकिंग रिलीज़ के लिए तय करें कि क्या ऑटोमेट करें
आप सिनेमा टिकट बुकिंग प्रोडक्ट (काल्पनिक) के दो टेस्टरों में से एक हैं: एक web app और एक REST API, जिसे मोबाइल ऐप भी इस्तेमाल करते हैं। टीम हर दो हफ़्ते रिलीज़ करती है, अगले महीने एक ऑटोमेशन इंजीनियर जुड़ रहा है, और प्रोडक्ट मैनेजर जानना चाहता है कि इंजीनियर को सबसे पहले क्या ऑटोमेट करना चाहिए। नीचे की सामग्री में पाइपलाइन और मौजूदा UI सूट की स्थिति, प्राइसिंग नियम, इस रिलीज़ में क्या बदल रहा है, दस संभावित जाँचें और तीन सवाल हैं।
दसों जाँचों को गाइड के नियम — आवृत्ति, निश्चितता और स्थिरता — और टेस्ट पिरामिड से छाँटें: अभी ऑटोमेट (यूनिट, API या UI स्तर पर, और कितनी बार चले), स्क्रिप्टेड मैनुअल, एक्सप्लोरेटरी सेशन, एक बार की जाँच, या अभी नहीं। हर एक के लिए एक पंक्ति का कारण दें, फिर तीनों सवालों के जवाब दें। काग़ज़-क़लम काफ़ी है; एक जाँच में boundary value generator काम आएगा। इसके लिए 20–30 मिनट रखें।
सिनेमा टिकट बुकिंग (काल्पनिक) - web app और REST API; मोबाइल ऐप वही API इस्तेमाल करते हैं
हर दो हफ़्ते रिलीज़। टीम: 2 टेस्टर और 4 डेवलपर; अगले महीने एक ऑटोमेशन इंजीनियर जुड़ता है।
पाइपलाइन: GitLab CI हर कमिट पर डेवलपरों के यूनिट टेस्ट चलाता है (4 मिनट)।
आज का UI सूट: 38 Selenium जाँचें, 55 मिनट, हर रात चलता है। हफ़्ते में क़रीब एक बार
कोई रन बिना किसी ख़राबी के लाल होता है (सीट मैप वाली जाँच में टाइमिंग की समस्या);
कोई उसे दोबारा नहीं चलाता।
प्राइसिंग नियम PR-7 (दो साल से अपरिवर्तित; क़ीमत API तय करता है, UI उसे दिखाता है)
वयस्क (13 से 64): 45.00 SAR। बच्चा (3 से 12): 25.00 SAR।
वरिष्ठ (65 और ऊपर): 30.00 SAR। 3 से कम: मुफ़्त, कोई सीट नहीं।
मंगलवार: हर सशुल्क टिकट 20.00 SAR।
इस रिलीज़ में
नया: "ग्रुप बुकिंग" - एक ऑर्डर में 6 से 20 सीटें। इसकी स्क्रीन अभी भी बदल रही हैं;
डिज़ाइनर ने इस स्प्रिंट में ग्रुप सीट चयन दो बार बदला। भुगतान के स्टेप (नीचे)
के अलावा सामान्य बुकिंग की स्क्रीन नहीं बदलतीं।
बदलाव: 15 अक्टूबर को पेमेंट प्रोवाइडर बदलता है; पुराना उसी दिन बंद होता है।
तारीख़: 24 अक्टूबर को "ब्लॉकबस्टर वीकेंड" - एक फ़िल्म की बिक्री 10:00 बजे खुलती है
और टीम को सामान्य दिन से कहीं ज़्यादा विज़िटर की उम्मीद है।
संभावित जाँचें
K1 लॉगिन, फ़िल्म और 2 सीटें चुनें, टेस्ट कार्ड से भुगतान करें, टिकट का QR कोड देखें
K2 GET /api/screenings/{id}/seats हर सीट की स्थिति के साथ सीट मैप लौटाता है,
जैसा OpenAPI स्पेसिफ़िकेशन बताता है
K3 आयु और दिन के हर संयोजन की क़ीमत PR-7 के अनुसार है
K4 जिस सीट का भुगतान एक ग्राहक कर रहा है, उसे दूसरा ग्राहक बुक नहीं कर सकता
K5 सीट पिकर 320 px चौड़ी फ़ोन स्क्रीन पर उपयोग-योग्य है और अरबी (RTL) में
सही पढ़ा जाता है
K6 ग्रुप बुकिंग: डिज़ाइन फ़ाइनल होने से पहले खोजें कि क्या भ्रामक या टूटा हुआ है
K7 15 अक्टूबर के प्रोवाइडर बदलाव के बाद 1,214 खुले ऑर्डर सब अब भी मौजूद हैं
K8 चेकआउट Chrome, Firefox, Safari और Edge पर, डेस्कटॉप और फ़ोन पर काम करता है
K9 10:00 बजे फ़िल्म की बिक्री खुलते ही 2,000 ग्राहक आएँ, तब भी साइट जवाब देती रहती है
K10 चेकआउट का हर एरर मैसेज समझ में आता है और ग्राहक को बताता है कि क्या करना है
सवाल
Q1 प्रोडक्ट मैनेजर कहता है: "सब कुछ ऑटोमेट कर दो, फिर मैनुअल टेस्टिंग की ज़रूरत
नहीं रहेगी।" तीन या चार वाक्यों में जवाब दें।
Q2 बँटवारा सही है या नहीं, यह देखने के लिए आप कौन-सी दो संख्याएँ ट्रैक करेंगे,
और समय के साथ हर एक को क्या करना चाहिए?
Q3 मौजूदा UI सूट में आप क्या बदलेंगे, और क्यों?- सामग्री पढ़ें। हर संभावित जाँच के लिए नियम के तीन सवालों के जवाब दें: क्या यह कई बार चलेगी, क्या इसका निश्चित अपेक्षित परिणाम है, और क्या यह जो टेस्ट करती है वह पर्याप्त स्थिर है?
- हर जाँच को वर्गीकृत करें — अभी ऑटोमेट, स्क्रिप्टेड मैनुअल, एक्सप्लोरेटरी सेशन, एक बार की जाँच, या अभी नहीं — एक पंक्ति के कारण के साथ। जिसे ऑटोमेट करें, उसका स्तर (यूनिट, API या UI) और समय बताएँ: हर कमिट पर, हर रात, या किसी तारीख़ से पहले।
- जहाँ कोई जाँच निश्चित हिस्से और निर्णय वाले हिस्से को मिलाती हो, उसे बाँटें और बताएँ कि कौन-सा हिस्सा कहाँ जाएगा।
- Q1 से Q3 के जवाब दें।
मॉडल उत्तर दिखाएँ
सारांश। छह जाँचें ऑटोमेट होती हैं: K1 (UI), K2, K3 और K4 (API), K8 (ब्राउज़र ग्रिड पर UI) और K9 (लोड स्क्रिप्ट)। पहली पाँच तीनों सवाल पास करती हैं; K9 सिर्फ़ एक तारीख़ से पहले और जोखिम वाले बदलावों के बाद चलता है, पर लोड टेस्ट हाथ से हो ही नहीं सकता, इसलिए तय किया हुआ अपेक्षित परिणाम मिलते ही उसे ऑटोमेट किया जाता है। चार इंसान के पास रहती हैं: K5 और K10 निर्णय हैं, K6 एक्सप्लोरेटरी है और K7 एक बार चलती है। "अभी नहीं" ग्रुप बुकिंग को ऑटोमेट करने का जवाब है: वह डिज़ाइन फ़ाइनल होने तक रुकता है (K6 देखें)। स्तर टेस्ट पिरामिड तय करता है: जाँच सबसे निचले उस स्तर पर रहे जहाँ उसे व्यक्त किया जा सकता है, इसलिए K2, K3 और K4 API टेस्ट हैं और उन्हें UI टेस्ट की ज़रूरत नहीं, और ऑटोमेटेड जाँचों में सिर्फ़ K1 और K8 ब्राउज़र चलाते हैं। अगर आपका वर्गीकरण अलग है, तो उसे नीचे के कारणों से मिलाएँ; लिखे हुए कारण के साथ अलग चुनाव स्वीकार्य है, "क्योंकि हो सकता है" इसलिए ऑटोमेट की गई जाँच नहीं।
K1 — ऑटोमेट, UI स्तर, पाइपलाइन की एकमात्र एंड-टू-एंड यात्रा। यह GitLab CI में हर बदलाव पर और हर रिलीज़ से पहले चलती है (आवृत्ति), एक निश्चित परिणाम पर ख़त्म होती है (चुनी हुई दो सीटों के लिए QR कोड वाला टिकट), और भुगतान के स्टेप के अलावा इस रिलीज़ में बुकिंग की स्क्रीन नहीं बदलतीं (स्थिरता)। भुगतान का स्टेप एक बार, 15 अक्टूबर को बदलेगा: फ़्लो को अस्थिर कहने के बजाय उस रखरखाव की योजना बदलाव के दिन के लिए बनाएँ (नए प्रोवाइडर का टेस्ट कार्ड और उसकी स्क्रीन)। स्क्रिप्ट को यात्रा तक सीमित रखें; क़ीमतें, सीट की स्थिति और उपलब्धता उसके नीचे के स्तर पर जाँची जाती हैं।
K2 — ऑटोमेट, API स्तर, हर कमिट पर। सटीक अनुरोध, सटीक रिस्पॉन्स और तुलना के लिए OpenAPI स्पेसिफ़िकेशन ऑटोमेशन का आदर्श लक्ष्य है, और मोबाइल ऐप इसी कॉन्ट्रैक्ट पर निर्भर हैं, इसलिए कोई बदला हुआ या ग़ायब फ़ील्ड उन्हें उसी दिन तोड़ देगा जिस दिन वह शिप हो। जाँच सेकंडों में होती है और GitLab CI में यूनिट टेस्ट के बगल में उसकी जगह है।
K3 — ऑटोमेट, API स्तर, डेटा-ड्रिवन, हर कमिट पर; UI टेस्ट नहीं, क्योंकि क़ीमत API तय करता है और web app उसे सिर्फ़ दिखाता है। क़ीमत की गणना का डेवलपर यूनिट टेस्ट भी उतना ही सही स्तर है, क्योंकि वह सबसे निचला स्तर है जहाँ नियम व्यक्त किया जा सकता है। PR-7 दो साल से अपरिवर्तित है (स्थिरता), अपेक्षित क़ीमत सटीक है (निश्चितता), और यह हर रिलीज़ पर जाँची जाती है (आवृत्ति)। पंक्तियाँ आयु-वर्गों के बीच की बाउंड्री और दो तरह के दिन हैं, क़ीमतें SAR में: मंगलवार के अलावा किसी दिन, आयु 2 → मुफ़्त और कोई सीट नहीं, 3 → 25.00, 12 → 25.00, 13 → 45.00, 64 → 45.00, 65 → 30.00; मंगलवार को वही आयु → मुफ़्त, फिर बाक़ी पाँच के लिए 20.00। सिनेमा के time zone में दिन के किनारों पर पंक्तियाँ जोड़ें: सोमवार 23:59, मंगलवार 00:00, मंगलवार 23:59 और बुधवार 00:00। ये अपेक्षित परिणाम लिखने से पहले प्रोडक्ट ओनर से पूछें कि "मंगलवार" का मतलब क्या है — स्क्रीनिंग का दिन या बुकिंग का दिन — और जवाब दर्ज करें: जिस जाँच का निश्चित अपेक्षित परिणाम नहीं, वह ऑटोमेट करने के लिए तैयार नहीं है।
K4 — ऑटोमेट, API स्तर, दो केस में: जिस सीट का भुगतान एक ग्राहक कर रहा है, वह दूसरे ग्राहक को अस्वीकार हो (एक के बाद एक दो अनुरोध), और एक ही सीट के लिए एक ही पल में भेजी गई दो बुकिंग का अंत ठीक एक सफलता और एक अस्वीकृति पर हो (जैसे 201 Created और 409 Conflict)। परिणाम निश्चित है, भले ही टाइमिंग न हो, और यह जाँच हर रिलीज़ पर मायने रखती है क्योंकि दो बार बुक हुई सीट रिफ़ंड और भरोसे की क़ीमत लेती है। हाथ से, दो ब्राउज़र वाले दो टेस्टर अपने क्लिक एक ही मिलीसेकंड में नहीं डाल सकते, इसलिए दूसरा केस कॉन्करेंसी को कभी जाँचे बिना पास हो जाता; कॉन्करेंट अनुरोध पैदा करना परिभाषा से ही ऑटोमेशन है। इसे हर रात या बुकिंग सर्विस के हर कमिट पर चलाएँ।
K8 — ऑटोमेट, UI स्तर, हर रात और हर रिलीज़ से पहले, हर कमिट पर नहीं। यह K1 की यात्रा ही है जो चारों ब्राउज़र पर, डेस्कटॉप और फ़ोन पर, असली या एमुलेटेड डिवाइस वाले ब्राउज़र ग्रिड के ज़रिए फिर चलती है: एक स्क्रिप्ट, आठ कॉन्फ़िगरेशन। हाथ से इसका मतलब होगा हर दो हफ़्ते वही यात्रा आठ बार दोहराना — दोहराव वाला, निश्चित काम, ठीक वही जिसे नियम ऑटोमेशन को भेजता है — और K1 पहले से ऑटोमेटेड है, इसलिए अतिरिक्त लागत कॉन्फ़िगरेशन की है, नए कोड की नहीं। यह बाक़ी सूट से धीमी है, इसीलिए हर कमिट को नहीं रोकती।
K9 — ऑटोमेट, एक लोड स्क्रिप्ट के रूप में जो ब्राउज़र के बिना सीट मैप और चेकआउट के HTTP अनुरोध भेजती है; लोड टेस्ट परिभाषा से ही ऑटोमेशन है, क्योंकि 10:00 बजे 2,000 ग्राहक हाथ से पैदा नहीं किए जा सकते। यह 24 अक्टूबर से पहले चलता है और फिर सीट होल्डिंग या चेकआउट के कोड में किसी भी बदलाव के बाद, प्रोडक्शन के आकार के staging environment पर — प्रोडक्शन पर नहीं, और ऐसे सिस्टम पर, जो टीम का नहीं है (जैसे पेमेंट प्रोवाइडर), लिखित अनुमति के बिना कभी नहीं। चलाने से पहले इसे निश्चित अपेक्षित परिणाम दें, जैसे सीट मैप और चेकआउट के लिए टीम जो response time और error rate स्वीकार करती है; वरना यह संख्याएँ देगा पर फ़ैसला नहीं।
K5 — मैनुअल, स्क्रिप्टेड, हर रिलीज़ पर, असली फ़ोन पर अरबी लोकेल के साथ। "उपयोग-योग्य" और "दाएँ-से-बाएँ सही पढ़ा जाता है" निर्णय हैं, जिनकी तुलना के लिए कोई अपेक्षित मान नहीं, इसलिए जाँच निश्चितता में विफल है। एक छोटी चेकलिस्ट लिखें (सीट के लेबल पढ़ने लायक, सीट नंबर उसी क्रम में जैसे हॉल में हैं, चुनी हुई सीट दिखती है, क़ीमत सही जगह पर) ताकि जाँच दोहराने योग्य रहे। बाद में स्क्रीनशॉट की तुलना लेआउट को अनचाहे बदलावों से बचा सकती है, पर वह सिर्फ़ यह दिखाती है कि कुछ बदला; नतीजा उपयोग-योग्य है या नहीं, यह निर्णय इंसान के पास रहता है।
K6 — टाइम-बॉक्स्ड, चार्टर-आधारित एक्सप्लोरेटरी सेशन, जैसे: "6 से 20 सीटों की ग्रुप बुकिंग को, सीट बदलने और भुगतान समेत, एक्सप्लोर करें ताकि भ्रामक या टूटा हुआ व्यवहार मिले", नोट्स के साथ 60–90 मिनट के सेशन में। अभी कोई निश्चित अपेक्षित परिणाम नहीं है — अपेक्षित व्यवहार अभी खोजा जा रहा है — और स्क्रीन अस्थिर हैं, तो यह नए फ़ीचर पर वह पहला पास है जिसे गाइड इंसान को देती है। डिज़ाइन फ़ाइनल होने पर रखने लायक केस लिखें और उनमें से स्थिर केस ऑटोमेशन को सौंपें, आम तौर पर K1 के बगल में एक ग्रुप-बुकिंग यात्रा।
K7 — एक बार की जाँच, हाथ से या एक बार इस्तेमाल होने वाली query से, सूट में नहीं। यह एक बार, 15 अक्टूबर को चलती है, इसलिए आवृत्ति में विफल है, और स्क्रिप्ट की लागत जाँच से ज़्यादा होगी। फिर भी इसे सावधानी से करें: बदलाव से पहले 1,214 ऑर्डर की id दर्ज करें, बाद में सूची की तुलना करें — सिर्फ़ गिनती की नहीं — और नतीजा रिलीज़ नोट्स के साथ रखें।
K10 — स्क्रिप्टेड मैनुअल समीक्षा, जिसका निश्चित हिस्सा अलग कर लिया गया है। मैसेज समझ में आता है और ग्राहक को बताता है कि क्या करना है — इसकी तुलना किसी अपेक्षित मान से नहीं हो सकती; टेस्टर हर मैसेज को उसके संदर्भ में, अंग्रेज़ी और अरबी में, हर रिलीज़ पर या जब भी कोई टेक्स्ट बदले, पढ़ता है। निश्चित हिस्सा ऑटोमेशन में जाता है: API तय किया हुआ error code लौटाता है (K2 के बगल में एक API जाँच), और हर एरर स्थिति में कोई मैसेज दिखता है (K1 के बगल में UI यात्रा का एक स्टेप)।
Q1। ऑटोमेशन स्क्रिप्टेड मैनुअल रिग्रेशन — ज्ञात जाँचों को हाथ से दोहराने — की जगह लेता है, और लेना चाहिए: K1, K2, K3 और K8 ठीक यही हैं, और K9 व K4 का कॉन्करेंसी वाला केस तो हाथ से हो ही नहीं सकते। यह एक्सप्लोरेटरी टेस्टिंग (K6), उपयोगिता और लोकलाइज़ेशन के निर्णय (K5, K10) या आवश्यकताओं की समीक्षा की जगह नहीं ले सकता, क्योंकि स्क्रिप्ट सिर्फ़ वही जाँचती है जिसका लिखते समय किसी ने अनुमान लगाया था। जो टीम सब कुछ ऑटोमेट करती है, उसके पास मज़बूत रिग्रेशन सूट और बढ़ते हुए ऐसे प्रोडक्शन दोष रह जाते हैं जिनके लिए किसी ने स्क्रिप्ट नहीं लिखी। असली वादा अलग है: जब सूट हर बदलाव पर उसकी रक्षा करता है जो पहले से काम करता है, तब टेस्टरों का समय उससे आगे चला जाता है — आवश्यकताएँ, नए फ़ीचर, एक्सप्लोरेटरी सेशन।
Q2। पहली: कमिट से रिग्रेशन परिणाम तक का समय, जो मिनटों में होना चाहिए और घटना चाहिए: आज यूनिट टेस्ट 4 मिनट में जवाब देते हैं पर UI सूट अगली सुबह, इसलिए चेकआउट तोड़ने वाले डेवलपर को एक दिन बाद पता चलता है। दूसरी: प्रोडक्शन दोषों का वह हिस्सा जिसे कोई मौजूदा ऑटोमेटेड जाँच पकड़ सकती थी, जो समय के साथ घटना चाहिए; अगर यह ऊँचा बना रहे, तो सूट वह कवर नहीं कर रहा जो मायने रखता है, चाहे वह कितना भी हरा हो।
Q3। सीट मैप की फ़्लेकी जाँच इसी हफ़्ते ठीक करें या हटाएँ: हफ़्ते में एक बार बिना किसी ख़राबी के लाल होने वाला सूट टीम को लाल की अनदेखी सिखाता है, और कोई उसे दोबारा नहीं चलाता — यह दिखाता है कि ऐसा हो भी चुका है। 38 जाँचों को देखें और बिज़नेस नियम की हर जाँच — क़ीमतें, सीट की स्थिति, उपलब्धता — ब्राउज़र से निकालकर API स्तर पर ले जाएँ, जहाँ वह सेकंडों में चलती है; API स्तर पर टेस्ट किया गया नियम UI टेस्ट नहीं माँगता। UI सूट में सिर्फ़ वे यात्राएँ रखें जो UI में विफल हो सकती हैं, K1 से शुरू करके और बाद में ग्रुप बुकिंग, ताकि सूट रात में एक बार की बजाय GitLab CI में हर बदलाव पर मिनटों में चले; सिर्फ़ क्रॉस-ब्राउज़र रन (K8) रात में चलता रहता है। हर तिमाही सूट में डुप्लिकेट और मृत जाँचों की समीक्षा करें, और ऑटोमेशन इंजीनियर को इस सूची का बाक़ी हिस्सा, इसी क्रम में, पहले महीने के काम के रूप में दें।
इस topic में आपकी प्रगति
प्रगति ट्रैक करने के लिए साइन इन करें
Topics पूर्ण चिह्नित करें, जहाँ छोड़ा था वहीं से जारी रखें और specialisation परीक्षाएँ खोलें।
QA रोडमैप का हिस्सा
इस topic से पहले
अगले topics
इस गाइड में बताए गए टूल्स
फ़ीचर के विवरण और फ़ील्ड सूची से संरचित टेस्ट केस (id, शीर्षक, पूर्व-शर्तें, स्टेप, अपेक्षित परिणाम, प्राथमिकता) जनरेट करें।
किसी फ़ीचर के लिए functional, negative, security, usability और compatibility पहलुओं को कवर करने वाले उच्च-स्तरीय टेस्ट सिनेरियो जनरेट करें।
बदलाव के विवरण और प्रभावित तथा संबंधित मॉड्यूल की सूची से रिग्रेशन सिनेरियो जनरेट करें।
Mutqan AI से किसी change विवरण, diff सारांश या release notes से regression टेस्ट सूट जनरेट करें।
OpenAPI / Swagger स्पेसिफ़िकेशन से संरचित टेस्ट-केस मैट्रिक्स (positive, negative, auth, boundary) बनाएँ।
Mutqan AI से मौजूदा टेस्ट केस बेहतर बनाएँ: साफ़ स्टेप, सटीक अपेक्षित परिणाम, छूटी हुई पूर्व-शर्तें और बेहतर संरचना।
Mutqan AI से किसी सूट में डुप्लिकेट और आपस में ओवरलैप करते टेस्ट केस खोजें और मर्ज करने की सिफ़ारिशें पाएँ।
जाँचें कि कोई API रिक्वेस्ट/रिस्पॉन्स जोड़ा अपने OpenAPI कॉन्ट्रैक्ट का पालन करता है या नहीं: path, method, पैरामीटर, बॉडी और रिस्पॉन्स स्कीमा।
किसी लक्षित endpoint के लिए सुरक्षित डिफ़ॉल्ट वाली concurrency टेस्ट स्क्रिप्ट बनाएँ (k6, JMeter JMX, Locust, Artillery, Node.js)।