2010-02-10 28 views
8

मैं XP से कुछ अवधारणाओं के साथ प्रयोग किया गया है, निम्नलिखित की तरह:क्या अत्यधिक प्रोग्रामिंग को आरेखण उपकरण की आवश्यकता है?

  1. जोड़ी
  2. टेस्ट पहले प्रोग्रामिंग
  3. इंक्रीमेंटल वितरण
  4. रुथलेस पुनर्रचना प्रोग्रामिंग

अब तक तो अच्छा जब तक मेरा कोई बड़ा स्टंप नहीं था:

मैं कैसे कर सकता हूं मेरे परीक्षण मामलों पर हस्ताक्षर करें जब अभी तक कोई कोड नहीं है? मुझे किस आधार से उन्हें डिजाइन करना है? सरल मान्यताओं से? प्रारंभिक आवश्यकताओं से?

या यह वह जगह है जहां यूएमएल आरेख और "विश्लेषण चरण" फिट बैठता है?

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

+1

बीटीडब्ल्यू, टेस्ट फर्स्ट प्रोग्रामिंग (टीएफपी) अब आमतौर पर टेस्ट ड्राइव डेवलपमेंट (टीडीडी) कहा जाता है और मुझे नहीं लगता कि यह कभी भी रूथलेस रिफैक्टरिंग था, लेकिन इसके बजाय निर्दयी रिफैक्टरिंग, जिसे टीडीडी के भीतर शामिल किया गया है। – quamrana

उत्तर

6

Agile प्रक्रियाएं अक्सर कागज आधारित होती हैं, लेकिन इससे कुछ बुनियादी धारणाएं होती हैं जो कॉर्पोरेट वातावरण में सच नहीं हो सकती हैं।

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

जब भी कोई कोड नहीं है तो मैं अपने परीक्षण मामलों को कैसे डिजाइन करूं? मुझे किस आधार पर उन्हें डिजाइन करना है? सरल धारणाओं से? प्रारंभिक आवश्यकताओं से?

यदि आप भाग्यशाली हैं तो आप "ऑन-साइट ग्राहक" के साथ प्रारंभिक आवश्यकताओं और चर्चाओं से सूचित उपयोगकर्ता की कहानी से शुरू करते हैं।

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

यह इस तरह से बदलता है कि विकास से प्रेरित है "मैं किस कोड को आगे लिखूं?" "मैं आगे क्या परीक्षा लिखूंगा?"। दूसरा सवाल तब तक जवाब देना आसान है जब तक आपके पास मूलभूत विचार हो कि आप क्या करना चाहते हैं।

+0

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

5

पर मेरे परीक्षण मामलों को कैसे डिजाइन किया जाए, अभी तक कोई कोड नहीं है? आधार से मुझे उन्हें डिज़ाइन करना होगा? से सरल धारणाएं? शुरुआती आवश्यकताओं से?

एक परीक्षा लिखने के लिए आपको किसी भी कोड की आवश्यकता नहीं है। आप अपने इनपुट जानते हैं और आप अपने अपेक्षित आउटपुट जानते हैं। तो आप इसे लागू करने के लिए एक टेस्ट केस डिज़ाइन कर सकते हैं।

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

+0

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

5

परीक्षण के मामले प्रारंभिक आवश्यकताओं से आते हैं। वे निर्दिष्ट करते हैं कि आप क्या निर्माण करने जा रहे हैं, तो परीक्षण कहां से आएंगे?

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

Google परीक्षण टीम इस दृष्टिकोण का बहुत शौकिया है और इसके बारे में व्यापक रूप से ब्लॉग किया है। Find out more.

2

XP में "विश्लेषण चरण" नहीं हैं।

आपको XP के साथ एक आरेखण उपकरण का उपयोग करने की आवश्यकता नहीं है, हालांकि यदि आप किसी का उपयोग करना चुनते हैं तो आपको रोकने के लिए कुछ भी नहीं है।

आप क्या मॉडल करना चाहते हैं?

ऐसा लगता है कि आप कार्यान्वयन को दस्तावेज करने के बजाय समस्या डोमेन (यानी विश्लेषण के लिए मॉडलिंग) का वर्णन करना चाहते हैं। XP पारंपरिक तरीकों की तरह काम नहीं करता है जहां एक विशेषज्ञ "विश्लेषण" करता है और दूसरा "कोडिंग" करता है। एक्सपी में यह संभावना है कि विश्लेषक एक डेवलपर है जो उपयोगकर्ता की कहानियों को तोड़ने और उनका अनुमान लगाने के लिए मिलकर काम कर रहे व्यवसाय में किसी के साथ काम कर रहा है।

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

+0

कोई आवश्यकता नहीं है? कोई wireframing? जैसे ही वे आपको प्रोजेक्ट देते हैं, आप इसे सीधे कोडिंग करने के लिए कूदते हैं? – yretuta

+0

आपको कम से कम एक पुनरावृत्ति के काम की योजना बनाने की आवश्यकता है - इसका मतलब है कि कम से कम एक से तीन सप्ताह के काम के लिए पर्याप्त अनुमान लगाया जा रहा है ... जिसमें व्यापार के साथ चर्चा शामिल होगी - सक्रिय वार्तालाप आरेखों की आर्क लीवर फाइल नहीं है .. – daf

+0

क्या आपने पहले एक्सपी के साथ काम किया है? मैंने कार्यालय में एक्सपी पेश किया लेकिन पल हमें एक नई परियोजना मिली, मुख्य कोडर ने इसे पकड़ लिया और सीधे कोड पर चला गया। एक्सपी के तहत एक परियोजना चलाने के लिए मैं उच्च अप्स को कैसे समझा सकता हूं? – yretuta