मिस्ट्री ब्रेड
एक QA टीम का लक्ष्य केवल अच्छा टेस्टिंग करना नहीं है।
इसका मतलब सही चीजों को सही तरीके से टेस्ट करना भी नहीं है।
असली लक्ष्य टीमों को ऐसा सॉफ्टवेयर बनाने में मदद करना है जो काम करे। टेस्टिंग इस लक्ष्य तक पहुँचने का एक साधन है। यह एकमात्र साधन नहीं है। अक्सर यह सबसे अच्छा साधन भी नहीं होता।
कई कंपनियाँ केवल टेस्टिंग और कवरेज पर ध्यान केंद्रित करती हैं। यह एक गलती है।
टेस्टिंग के विशिष्ट उपयोग हैं:
- ऑटोमेटेड टेस्ट महत्वपूर्ण फंक्शन्स पर तेज़ फीडबैक प्रदान करते हैं।
- एक्सप्लोरेटरी टेस्टिंग आपको यह समझने में मदद करती है कि सॉफ्टवेयर कैसे व्यवहार करता है।
हालाँकि, कई टीमें हर चीज़ को ठीक करने के लिए टेस्टिंग का उपयोग करती हैं। वे इसका उपयोग खराब प्लानिंग से रह गई कमियों को भरने के लिए करती हैं। वे इसका उपयोग मॉनिटरिंग और ऑब्जर्वेबिलिटी (observability) की जगह लेने के लिए करती हैं।
टेस्ट कवरेज को अपने मुख्य क्वालिटी सिग्नल के रूप में मानना वैसा ही है जैसे ओवन से निकलने के बाद ब्रेड को आकार देने की कोशिश करना।
अपने सॉफ्टवेयर को ब्रेड की तरह समझें। इसके 'सामग्री' (ingredients) वे चीजें हैं जिनकी आपको कोड लिखने से पहले आवश्यकता होती है:
- सॉफ्टवेयर को क्या करना चाहिए, इसकी एक स्पष्ट परिभाषा।
- क्वालिटी कैसी होनी चाहिए, इस पर सहमति।
- जोखिमों और सीमाओं (constraints) की समझ।
यदि आप गलत आटा उपयोग करते हैं या नमक डालना भूल जाते हैं, तो कितना भी आकार बदलने से आटा ठीक नहीं होगा।
जब सॉफ्टवेयर अभी 'आटा' (dough) की अवस्था में होता है, तो उसे आकार देना आसान होता है। इसका मतलब है विकास (development) के शुरुआती चरण में। एक बार कोड लिख दिए जाने के बाद, आटा सख्त हो जाता है। उसके बाद बदलाव करने में अधिक समय और प्रयास लगता है।
टेस्ट कवरेज आपको बताता है कि आपने कहाँ देखा। यह आपको यह नहीं बताता कि आपने जो देखा वह महत्वपूर्ण है या नहीं। 80% कवरेज का मतलब यह नहीं है कि आपका सॉफ्टवेयर उच्च गुणवत्ता वाला है। इसका मतलब सिर्फ यह हो सकता है कि आपके पास बहुत सारे बेकार टेस्ट हैं।
कवरेज नंबरों के पीछे भागना बंद करें। इसके बजाय, ये सवाल पूछें:
- हमारे सॉफ्टवेयर का व्यवहार कहाँ अज्ञात है?
- इसका पता लगाने का सबसे तेज़ तरीका क्या है?
कभी-कभी उत्तर एक टेस्ट होता है। अक्सर, उत्तर एक बातचीत होती है। आपको वे सवाल पूछने की ज़रूरत है जिन्हें हर कोई स्पष्ट मान लेता है।
अधिकांश सॉफ्टवेयर अंततः खराब (break) हो जाते हैं। जब ऐसा होता है, तो आपको तुरंत पता चलना चाहिए। प्रोडक्शन मॉनिटरिंग आपको उपयोगकर्ताओं से पहले बता देती है कि कुछ गलत है। टेस्टिंग इसे सस्ते में नहीं कर सकती।
AI इसे और भी कठिन बना देता है। अब आप बिना किसी वास्तविक समझ के कोड और टेस्ट जेनरेट कर सकते हैं। कवरेज नंबर बढ़ जाते हैं, लेकिन गुणवत्ता कम ही रहती है। आप आटे वाले चरण को छोड़ देते हैं और सीधे ओवन पर चले जाते हैं।
टेस्टिंग एक लक्ष्य प्राप्ति का साधन है। कवरेज केवल एक प्रॉक्सी (proxy) है। असली काम आटे वाले चरण के दौरान होता है। इसे न छोड़ें।
Source: https://dev.to/susanne_abdelrahman/mystery-bread-2526
Optional learning community: https://t.me/GyaanSetuAi