2012-02-27 22 views
5

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

उदाहरण के लिए (मैं वास्तविक व्यापार छिप गया है, लेकिन प्रक्रिया और कदम के रूप लगभग समान है):

Feature: Personal Diagnostic Search Filter 
    In order to select a Technician who offers Personal Diagnostics, 
    when I've asked for a Personal Diagnostic 
    As a Business Customer 
    I want to limit my search to Technicians who offer Personal Diagnostics 

    Background: 
    Given a Business named "Big Al's Auto Supply" 
     And a Customer named "Bob Test" at the "Big Al's Auto Supply" Business 
     And an Account named "[email protected]" owned by "Bob Test" 
     And the "[email protected]" Account has the "Repair Order Creator" 
     permission 
     And you log in as "[email protected]" 
     And you start scheduling a new Repair Order 

    Scenario: Enter the Select Technician page when Use PD is selected 
    Given you select Use PD 
    When you enter the Select Technician page 
    Then the PD Filter should be visible 
     And the PD Filter should be selected 

    Scenario: Basic Search for Technicians when PD Filter is selected 
    Given a Technician named "PD Technician" 
     And the Technician named "PD Technician" supports PD 
     And a Technician named "Non-PD Technician" 
     And the Technician named "Non-PD Technician" does not support PD 
     And you select Use PD 
     And you enter the Select Technician page 
     And you select the PD Filter 
     And you select Basic Search 
    When you search for Technicians with the name "Technician" 
    Then your search results should contain "PD Technician" 
     And your search results should not contain "Non-PD Technician" 

लेकिन the Gherkin wiki पर, यह है कि आप की सिफारिश की है:

बचें हालांकि, गिवेंस

वे एक अपवाद बनाने के लिए पर जाने में उपयोगकर्ता बातचीत के बारे में बात:

उपयोगकर्ता में लॉग इन करें (कोई-इंटरैक्शन अनुशंसा के लिए अपवाद। चीजें जो "पहले हुई" ठीक हैं)।

यह भी उस पृष्ठ पर कहा जाता है कि:

की जब चरणों उपयोगकर्ता प्रदर्शन कुंजी कार्रवाई का वर्णन करने के लिए है उद्देश्य

क्या एक को देखते हुए और क्या अंतर्गत आता है में अंतर्गत आता है एक समय में यदि आपके पास यूआई की बहुत सारी बातचीत है?

मेरे पहले परिदृश्य में, select Use PD को यूआई इंटरैक्शन की आवश्यकता है, क्योंकि यह एक नया मरम्मत आदेश बनाने के लिए विज़ार्ड का हिस्सा है। हालांकि यह पीडी फ़िल्टर को दिखने के लिए एक पूर्व शर्त है, और जब उपयोगकर्ता चयन तकनीशियन पृष्ठ में प्रवेश करता है तो ट्रिगर होता है।

पहला परिदृश्य इतना बुरा नहीं हो सकता है, लेकिन दूसरा परिदृश्य समस्या को बढ़ा देता है। जब आप पर हिट करते हैं तो खोज ट्रिगर होती है लेकिन उस पृष्ठ पर नेविगेट करने के लिए बहुत सारे यूआई इंटरैक्शन होते हैं। उन इंटरैक्शन में से कुछ को चमकदार नहीं किया जा सकता है, या तो Use PD खोज फ़िल्टर के लिए भी दिखने के लिए चुना जाना चाहिए। लेकिन उन UI इंटरैक्शन परिदृश्य के कुंजी क्रिया नहीं हैं।

उत्तर

8

एक सामान्य नियम के रूप में, परिदृश्य को वाक्यांश के रूप में जितना संभव हो उतना प्रयास करें जैसे कि आप इसके बारे में बातचीत कर रहे हैं, और जितना संभव हो उतना अप्रासंगिक जानकारी बहिष्कृत करें।

उदाहरण के लिए, मैं ऊपर अपने परिदृश्य प्यार की तरह कुछ पढ़ने के लिए चाहते हैं: तो फिर जो कुछ भी उन कदमों काम करने के लिए आवश्यक है

Given our customer Bob Test is scheduling a repair order 
And we have two technicians: "Fred Technician" and "George Nontechnician" 
When Bob Test decides he wants a Personal Diagnostic 
And he selects a technician 
Then the search results should only contain "Fred Technician" 

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

यह जांचना कि फ़िल्टर दृश्यमान है मूल्यवान नहीं है । उपयोगकर्ता परवाह नहीं है कि फ़िल्टर दिखाई दे रहा है। वह परवाह करता है कि वह अपने परिणाम प्राप्त करने के लिए फ़िल्टर का उपयोग कर सकता है, तो बस ऐसा करें।

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

भूमिकाओं के लिए दोस्ताना नामों का उपयोग करना भी उपयोगी है, क्योंकि लोग कल्पना कर सकते हैं कि फ्रेड और जॉर्ज कैसा दिखते हैं।

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

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

सामान्य रूप से, यदि आप किसी परिदृश्य को देखते समय अपनी आंखें चमकते हैं, तो आप कुछ गलत कर रहे हैं।

उम्मीद है कि इससे मदद मिलती है।

+0

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

+1

मुझे लगता है कि आपने मुझे एक महत्वपूर्ण टुकड़ा दिया है। मुझे शायद अपने डोमेन को समझने और उन्हें कम करने की आवश्यकता है। व्यवसाय बनाम यूआई इंटरैक्शन बनाम व्यवसाय में अभिनेताओं के खिलाफ खोज कुछ हद तक अलग डोमेन हैं, और [डीएनओर्थ का कहना है कि मेरे परिदृश्य में केवल 2 डोमेन होना चाहिए] (http://dannorth.net/2011/01/31/whose-domain- /)-वैसे भी है-यह। –

+0

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