2009-02-11 10 views
5

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

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

कुछ भी मैं उसे उन परीक्षण लिखने बनाने के लिए कर सकते हैं? आप उन लोगों से कैसे निपटते हैं?

+0

विषयपरक और तर्कवादी ("उसे बनाएं" और "सौदा")। – ChrisW

+0

सहकर्मियों को पहले स्थान पर लिखने के संबंध में प्रश्नों से यह अलग कैसे है? मुझे पूरा यकीन है कि यहां गहराई से चर्चा की गई है। – EBGreen

+0

जेसन Punyon के जवाब पर विस्तार: यदि आप कोड कवरेज का परीक्षण नहीं कर रहे हैं, लेकिन सिर्फ 'अच्छा' कवरेज 'के लिए उन्हें लिखने के लिए लिख रहे हैं, तो आपका परीक्षण सूट अपर्याप्त है। –

उत्तर

12

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

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

आप के लिए सबसे बड़ा दर्द आप क्या refactor के बारे में सावधान रहना होगा कि है। यदि आप परीक्षण नहीं कर रहे कोड को दोबारा कर रहे हैं, तो आपको इसे पुनः सक्रिय करने के बारे में बेहद सतर्क होना चाहिए (शायद ऐसा करने के लिए विश्वसनीय स्वचालित उपकरण का उपयोग करना) या परीक्षण जोड़ें।

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

+0

मैं जो कह रहा हूं उसे समझ और सम्मान कर सकता हूं, लेकिन मुझे असहमत होना चाहिए। मुझे नहीं लगता कि "यह उनकी समस्या है" दृष्टिकोण एक अच्छा टीम पर्यावरण को बढ़ावा देता है। –

+0

मैं सहमत हूं। इसके अलावा, इस तरह के एक कोडबेस मुझे असहज बनाता है, क्योंकि आखिरकार यह एक उत्पाद का हिस्सा है। और तथ्य यह है कि वहां 'नहीं-ठीक' कोड है जो मुझे जार करता है। – talonx

2

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

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

हो सकता है कि मुझे लगता है कि यहाँ पर सेट कर देंगे, अब मैं इसके बारे में लगता है कि ...

+0

आप लोगों को टीडीडी करने में शर्मिंदा नहीं कर सकते हैं। यह कोशिश की गई है और यह असफल रहा है। लोगों को अपने लिए टीडीडी अपनाने का एकमात्र तरीका है उन्हें "आह!" तक पहुंचने के लिए मानसिक कूबड़ पर मदद करना है। खुद के लिए पल। –

+0

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

4

आप एक निर्माण प्रक्रिया है, तो आप NCover या PartCover जैसे किसी उपकरण का इस्तेमाल कर सकते हैं और निर्माण में विफल रहते हैं कवरेज 'isn टी पर्याप्त है।

+0

कवरेज परीक्षण जोड़ना एकमात्र समझदार चीज है। कोई भी पूर्ण परीक्षण सूट रखने का दावा कैसे कर सकता है जो कोड कवरेज का परीक्षण नहीं करता है? –

1

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

5

जोड़ी प्रोग्रामिंग। कुछ लोगों पर कुछ काम करने के साथ, प्रोग्रामर इस तरह शॉर्टकट लेने की संभावना कम हैं।

+1

+1। कोड समीक्षाओं का एक ही प्रभाव होता है। – Kena

-1

"मुझे परेशान मत करो!" का वीडियो चलाएं एक चेतावनी के रूप में लड़का

7

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

0

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

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

1

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

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

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

संबंधित मुद्दे