क्या मुझे प्रोग्रामर से यूनिट-परीक्षण की मांग करनी चाहिए? [बन्द है]


26

मैं ऐसी जगह पर काम करता हूं, जहां हम बहुत सारे आईटी प्रोजेक्ट खरीदते हैं। वर्तमान में हम भविष्य की परियोजनाओं की आवश्यकता के लिए सिस्टम-आवश्यकताओं के लिए एक मानक का उत्पादन कर रहे हैं। उस प्रक्रिया में, हम चर्चा कर रहे हैं कि हम अपने आपूर्तिकर्ताओं से स्वचालित इकाई परीक्षण की मांग कर सकते हैं या नहीं।

मेरा दृढ़ विश्वास है कि कोड की गुणवत्ता और स्थिरता का दस्तावेजीकरण करने के लिए उचित स्वचालित इकाई-परीक्षण एकमात्र तरीका है। बाकी सभी को लगता है कि यूनिट-परीक्षण एक वैकल्पिक तरीका है जो अकेले आपूर्तिकर्ता को चिंतित करता है। इस प्रकार, हम स्वचालित इकाई-परीक्षण, निरंतर परीक्षण, कवरेज-रिपोर्ट, इकाई-परीक्षणों के निरीक्षण या किसी भी प्रकार की कोई मांग नहीं करेंगे। मुझे यह नीति बेहद निराशाजनक लगती है।

क्या मैं पूरी तरह से यहाँ से बाहर हूँ?

कृपया मुझे किसी भी राय के लिए तर्क प्रदान करें।


63
"मजबूर" इकाई परीक्षणों के साथ समस्या यह है कि वे लगभग निश्चित रूप से केवल टोकन प्रयास होंगे। वे आपके द्वारा प्राप्त कार्य की गुणवत्ता में वृद्धि नहीं करेंगे , बल्कि केवल लागत में वृद्धि करेंगे । जब तक कि डेवलपर्स का मानना ​​/ पता नहीं है कि यूनिट परीक्षण उन्हें कोड लिखने में मदद करता है, उन्हें ऐसा करने के लिए मजबूर करना सबसे अधिक संभावना है कि वे काउंटर-उत्पादक होंगे।
जोआचिम सॉर

10
क्या आपको शायद इस बात पर विचार नहीं करना चाहिए कि वे आपूर्तिकर्ता का चयन करने के आपके निर्णय के हिस्से के रूप में पहले से ही परीक्षण लागू करते हैं या नहीं?
बार्ट

2
हम्म, मुझे आपका दर्द महसूस हो रहा है। यदि इसे महत्वहीन माना जाता है, तो मुझे बेहतर उम्मीद है कि यदि आपका सप्लायर वांछित / उम्मीद के अनुरूप काम नहीं करता है तो उसे पूर्ण समर्थन मिलेगा। मैं व्यक्तिगत रूप से उचित सॉफ़्टवेयर विकास प्रथाओं के कम से कम कुछ स्तर को उन पर बल दिए बिना देखना चाहूंगा।
बार्टन

21
मेरा दृढ़ विश्वास है, कि कोड की गुणवत्ता और स्थिरता के दस्तावेज के लिए उचित स्वचालित इकाई-परीक्षण एकमात्र तरीका है। - कभी भी कोई कहता है कि कुछ भी करने का एक ही तरीका है कि वह लाल झंडा उठाए। इसे पूरा करने के लिए और भी कई तरीके हैं। कुछ को शामिल करते हुए हमने अभी तक सोचा भी नहीं है।
सोयलेंटग्रे

8
@Chad: यही कारण है कि मैं यह सवाल पूछता हूं: मेरी फर्म बिलीफ को चुनौती देने के लिए :-)
मोर्टन

जवाबों:


46

मेरा दृढ़ विश्वास है, कि कोड की गुणवत्ता और स्थिरता के दस्तावेज के लिए उचित स्वचालित इकाई-परीक्षण एकमात्र तरीका है।

बात यह है कि आप (या शायद ही कभी कम से कम) लोगों पर मजबूर करके उचित स्वचालित इकाई-परीक्षण प्राप्त नहीं करेंगे । यह एक अच्छा तरीका है कि शिट्टी टेस्ट करवाएं और प्रोजेक्ट्स की लागत बढ़ाएं।

व्यक्तिगत रूप से, मैं कुछ मांग या एसएलए की ओर देखूंगा जिसमें गुणवत्ता शामिल है; चाहे वह कैसे भी पूरा हो। 10 साल पहले यूनिट परीक्षण सबसे अच्छे रूप में अनंतिम थे। जब आप गुणवत्ता सुनिश्चित करने के लिए बेहतर तरीके अपनाते हैं, तो आप 10 वर्षों में अपने आपूर्तिकर्ताओं को हथकड़ी नहीं लगाना चाहते हैं, लेकिन आपकी पुरानी नीति के लिए उन्हें पुराने तरीके का उपयोग करने की आवश्यकता होती है।


6
+1 मैं खराब यूनिट टेस्ट लिख सकता हूं जो सब कुछ टेस्ट करने के लिए दिखाई देते हैं लेकिन वे संचालित नहीं होते हैं क्योंकि उन्हें वास्तव में सब कुछ टेस्ट करना चाहिए। जिसमें गुणवत्ता नहीं मिलती या कुछ साबित नहीं होता।
सोयलेंटग्रे

