टेस्ट केस कैसे लिखें

टेस्ट केस एक सटीक, दोहराने योग्य निर्देश है: इन प्रीकंडीशन में, इस डेटा के साथ ये स्टेप करो, और यह नतीजा उम्मीद करो। अच्छे से लिखा हो तो कोई भी टेस्टर — या ऑटोमेशन स्क्रिप्ट — एक व्यवहार को हर बार एक ही तरह वेरिफ़ाई कर सकता है और डेवलपर को ठीक-ठीक पता चलता है कि फ़ेलियर कैसे रिप्रोड्यूस करना है। ख़राब लिखा हो तो यह एक धुँधला वाक्य है जो सोमवार को पास और मंगलवार को फ़ेल होता है, और वजह कोई नहीं बता पाता।

यह गाइड आपको अच्छे टेस्ट केस की बनावट, Jira, TestRail या स्प्रेडशीट में पेस्ट करने लायक टेम्पलेट, एक पूरा उदाहरण, और वे डिज़ाइन तकनीकें देती है जो requirement को असली कवरेज वाले कुछ केस में बदलती हैं।

हर टेस्ट केस के ज़रूरी फ़ील्ड

  • ID — स्थिर पहचान (TC-LOGIN-004) ताकि बग और रिपोर्ट से केस को रेफ़र किया जा सके।
  • टाइटल — एक लाइन जो व्यवहार का नाम ले, फ़ीचर का नहीं: "Login गलत पासवर्ड को साफ़ मैसेज के साथ रिजेक्ट करता है", न कि "Login टेस्ट"।
  • प्रीकंडीशन — स्टेप 1 से पहले सिस्टम की ज़रूरी स्थिति: मौजूदा वेरिफ़ाइड यूज़र, खाली कार्ट, कोई खास रोल।
  • टेस्ट डेटा — इस्तेमाल की गई सटीक वैल्यू, या जनरेट किए डेटा सेट का रेफ़रेंस। "एक वैध ईमेल" टेस्ट डेटा नहीं है; "layla.h@example.com" है।
  • स्टेप — नंबर वाले, हर स्टेप में एक एक्शन, इतने साफ़ कि नया कर्मचारी भी फ़ॉलो कर सके।
  • अपेक्षित परिणाम — आख़िरी स्टेप के बाद क्या दिखना चाहिए, इतना खास कि जाँचा जा सके: स्टेटस कोड, मैसेज टेक्स्ट, रिकॉर्ड की स्थिति।
  • प्राथमिकता और टाइप — smoke, regression, negative, boundary — ताकि सूट फ़िल्टर हो सके।
  • ट्रेसेबिलिटी — वह requirement, user story या acceptance criterion जिसे केस कवर करता है।

आज़माएँ: टेस्ट केस जनरेटर

टेस्ट केस टेम्पलेट

ID:             TC-LOGIN-004
Title:          Login rejects a wrong password with a clear message
Priority:       High        Type: Negative
Requirement:    US-12 (User can sign in with email and password)
Preconditions:  A verified account exists for layla.h@example.com
Test data:      email = layla.h@example.com, password = WrongPass!9

Steps:
  1. Open /login
  2. Enter the email and the wrong password
  3. Click "Sign in"

Expected result:
  - The page stays on /login
  - The message "Email or password is incorrect" is shown
  - No session cookie is set; the failed attempt is counted

Postconditions:  Account is not locked (attempt 1 of 5)

आज़माएँ: टेस्ट केस जनरेटर आज़माएँ: User Story → टेस्ट केस

टेस्ट सिनेरियो बनाम टेस्ट केस

टेस्ट सिनेरियो एक लाइन का कथन है कि क्या टेस्ट करना है — "वैध और अवैध क्रेडेंशियल से लॉगिन वेरिफ़ाई करें"। टेस्ट केस उस सिनेरियो के एक पाथ की विस्तृत स्क्रिप्ट है। एक सिनेरियो आमतौर पर कई केस में फैलता है: वैध लॉगिन, गलत पासवर्ड, अनजान ईमेल, लॉक्ड अकाउंट, खाली फ़ील्ड। स्कोप तय करने के लिए सिनेरियो से शुरू करें, फिर अहम पाथ के लिए केस लिखें।

आज़माएँ: टेस्ट सिनेरियो जनरेटर

