मैं व्यवहार प्रेरित विकास पद्धति (उर्फ बीडीडी) का एक मुखर प्रस्तावक हूं। मैं अब कुछ वर्षों के लिए BDD आवेदन कर रहा हूं, और DotNet अनुप्रयोगों को विकसित करते समय StoryQ को अपनी पसंद के ढांचे के रूप में अपनाया है । भले ही मैं कई वर्षों से इकाई परीक्षण कर रहा हूं, और पहले परीक्षण-पहले दृष्टिकोण में स्थानांतरित हो गया था, मैंने पाया है कि मुझे BDD ढांचे का उपयोग करने से बहुत अधिक मूल्य मिलता है, क्योंकि मेरे परीक्षण अपेक्षाकृत आवश्यकताओं की मंशा पर कब्जा करते हैं मेरे कोड के भीतर स्पष्ट अंग्रेजी, और क्योंकि मेरे परीक्षण परीक्षण के आधे रास्ते को समाप्त किए बिना कई कथनों को निष्पादित कर सकते हैं - जिसका अर्थ है कि मैं यह देख सकता हूं कि कौन से विशिष्ट दावे इसे साबित करने के लिए डिबगिंग के बिना एक नज़र में पास / असफल हो जाते हैं।
यह वास्तव में मेरे लिए हिमशैल का टिप रहा है, जैसा कि मैंने यह भी देखा है कि मैं परीक्षण और कार्यान्वयन कोड को अधिक लक्षित तरीके से डीबग करने में सक्षम हूं, जिसके परिणाम से मेरी उत्पादकता में काफी वृद्धि हुई है, और यह कि मैं और अधिक कर सकता हूं आसानी से यह निर्धारित किया जाता है कि यदि कोई समस्या उत्पन्न होती है, तो यह उस समस्या के कारण होता है जो एकीकरण के निर्माण के लिए सभी तरह से होता है जो निर्माण लॉग में अपना रास्ता बनाता है। इसके अलावा, StoryQ एपीआई में एक प्यारा धाराप्रवाह सिंटैक्स है जिसे सीखना आसान है और जिसे असाधारण संख्या में लागू किया जा सकता है, इसके लिए किसी बाहरी निर्भरता की आवश्यकता नहीं है।
तो इन सभी लाभों के साथ, आप बाकी टीम के लिए अवधारणा को पेश करना आसान समझेंगे। दुर्भाग्य से, टीम के अन्य सदस्य इसे ठीक से मूल्यांकन करने के लिए स्टोरीक्यू को देखने के लिए अनिच्छुक हैं (अकेले बीडीडी को लागू करने के विचार का मनोरंजन करें), और हमारे स्वयं के मुख्य परीक्षण ढांचे से भी कई स्टोरीक्यू तत्वों को आज़माने के लिए एक दूसरे को आश्वस्त किया है, यहां तक कि हालांकि वे मूल रूप से StoryQ के उपयोग का समर्थन करते थे, और भले ही वे जिस कोड को निकालना चाहते हैं वह हमारे परीक्षण प्रणाली के किसी अन्य भाग पर कोई प्रभाव नहीं डालता है। ऐसा करने से मेरा काम का बोझ काफी हद तक बढ़ जाएगा और वास्तव में अनाज के खिलाफ हो जाता है, क्योंकि मैं व्यावहारिक अनुभव के माध्यम से आश्वस्त हूं कि यह हमारे विशेष रूप से काम के माहौल में परीक्षण-पहले तरीके से काम करने का एक बेहतर तरीका है, और केवल अधिक से अधिक नेतृत्व कर सकता है हमारे सॉफ्टवेयर की गुणवत्ता में सुधार, मुझे दिया गया ' ve पहले BDD का उपयोग करके परीक्षण के साथ रहना आसान पाया। आगे स्पष्ट करने के लिए, हमारे द्वारा परीक्षण किए गए इकाई परीक्षणों में से अधिकांश काफी भंगुर और बनाए रखने में मुश्किल है, खराब रूप से लागू परीक्षण के वर्षों से एक होल्डओवर जहां परीक्षण-संचालित प्रक्रिया के साथ छड़ी करने की अनिच्छा डेवलपर्स ने पुरानी आदतों पर वापस गिरते देखा है। परियोजना के अंत में उनके सभी परीक्षण करते हैं (ये वही लोग चुस्त होने का दावा करते हैं!)।
तो सवाल वास्तव में निम्नलिखित के लिए नीचे आता है:
- बिंदु घर को चलाने के लिए मैं किन तर्कों का उपयोग कर सकता हूं कि इस टीम के लिए स्टोरीक्यू का उपयोग करना बेहतर होगा, या बहुत कम से कम बीडीडी पद्धति को अपनाना होगा?
- क्या आप मुझे किसी भी ऐसे प्रत्यक्ष प्रमाण की ओर संकेत कर सकते हैं जिसका उपयोग मैं अपनी मानक विधि के रूप में BDD को अपनाने के लिए अपने तर्क का समर्थन करने के लिए कर सकता हूं?
- आप जो तर्क सोच सकते हैं, वह यह सुझाव दे सकता है कि बीडीडी को अपनाने के लिए टीम को प्रोत्साहित करने की मेरी इच्छा त्रुटि में हो सकती है? हां, मैं गलत साबित होने से खुश हूं बशर्ते कि तर्क एक ध्वनि हो।
नोट : मैं इस बात की वकालत नहीं कर रहा हूं कि हम अपने परीक्षणों को उनकी संपूर्णता में फिर से लिखें, बल्कि भविष्य के सभी परीक्षण कार्यों के लिए बस एक अलग तरीके से काम करना शुरू करें, और अधिमानतः जिस तरह से हम अपने ग्राहकों को संलग्न करते हैं।
और आप बीडीडी के बारे में अधिक जानने के इच्छुक लोगों के लिए, निम्नलिखित लिंक उपयोगी हो सकते हैं:
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Introduction
अधिक विवरणों में रुचि रखने वालों के लिए, हम 4 की एक छोटी सी टीम के बारे में 5 बड़ी परियोजनाओं पर काम कर रहे हैं। BDD के लिए "पायलट ट्रायल" शुरू में लगभग 2 महीने तक चला, इसके बाद लगभग 4 महीने की अवधि हुई। टीम ने स्वीकार किया कि मुझे इस तरह से काम करना जारी रखना चाहिए और अपने स्वयं के परीक्षण करने थे। मुझे बीडीडी-आईएनजी के बारे में 2 साल हो गए हैं क्योंकि परीक्षण समाप्त हो गया है, जबकि अन्य मुद्दे को चकमा देने में बहुत अच्छे हैं। इस मुद्दे पर "टकराव" को मजबूर करने के बजाय, मैं टीम को धीरे-धीरे राजी करने के तरीकों की तलाश कर रहा हूं ताकि अपने सामूहिक बियांड से दूर हो जाऊं और अपना काम करने का समय बना सकूं।