1
@Chad हाँ, यह निश्चित रूप से सच है, लेकिन ग्राहक कोड कवरेज मेट्रिक्स और परीक्षणों के लिए स्रोत कोड भी मांग सकता है, अगर ग्राहक को लगता है कि वे एक विशाल एकीकरण परीक्षण के बीच अंतर कर सकते हैं जो कवरेज या सच्चे यूनिट परीक्षणों को बढ़ाता है। यहां तक ​​कि अगर ग्राहक इन चीजों की मांग करता है, तो डेवलपर्स अभी भी सिस्टम को गेम कर सकते हैं, यह बस थोड़ा अधिक चुनौतीपूर्ण हो जाता है।
क्रिस ओ

3
@ क्रिस - वास्तव में यह साबित हो सकता है कि यह ओपी की आवश्यकताओं को पूरा नहीं करता है।
सोयालेंटग्रे

1
@JarrodRoberson - हाँ, कोड कवरेज केवल एक सांख्यिकीय मीट्रिक है, किसी भी तरह से यह गारंटी नहीं देता है कि स्वचालित परीक्षण वास्तव में अच्छे स्वचालित परीक्षण हैं। प्रबंधन, और कुछ ग्राहक, सांख्यिकीय सांख्यिकी को पसंद करते हैं।
क्रिस ओ

1
@MatthewFlynn: अपवादों को उत्पन्न किए बिना परीक्षण मॉक डेटा / संरचनाओं के साथ चलते हैं। अपेक्षित इनपुट्स के साथ खुशहाल रास्ते में बहुत सी चीजें चलती हैं।
तेलेस्टिन

18

व्यक्तिगत रूप से मुझे लगता है कि आपके मामले में आपको इसके बजाय स्वीकृति परीक्षणों के बारे में सोचना चाहिए:

  • आपके पास एक ब्लैक बॉक्स दिया गया है, और आप इसे एक निश्चित तरीके से व्यवहार करने की उम्मीद करते हैं।
  • आप तब तक भुगतान नहीं करेंगे जब तक यह नहीं करता है।
  • इकाई परीक्षण लिखें जो आपके द्वारा देखे जाने वाले व्यवहार का उपयोग करते हैं, और यदि वे विफल होते हैं, तो उन्हें इसे ठीक करना होगा।

यह भी ध्यान दें कि यह विश्वास का विषय है। यदि आपको अपने आपूर्तिकर्ता पर भरोसा नहीं है, तो आपको स्रोत कोड प्राप्त करने की आवश्यकता है, इसका निरीक्षण करें और इसे स्वयं संकलित करें। उस से कम कुछ भी मतलब है कि आप कम से कम उन पर भरोसा करते हैं


"ब्लैक बॉक्स" परिकल्पना गलत है - गर्ट हॉल के जवाब में मोर्टन की टिप्पणी देखें।
डॉक ब्राउन

अगर मुझे पता है कि आपूर्तिकर्ता unittesting का उपयोग कर रहा है, तो मैं उन पर अधिक विश्वास करूंगा। लेकिन क्या यह मेरे लिए उचित है ?? मेरा तर्क है (स्वयं बहुत कोड का उत्पादन करना) कि बग को ठीक करने या कुछ कार्यक्षमता का विस्तार करने की कीमत बहुत कम है यदि आपका कोड उचित परीक्षणों द्वारा कवर किया गया है। यह मेरा व्यवसाय बनाता है कि वे इकाई परीक्षण करें या नहीं। लेकिन मुझे पूरी तरह से यकीन नहीं है कि यह एक अनुचित धारणा (?) है
मोर्टन

@DocBrown मैं देख रहा हूं। क्या आप असहमत हैं कि यह तब भी लागू होता है जब यह एक सफेद बॉक्स है?

1
@ जैसे ही आप डिज़ाइन में शामिल होते हैं, मैं सुझाव देता हूं कि एपीआई का डिज़ाइन करने के लिए टीडीडी (त्रुटि की स्थिति सहित) का उपयोग करें, और फिर परीक्षण पास बनाने के लिए इसे प्रोग्रामिंग टीम पर छोड़ दें।

@ ThorbjørnRavnAndersen: मुद्दा यह है कि इसमें (इसे "व्हाइट बॉक्स" कहें) परिदृश्य ओपी को केवल "कार्यात्मक शुद्धता" नहीं चाहिए, वह चाहता है कि आपूर्तिकर्ता उच्च गुणवत्ता वाला स्रोत कोड प्रदान करे, जो आपूर्तिकर्ता के काम को सुनिश्चित करने के लिए इकाई परीक्षणों से घिरा हो। एक विशिष्ट तरीके से। जो वह निश्चित रूप से नहीं चाहता है वह उस इकाई परीक्षण को स्वयं द्वारा लिखना है।
डॉक ब्राउन

8

मेरा दृढ़ विश्वास है, कि कोड की गुणवत्ता और स्थिरता के दस्तावेज के लिए उचित स्वचालित इकाई-परीक्षण एकमात्र तरीका है।

