2011-12-13 13 views
8

के लिए स्पेकफ़्लो का उपयोग करना हम बीडीडी को नियोजित कर रहे हैं और हमारे विकास (एटीडीडी) को चलाने के लिए स्पेकफ्लो का उपयोग कर रहे हैं।एंड-टू-एंड रीग्रेशन टेस्टिंग

हमारी क्यूए टीम अपने स्वयं के 'एंड-टू-एंड रिग्रेशन टेस्ट (गेरकिन/स्पेकफ्लो में) को परिभाषित करना चाहती है और हमने पहले से परिभाषित चरणों का फिर से उपयोग करना चाहेंगे।

(कृपया ध्यान दें - मुझे पता है कि यह एक बहुत अच्छा उदाहरण नहीं है बल्कि यह पर्याप्त विवरण प्रदान करना चाहिए)

एक परीक्षण शामिल हो सकते हैं ..

  1. लॉग इन एक उत्पाद
  2. के लिए
  3. खोजें
  4. खरीदने के लिए कोई उत्पाद चुनें
  5. डिलीवरी विकल्प का चयन करें।
  6. आदेश जमा करें।
  7. आदेश रद्द करें।

यह होगा एक परिदृश्य पता चलता है की तरह ..

को देखते हुए मैं जब मैं एक उत्पाद
के लिए खोज
में लॉग इन कर रहा हूँ और मैं
खरीदने के लिए एक उत्पाद का चयन करें और मैं एक आदेश बनाएं
और मैं डिलीवरी विकल्प
का चयन करता हूं और मैं ऑर्डर
सबमिट करता हूं और मैं ऑर्डर
रद्द करता हूं ?? !!

जो स्पष्ट रूप से गलत है क्योंकि हम प्रत्येक चरण में आउटपुट की जांच नहीं कर रहे हैं।

परिदृश्य 1::

तो यह परिदृश्यों के एक दृश्य के रूप में हल किया जा सकता है
को देखते हुए मैं जब मैं एक उत्पाद
तो मैं उत्पादों

की एक सूची देखने के लिए खोज
में लॉग इन कर रहा हूँ

परिदृश्य 2:
जब मैं एक उत्पाद का चयन करें खरीदने के लिए
तो मैं एक आदेश बना सकते हैं

परिदृश्य 3:
जब मैं आदेश
बनाने और मैं वितरण विकल्प का चयन करें
तब मैं आदेश प्रस्तुत कर सकते हैं

आदि आदि

इस के साथ मुख्य मुद्दा है कोई रास्ता नहीं लगता है कि ऑर्डर/अनुक्रम निर्दिष्ट करने के लिए कि परिदृश्य चलाए जा रहे हैं (nnnit की विशेषता?)। क्योंकि परिदृश्यों के बीच निर्भरताएं हैं (वे एक शुरुआती बिंदु पर सेट नहीं हैं) उन्हें क्रम में चलाना चाहिए।

मेरे प्रश्न हैं:

क) हम एक गोल छेद में एक वर्ग खूंटी फिट करने के लिए कोशिश कर रहे हैं ?!

बी) क्या किसी को पता है कि इस तरह SpecFlow/Gherkin का उपयोग करने का कोई तरीका है?

सी) या क्या किसी को पता है कि विकल्प क्या हैं?

बहुत धन्यवाद!

उत्तर

11

मैं कहूंगा कि आप गलत परिस्थिति स्तर पर अपने परिदृश्य लिख रहे हैं। लेकिन यह उस पर निर्भर करता है कि आप उनके लिए क्या उपयोग करना चाहते हैं;

यदि आप टेस्ट-स्क्रिप्ट लिखना चाहते हैं तो आप सही रास्ते पर हैं ... लेकिन यह पहले के मामले में (लंबी लिपि) बहुत भंगुर होगा और दूसरा मामला (कई परिदृश्य) एक निश्चित निष्पादन आदेश सुनिश्चित करने की आवश्यकता है। उनमें से दोनों निराश हैं और विरोधी पैटर्न माना जाता है।

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

और जब आप उन "विनिर्देशों" को लिखते हैं (जैसा कि मैं उन्हें कॉल करता हूं) तो आप उन्हें उच्च स्तर पर लिखते हैं। तो बजाय लेखन की:

Given I am logged in 
When I Search for a product 
    And I Select a product to buy 
    And I Create an order 
    And I Select delivery option 
    And I Submit the order 

आप की तरह

When I submit an order for product 'Canned beans' 

कि कदम तुम सब है कि स्वचालन प्रदर्शन के पीछे कदम दर परिभाषाओं में कुछ लॉगिन, उत्पाद पृष्ठ के लिए ब्राउज़, वितरण विकल्प का चयन बारे में (, आदेश जमा करें)।

मुझे आशा है कि इस मदद करता है

+0

आपका जवाब मार्कस और लेख आप सूची के लिए बहुत-बहुत धन्यवाद - बहुत मददगार! मैं परीक्षण से quesion पर अब थोड़ा स्पष्ट हूँ। यही वह है 'क्या हमारे पास एंड-टू-एंड सिस्टम परीक्षण करने के अनुक्रम में चलाने के लिए पहले से लिखे गए परिदृश्यों को एक साथ श्रृंखला करने की क्षमता है?' जैसे लॉग इन करें, फिर उत्पादों को ब्राउज़ करें, फिर ऑर्डर सबमिट करें, फिर खाता पंजीकृत करें, फिर खाते को संपादित करें, फिर ऑर्डर करें, फिर ऑर्डर देखें, फिर ऑर्डर रद्द करें इत्यादि। इसलिए यह उपयोगी होगा क्योंकि चेन परिदृश्यों में सक्षम होने के लिए जब तब फिर कब कब .. दुर्भाग्य से वहां विशिष्ट क्रम में परिदृश्य चलाने का एक तरीका प्रतीत नहीं होता है। –

+0

अद्यतन: यदि परिदृश्यों को '001 ऐसा करें' नाम दिया गया है, '002 ऐसा करें' आदि तो वे उस क्रम में चल रहे हैं। थोड़ा हैकी लगता है लेकिन हमारे उद्देश्यों के लिए यह तब तक करेगा जब तक एक बेहतर समाधान नहीं मिल सके। –

+1

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

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