असली बग पकड़ने वाली डिज़ाइन तकनीकें

  • इक्विवैलेंस पार्टीशनिंग — जिन इनपुट को सिस्टम एक जैसा ट्रीट करे (उम्र 18–65) उन्हें ग्रुप करें और हर वैल्यू की जगह हर ग्रुप से एक वैल्यू टेस्ट करें।
  • बाउंड्री वैल्यू एनालिसिस — ज़्यादातर डिफ़ेक्ट किनारों पर रहते हैं। 1–100 स्वीकार करने वाले फ़ील्ड के लिए 0, 1, 2, 99, 100 और 101 टेस्ट करें।
  • डिसीज़न टेबल — जब कई कंडीशन मिलती हैं (मेंबर? कूपन? ₹500 से ज़्यादा?), हर कॉम्बिनेशन की टेबल गारंटी देती है कि कोई नियम न छूटे।
  • स्टेट ट्रांज़िशन टेस्टिंग — लाइफ़साइकल वाली किसी भी चीज़ के लिए (ऑर्डर: created → paid → shipped → refunded) हर अनुमत ट्रांज़िशन और मना किए हुए ट्रांज़िशन टेस्ट करें।
  • नेगेटिव टेस्टिंग — गलत टाइप, गायब फ़ील्ड, स्पेशल कैरेक्टर, बहुत लंबा इनपुट, एक साथ किए एक्शन, एक्सपायर्ड सेशन।
  • पेयरवाइज़ टेस्टिंग — जब पैरामीटर कॉम्बिनेशन बहुत ज़्यादा हों, बहुत कम केस से वैल्यू के हर जोड़े को कवर करें।

आज़माएँ: बाउंड्री वैल्यू जनरेटर आज़माएँ: इक्विवैलेंस पार्टीशन जनरेटर आज़माएँ: डिसीज़न टेबल जनरेटर आज़माएँ: नेगेटिव टेस्ट जनरेटर

User story से टेस्ट केस तक

acceptance criteria से शुरू करें। हर Given/When/Then कथन कम से कम एक पॉज़िटिव केस है; हर "नहीं होना चाहिए" या "ज़रूरी है" एक नेगेटिव केस छिपाए है। फिर स्टोरी में बताए हर फ़ील्ड की बाउंड्री, फ़ीचर छूने वाले हर यूज़र रोल के लिए एक केस, और किसी डिपेंडेंसी (पेमेंट प्रोवाइडर, ईमेल सर्विस) के फ़ेल होने पर क्या होता है, इसके लिए एक केस जोड़ें। तीन acceptance criteria वाली स्टोरी से आमतौर पर आठ से पंद्रह केस निकलते हैं।

आज़माएँ: User Story → टेस्ट केस आज़माएँ: एक्सेप्टेंस क्राइटेरिया जनरेटर आज़माएँ: AI टेस्ट केस जनरेटर

आम गलतियाँ

  • एक केस में कई चीज़ें टेस्ट करना — फ़ेल होने पर कोई नहीं जानता कौन-सा हिस्सा टूटा।
  • धुँधले अपेक्षित परिणाम ("सही काम करता है", "एरर दिखता है") जिन्हें पास या फ़ेल नहीं ठहराया जा सकता।
  • ऐसे स्टेप जो किसी दूसरे केस के पहले चलने पर निर्भर हों, ताकि सूट किसी भी क्रम में न चल सके।
  • असली कस्टमर डेटा को टेस्ट डेटा बनाना — रियलिस्टिक लेकिन सिंथेटिक जनरेट किया डेटा इस्तेमाल करें।
  • सिर्फ़ हैप्पी पाथ लिखना। ज़्यादातर प्रोडक्शन इंसिडेंट नेगेटिव या बाउंड्री केस होते हैं।
  • कभी छँटाई न करना: हटाए गए फ़ीचर के केस और डुप्लिकेट रिग्रेशन रन को धीमा और अविश्वसनीय बनाते हैं।

आज़माएँ: टेस्ट डेटा फ़ैक्टरी आज़माएँ: AI डुप्लिकेट टेस्ट केस डिटेक्टर

अक्सर पूछे जाने वाले सवाल

टेस्ट केस और टेस्ट सिनेरियो में क्या फ़र्क़ है?

सिनेरियो एक लाइन में बताता है क्या टेस्ट करना है; टेस्ट केस उस सिनेरियो के एक पाथ की स्टेप-बाय-स्टेप स्क्रिप्ट है, डेटा और अपेक्षित परिणाम के साथ।

एक फ़ीचर में कितने टेस्ट केस होने चाहिए?

इतने कि हर acceptance criterion, हर इनपुट की हर बाउंड्री, हर रोल और मुख्य फ़ेलियर मोड कवर हों — आम user story के लिए आमतौर पर 8–15। व्यवहार की कवरेज गिनती से ज़्यादा मायने रखती है।

क्या टेस्ट केस में टेस्ट डेटा शामिल होना चाहिए?