मुझे आश्चर्य है कि यह सोच कितनी सामान्य है। स्वचालित, हाँ। इकाई परीक्षण (अकेले), नहीं। अकेले यूनिट परीक्षणों की तुलना में स्वचालित सॉफ्टवेयर परीक्षण के लिए अधिक रास्ता है। एकीकरण, प्रणाली, कार्यात्मक, QA के बारे में क्या? कुछ कारणों से लोग सोचते हैं, "ठीक है, इसलिए हमारे पास उचित इकाई परीक्षण हैं। परीक्षण के साथ, इसे शुक्रवार शाम कहा जाता है!" । यूनिट टेस्टिंग सिर्फ भीख है।

वैसे भी, विषय पर वापस। मैं दूसरों से यह कहते हुए सहमत हूं कि किसी पर कुछ भी करने के लिए मजबूर करने वालों के विपरीत परिणाम मिलेंगे। आप कभी नहीं जानते कि टीम कैसे काम करती है, हो सकता है कि उन्हें परीक्षण विभाग के लायक मिलियन डॉलर मिले और उन्होंने कभी एकल यूनिट टेस्ट नहीं लिखा।

अपनी पहली नौकरी में मैं एक ऐसी जगह पर काम करता था जहाँ हमारे पास 0 यूनिट टेस्ट थे (हम जूनियर कम या ज्यादा गंभीर स्थिति में फेंकने वाले थे)। मानो या न मानो, यह काम किया। निश्चित रूप से, किसी को भी यह अनुमान नहीं था कि यह बग क्यों ठीक हो गया, या यह तय क्या टूट गया, लेकिन यह काम कर गया। ऐसे समय थे जब कुछ बिल्कुल यादृच्छिक बग पॉप आउट होंगे, लेकिनबेसबॉल का बल्ला और आपके एपार्टमेंट के जलने का खतराकुछ अतिरिक्त घंटे अद्भुत काम कर सकते हैं। हो सकता है कि आपके आपूर्तिकर्ता समान तकनीकों का उपयोग करें ?


6

मुझे बहुत संदेह है कि आपका प्रबंधन एक अनुबंध में उचित इकाई परीक्षण के लिए भुगतान करने को तैयार होगा। उचित इकाई परीक्षण की लागत जितनी वे कोड का परीक्षण करते हैं, लेकिन अंत उपयोगकर्ता को बहुत कम मूल्य देते हैं, इसलिए वे समान रूप से मूल्यवान नहीं दिखाई देंगे। कोई गुणवत्ता विकास फर्म अन्य भागों की तुलना में कम लागत के लिए इकाई परीक्षणों पर विकास के प्रयासों को खर्च करने के लिए तैयार होने जा रहा है, क्योंकि वे काम के लिए दर्द नहीं कर रहे हैं, वे 2 से अधिक अनुबंध प्राप्त कर सकते हैं जो समान समय के साथ नहीं लेते हैं इकाई परीक्षण आवश्यकताओं।

यूनिट परीक्षण की मांग करने से संभवतः आपके प्राप्त उद्धरणों को अनुचित स्तर तक बढ़ाया जा सकता है, और संभवतः कम कीमत पाने के लिए बनाई गई पहली रियायत होने जा रही है।


वास्तव में उचित इकाई परीक्षणों में उनके द्वारा परीक्षण किए जा रहे कोड का 100% से अधिक खर्च होता है, लेकिन आप वित्तीय दृष्टि से सही हैं। अनुचित इकाई परीक्षण लागत भी उचित से अधिक है!

5

इकाई परीक्षण न होने की लागत इस बात पर निर्भर करती है कि आप कोड का कितना विस्तार / समर्थन कर रहे हैं। गुणवत्ता का अंदाजा लगाने के लिए कोड के कुछ हिस्सों का निरीक्षण करना भी महत्वपूर्ण होगा।

यदि आप केवल प्रोजेक्ट्स खरीद रहे हैं तो आप उन्हें 3-पार्टी लाइब्रेरी की तरह उपयोग कर सकते हैं और विश्वास नहीं करते कि आप उन्हें संशोधित करेंगे, तो निम्न-गुणवत्ता कोड का जोखिम कम है, इसलिए जब तक यह वास्तव में काम करता है।

ये अंततः व्यावसायिक निर्णय हैं, हालांकि आपको यह सुनिश्चित करना होगा कि जो कोई भी निर्णय ले रहा है वह तकनीकी मूल्यांकन के बारे में भी जानता है। यदि आपको इसे प्रबंधन को समझाने की आवश्यकता है, तो समझाइए कि यह एक प्रयुक्त कार खरीदने के समान है। अंततः यह तय करना खरीदार के लिए है कि क्या यह इसके लायक है, लेकिन इसे मैकेनिक के पास ले जाना एक अच्छा विचार है, ताकि आप जान सकें कि आपको नींबू नहीं मिल रहा है।


हम उन्हें परियोजनाओं के रूप में खरीदते हैं। इसका मतलब है कि हम विकास की प्रक्रिया में भाग लेने की उम्मीद करते हैं, हम कोड के मालिक होंगे और हम कई बार कोड का विस्तार करेंगे। सबसे महत्वपूर्ण: एक्सटेंशन हमेशा उस कंपनी द्वारा नहीं बनाया जाएगा जिसने संस्करण 1.0
मोर्टेन

