प्राथमिकताओं को पहले सीधे प्राप्त करें ...
एक ग्राहक के रूप में आपकी भूमिका में आपकी मुख्य चिंता इकाई-परीक्षण नहीं है
यदि आप उन आपूर्तिकर्ताओं का उपयोग कर रहे हैं जो आपके लिए सॉफ़्टवेयर का उत्पादन करते हैं तो आपको वास्तव में चिंतित नहीं होना चाहिए यदि वे एक कार्यप्रणाली या किसी अन्य का उपयोग कर रहे हैं। आपका दांव किसी तरह का समाधान हासिल करना है जो आपके लक्ष्यों को प्राप्त करने में मदद करेगा। केवल एक चीज जिसके बारे में आपको ध्यान रखना चाहिए, वह है कि समाधान स्वीकार्य है या नहीं। इसलिए हमारे पास स्वीकृति परीक्षण है क्योंकि यह सुनिश्चित करने के लिए आपकी ज़िम्मेदारी है कि आप जो चाहते हैं उसे प्राप्त करें। यह ग्राहक स्वीकृति के महत्वपूर्ण क्षण में है कि पैसा आपकी कंपनी की जेब से आपूर्तिकर्ता की जेब में भेजा जाएगा।
आप प्रसव योग्य आवश्यकता के रूप में यूनिट-परीक्षणों की मांग कर सकते हैं लेकिन उनके साथ कई अंतर्निहित समस्याएं हैं, सबसे गंभीर यह है कि मेट्रिक्स निर्धारित करने के लिए पहले से कोई निश्चित-आग का रास्ता नहीं है:
- इकाई परीक्षणों की स्वीकार्य राशि क्या है?
क्या 10 टेस्ट होने चाहिए? लगभग 100 टेस्ट कैसे? 1000 टेस्ट के बारे में कैसे? दरअसल, शुरुआत में यह निर्धारित करना काफी मुश्किल है कि आपको कितने परीक्षणों की आवश्यकता होगी। वास्तविक संख्या वास्तव में अनिश्चित है ... रुकने की समस्या की तरह ... लेकिन हम उस समस्या को हल नहीं कर रहे हैं।
आप बस ऐसे सॉफ्टवेयर चाहते हैं जिसमें यूनिट-टेस्ट हों ताकि आप विकास जारी रख सकें। यूनिट-परीक्षण यह नहीं बताते हैं कि आपने अभी तक क्या तोड़ा है, लेकिन वे बहुत अच्छी तरह से आपको यह बताने के लिए अनुकूल हैं कि कोड में प्रतिगमन बग कैसे है।
- कोड कवरेज का स्वीकार्य स्तर क्या है?
"100%, बिल्कुल!" आप सोचेंगे दुर्भाग्य से कि मीट्रिक भ्रामक है; यहां तक कि अगर आपके पास 100% कोड कवरेज था, तो क्या आप वास्तव में सुनिश्चित हैं कि चीजें उम्मीद के मुताबिक काम कर रही हैं? 100% कवरेज होना संभव है लेकिन ऐसा नहीं किया गया।
आपको वास्तव में जो करने की आवश्यकता है वह खोजपूर्ण परीक्षण है, अर्थात किसी ऐसे व्यक्ति को ढूंढें जो सामान को तोड़ने में वास्तव में अच्छा है और उन्हें परीक्षण करने दें। उन बग्स को खोजने के लिए जिन्हें किसी भी डेवलपर ने सोचा भी नहीं है।
इसके अलावा 100% कभी-कभी शुद्ध यूनिट परीक्षणों के साथ अप्राप्य होता है यदि आपके पास कुछ आवश्यक प्रदर्शन हैक हैं और डिज़ाइन पैटर्न का उपयोग करते हैं जो आपके पसंदीदा खोज इंजन में परीक्षण ("सिंगलटन" और "tdd" खोजना मुश्किल है और आपको कुछ उदाहरण मिलेंगे)।
आप काम करने के लिए वितरित सॉफ़्टवेयर चाहते हैं और विनिर्देश दस्तावेज़ आपकी एकमात्र वारंटी है जो यह करेगा।
आपको परीक्षण के उच्च स्तर की आवश्यकता होगी
आपके विनिर्देश दस्तावेज़ को किसी तरह सत्यापित किया जाना है। प्रत्येक बिंदु को आपके आपूर्तिकर्ताओं को स्पष्ट लक्ष्यों और स्वीकृति मानदंडों के साथ गुजरना होगा। एक अच्छी तरह से काम कर रहा क्यूए संगठन (या एक भयानक परीक्षक यदि आप एक बजट और एक सीमित दायरे में हैं) परीक्षण मामलों को इस स्वीकृति मानदंड की जांच करने के लिए प्रदान करेगा। आपको उन स्वीकृति मानदंडों को सत्यापित करने के लिए भी किसी की आवश्यकता है।
अपने लक्ष्यों को सत्यापित करने के कई तरीके हैं, और अगर कोई मुझसे कहता है कि आप किसी भी गुणवत्ता, प्रदर्शन और दक्षता के लक्ष्यों को निर्धारित नहीं कर सकते हैं तो मैं उन्हें क्रमशः खोजपूर्ण, प्रदर्शन और प्रयोज्य परीक्षण पर बड़ी और भारी पुस्तकों के साथ सिर में मारूंगा। लक्ष्यों को पूरा करना आसान हो सकता है, लेकिन ज्ञान और संचार आपको यथार्थवादी लक्ष्य निर्धारित करने में मदद करेंगे।
मैं एक वकील नहीं हूं, लेकिन अधिकांश परियोजना अनुबंध (जो मूल रूप से परियोजना के लिए सभी विशिष्टताओं की मां है) मैंने पढ़ा है कि आमतौर पर एक दोष अनुपात मानदंड होता है जो स्वीकार्य कितने कीड़े माने जाते हैं। कीड़े आमतौर पर गंभीरता के माध्यम से निर्धारित किए जाते हैं, क्यूए द्वारा पाए जाने वाले शो-स्टॉपिंग बग में कम सहिष्णुता होती है, जबकि मामूली दोषों में उच्च सहिष्णुता होती है। वास्तविक परियोजनाओं में यह मांग करना मुश्किल है कि सॉफ्टवेयर में 0 दोष हैं। समय सीमा आमतौर पर उस अभ्यास पर रोक लगाती है। यह इन स्थितियों में है कि आपको गुंजाइश को मोलभाव करना शुरू करना होगा।
अधिकांश आपूर्ति किए गए सॉफ़्टवेयर, जिन्हें मैंने आमतौर पर यूनिट परीक्षणों के साथ वितरित नहीं किया है। आप तर्क दे सकते हैं कि आपूर्तिकर्ताओं को इसे वितरित करने के लिए पर्याप्त पेशेवर होना चाहिए, हालांकि मुख्य कारण जो आप चाहते हैं कि यूनिट परीक्षण आपके लिए दिया जाए, यह सुनिश्चित करने के लिए है कि आपको प्रतिगमन बग नहीं मिलते हैं और रिफैक्टिंग भी सक्षम करते हैं। वास्तविक समय में परियोजनाओं पर तंग समय सीमा के साथ दोनों आपूर्तिकर्ता और ग्राहक गुंजाइश कम कर देंगे और यूनिट-परीक्षण आमतौर पर खिड़की से बाहर निकल जाएंगे और आवश्यक डिलिवरेबल्स की सूची से हटा दिए जाएंगे।
यह थोड़ा दुखद है कि हाई प्रोफाइल ओपन सोर्स सॉफ्टवेयर यूनिट-टेस्ट के साथ दिया जाता है, लेकिन एक पेशेवर सॉफ्टवेयर डेवलपर सही नहीं हो सकता है?
इसलिए, जब मैं एक ग्राहक के रूप में, इकाई परीक्षण के बारे में ध्यान रखना चाहता हूं?
मेरा तर्क है कि केवल एक बार जब आप यूनिट परीक्षण के बारे में वास्तव में ध्यान रखेंगे , यदि डिलिवरेबल सॉफ़्टवेयर एक आत्मनिर्भर घटक है जिसे स्टैंड-अलोन प्रोग्राम के रूप में निष्पादित नहीं किया जाता है, जिसके लिए आपके द्वारा किया जाने वाला सबसे कठिन परीक्षण एक यूनिट टेस्ट है । क्लास लाइब्रेरी एक तरह का उत्पाद होगा जिसे यूनिट-टेस्ट के साथ एक साथ दिया जा सकता है।