अभ्यास में निरंतर डिलीवरी कैसे काम कर सकती है?


22

निरंतर वितरण अच्छा लगता है, लेकिन मेरे सॉफ्टवेयर विकास के वर्षों के अनुभव का सुझाव है कि व्यवहार में यह काम नहीं कर सकता है।

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

  • पूर्ण परीक्षण कवरेज असंभव है। आपको बहुत समय लगाना होगा - और समय पैसा है - हर छोटी चीज के लिए। यह मूल्यवान है, लेकिन समय को अन्य तरीकों से गुणवत्ता में योगदान देने में खर्च किया जा सकता है।
  • कुछ चीजें अपने आप टेस्ट करना मुश्किल हैं। जैसे GUI। यहां तक ​​कि सेलेनियम आपको यह नहीं बताएगा कि आपका जीयूआई विनकी है या नहीं। भारी जुड़नार के बिना डेटाबेस का उपयोग कठिन है, और यहां तक ​​कि आपके डेटा भंडारण में अजीब कोने के मामलों को कवर नहीं करेगा। इसी तरह सुरक्षा और कई अन्य चीजें। केवल व्यवसाय-परत कोड प्रभावी रूप से इकाई-परीक्षण योग्य है।
  • व्यावसायिक परत में भी, अधिकांश कोड सरल कार्य नहीं हैं जिनके तर्क और रिटर्न मान परीक्षण उद्देश्यों के लिए आसानी से अलग किए जा सकते हैं। आप नकली वस्तुओं के निर्माण में बहुत समय बिता सकते हैं, जो वास्तविक कार्यान्वयन के अनुरूप नहीं हो सकते हैं।
  • एकीकरण / कार्यात्मक परीक्षण इकाई परीक्षण के पूरक हैं, लेकिन इन्हें चलाने में बहुत समय लगता है क्योंकि इनमें आमतौर पर प्रत्येक परीक्षण पर संपूर्ण प्रणाली को फिर से संगठित करना शामिल होता है। (यदि आप पुनर्निवेश नहीं करते हैं, तो परीक्षण वातावरण असंगत है।)
  • Refactoring या कोई अन्य परिवर्तन बहुत सारे परीक्षण तोड़ते हैं। आप उन्हें ठीक करने में बहुत समय बिताते हैं। यदि यह सार्थक विशिष्ट परिवर्तनों को मान्य करने की बात है, तो यह ठीक है, लेकिन अक्सर अर्थहीन निम्न-स्तरीय कार्यान्वयन विवरणों के कारण परीक्षण टूट जाते हैं, न कि सामान जो वास्तव में महत्वपूर्ण जानकारी प्रदान करते हैं। अक्सर ट्वीकिंग परीक्षण के आंतरिक भाग पर काम करने पर केंद्रित होती है, न कि वास्तव में उस कार्यक्षमता की जाँच करने पर जो परीक्षण किया जा रहा है।
  • बग पर फ़ील्ड रिपोर्ट को आसानी से कोड के सटीक माइक्रो-संस्करण के साथ मिलान नहीं किया जा सकता है।

यह Etsy Slidehare.net/OReillyOSCON/… के लिए बहुत ही बढ़िया काम करता है !
योत्सुमी

4
सतत वितरण के लिए परीक्षण की आवश्यकता नहीं है (लेकिन यह मदद करता है)। यह इस तथ्य को संदर्भित करता है कि आपके द्वारा नियमित आधार पर बनाई जाने वाली चीजें ग्राहक को जरूरत पड़ने पर भेज दी जाए।

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

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

@ थोरबजोरन रावन एंडरसन। निश्चित रूप से, सीडी को परीक्षण की आवश्यकता लगती है। आपके पास हर चेकइन को बिना स्वचालित रूप से शिप करने का आत्मविश्वास कैसे हो सकता है।
जोशुआ फॉक्स

जवाबों:


29

सॉफ्टवेयर विकास के अनुभव के मेरे वर्षों का सुझाव है कि व्यवहार में यह काम नहीं कर सकता है।

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