@Morten: तब तक आपको यूनिट परीक्षणों की मांग करनी चाहिए, जब तक कि आपकी कंपनी उनका उपयोग और विस्तार करना चाहती है, तब भी। अपने सहयोगियों को समझाने के लिए, उन्हें बताएं कि यूनिट परीक्षण केवल उदाहरण हैं कि आप जिस कोड को बनाए रखने जा रहे हैं उसका उपयोग कैसे करें, इसलिए वे प्रलेखन का एक अनिवार्य हिस्सा हैं। मुझे लगता है कि वे "प्रलेखन" को "वैकल्पिक" भी नहीं मानते हैं।
डॉक ब्राउन

2

आप भुगतान कर रहे हैं, आप अपने सभी यूनिट परीक्षण की प्रतियों / रिपोर्टों सहित, आप जो चाहें मांग सकते हैं।

तुम भी परीक्षण लिख सकते हैं, या कम से कम परीक्षण विनिर्देशों yrself।

मैं आपके विचार से सहमत हूँ कि इसकी कोड गुणवत्ता का एक बहुत अच्छा उपाय है। यदि कोई आपूर्तिकर्ता इस मांग से इनकार करता है तो यह खतरे की घंटी बजाएगा, वे ऐसा क्यों नहीं करना चाहते हैं - उनके पास गुणवत्ता के मानक कम हैं और शॉर्टकट लेते हैं?


1
क्या मैं अन-टेस्टेड कोड चाहता हूँ ?? किसी को भी इकाई परीक्षण के बिना स्थिर, विश्वसनीय एसडब्ल्यू के बड़े टुकड़े का उत्पादन कर सकते हैं ??
मोर्टन

3
@Morten: आप अनटाइटेड कोड नहीं चाहते हैं - लेकिन स्वचालित यूनिट-परीक्षण कोड का परीक्षण करने का एकमात्र तरीका नहीं है। यह दूसरों के बीच कोड की गुणवत्ता में सुधार करने के लिए सिर्फ एक बिल्डिंग ब्लॉक है।
डॉक ब्राउन

3
@ मॉर्टेन: यूनिट-टेस्टिंग कोड टेस्ट करने का एकमात्र तरीका नहीं है। 1996 से पहले किसी ने भी किसी भी प्रकार की औपचारिक इकाई परीक्षण नहीं किया था लेकिन फिर भी सॉफ्टवेयर ने काम किया।
gbjbaanb

1
@gbjbaanb क्या आप यह तर्क दे रहे हैं कि नया होने के कारण यह उपयोगी नहीं है? : p मैंने इकाई परीक्षण के साथ और बिना सॉफ्टवेयर पर काम किया है, और इकाई परीक्षणों के साथ लिखने के लिए काफी आसान और तेज था (मुख्यतः क्योंकि बग्स को खोजना और ठीक करना आसान था)।
मोनिका

1
यह काले और सफेद नहीं है, परीक्षण बनाम अप्रयुक्त। स्वचालित परीक्षणों की कमी का मतलब यह नहीं है कि कोड का परीक्षण नहीं किया गया है, इसका मतलब है कि यह स्वचालित नहीं है। मैंने स्वचालित परीक्षण कोड की 100 हज़ार लाइनों को देखा है, 3X से अधिक वास्तविक कोड और परियोजना को बग्स से भरा गया था। मैंने ज़ीरो स्वचालित इकाई परीक्षणों के साथ जटिल समवर्ती कोड की 600K लाइनें देखी हैं जो शून्य डाउनटाइम या बग्स के साथ वर्षों तक उत्पादन में चलती थीं।

1

आप पूरी तरह से सही हैं कि आपकी परियोजना को स्वचालित इकाई-परीक्षण, निरंतर परीक्षण, कवरेज-रिपोर्ट और इकाई-परीक्षणों के निरीक्षण की आवश्यकता है।

हालाँकि चीजों की माँग करने से वे परिणाम प्राप्त नहीं होंगे जिनकी आप इच्छा रखते हैं जैसा कि दूसरों ने विस्तृत किया है।

आपकी चुनौती लोगों को समझाने और मनाने की है - बहुत कठिन कौशल!

मैं शुरू में प्रबंधन के साथ शुरू करूंगा, जिसमें प्रो और कोन के परीक्षण और सड़क के नीचे भुगतान की व्याख्या करना होगा। कृपया 'मैं प्रॉपर यूनिट टेस्ट लिखता हूं' (कैपिटलाइज़ेशन तुम्हारा) जैसे बयानों के पीछे की भावना का संचार नहीं करने के लिए सावधान रहें। आप शब्दों को 'चिल्लाना' नहीं चाहते (जैसा कि सभी CAPS का तात्पर्य है) आप लोगों को मनाने और समझाने के लिए करेंगे ताकि वे स्वयं सही समाधान चुन सकें।

