2009-05-19 24 views
6

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

दूसरी तरफ, मेरे प्रबंधक को लगता है कि अगर हम टीम में दो नए विकास प्रथाओं को एक साथ पेश करते हैं, तो एक अच्छा मौका है कि दोनों असफल हो सकते हैं। तो, वह थोड़ा और रूढ़िवादी बनना चाहता है और किसी को भी पेश करना चाहता है।

मैं उन्हें कैसे समझा सकता हूं कि ये दोनों पूरक हैं और ऑर्थोगोनल नहीं हैं। या मैं गलत हूँ?

+0

जोड़ी प्रोग्रामिंग = निरंतर कोड समीक्षा। इसके अलावा जोड़ी प्रोग्रामिंग उस गोद लेने के लिए महंगी नहीं है - लेकिन मैं 2 नौसिखियों/शुरुआती लोगों को जोड़ने के खिलाफ सलाह दूंगा। एक जोड़ी में हमेशा एक मध्यवर्ती-विशेषज्ञ व्यक्ति होना चाहिए जो जानता है कि क्षेत्र को अच्छी तरह से संशोधित किया जा रहा है। दूसरी ओर, टीडीडी मास्टर करना बहुत मुश्किल है .. अपना समय लें .. विस्फोट न करें। खराब परीक्षण कोई परीक्षण से भी बदतर हैं। – Gishu

उत्तर

13

मुझे यकीन नहीं है कि अधिक लोगों को यह नहीं पता कि वे टीडीडी में क्या कर रहे हैं, मदद करने जा रहा है। यह जल्दी से आप दोनों विषयों को गुगल कर देगा, या आप दोनों ही बहस करेंगे कि टीडीडी क्या है/नहीं है।

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

+0

आप सही हैं। हम टीडीडी पर एक कार्यशाला में भाग ले रहे हैं। इसलिए, इसे एक सभ्य मंच प्रदान करना चाहिए जिससे इसका अभ्यास करना शुरू हो। मुझे छोटे समूहों में इसे आज़माने का विचार पसंद है और फिर इसे धीरे-धीरे प्रचारित करना पसंद है। इसे आज़माएं धन्यवाद! – Anirudh

7

सुझाएँ कि वे TDD पर इन पुस्तकों को पढ़ने:

Michael Feather's Working Effectively with Legacy Code
Kent Beck's classic Test-Driven Development - By Example
Gerard Meszaros' xUnit Test Patterns - Refactoring Test Code
Test-Driven Development in Microsoft .NET

या जोड़ी प्रोग्रामिंग में इन वेबसाइटों:

Pair Programming (Wikipedia)
Corey Haines
Pair Programming Illuminated

+0

सुझाव के लिए धन्यवाद। मैंने पहले दो को पढ़ लिया है और मैंने पिछली टीम में टीडीडी और जोड़ी प्रोग्रामिंग की कोशिश की है और यह मेरे लिए काम करता है। मुझे इन्हें अपनी वर्तमान टीम में पेश करना चाहिए। – Anirudh

+0