हाँ, या जनरेट किए डेटा सेट का रेफ़रेंस। सटीक वैल्यू के बिना केस दोहराने योग्य नहीं होता और फ़ेलियर रिप्रोड्यूस करना मुश्किल होता है।

Jira, TestRail और Xray कौन-सा फ़ॉर्मेट लेते हैं?

सभी टाइटल, प्रीकंडीशन, स्टेप, अपेक्षित परिणाम और प्राथमिकता के कॉलम वाला CSV इम्पोर्ट करते हैं। जब टूल स्टेप टेबल सपोर्ट करे तो हर स्टेप एक रो में रखें।

क्या AI टेस्ट केस लिख सकता है?

AI किसी user story या requirement से मज़बूत पहला सेट ड्राफ़्ट कर सकता है, उन नेगेटिव और एज केस समेत जो रिव्यूअर अक्सर छोड़ देते हैं। टेस्टर को फिर भी हर केस बिज़नेस संदर्भ में रिव्यू करना चाहिए और जो लागू न हो उसे हटाना चाहिए।

API के लिए टेस्ट केस कैसे लिखें?

वही बनावट लागू होती है: स्टेप रिक्वेस्ट हैं, टेस्ट डेटा पेलोड और हेडर है, और अपेक्षित परिणाम स्टेटस कोड, रिस्पॉन्स बॉडी और कोई भी स्टेट बदलाव है। पूरी विधि के लिए API टेस्टिंग गाइड देखें।

इस गाइड में बताए गए टूल्स

फ़ीचर के विवरण और फ़ील्ड सूची से संरचित टेस्ट केस (id, शीर्षक, पूर्व-शर्तें, स्टेप, अपेक्षित परिणाम, प्राथमिकता) जनरेट करें।

टेस्ट डिज़ाइन टूल खोलें

Mutqan AI की मदद से किसी user story को पेशेवर, संरचित टेस्ट केस (ID, शीर्षक, प्रकार, प्राथमिकता, पूर्व-शर्तें, डेटा, स्टेप, अपेक्षित परिणाम) में बदलें।

टेस्ट जनरेशन AI नया टूल खोलें

सिंथेटिक टेस्ट डेटा की एक ही जगह पर फ़ैक्टरी: users, customers, companies, पते, संख्याएँ, तारीख़ें और स्ट्रिंग — JSON, CSV, SQL या XML में।

टेस्ट डेटा नया टूल खोलें

और गाइड

और गाइड →
JSON और डेटा

JSON क्या है?

JSON आसान भाषा में: यह क्या है, छह वैल्यू टाइप, वे सिंटैक्स नियम जिनमें लोग अटकते हैं, इसे फ़ॉर्मेट और वैलिडेट कैसे करें, और XML व YAML से इसकी तुलना।

5 मिनट पढ़ने का समय
API टेस्टिंग

API टेस्टिंग क्या है? REST API कैसे टेस्ट करें

API टेस्टिंग समझें: यह क्या है, हर रिक्वेस्ट और रिस्पॉन्स में क्या जाँचें, REST API टेस्ट करने का स्टेप-बाय-स्टेप तरीका, आम गलतियाँ और मुफ़्त टूल्स।

7 मिनट पढ़ने का समय
सुरक्षा

JWT क्या है? JSON Web Token समझें

JWT आसान भाषा में: JSON Web Token के तीन हिस्से, exp और sub जैसे क्लेम, डिकोड और वेरिफ़ाई कैसे करें, डिकोड करना वेरिफ़ाई क्यों नहीं, और सिक्योरिटी।

5 मिनट पढ़ने का समय
एन्कोडिंग

Base64 क्या है? एन्कोडिंग समझें

Base64 समझें: यह क्या है और क्या नहीं, एन्कोडिंग कैसे काम करती है, आउटपुट एक-तिहाई क्यों बढ़ता है, Base64 बनाम Base64URL, = पैडिंग, और एन्कोड-डिकोड।

4 मिनट पढ़ने का समय
यूटिलिटीज़

UUID क्या है? v4 बनाम v7, UUID बनाम GUID और ULID

UUID समझें: 128-बिट फ़ॉर्मेट, v4 बनाम v7, डेटाबेस key के लिए v7 बेहतर क्यों, UUID बनाम GUID बनाम ULID, कॉलिज़न की संभावना, और जनरेट-वैलिडेट कैसे करें।

5 मिनट पढ़ने का समय
वेब

HTTP स्टेटस कोड समझें

HTTP स्टेटस कोड की हर क्लास उन कोड के साथ जो असल में मिलते हैं — 200, 301, 400, 401, 403, 404, 422, 429, 500, 502, 503, 504 — वजह और कौन-सा लौटाएँ।

5 मिनट पढ़ने का समय