ब्लैक-बॉक्स टेस्ट डिज़ाइन तकनीकें क्या हैं?
ब्लैक-बॉक्स तकनीकें कोड पढ़े बिना स्पेसिफ़िकेशन से टेस्ट केस निकालती हैं: इक्विवैलेंस पार्टिशनिंग उन इनपुट को समूहित करती है जो एक जैसा व्यवहार करें, बाउंड्री वैल्यू एनालिसिस हर समूह के किनारे (0, 1, max, max+1) परखती है, डिसीज़न टेबल शर्तों के संयोजन गिनाती हैं, स्टेट ट्रांज़िशन टेस्टिंग अनुमत और निषिद्ध स्टेट बदलावों पर चलती है, और पेयरवाइज़ टेस्टिंग पूरे गुणनफल से कहीं कम केस में पैरामीटर वैल्यू की हर जोड़ी कवर करती है।
गाइड पढ़ें: टेस्ट केस कैसे लिखें
डिसीज़न टेबल जनरेटर कैसे इस्तेमाल करें
- conditions एक पंक्ति में एक लिखें; कई वैल्यू वाली condition के लिए "Name: v1, v2" इस्तेमाल करें।
- actions सूचीबद्ध करें और चाहें तो वे rules भी जो conditions को actions से जोड़ते हैं।
- डिफ़ॉल्ट action तय करें और सबसे छोटी तालिका के लिए collapsing चालू रहने दें।
- decision table और उसके टेस्ट केस जनरेट करके एक्सपोर्ट करें।
डिसीज़न टेबल जनरेटर की खूबियाँ
- boolean और कई वैल्यू वाली conditions, पूरे संयोजन मैट्रिक्स के साथ (1,024 rules तक)
- rules को IF … AND … THEN actions के रूप में या स्थान-आधारित Y, N, - पंक्तियों के रूप में लिखें
- जिन संयोजनों पर कोई rule लागू न हो उनके लिए डिफ़ॉल्ट action
- एक जैसे परिणाम वाले rules को don't-care प्रविष्टियों में समेटें
- हर rule के लिए एक टेस्ट केस — conditions टेस्ट डेटा के रूप में और actions अपेक्षित परिणाम के रूप में
डिसीज़न टेबल जनरेटर का उदाहरण
डिस्काउंट के नियम
इनपुट:
Conditions: Customer logged in / Has valid coupon / Cart total: <50, >=50
Actions: Apply coupon discount / Free shipping / Show login prompt
Rules:
IF Customer logged in = N THEN Show login prompt
IF Customer logged in = Y AND Has valid coupon = Y AND Cart total = >=50 THEN Apply coupon discount, Free shipping
IF Customer logged in = Y AND Has valid coupon = Y AND Cart total = <50 THEN Apply coupon discount
IF Customer logged in = Y AND Has valid coupon = N AND Cart total = >=50 THEN Free shipping
Default action: No actionआउटपुट:
Rule Customer logged in Has valid coupon Cart total Actions
R1 Y Y <50 Apply coupon discount
R2 Y Y >=50 Apply coupon discount, Free shipping
R3 Y N <50 No action
R4 Y N >=50 Free shipping
R5 N - - Show login promptCustomer logged in = N वाले चारों संयोजनों का action एक ही है, इसलिए वे don't-care प्रविष्टियों वाले एक rule में मिल जाते हैं।| संयोजन | actions | collapsing के बाद rule |
|---|---|---|
1Y, Y, <50 | Apply coupon discount | R1Y, Y, <50 |
2Y, Y, >=50 | Apply coupon discount, Free shipping | R2Y, Y, >=50 |
3Y, N, <50 | No action | R3Y, N, <50 |
4Y, N, >=50 | Free shipping | R4Y, N, >=50 |
5N, Y, <50 | Show login prompt | R5N, -, - |
6N, Y, >=50 | Show login prompt | R5N, -, - |
7N, N, <50 | Show login prompt | R5N, -, - |
8N, N, >=50 | Show login prompt | R5N, -, - |
- मिला हुआ: अब एक rule कई संयोजन कवर करता है
उदाहरण के इनपुट से टूल ने गणना की है। वैल्यू Customer logged in, Has valid coupon, Cart total के क्रम में हैं; “-” का मतलब don’t care है: उस condition की कोई भी वैल्यू।
डिसीज़न टेबल जनरेटर के बारे में अक्सर पूछे जाने वाले सवाल
conditions कैसे डालूँ?
एक पंक्ति में एक। सिर्फ़ नाम लिखने पर वह Yes/No condition बन जाती है; "Name: v1, v2, v3" कई वैल्यू वाली condition बनाता है। जनरेटर हर संयोजन बनाता है (1,024 rules तक)।
rules कैसे काम करते हैं?
"IF Condition = value AND Other = value THEN action, action" लिखें, या स्थान-आधारित "Y, N, - => action" पंक्ति। जिन संयोजनों पर कोई rule लागू नहीं होता उन्हें डिफ़ॉल्ट action मिलता है।
collapsing क्या करती है?
जिन rules के actions एक जैसे हैं और जो सिर्फ़ एक condition में अलग हैं, उन्हें don't-care ("-") प्रविष्टि वाले एक ही rule में मिला दिया जाता है — यही वह सबसे छोटी तालिका है जिसे टेस्टर असल में चलाते हैं।
तालिका से टेस्ट केस क्यों बनाएँ?
हर rule एक टेस्ट केस बन जाता है, जिसमें condition की वैल्यू टेस्ट डेटा होती हैं और actions अपेक्षित परिणाम — यानी पूरा decision coverage, बिना किसी संयोजन के छूटे।
संदर्भ
- ISTQB Certified Tester Foundation Level (CTFL) v4.0सॉफ़्टवेयर टेस्टिंग का फ़ाउंडेशन पाठ्यक्रम: टेस्ट स्तर और प्रकार, टेस्ट डिज़ाइन तकनीकें, टेस्ट प्रबंधन और टूल।
- ISTQB Glossaryटेस्टिंग शब्दों की मानक परिभाषाएँ — टेस्ट केस, रिग्रेशन टेस्टिंग, सेवेरिटी, प्रायोरिटी, बाउंड्री वैल्यू एनालिसिस आदि।
- ISO/IEC/IEEE 29119-1:2022 — Software and systems engineering — Software testing — Part 1: General conceptsसॉफ़्टवेयर टेस्टिंग का अंतरराष्ट्रीय मानक: अवधारणाएँ, प्रक्रियाएँ, दस्तावेज़ीकरण और तकनीकें।