परीक्षण डेटा के लिए देश चुनना आम तौर पर एक उबाऊ काम माना जाता है जो दिलचस्प काम के बाद आता है। कोई सूची खोलता है, कुछ परिचित नाम चुनता है, और आगे बढ़ जाता है। फिर वह चयन एक फ़िक्स्चर में बदल जाता है, और वह फ़िक्स्चर चुपचाप तय कर देता है कि सुइट क्या पकड़ सकती है और क्या नहीं।
यह लेख उस निर्णय पर ही रुकता है। यहाँ तीन अक्ष दिए गए हैं, यह समझाया गया है कि अच्छे सेट में लोकप्रिय देशों के साथ जानबूझकर अटपटे देश भी चाहिए, और यह बताया गया है कि सेट को संस्करण नियंत्रण में कैसे रखें ताकि पिछले महीने का परिणाम आज भी अर्थ रखे।
देशों के सेट को अपना अलग निर्णय क्यों चाहिए?
एक अकेला फ़िक्स्चर सिद्ध करता है कि एक रिकॉर्ड पास हो सकता है। देशों का सेट सिद्ध करता है कि नियम वहाँ लागू होते हैं जहाँ उन्हें होना चाहिए। ये दो अलग दावे हैं, और दूसरा ही तब विफल होता है जब कोई नियम गलत क्षेत्र से बंध जाता है।
ऐसा नियम सोचें जो मान लेता है कि पोस्टल कोड अनिवार्य और संख्यात्मक है। जिस देश का रिकॉर्ड यह मान पूरा करता है, वह केवल यह बताता है कि नियम चलता है। वे देश कहीं नहीं आते जहाँ यह मान गलत है, और विफलता सुइट की जगह उत्पादन में दिखती है। यही सेट वह यंत्र है जो इस वर्ग की कमी को दिखाता है, इसलिए इसे उतनी ही समीक्षा मिलनी चाहिए जितनी उस स्कीमा को मिलती है जिस पर यह चलता है।
सेट टीम के पीछे छूटने वाला सबसे सस्ता दस्तावेज़ भी है। जो सहकर्मी सूची पढ़ सकता है, वह देख सकता है कि सुइट किन परंपराओं को जानने का दावा करती है और किन्हें चुपचाप अनदेखा करने पर सहमत हो गई है।
तीन अक्ष: पहुँच, डेटा की कठिनाई, सीमा मान
देशों की सूची पर होने वाली अधिकतर बहसें असल में इस बात की बहस होती हैं कि कौन सा अक्ष मायने रखता है। इन्हें अलग-अलग नाम दे देना ही आधा काम है।
| अक्ष | यह जो पूछता है | यह जो पकड़ता है |
|---|---|---|
| व्यावसायिक पहुँच | क्या हम वास्तव में इस देश को सेवा दे सकते हैं? | भुगतान, डिलीवरी, निपटान और भाषा की वे शाखाएँ जो कभी नहीं चलतीं |
| डेटा की कठिनाई | डेटा स्वयं कितना अटपटा है? | अक्षर समूह, लेखन दिशा, फ़ील्ड लंबाई और पार्सिंग की मान्यताएँ |
| सीमा मान | क्या यह किसी सीमा को किनारे तक धकेलता है? | काट-छाँट, लेआउट का बहाव और एक-से-कम गिनती की सीमाएँ |
केवल पहला अक्ष मानने वाला सेट बाज़ारों की सूची बन जाता है। यह ठीक शुरुआत है और खराब अंत, क्योंकि अटपटे मामले ठीक वहीं जमा होते हैं जहाँ उन्हें सही ठहराने के लिए कोई आमदनी नहीं होती।
अच्छा सीमा नमूना किसे कहते हैं?
सीमा नमूना अपनी जगह इसलिए कमाता है क्योंकि वह किसी विशेष फ़ील्ड के लिए सबसे लंबा, सबसे छोटा या सबसे कम सहयोगी मामला है। वह देश का नाम जिसे सबसे संकरी कॉलम में बैठना है, वह प्रभाग का नाम जिसे छपे लेबल पर फ़िट होना है, वह पता पंक्ति जिसे तय डिब्बे के भीतर रहना है — ये सब जिज्ञासाएँ नहीं, निवेश हैं।
उपयोगी आदत यह है कि हर सीमा को उस अभिकथन के साथ जोड़ा जाए जिसे तोड़ना उसका काम है। यदि फ़ील्ड एक आरामदेह पते के लिए बनाया गया है और सेट में एक पता ऐसा है जो आरामदेह से बहुत दूर है, तो उस प्रविष्टि के होने का कारण है। यदि हर प्रविष्टि आराम से छोटी है, तो लेआउट अपरीक्षित रह जाता है, चाहे प्रविष्टियों की संख्या कुछ भी हो।
विस्तार और गहराई एक दूसरे के विकल्प नहीं हैं। बीस मिलते-जुलते देश एक ही कोड पथ को बीस बार चलाते हैं; तीन अच्छी तरह चुने गए चरम तीन अलग पथ चलाते हैं।
जिन देशों में कोई फ़ील्ड लागू ही नहीं होती, वहाँ क्या करें?
कुछ देशों में पोस्टल कोड व्यवस्था ही नहीं है, और कुछ में ऐसा कोई प्रभाग स्तर नहीं जिसे फ़ॉर्म का ज़िद्दी फ़ील्ड दर्शाता हो। ये अनुपलब्ध डेटा नहीं हैं। यह डेटा का आकार है, और जो सेट इन्हें छोड़ देता है वह ऐसी सुइट बनाता है जो सही पते को अमान्य मान लेती है।
यहाँ जिस भेद को थामे रखना ज़रूरी है वह यह है कि कोई मान इसलिए अनुपस्थित है कि फ़ील्ड लागू नहीं होती, या इसलिए कि किसी ने उसे भरा ही नहीं। केवल दूसरा दोष है। जब कोई फ़ॉर्म ऐसी फ़ील्ड को हर जगह अनिवार्य बना देता है, तो देशों का सेट ही उसे उजागर करता है, क्योंकि विफल मामला उस देश के बिना लिखा ही नहीं जा सकता जहाँ वह फ़ील्ड सचमुच मौजूद नहीं है।
जहाँ किसी फ़ील्ड का देश-वार स्वरूप किसी अन्य लेख में पहले से आ चुका है, वहाँ इस लेख को संकरा रखें और पाठक को आगे भेज दें। देश के अनुसार पोस्टल कोड प्रारूपों की मार्गदर्शिका यह बताने की सही जगह है कि कोड कैसा दिखता है; यहाँ प्रश्न केवल यह है कि क्या सेट में ऐसी प्रविष्टि है जिसके लिए वह प्रश्न निरर्थक हो जाता है। इस विषय पर अधिक विवरण पोस्टल कोड प्रारूप मार्गदर्शिका में मिलता है।
डिफ़ॉल्ट सेट आम तौर पर किससे बनता है
जो सेट किसी वास्तविक टीम के संपर्क में टिकता है, वह आम तौर पर तीन समूहों में बैठ जाता है, और हर समूह वह काम करता है जो बाकी नहीं कर सकते।
- वह देश जिसे टीम सबसे अच्छे से जानती है, या वह जगह जहाँ टीम की अधिकतर मान्यताएँ बनीं। यही वह आधार है जिसके मुकाबले बाकी सब अजीब लगता है।
- मुख्य बाज़ार, उन शाखाओं के लिए चुने गए जिन्हें वे चलाते हैं: डिलीवरी, भुगतान, निपटान और सामग्री।
- कुछ गिने-चुने चरम मामले, इसलिए चुने गए कि वे कोई सीमा तोड़ते हैं, न कि इसलिए कि कोई वहाँ भेजता है।
तीसरा समूह ही वह है जिसे गति के लिए सुइट छाँटते समय काटा जाता है, और यही वह समूह है जिसे सबसे अंत में काटा जाना चाहिए। जो सुइट तेज़ चलती है और हर काट-छाँट वाला दोष चूक जाती है, वह तेज़ नहीं, अंधी है।
डेवलपरों के लिए: सेट को संस्करणबद्ध संपत्ति मानें
व्यावहारिक सुझाव यह है कि देशों की सूची को कॉन्फ़िगरेशन मानना बंद करें और उसे अपनी पहचान वाली संपत्ति मानना शुरू करें।
सेट को एक नाम और एक संस्करण दें, और उस पहचानकर्ता को उन फ़िक्स्चरों के पास रखें जो उस पर निर्भर हैं। जब सेट बदलता है, तो उस पर लिखे हर अभिकथन का अर्थ भी बदल जाता है, और पहचानकर्ता के बिना यह बताना असंभव है कि कोई अंतर पुनरावर्तन है या पुनर्परिभाषा। संचित परिणाम तभी पढ़ा जा सकता है जब आप वह सेट निकाल सकें जिस पर वह चला था।
तर्क को सूची के पास ही भंडार में रखें। हर प्रविष्टि के लिए उस अक्ष को लिखें जिसके लिए वह चुनी गई और वह अभिकथन जिसे उसे सँभालना है, ताकि अगली बार सूची काटने वाला जान सके कि वह क्या हटा रहा है।
सेट को बनाए गए मानों से भरें। फ़िक्स्चर में कभी किसी असली व्यक्ति का विवरण नहीं होना चाहिए, और जीवंत रिकॉर्ड से जोड़ा गया सेट न गोपनीयता की दृष्टि से ठीक है न पुनरुत्पादन की दृष्टि से। प्रविष्टि तय करने से पहले यह देखने के लिए कि हर देश और क्षेत्र का वर्णन कैसा है, देश और क्षेत्र निर्देशिका अच्छी जगह है, और एक अकेला देश पृष्ठ जैसे भारत प्रविष्टि दिखाता है कि एक देश के नोट्स एक जगह रखे जाने पर कैसे दिखते हैं।
ऊपर लिखी हर बात पर एक चेतावनी लागू होती है। इस लेख में दिखाई गई देश-सूचियाँ, क्षेत्र-नाम और नमूना मान सॉफ़्टवेयर परीक्षण के निर्णय को समझाने के लिए बनाए गए काल्पनिक उदाहरण हैं। वे किसी वास्तविक संस्था, वास्तविक डेटासेट या वास्तविक व्यक्ति का वर्णन नहीं करते, और परीक्षण वातावरण के बाहर किसी प्रमाण के रूप में उपयुक्त नहीं हैं।
आगे के कदम
आज जो फ़िक्स्चर सेट आप चला रहे हैं उसे उठाएँ और हर प्रविष्टि पर वह अक्ष लिखें जिसके लिए वह चुनी गई। जो प्रविष्टि किसी अक्ष में नहीं बैठती वह हटाने की उम्मीदवार है, और जिस अक्ष में कोई प्रविष्टि नहीं है वह पहले भरने वाली कमी है। फिर हर प्रविष्टि के लिए वह अभिकथन लिखें जिसकी वह रक्षा करती है। देश डेटा कवरेज की मार्गदर्शिका उस सूची को परीक्षण-योग्य बना देती है, और देश डेटा की ताज़गी पर लिखी मार्गदर्शिका यह देखती है कि कोई प्रविष्टि सही रहना बंद कर देने पर क्या होता है। दोनों को यहाँ से शुरू किया जा सकता है: देश डेटा कवरेज और देश डेटा की ताज़गी।