अंतत: यदि आप इन कार्यप्रणाली का परिचय नहीं दे सकते हैं और जहां आप हैं, उन्हें गले लगा सकते हैं, साथ ही यदि आप उनके बारे में भावुक हैं जैसा कि आप राज्य करते हैं (जो कि अच्छा है!) मैं एक अलग कंपनी में जाता हूं क्योंकि कई ऐसे हैं जो इन चीजों को महत्व देते हैं! और बोर्ड पर आपका स्वागत करेगा। बस सुनिश्चित करें कि आप साक्षात्कार में उनके बारे में सामने हैं, ताकि वे जान सकें कि आपके जुनून कहाँ हैं और यदि आप एक अच्छे फिट होंगे।


प्रश्न बाहर के विक्रेता के लिए था; उत्तर आंतरिक टीम के बारे में है।
जॉनएमसीजी

1

किसी पर स्वचालित परीक्षण के लिए मजबूर करने से आप उन परिणामों को प्राप्त नहीं कर पाएंगे जो @Joachim Sauer और @Telastyn ने अपनी टिप्पणियों में दिए हैं। बहुत सारे लोगों के लिए स्वचालित इकाई परीक्षण उनकी सोच में एक बड़ी बदलाव है। क्योंकि बहुत सारे लोग कोड लिखते हैं जो काम करता है, लेकिन बहुत परीक्षण योग्य नहीं है। मैं ASP.NET वेबपेज लिख सकता हूं, जहां डेटाबेस, बिजनेस रूल्स, ऑब्जेक्ट्स इत्यादि के सभी लॉजिक, क्वेरीज़ पीछे हैं। क्या पेज काम करेगा? हाँ। क्या यह स्वचालित इकाई परीक्षण का उपयोग करने योग्य है? बिलकुल नहीं। यदि किसी आपूर्तिकर्ता के पास स्वचालित इकाई परीक्षण नहीं है, तो यह सीखने का काफी प्रयास करेगा कि इकाई परीक्षणों को कैसे ठीक से लिखा जाए और इसे सीखने के परिणामस्वरूप, इसे और आसानी से परीक्षण योग्य बनाने के लिए अपने कोड को फिर से लिखें या फिर से लिखें। संभावना है कि वे उस लागत को आप पर पारित करने जा रहे हैं।

मामले का तथ्य यह है कि आपूर्तिकर्ता आपको एक उत्पाद दे रहा है, यह एक .dll या एक विंडोज़ अनुप्रयोग है, और आप इसे 99% काम करने की उम्मीद करते हैं। ज़रूर यहाँ और वहाँ कीड़े हैं, लेकिन अधिकांश भाग के लिए यह काम करना चाहिए। यह एक उचित उम्मीद है, खासकर अगर आपूर्तिकर्ता आपके व्यवसाय को बनाए रखना चाहता है। यदि यह एक ब्लैक बॉक्स है, तो यह वास्तव में कोई फर्क नहीं पड़ता कि उन्हें काम करने के लिए कैसे मिलता है, वे परीक्षकों की एक मानव लहर का उपयोग कर सकते हैं, या बंदर से भरा कमरा बेतरतीब ढंग से चाबियाँ मार सकते हैं। जब तक यह काम करता है। लेकिन उन्हें आपको इसका उपयोग कैसे करना है, इसके बारे में आपको कुछ अन्य दस्तावेज उपलब्ध कराने होंगे।

हालांकि, अगर उन्होंने आपको स्रोत कोड दिया है तो आप इसे संशोधित कर सकते हैं, तो मुझे यूनिट परीक्षणों की उम्मीद होगी। मैं ऐसी कंपनी के साथ काम नहीं करूंगा जो यूनिट परीक्षणों की आपूर्ति नहीं करती है। और क्या आप जानते हैं कि आपके द्वारा किए गए एक संशोधन से पूरी बात नहीं होगी?


1

यूनिट परीक्षण इस बात का संकेत है कि विकास चक्र के दौरान आपूर्तिकर्ता किस तरह से जोखिमों को संभालता है। जो लोग यूनिट परीक्षणों का उपयोग करते हैं, वे जोखिम को कम करने का महत्व रखते हैं और उन परीक्षणों की गुणवत्ता इस बात का संकेत है कि कितना जोखिम प्रबंधित किया गया है।

उस कहा के साथ, यूनिट परीक्षण यह निर्धारित नहीं करते हैं कि परियोजना किस स्तर के जोखिम से निपटने का प्रयास कर रही है। यह खराब प्रोग्रामिंग प्रथाओं द्वारा पेश किए गए जोखिम को कम करने में भी कोई भूमिका नहीं निभाता है।

इसलिए, आपके पास एक ऐसा आपूर्तिकर्ता हो सकता है जिसके पास ठोस परीक्षण प्रथाएं हों, लेकिन अत्यधिक जोखिम भरा कोड लिखना जारी रखता है, जबकि दूसरा आपूर्तिकर्ता जो शून्य परीक्षण करता है, लेकिन कम जोखिम कोड लिखता है। यदि दो आपूर्तिकर्ता एक ही उत्पाद प्रदान करते हैं, तो कम जोखिम वाले आपूर्तिकर्ता के साथ जाना सबसे अच्छा है।

यह केवल उस आपूर्तिकर्ता के साथ शामिल लोगों के व्यक्तित्व और कौशल के बारे में साक्षात्कार, सलाह और सीखने से ही पता लगाया जा सकता है।