सतत वितरण का स्वचालित परीक्षण पर एक बड़ा ध्यान है। हम इस बारे में बात करने वाली पुस्तक का 1/3 हिस्सा खर्च करते हैं। हम ऐसा इसलिए करते हैं क्योंकि वैकल्पिक - मैनुअल परीक्षण - महंगा और त्रुटि-प्रवण है, और वास्तव में उच्च गुणवत्ता वाले सॉफ़्टवेयर के निर्माण का एक शानदार तरीका नहीं है (जैसा कि डेमिंग ने कहा, "गुणवत्ता प्राप्त करने के लिए बड़े पैमाने पर निरीक्षण पर निर्भरता को कम करें। प्रक्रिया में सुधार करें और गुणवत्ता का निर्माण करें। पहली जगह में उत्पाद ")

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

बेशक पूर्ण परीक्षण कवरेज असंभव है, लेकिन विकल्प क्या है: शून्य परीक्षण कवरेज? एक व्यापार बंद है। कहीं न कहीं आपके प्रोजेक्ट के लिए सही उत्तर है। हम पाते हैं कि सामान्य तौर पर आपको स्वचालित परीक्षणों को बनाने या बनाए रखने में अपना लगभग 50% समय खर्च करने की उम्मीद करनी चाहिए। यह महंगा लग सकता है जब तक आप व्यापक मैनुअल परीक्षण की लागत पर विचार नहीं करते हैं, और उन बगों को ठीक करने के लिए जो उपयोगकर्ताओं को बाहर निकलते हैं।

कुछ चीजें अपने आप टेस्ट करना मुश्किल हैं। जैसे GUI। यहां तक ​​कि सेलेनियम आपको यह नहीं बताएगा कि आपका जीयूआई विनकी है या नहीं।

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

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

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

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

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

एकीकरण / कार्यात्मक परीक्षण इकाई परीक्षण के पूरक हैं, लेकिन इन्हें चलाने में बहुत समय लगता है क्योंकि इनमें आमतौर पर प्रत्येक परीक्षण पर संपूर्ण प्रणाली को फिर से संगठित करना शामिल होता है। (यदि आप पुनर्निवेश नहीं करते हैं, तो परीक्षण वातावरण असंगत है।)

जिन उत्पादों पर मैं काम करता था, उनमें से एक में 3,500 अंत-टू-एंड स्वीकृति परीक्षणों का एक सूट है, जिसे चलाने के लिए 18h लगते हैं। हम इसे 70 बक्से के ग्रिड पर समानांतर में चलाते हैं और 45 मी में प्रतिक्रिया प्राप्त करते हैं। वास्तव में आदर्श से अधिक लंबे समय तक, यही कारण है कि हम यूनिट परीक्षणों के बाद पाइपलाइन में दूसरे चरण के रूप में इसे कुछ ही मिनटों में चलाते हैं, इसलिए हम अपने संसाधनों को एक ऐसे निर्माण पर बर्बाद नहीं करते हैं जिसमें हमारे पास कुछ बुनियादी स्तर नहीं है विश्वास है।

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

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

बग पर फ़ील्ड रिपोर्ट को आसानी से कोड के सटीक माइक्रो-संस्करण के साथ मिलान नहीं किया जा सकता है।

