परखने लायक तारीख़ें
सॉफ़्टवेयर साधारण मंगलवार को नहीं टूटता। वह तिमाही के आख़िरी दिन टूटता है, 29 फ़रवरी को, उस पल जब साल पलटता है, और लाइसेंस ख़त्म होने के एक सेकंड बाद। ये वे तारीख़ें हैं जो उन बग को पकड़ती हैं - इनमें से 14 नामित परिदृश्यों के रूप में साथ आती हैं।
अवधि की सीमाएँ
जो भी कोई अवधि बंद करता है, दस्तावेज़ को साल के हिसाब से नंबर देता है, या किसी कट-ऑफ़ तक जमा करता है, वह इन्हीं पर सबसे पहले ग़लत होता है।
- महीने का आख़िरी दिन - क्या माह-अंत की क्लोज़िंग और अवधि का संचय महीने के आख़िरी दिन ठीक से चलता है?
- तिमाही का आख़िरी दिन - क्या तिमाही-अंत की क्लोज़िंग और रिपोर्टिंग तिमाही के आख़िरी दिन ठीक से चलती है?
- वित्त वर्ष का आख़िरी दिन - क्या ऐप्लिकेशन वित्त वर्ष को सही दिन बंद करता है, यानी वित्त वर्ष शुरू होने से एक दिन पहले?
- साल का पलटना, सीधे प्रसारण में - क्या दस्तावेज़ की नंबरिंग, नाम में साल और वार्षिक रिपोर्टिंग पलटने को उसके होते हुए सँभालती हैं, बजाय इसके कि बाद में दोबारा शुरू की जाएँ?
आख़िरी वह है जिसे लोग आम तौर पर परख ही नहीं पाते, क्योंकि इसके लिए घड़ी को ऐप्लिकेशन के चलते हुए 31 दिसंबर की आधी रात पार करनी होती है। तेज़ की हुई घड़ी के साथ यह दस सेकंड का काम है।
कैलेंडर और निरूपण के किनारे
- 29 फ़रवरी - वह अधिवर्ष का दिन जो केवल हर चार साल में आता है, और जिसे हैरानी की हद तक सत्यापन कोड सीधे अस्वीकार कर देता है।
- Unix एपॉक शून्य - क्या ऐप्लिकेशन 1 जनवरी 1970 को असली तारीख़ मानता है, या ऐसा ख़ाली मान जिसे उसे सहेजने से मना कर देना चाहिए था?
- 2038 की सीमा - वह क्षण जब हस्ताक्षरित 32-बिट
time_tख़त्म होता है,2038-01-19T03:14:07Zपर। एक सेकंड बाद काउंटर ओवरफ़्लो होकर 1901 में चला जाता है।
लाइसेंस, ट्रायल और इंस्टॉलेशन
ये आपके अपने लाइसेंसिंग को परखने के लिए हैं, जिस मामले के लिए इन्हें लिखा गया था।
- ट्रायल का आख़िरी दिन - क्या ऐप ट्रायल के बिल्कुल आख़िरी क्षण में भी चलता है?
- ट्रायल ख़त्म होने के बाद का पहला दिन - क्या वह ट्रायल ख़त्म होते ही पहुँच से इनकार कर देता है, और कैसे? समझदारी भरे संदेश से, या स्टैक ट्रेस से?
- एक साल पहले ख़त्म हुआ लाइसेंस - क्या वह उस लाइसेंस को सँभालता है जो बहुत पहले ख़त्म हुआ, केवल कल नहीं?
- इंस्टॉलेशन से पहले की तारीख़ - क्या वह तब ठीक चलता है जब घड़ी उसकी अपनी इंस्टॉलेशन तारीख़ से पहले सेट हो? यह टारगेट की अपनी फ़ाइल तारीख़ पढ़ता है, इसलिए इसे किसी पैरामीटर की ज़रूरत नहीं।
व्यावसायिक नियम और घड़ी का व्यवहार
- भुगतान देय, +N कार्यदिवस - क्या N कार्यदिवस आगे देय भुगतान सही दिन पर पड़ता है, सप्ताहांत और सही देश की छुट्टियों को छोड़ते हुए? यह अकेला परिदृश्य है जिसे कैलेंडर चाहिए, और जवाब बाज़ारों के बीच अलग होता है।
- बालिग़ होने की उम्र की सीमा - क्या ऐप्लिकेशन ठीक सीमा पर खड़े व्यक्ति को प्रवेश देता है और एक दिन कम वाले को मना करता है?
- घड़ी का खिसकाव, +90 s - क्या ऐप्लिकेशन तब सँभलता है जब उसकी घड़ी असली समय से नब्बे सेकंड आगे चल रही हो? यही वह मामला है जो समय पर आधारित वन-टाइम पासवर्ड और टोकन सत्यापन को तोड़ता है।
एक का उपयोग
परिदृश्य एक नामित तारीख़-व्यंजक है। कैलकुलेटर तय करता है कि उसका क्या मतलब है, और बदलाव वाला सत्र ऐप्लिकेशन को उस पर चलाता है - दोनों जगह एक ही नाम।
# यह कौन-सी तारीख़ है, और वह तारीख़ क्या परखती है? chrono calc --preset month-end # किसी ऐप्लिकेशन को उस पर चलाएँ chrono run "C:\apps\test.exe" --preset year-rollover --report session.txt # ट्रायल परिदृश्य शुरुआती तारीख़ टारगेट की अपनी फ़ाइल तारीख़ से लेते हैं chrono run "C:\apps\test.exe" --preset trial-first-day-after
विंडो में वे तारीख़ वाले फ़ील्ड के ऊपर चिप्स के रूप में हैं - एक क्लिक उसे भर देता है। हर एक के साथ अपना एक वाक्य है जो बताता है कि वह क्या पकड़ता है, और यही वह हिस्सा है जो कोई ऑनलाइन तारीख़ कैलकुलेटर आपको नहीं दे सकता।
जो यहाँ नहीं है
डेलाइट सेविंग के बदलाव। किसी ऐप्लिकेशन को स्प्रिंग-फ़ॉरवर्ड या फ़ॉल-बैक की सीमा से गुज़ारना सचमुच उपयोगी परीक्षण है और वह जानबूझकर अनुपस्थित है, क्योंकि सत्र का टाइम ज़ोन डेलाइट सेविंग के बिना एक स्थिर ऑफ़सेट है - अभी अनुकरण करने के लिए कोई बदलाव है ही नहीं। ऐसा परिदृश्य देना जो चुपचाप कुछ न करे, उसे न देने से बुरा होता।
यह टाइम ज़ोन नियमों के मॉडल के साथ वापस आएगा। टाइम ज़ोन क्या करता है और क्या नहीं →