0

यूनिट परीक्षणों की मांग करने वाले अन्य लोगों के साथ सहमति से परीक्षण के लिए परीक्षण किया जाएगा; कुछ ऐसा जो आपको चाहिए।

अपने आपूर्तिकर्ताओं को पशु चिकित्सक की प्रक्रिया में; उनसे पूछें कि उनकी विकास प्रक्रिया क्या है क्योंकि परीक्षण उस प्रक्रिया का सिर्फ एक हिस्सा है।

क्या उनके पास एक स्वचालित निर्माण प्रक्रिया है? क्या वे कुछ प्रबंधन प्रतिमान का पालन करते हैं? क्या उनके पास ठीक से प्रशिक्षित परीक्षक और एक स्वतंत्र गुणवत्ता आश्वासन टीम है ? प्रलेखन मानकों के बारे में कैसे?

ये आपको उनकी प्रक्रिया की समग्र गुणवत्ता का न्याय करने में मदद करेंगे, और जो वे पैदा करते हैं उसकी गुणवत्ता को बदले में।


0

यह मुझे लगता है कि इस आवश्यकता सहित थोड़ा व्यावहारिक लाभ होगा, क्योंकि इसे लागू करना असंभव होगा।

आप वास्तविक परीक्षणों के लिए कोड की मांग कर सकते हैं, या वास्तविक परीक्षणों को चलाने और पारित करने की रिपोर्ट कर सकते हैं। यदि यह एक स्वामित्व परियोजना है, तो विक्रेता शायद आपूर्ति नहीं करना चाहते हैं, क्योंकि यह संभवतः कोड के विवरणों के बारे में अत्यधिक विचारोत्तेजक होगा, और निम्न-स्तरीय कार्यान्वयन विवरण प्रदान करने के लिए तैयार किया जा सकता है और बताया जाएगा कि उन्हें कैसे करना है नौकरियों। कुछ बिंदु पर, कुछ विश्वास होना चाहिए।

यदि आप नहीं करते हैं, तो वे आपको या तो उड़ा सकते हैं, लेकिन केवल एक परीक्षण लिखकर आवश्यकता को पूरा करने के लिए "यूनिट परीक्षणों का एक सूट चलाता है" के बगल में स्थित बॉक्स को चेक करते हैं, जो उनकी उपयोगिता संकलित करता है और इसी तरह का अर्ध-assed होता है। प्रयास है।

इसलिए जब तक स्वचालित इकाई परीक्षण एक सराहनीय अभ्यास है, मुझे नहीं लगता कि बाहरी विक्रेताओं से इस पर जोर देना व्यावहारिक है।


0

जैसा कि कई लोगों ने बताया है, एक अनुबंध को पूरा करने के लिए यूनिट परीक्षण (या बेहतर, स्वचालित इकाई और एकीकरण परीक्षणों का एक संयोजन) लिखने के लिए वेंडर्स को मजबूर करना शायद उच्च गुणवत्ता वाले परिणाम नहीं देगा। दूसरी ओर, मैं इस बात से सहमत हूं कि कोड की गुणवत्ता सुनिश्चित करने के लिए स्वचालित परीक्षण अभी तक सबसे अच्छा तरीका है।

मुझे लगता है कि इकाई परीक्षणों के साथ लिखा गया कोड उस कोड को बनाए रखना बहुत आसान है जो पहले लिखा गया था और इकाई परीक्षण बाद में जोड़े गए थे। यह प्रतिरूपकता और न्यूनतम निर्भरता पर बल देता है। कोड की शुद्धता की पुष्टि के लिए एकीकरण परीक्षण भी आवश्यक हैं, लेकिन कोड की गुणवत्ता पर उनका उतना प्रभाव नहीं पड़ता जितना लिखा जाता है। संक्षेप में, तथ्य के बाद स्वचालित एकीकरण परीक्षण जोड़े जा सकते हैं, लेकिन मूल कोड के साथ लिखे जाने पर इकाई परीक्षणों का सबसे अधिक प्रभाव पड़ता है।

आपकी स्थिति के लिए मेरी सलाह उन वेंडरों की तलाश है जो यूनिट परीक्षणों के साथ कोड लिखना पसंद करते हैं, और उन्हें उन विक्रेताओं पर चुनना चाहते हैं जो एकजुट परीक्षणों के साथ कोड नहीं लिखना चाहते हैं। यदि प्रबंधन इसके लिए भुगतान करेगा, तो अनुबंध में स्वचालित परीक्षण करें, लेकिन केवल अगर विक्रेता का उपयोग किया जाता है, तो उसे UNES TESTS के साथ CODE लिखने की आवश्यकता होती है।


0

प्राथमिकताओं को पहले सीधे प्राप्त करें ...

एक ग्राहक के रूप में आपकी भूमिका में आपकी मुख्य चिंता इकाई-परीक्षण नहीं है