यदि आप कर रहे हैं परीक्षण और अधिक बार जारी (सीडी की बात का हिस्सा) तो यह है परिवर्तन है कि बग की वजह से पहचान करने के लिए अपेक्षाकृत आसान। CD का संपूर्ण बिंदु फीडबैक चक्र को अनुकूलित करना है ताकि आप संस्करण नियंत्रण में जाँच के बाद जितनी जल्दी हो सके बगों की पहचान कर सकें - और वास्तव में, अधिमानतः इससे पहले कि वे जाँच कर रहे हैं (यही कारण है कि हम बिल्ड और यूनिट परीक्षण चलाते हैं चेक-इन से पहले।


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

3
मुझे निरंतर वितरण और निरंतर तैनाती के बीच अंतर करना पसंद है। यहाँ अंतर है। निरंतर वितरण का मतलब है कि आप सिस्टम को हर समय तैयार रखते हैं और एक बटन के पुश पर मांग पर जारी कर सकते हैं। रिलीज एक व्यावसायिक निर्णय है। निरंतर तैनाती एक सीमित मामला है जहां आप हर अच्छे बिल्ड को जारी करते हैं (ध्यान दें कि हर चेक-इन - कुछ चेक-इन एक भरोसेमंद बिल्ड में परिणाम नहीं करता है)। दोनों मामलों में आप मैनुअल सत्यापन शामिल कर सकते हैं: कुंजी परिनियोजन पाइपलाइन की अवधारणा है ।
जेज विनम्र

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

11

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

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


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

लेकिन वे अभी भी ढूंढना और ठीक करना आसान है जो कि अधिक जोर है।
व्याट बार्नेट

2

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


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

1

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

आपको 100% कवरेज की आवश्यकता नहीं है, आपको अपने सिस्टम में आश्वस्त होने के लिए पर्याप्त आवश्यकता है, कि एक स्थान पर परिवर्तन आपके द्वारा पूर्व में सिद्ध किए गए कार्यों को नहीं तोड़ेंगे।

कुछ चीजें अपने आप टेस्ट करना मुश्किल हैं। जैसे GUI। यहां तक ​​कि सेलेनियम आपको यह नहीं
बताएगा कि आपका जीयूआई विनकी है या नहीं। भारी जुड़नार के बिना डेटाबेस का उपयोग कठिन है, और यहां तक ​​कि आपके डेटा भंडारण में अजीब कोने के मामलों को कवर नहीं करेगा।

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

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

फिर आपके कई कार्य / कक्षाएं बहुत बड़ी हैं। उन्हें परीक्षण योग्य लिखा जाना चाहिए।

आप नकली वस्तुओं के निर्माण में बहुत समय बिता सकते हैं, जो वास्तविक कार्यान्वयन के अनुरूप नहीं हो सकते हैं।

मॉक ऑब्जेक्ट के I / O को उस चीज़ से मेल खाना चाहिए जो कि अपेक्षित है। इसके भीतर क्या होता है महत्वहीन।

एकीकरण / कार्यात्मक परीक्षण इकाई परीक्षण के पूरक हैं, लेकिन इन्हें चलाने में बहुत समय लगता है क्योंकि इनमें आमतौर पर प्रत्येक परीक्षण पर संपूर्ण प्रणाली को फिर से संगठित करना शामिल होता है। (यदि आप पुनर्निवेश नहीं करते हैं, तो परीक्षण वातावरण असंगत है।)

इन्हें हर समय नहीं चलाया जाना चाहिए। बस जरूरत है।

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

फिर आपका कोड बहुत कसकर युग्मित है, और आपके परीक्षण खराब लिखे गए हैं।

बग पर फ़ील्ड रिपोर्ट को आसानी से कोड के सटीक माइक्रो-संस्करण के साथ मिलान नहीं किया जा सकता है।

सुनिश्चित नहीं हैं कि आप यहाँ क्या कर रहे हैं? यदि कोई बग है, तो यह दिखाने के लिए एक परीक्षण लिखें कि यह अस्तित्व में है, तो इसे ठीक करें।


"मॉक ऑब्जेक्ट के I / O को उस चीज़ से मेल खाना चाहिए जो अपेक्षित है"। "MOs का निर्माण जो पूरी तरह से इंटरफ़ेस-स्पेक टाइम-खपत को लागू करता है। इससे भी बदतर, किसी को उन्हें लगातार अपडेट करना चाहिए, ताकि कोई प्रभावी रूप से सभी कोड दो बार (एक बार लिख रहा हो) उत्पादन के लिए और एक बार MOs के लिए)
जोशुआ फॉक्स

1

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


-4

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

"रियल आर्टिस्ट शिप"
- स्टीव जॉब्स।


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