यह भी देखें [वीडियो और पॉडकास्ट संसाधनों का यह संग्रह] (http://stackoverflow.com/questions/387326/unit-testing-videos-or-pod-casts/388485#388485) –

1

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

2

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

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

+0

अच्छा विचार। धन्यवाद! – Anirudh

0

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

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

0

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

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

शॉन के साथ कुछ दिनों के बाद सुजैन से दोहराने ...

0

वैसे भी यह मत करो। प्रबंधक आप जोड़ी फैल जाती है, तो कहते हैं कि जादुई शब्द "कोड की समीक्षा"
धारणा: जाहिर जोड़ी अनुशासित किया जाना चाहिए/पर्याप्त ध्यान केंद्रित और सत्र

1

निजी तौर पर के अंत में काम कर कोड का उत्पादन मैं पाया है जोड़ी प्रोग्रामिंग एक अनुभवी और एक अनुभवहीन के साथ सबसे अच्छा काम करता है।

आईई मैं समान रूप से कुशल से मेल खाने की कोशिश करने के बजाए प्रोग्रामर के कौशल/विस्तार में अंतर का लक्ष्य रखूंगा।

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

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

यूनिट परीक्षण आवश्यक आईएमओ हैं ... आखिरकार, कुछ कर्मचारी 2 साल के समय में नहीं होंगे। यदि आपके फ़ंक्शन को सत्यापित करने के लिए कुछ भी नहीं है तो आप मौजूदा कोड को कैसे बदल सकते हैं?

+0

मुझे विपरीत मिला है: दो समान डेवलपर्स के बीच जोड़ी प्रोग्रामिंग उत्कृष्ट कोड काफी तेज़ी से उत्पन्न करती है; बहुत अलग विशेषज्ञता स्तर के दो डेवलपर्स के बीच जोड़ी प्रोग्रामिंग या तो प्रशिक्षण में भंग हो जाती है, और बहुत कुछ नहीं किया जाता है, या अधिक अनुभवी प्रोग्रामर में अकेले काम करने से बेहतर नहीं होता है क्योंकि कम अनुभव वाला कोई भी नहीं रह सकता है, बहुत कम योगदान देता है। –

+0

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

+0

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

9

जोड़ी progamming प्रभावी जब एक नया अभ्यास विशेष रूप से TDD

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

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

हालांकि यह समझा जा सकता है कि प्रोग्रामर जोड़ी और काम करते हैं, उत्पादकता में सुधार करते हैं, इस तकनीक वास्तव में काम क्यों करती है (पुरानी कहानियों के बारे में सोचें, "दो सिर एक से बेहतर हैं।") यही कारण है कि :

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

एक बार जब टीम युग्मन के साथ confortable है, तो टीडीडी ले लो। एक प्रतिशोध निम्नानुसार है:

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

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

  1. एक परीक्षण लिखें। परीक्षण संचालित विकास में, प्रत्येक नया कहानी कार्ड एक परीक्षा लिखने से शुरू होता है। यह परीक्षण विफल हो जाएगा क्योंकि यह सुविधा लागू होने से पहले लिखा गया है। एक परीक्षण लिखने के लिए, डेवलपर को स्पष्टता और सुविधा की आवश्यकताओं को स्पष्ट रूप से समझना चाहिए। यह स्टोरी कार्ड के माध्यम से स्वीकृति मानदंडों के साथ पूरा किया जा सकता है जब आवश्यकताओं को पूरा किया गया हो। यह एक मौजूदा परीक्षण का एक आविष्कार, या संशोधन भी इंगित कर सकता है। कोड लिखे जाने के बाद यह परीक्षण-आधारित विकास बनाम यूनिट परीक्षणों की एक विभेदक विशेषता है: यह कोड लिखने से पहले डेवलपर को आवश्यकताओं पर ध्यान केंद्रित करता है, एक सूक्ष्म लेकिन महत्वपूर्ण अंतर।
  2. सभी परीक्षण चलाएं और देखें कि नया कोई विफल रहता है या नहीं। यह मान्य करता है कि परीक्षण दोहन सही ढंग से काम कर रहा है और नया परीक्षण गलती से बिना किसी नए कोड की आवश्यकता के गुजरता है। अपेक्षित कारण के लिए नया परीक्षण भी असफल होना चाहिए। यह चरण परीक्षण में स्वयं परीक्षण का परीक्षण करता है: यह संभावना है कि नया परीक्षण हमेशा पास होगा, और इसलिए बेकार होगा।
  3. कुछ कोड लिखें। अगला कदम कुछ कोड लिखना है जो परीक्षण को पास करने का कारण बनेंगे। इस चरण में लिखा गया नया कोड सही नहीं होगा और उदाहरण के लिए, परीक्षण को एक सुरुचिपूर्ण तरीके से पास कर सकता है। यह स्वीकार्य है क्योंकि बाद के चरणों में सुधार होगा और इसे बढ़ाया जाएगा। यह महत्वपूर्ण है कि लिखित कोड केवल परीक्षण पास करने के लिए डिज़ाइन किया गया हो; आगे नहीं (और इसलिए अवांछित) कार्यक्षमता की भविष्यवाणी की जानी चाहिए और किसी भी स्तर पर 'अनुमति' दी जानी चाहिए।
  4. स्वचालित परीक्षण चलाएं और उन्हें सफल देखें। यदि सभी टेस्ट केस अब पास हो जाते हैं, तो प्रोग्रामर आश्वस्त हो सकता है कि कोड सभी परीक्षण आवश्यकताओं को पूरा करता है। यह एक अच्छा बिंदु है जिससे चक्र के अंतिम चरण को शुरू किया जा सकता है।
  5. रिएक्टर कोड। अब कोड आवश्यकतानुसार साफ किया जा सकता है। परीक्षण के मामलों को फिर से चलाकर, डेवलपर आश्वस्त हो सकता है कि रिफैक्टरिंग किसी भी मौजूदा कार्यक्षमता को नुकसान नहीं पहुंचा रही है। डुप्लिकेशन को हटाने की अवधारणा किसी भी सॉफ्टवेयर डिजाइन का एक महत्वपूर्ण पहलू है। इस मामले में, हालांकि, यह परीक्षण कोड और उत्पादन कोड के बीच किसी भी डुप्लिकेशंस को हटाने के लिए भी लागू होता है - उदाहरण के लिए चरण 3 में परीक्षण पास करने के लिए, दोनों में जादू संख्या या स्ट्रिंग जो दोहराई गई थीं।

दोहराएं

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

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

+0

एक महान और विस्तृत उत्तर के लिए धन्यवाद! – Anirudh

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