यदि आप उन आपूर्तिकर्ताओं का उपयोग कर रहे हैं जो आपके लिए सॉफ़्टवेयर का उत्पादन करते हैं तो आपको वास्तव में चिंतित नहीं होना चाहिए यदि वे एक कार्यप्रणाली या किसी अन्य का उपयोग कर रहे हैं। आपका दांव किसी तरह का समाधान हासिल करना है जो आपके लक्ष्यों को प्राप्त करने में मदद करेगा। केवल एक चीज जिसके बारे में आपको ध्यान रखना चाहिए, वह है कि समाधान स्वीकार्य है या नहीं। इसलिए हमारे पास स्वीकृति परीक्षण है क्योंकि यह सुनिश्चित करने के लिए आपकी ज़िम्मेदारी है कि आप जो चाहते हैं उसे प्राप्त करें। यह ग्राहक स्वीकृति के महत्वपूर्ण क्षण में है कि पैसा आपकी कंपनी की जेब से आपूर्तिकर्ता की जेब में भेजा जाएगा।

आप प्रसव योग्य आवश्यकता के रूप में यूनिट-परीक्षणों की मांग कर सकते हैं लेकिन उनके साथ कई अंतर्निहित समस्याएं हैं, सबसे गंभीर यह है कि मेट्रिक्स निर्धारित करने के लिए पहले से कोई निश्चित-आग का रास्ता नहीं है:

  • इकाई परीक्षणों की स्वीकार्य राशि क्या है?

क्या 10 टेस्ट होने चाहिए? लगभग 100 टेस्ट कैसे? 1000 टेस्ट के बारे में कैसे? दरअसल, शुरुआत में यह निर्धारित करना काफी मुश्किल है कि आपको कितने परीक्षणों की आवश्यकता होगी। वास्तविक संख्या वास्तव में अनिश्चित है ... रुकने की समस्या की तरह ... लेकिन हम उस समस्या को हल नहीं कर रहे हैं।

आप बस ऐसे सॉफ्टवेयर चाहते हैं जिसमें यूनिट-टेस्ट हों ताकि आप विकास जारी रख सकें। यूनिट-परीक्षण यह नहीं बताते हैं कि आपने अभी तक क्या तोड़ा है, लेकिन वे बहुत अच्छी तरह से आपको यह बताने के लिए अनुकूल हैं कि कोड में प्रतिगमन बग कैसे है।

  • कोड कवरेज का स्वीकार्य स्तर क्या है?

"100%, बिल्कुल!" आप सोचेंगे दुर्भाग्य से कि मीट्रिक भ्रामक है; यहां तक ​​कि अगर आपके पास 100% कोड कवरेज था, तो क्या आप वास्तव में सुनिश्चित हैं कि चीजें उम्मीद के मुताबिक काम कर रही हैं? 100% कवरेज होना संभव है लेकिन ऐसा नहीं किया गया।

आपको वास्तव में जो करने की आवश्यकता है वह खोजपूर्ण परीक्षण है, अर्थात किसी ऐसे व्यक्ति को ढूंढें जो सामान को तोड़ने में वास्तव में अच्छा है और उन्हें परीक्षण करने दें। उन बग्स को खोजने के लिए जिन्हें किसी भी डेवलपर ने सोचा भी नहीं है।

इसके अलावा 100% कभी-कभी शुद्ध यूनिट परीक्षणों के साथ अप्राप्य होता है यदि आपके पास कुछ आवश्यक प्रदर्शन हैक हैं और डिज़ाइन पैटर्न का उपयोग करते हैं जो आपके पसंदीदा खोज इंजन में परीक्षण ("सिंगलटन" और "tdd" खोजना मुश्किल है और आपको कुछ उदाहरण मिलेंगे)।

आप काम करने के लिए वितरित सॉफ़्टवेयर चाहते हैं और विनिर्देश दस्तावेज़ आपकी एकमात्र वारंटी है जो यह करेगा।

आपको परीक्षण के उच्च स्तर की आवश्यकता होगी

आपके विनिर्देश दस्तावेज़ को किसी तरह सत्यापित किया जाना है। प्रत्येक बिंदु को आपके आपूर्तिकर्ताओं को स्पष्ट लक्ष्यों और स्वीकृति मानदंडों के साथ गुजरना होगा। एक अच्छी तरह से काम कर रहा क्यूए संगठन (या एक भयानक परीक्षक यदि आप एक बजट और एक सीमित दायरे में हैं) परीक्षण मामलों को इस स्वीकृति मानदंड की जांच करने के लिए प्रदान करेगा। आपको उन स्वीकृति मानदंडों को सत्यापित करने के लिए भी किसी की आवश्यकता है।

अपने लक्ष्यों को सत्यापित करने के कई तरीके हैं, और अगर कोई मुझसे कहता है कि आप किसी भी गुणवत्ता, प्रदर्शन और दक्षता के लक्ष्यों को निर्धारित नहीं कर सकते हैं तो मैं उन्हें क्रमशः खोजपूर्ण, प्रदर्शन और प्रयोज्य परीक्षण पर बड़ी और भारी पुस्तकों के साथ सिर में मारूंगा। लक्ष्यों को पूरा करना आसान हो सकता है, लेकिन ज्ञान और संचार आपको यथार्थवादी लक्ष्य निर्धारित करने में मदद करेंगे।

