2009-05-26 11 views
8

मान लीजिए कि मेरे पास उपयोगकर्ता कहानियों का एक गुच्छा है (योजना सत्र के परिणामस्वरूप मैं अपनी टीम के माध्यम से गया)। मैं आवेदन में किसी भी कोड अभी तक नहीं है और मेरे 'ए' या सर्वोच्च प्राथमिकता कहानियां/महाकाव्यउपयोगकर्ता कहानियां कोड

कहते हैं के साथ शुरू करने जा उदाहरण

"एक उपयोगकर्ता मैं के लिए खोज करने के लिए सक्षम होना चाहिए के रूप में के लिए अधिक उपयोगकर्ता ताकि मैं वेबसाइट "

पर अधिक मित्र जोड़ सकूं तो टीडीडी करते समय टीम को एप्लिकेशन को कोड करने के बारे में कैसे जाना चाहिए।

  • टीम ईकाई परीक्षण बनाने के साथ शुरू होता .कि बनाना मॉडल

    की देखभाल यानी
  • तब सब लोग एक कहानी लेता है और कार्यात्मक परीक्षण लेखन बनाने के लिए मेरी नियंत्रकों/दृश्य (शुरू होता है तो वे एकीकरण परीक्षण करना चाहिए जबकि कार्यात्मक परीक्षण)

  • लेखन फिर एकीकरण परीक्षणों

मैं वास्तव में सी कर रहा हूँ कर एकीकरण परीक्षण कैसे काम करते हैं। अगर सभी एकीकरण परीक्षण काम करते हैं (यानी सभी कार्यात्मक, इकाइयों के परीक्षणों को वैसे भी पास करना चाहिए)

तो, यदि आवेदन अभी शुरू हो रहा है (यानी कोई कोड अभी तक लिखा नहीं गया है)। स्क्रैच

उत्तर

2

यह निर्भर करता है "मैं वास्तव में उलझन में कैसे एकीकरण परीक्षणों in.if फिट सभी एकीकरण परीक्षणों काम (यानी सभी कार्यात्मक, इकाइयों परीक्षण वैसे भी पास करना चाहिए) हूँ।" निश्चित रूप से, एकीकरण परीक्षण लिखना संभव है कि सभी यूनिट और कार्यात्मक परीक्षण पास हो जाएं। यह बहुत मुश्किल है।

कल्पना कीजिए कि आपके पास 3 मॉडल, 3 नियंत्रक और 3 विचार हैं। कल्पना कीजिए कि सभी किसी भी परिस्थिति या लूप के साथ सुपर सरल हैं और प्रत्येक में एक विधि है।

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

यदि आप इकाइयों/फ़ंक्शंस को छोड़ देते हैं और पूर्ण कवरेज के लिए आवश्यक हैं, तो आपको 27 दावे (3 x 3 x 3) की आवश्यकता होगी।

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

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

2

पहले, कहानी को अलग तोड़ने के लिए लोगों को आम तौर पर टीडीडी/बीडीडी के लिए ले जाने की प्रक्रिया होती है। आपको इसकी आवश्यकता होगी:

  1. उपयोगकर्ता ऑब्जेक्ट: यह क्या करता है? इसे समझने के लिए कुछ परीक्षण बनाएं और कोड
  2. उपयोगकर्ताओं को खोजने का एक तरीका लिखें; शायद एक SearchUser सेवा? फिर परीक्षण एक तरह से उन कनेक्ट करने के लिए अब बना सकते हैं और लिखने कोड
  3. ...

, आप मॉडल है। इसके बाद, आप नियंत्रकों के लिए भी ऐसा ही करते हैं। जब वे काम करते हैं, तो आप विचारों से शुरू होते हैं।

या, जब आप एक समर्थक हैं और यह पहले से ही एक हजार बार किया है, तो आप एक साथ कई कदम रोल करने में सक्षम हो सकते हैं।

लेकिन आपको पहले समस्या को पचाने वाले टुकड़ों में काटना होगा।

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

आप इसके लिए httpunit या env.js आज़मा सकते हैं।

+0

इकाई/कार्यात्मक परीक्षण (यानी हमारे पास नियंत्रक और मॉडल तैयार होने के बाद) के बाद एकीकरण परीक्षण बनाए जाते हैं –

+1

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

+0

इटिशन परीक्षण आमतौर पर तब होते हैं जब आपकी प्रशंसा अन्य सिस्टम जैसे तृतीय पक्ष सिस्टम, डेटाबेस, फ्रेमवर्क या सिस्टम के साथ एकीकृत की जा रही है, जो कि एप्लिकेशन के दायरे में डिज़ाइन नहीं किए गए हैं। –

4

यह वह जगह है जहां हम आम तौर पर स्प्रिंट 0 से शुरू होते हैं और इस वसंत में जहां हमारे पास एक्सपी कॉल का स्पाइक सत्र (या कोड सत्र फेंकना) होगा। इस सत्र में आप प्रोटोटाइप शुरू कर सकते हैं।

अपने सत्र में कुछ उपयोगकर्ता स्वीकृति परीक्षण लिखें (अधिमानतः बीडीडी प्रारूप में) और फिर अपने यूएटी में से किसी एक से मेल खाने के लिए पहले एक परीक्षण लिखना शुरू करें।

उदाहरण के लिए:

एक खोज को देखते हुए अनुरोध किया जाता है जहां उपयोगकर्ता का नाम "testuser" 1 परिणाम लौटे किया जाना चाहिए।

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

तो मैं अगले स्प्रिंट इमारत कथाएँ/कार्य के दशक में शुरू के रूप में क्या आप स्प्रिंट 0.

6

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

"एक उपयोगकर्ता के रूप में मैं और अधिक उपयोगकर्ताओं को खोजने के लिए, ताकि मैं वेबसाइट पर और मित्र जोड़ने में सक्षम होना चाहिए"

given the website URL 
when the site loads 
then a search field should be visible/accessible. 

यह प्रतिक्रिया और पहली opportuniuty का अपना पहला टुकड़ा उत्पाद के साथ पुनरावृति करने के लिए है मालिक। प्रश्न पूछें जैसे खोज बार कहां जाना चाहिए? क्या इसे स्वतः पूरा करना चाहिए? आदि इसके बाद आप यूआई वस्तुओं के लिए व्यवहार आवंटित "ये भी मान्यता अंक

इस खोज बटन के व्यवहार निर्धारित करना होगा:।।

given a go button next to the search field 
when then button is clicked 
then a search should be performed 

यह आपके खोज के तर्क का वर्णन होगा:

given a search term "John" and a user set including "John, Joan, Jim, Steve" 
when a search is performed 
then the results should contain "John" an "Joan" 

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

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

2

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

तो, टीडीडी में आप इकाई परीक्षण लिखने से पहले एकीकरण परीक्षण लिखते हैं।

पूरी प्रक्रिया को बूटस्ट्रैप करने के लिए, आमतौर पर एक "चलने वाला कंकाल" लिखता है: एक प्रणाली जो यथार्थवादी कार्यक्षमता के सबसे पतले टुकड़े को संभव बनाता है। चलने वाले कंकाल को सरल कार्यक्षमता के खिलाफ एकीकरण परीक्षण आधारभूत संरचना का निर्माण करना है।

शेष परियोजना तब उस कंकाल को बाहर निकाल देती है।

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