मुझे अनुमान लगाने में सक्षम होना चाहिए कि आवंटित करने के लिए कितना अतिरिक्त समय है।
यह मूर्खतापूर्ण है। कोई अतिरिक्त समय नहीं है।
यहां आप क्या करते हैं। अपना मौजूदा परीक्षण बजट लें। परियोजना के अंत में 40% विकास प्रयास।
इस परीक्षण के अधिकांश प्रयासों को इकाई परीक्षण के रूप में परियोजना के जीवन के माध्यम से फैलाएं। कुल प्रयास का 30% इसे कॉल करें, हर जगह आवंटित।
"एकीकरण" और "प्रदर्शन" परीक्षण के अंत में कुछ परीक्षण प्रयास छोड़ दें। कुल प्रयास का 10% इसे कॉल करें, केवल अंत में आवंटित और केवल एकीकरण और प्रदर्शन परीक्षण के लिए। या उपयोगकर्ता स्वीकृति परीक्षण या जो भी बचा है उस पर आपने यूनिट परीक्षण नहीं किया है।
कोई "अतिरिक्त" नहीं है। आपको वैसे भी परीक्षण करना है। आप परियोजना के दौरान या तो प्रथम श्रेणी के सॉफ्टवेयर के रूप में ऐसा कर सकते हैं, या आप खराब काम करने वाले प्रोजेक्ट के अंत में घूम सकते हैं।
टीडीडी की "लागत" सर्वोत्तम है - एक व्यक्तिपरक प्रभाव। ध्यान से उत्कृष्ट अध्ययन सारांश पढ़ें। "विषयपरक, टीमों ने टीडीडी को अपनाने के बाद प्रारंभिक विकास के समय में 15-35% की वृद्धि का अनुभव किया"। [जोर जोड़ा गया।]
वास्तव में टीडीडी के लिए शून्य लागत है। टीडीडी बस समय बचाता है।
यह अन्य तरीकों से सॉफ्टवेयर बनाने के लिए टीडीडी करने के लिए बहुत महंगा है।
क्यों?
आपको वैसे भी परीक्षण करना होगा। चूंकि आपको परीक्षण करना है, इसलिए आप परीक्षण के चारों ओर अपने सभी विकास को चलाकर परीक्षण के लिए भी योजना बना सकते हैं।
जब आपके पास टूटा हुआ परीक्षण केस होता है, तो आपके पास कार्यों का एक केंद्रित सेट होता है। जब आप फोन कॉल, मीटिंग्स, उत्पाद डेमो, पिछली रिलीज का समर्थन करने के लिए परिचालन कॉल से बाधित होते हैं, तो विचलित होना आसान होता है। जब आपके पास असफल होने वाले परीक्षण होते हैं, तो आप तत्काल ध्यान केंद्रित करते हैं।
आपको वैसे भी परीक्षण करना होगा। यह कोड या तो कोड या उसके बाद टेस्ट कोड है। आप परीक्षण की लागत से बच नहीं सकते हैं। चूंकि आप बच नहीं सकते हैं, पहले इसे करें।
यह विचार कि टीडीडी में "अतिरिक्त" या "वृद्धिशील" लागत पागल है। यहां तक कि http://www.springerlink.com/content/q91566748q234325/ जैसे एक अच्छी तरह से प्रलेखित अध्ययन भी नहीं कर सकते - असल में - की तुलना करें प्रोजेक्ट दो तरीकों से किया गया है। "अतिरिक्त विकास समय" का विचार वास्तव में मापा नहीं जा सकता है। यही कारण है कि यह एक "व्यक्तिपरक प्रभाव" है। और वे इसके बारे में बस गलत हैं।
जब आप प्रोग्रामर पूछना - जो TDD के लिए नए हैं - अगर TDD उन्हें धीमा, वे इसके बारे में के बारे में झूठ बोलते हैं।
हां। वे झूठ बोलते हैं।
वन। आपने उन्हें बदल दिया। परिवर्तन खराब है। हर कोई जानता है कि। वे यह नहीं कह सकते कि यह आसान था, क्योंकि यह "अलग" था।
दो। यह प्रबंधन में सवाल कहता है। हम अपने प्रबंधकों के बारे में बुरी चीजें नहीं कह सकते हैं, यह बुरा है। हर कोई जानता है कि। वे यह नहीं कह सकते कि यह आसान था क्योंकि पिछली चीजें जो हमारे प्रबंधकों ने मांग की थी, अब स्पष्ट रूप से गलत हैं।
तीन। अधिकांश प्रोग्रामर (और प्रबंधक) सोचते हैं कि "वास्तविक" कोड और "परीक्षण" कोड के बीच एक अंतर है। टीडीडी को "असली" कोड प्राप्त करने में अधिक समय लगता है क्योंकि आप अपना "आगे" कोड कर रहे समय के सामने खर्च करते हैं।
यह "वास्तविक" कोड बनाम "परीक्षण" कोड एक झूठा भेद है। जो भी कहता है वह यह नहीं समझता कि परीक्षण कितना महत्वपूर्ण है। चूंकि परीक्षण यह दर्शाता है कि एक आवेदन काम करता है, परीक्षण कोड प्रथम श्रेणी होना चाहिए। इस भेद को गलत बनाना है। टेस्ट कोड वास्तविक कोड है।
परीक्षा कोड लिखने का समय प्रभावी ढंग से - वास्तविक कोड के डिजाइन से लिया गया समय है। "पेपर" डिज़ाइन बनाने के बजाय, आप परीक्षण मामलों के रूप में एक काम कर रहे, रहने वाले डिजाइन बना रहे हैं।
टीडीडी समय बचाता है।
जो लोग कहते हैं कि अन्यथा परिवर्तन का विरोध कर रहे हैं और/या गलत होने और/या वास्तविक कोड और परीक्षण कोड के बीच झूठी भेद करने से प्रबंधन की रक्षा करने की कोशिश कर रहे हैं। सभी चीजें जो गलत हैं।
आपके पास प्रत्येक प्रोग्रामर का कोड एक या दूसरे तरीके से परीक्षण कर रहा है। कोई भी कोड लिखता है और इसे तुरंत उत्पादन में डाल देता है। संभावना है कि वे जो कर रहे हैं वह पूरे एप्लिकेशन को चला रहा है, उस बिंदु पर पहुंच रहा है जहां कार्यक्षमता का उनका विशिष्ट टुकड़ा है और यह काम करता है या नहीं। संभावना है कि यह पहली कोशिश पर नहीं होगा। तो वे ध्यान देंगे कि उनके सिर में क्या हुआ, वापस जाएं और कोड को ठीक करें, और पूरे एप्लिकेशन को चलाकर फिर से शुरू करें और फिर से इसे फिर से चलाएं। वह बर्बाद समय है। अपने विशिष्ट कोड का एक छोटा परीक्षण लिखना बहुत आसान/तेज़ है। – user441521