मैं एक वकील नहीं हूं, लेकिन अधिकांश परियोजना अनुबंध (जो मूल रूप से परियोजना के लिए सभी विशिष्टताओं की मां है) मैंने पढ़ा है कि आमतौर पर एक दोष अनुपात मानदंड होता है जो स्वीकार्य कितने कीड़े माने जाते हैं। कीड़े आमतौर पर गंभीरता के माध्यम से निर्धारित किए जाते हैं, क्यूए द्वारा पाए जाने वाले शो-स्टॉपिंग बग में कम सहिष्णुता होती है, जबकि मामूली दोषों में उच्च सहिष्णुता होती है। वास्तविक परियोजनाओं में यह मांग करना मुश्किल है कि सॉफ्टवेयर में 0 दोष हैं। समय सीमा आमतौर पर उस अभ्यास पर रोक लगाती है। यह इन स्थितियों में है कि आपको गुंजाइश को मोलभाव करना शुरू करना होगा।

अधिकांश आपूर्ति किए गए सॉफ़्टवेयर, जिन्हें मैंने आमतौर पर यूनिट परीक्षणों के साथ वितरित नहीं किया है। आप तर्क दे सकते हैं कि आपूर्तिकर्ताओं को इसे वितरित करने के लिए पर्याप्त पेशेवर होना चाहिए, हालांकि मुख्य कारण जो आप चाहते हैं कि यूनिट परीक्षण आपके लिए दिया जाए, यह सुनिश्चित करने के लिए है कि आपको प्रतिगमन बग नहीं मिलते हैं और रिफैक्टिंग भी सक्षम करते हैं। वास्तविक समय में परियोजनाओं पर तंग समय सीमा के साथ दोनों आपूर्तिकर्ता और ग्राहक गुंजाइश कम कर देंगे और यूनिट-परीक्षण आमतौर पर खिड़की से बाहर निकल जाएंगे और आवश्यक डिलिवरेबल्स की सूची से हटा दिए जाएंगे।

यह थोड़ा दुखद है कि हाई प्रोफाइल ओपन सोर्स सॉफ्टवेयर यूनिट-टेस्ट के साथ दिया जाता है, लेकिन एक पेशेवर सॉफ्टवेयर डेवलपर सही नहीं हो सकता है?

इसलिए, जब मैं एक ग्राहक के रूप में, इकाई परीक्षण के बारे में ध्यान रखना चाहता हूं?

मेरा तर्क है कि केवल एक बार जब आप यूनिट परीक्षण के बारे में वास्तव में ध्यान रखेंगे , यदि डिलिवरेबल सॉफ़्टवेयर एक आत्मनिर्भर घटक है जिसे स्टैंड-अलोन प्रोग्राम के रूप में निष्पादित नहीं किया जाता है, जिसके लिए आपके द्वारा किया जाने वाला सबसे कठिन परीक्षण एक यूनिट टेस्ट है । क्लास लाइब्रेरी एक तरह का उत्पाद होगा जिसे यूनिट-टेस्ट के साथ एक साथ दिया जा सकता है।


-1

आप कैसे जानते हैं कि विक्रेता इकाई परीक्षण नहीं लिख रहे हैं।

हो सकता है कि प्रबंधन और विक्रेता की एक बैठक हुई और विक्रेता ने कहा, कोड की लागत $ X है और इकाई परीक्षण की लागत $ Y है। पेनी चुटकी प्रबंधन ने कहा कि हम सिर्फ कोड चाहते हैं।

विक्रेता ने वैसे भी (गुणवत्ता के कारण) इकाई परीक्षण लिखने का फैसला किया और सिर्फ उन्हें (प्रतिस्पर्धी लाभ के कारण) आपके साथ साझा नहीं किया।

अब आपको सॉफ्टवेयर में कुछ प्रमुख समायोजन करने की आवश्यकता है। चूंकि आप कोड के मालिक हैं, आप इसे स्वयं कर सकते हैं या इसे प्रतिस्पर्धात्मक रूप से किराए पर ले सकते हैं (मूल विक्रेता के लिए आवश्यक नहीं)। लेकिन चूंकि आपने यूनिट परीक्षण नहीं खरीदा है, इसलिए मूल विक्रेता किसी भी प्रतियोगी को सस्ती कीमत पर तुलनीय गुणवत्ता वाले काम करने में सक्षम होगा।


-1

बहुत सारी परियोजनाएं हैं जो इस तथ्य के बावजूद बहुत सफल हैं कि वे इकाई परीक्षणों का उपयोग नहीं करते हैं। बस लिनक्स कर्नेल को देखें, इसकी एक विशाल परियोजना जिसमें एक जटिलता के साथ अच्छी तरह से परे है जो आपको किसी भी सामान्य परियोजना में मिलेगा, और यह अभी भी काम करता है। इसलिए यदि परिणाम अच्छा सॉफ़्टवेयर है, तो आपको परवाह नहीं करनी चाहिए कि उन्होंने इसे कैसे प्राप्त किया।


-1

नहीं, आपको पूर्ण और स्वचालित परीक्षण इकाइयों की मांग करने के लिए आवश्यक नहीं है। इसकी अधिक महत्वपूर्ण बात यह है कि वे आपको उचित परीक्षण रणनीति दस्तावेजों के साथ आपूर्ति करते हैं। हम इस तरह से अच्छा कर रहे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.