গত কয়েক বছর ধরে নেট নেট সম্প্রদায়ের মধ্যে টেস্ট ড্রাইভেন ডেভলপমেন্ট ক্রোধ। সম্প্রতি, আমি বিডিডি সম্পর্কে ALT.NET সম্প্রদায়ের মধ্যে গ্রুডিং শুনেছি। এটা কি? এটি টিডিডি থেকে কী আলাদা করে তোলে?
গত কয়েক বছর ধরে নেট নেট সম্প্রদায়ের মধ্যে টেস্ট ড্রাইভেন ডেভলপমেন্ট ক্রোধ। সম্প্রতি, আমি বিডিডি সম্পর্কে ALT.NET সম্প্রদায়ের মধ্যে গ্রুডিং শুনেছি। এটা কি? এটি টিডিডি থেকে কী আলাদা করে তোলে?
উত্তর:
আমি বুঝতে BDD সম্পর্কে আরো হতে স্পেসিফিকেশন চেয়ে পরীক্ষামূলক । এটি ডোমেন চালিত ডিজাইনের সাথে লিঙ্কযুক্ত (আপনি কি এই * ডিডি সংক্ষিপ্ত শব্দগুলি পছন্দ করেন না?)
এটি উচ্চ-স্তরের পরীক্ষাসহ ব্যবহারকারী গল্পগুলি লেখার একটি নির্দিষ্ট উপায়ের সাথে যুক্ত। টম টেন থিজের একটি উদাহরণ :
Story: User logging in
As a user
I want to login with my details
So that I can get access to the site
Scenario: User uses wrong password
Given a username 'jdoe'
And a password 'letmein'
When the user logs in with username and password
Then the login form should be shown again
(তার নিবন্ধে, টম রুবিতে এই পরীক্ষার স্পেসিফিকেশন সরাসরি সম্পাদন করতে যান))
বিডিডির পোপ ড্যান উত্তর । আপনি তাঁর পরিচয় বিডিডি নিবন্ধে একটি দুর্দান্ত ভূমিকা পাবেন ।
আপনি এই ভিডিওতে বিডিডি এবং টিডিডির তুলনা পাবেন । জেরেমি ডি মিলার দ্বারা "টিডিডি সঠিকভাবে সম্পন্ন" হিসাবে বিডিডি সম্পর্কে একটি মতামত
মার্চ 25, 2013 আপডেট
উপরের ভিডিওটি কিছু সময়ের জন্য নিখোঁজ রয়েছে। এখানে সাম্প্রতিক এক লেলেভেলিন ফ্যালকো, বিডিডি বনাম টিডিডি (ব্যাখ্যা করেছেন) । আমি তার ব্যাখ্যা পরিষ্কার এবং মূখ্য।
আমার কাছে বিডিডি এবং টিডিডির মধ্যে প্রাথমিক পার্থক্য হ'ল ফোকাস এবং শব্দচয়ন। শব্দগুলি আপনার অভিপ্রায় জানাতে গুরুত্বপূর্ণ।
টিডিডি পরীক্ষার দিকে ফোকাসের নির্দেশ দেয়। এবং যেহেতু "পুরাতন জলপ্রপাতের জগতে" পরীক্ষাগুলি প্রয়োগের পরে আসে, তারপরে এই মানসিকতা ভুল বোঝাপড়া এবং আচরণের দিকে পরিচালিত করে।
বিডিডি আচরণ এবং নির্দিষ্টকরণের দিকে ফোকাসের নির্দেশ দেয় এবং তাই জলপ্রপাতের মনগুলি বিভ্রান্ত হয়। সুতরাং বিডিডি আরও সহজে ডিজাইনের অনুশীলন হিসাবে বোঝা যায়, পরীক্ষার অনুশীলন হিসাবে নয়।
মনে হয় দুই ধরণের বিডি আছে।
প্রথমটি হ'ল মূল শৈলী যা ড্যান উত্তর আলোচনা করে এবং যার ফলে xBhaha শৈলী কাঠামো তৈরি হয়েছিল। আমার কাছে এই স্টাইলটি ডোমেন অবজেক্টের বিরুদ্ধে স্বীকৃতি পরীক্ষার জন্য বা স্পেসিফিকেশনের জন্য প্রাথমিকভাবে প্রযোজ্য।
দ্বিতীয় শৈলীটি হ'ল ডেভ অ্যাসটেলগুলি জনপ্রিয় এবং কোনটি আমার কাছে টিডিডির একটি নতুন রূপ যা এর মারাত্মক কিছু সুবিধা রয়েছে। এটি টেস্টিংয়ের পরিবর্তে আচরণের উপর মনোনিবেশ করে এবং ছোট পরীক্ষার ক্লাসগুলিও, যেখানে আপনি মূলত স্পেসিফিকেশন (পরীক্ষা) পদ্ধতিতে একটি লাইন রাখেন সেই বিন্দুতে পৌঁছানোর চেষ্টা করে। এই স্টাইলটি পরীক্ষার সমস্ত স্তরের স্যুট করে এবং যে কোনও বিদ্যমান ইউনিট টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করেই করা যেতে পারে যদিও নতুন ফ্রেমওয়ার্ক (এক্সএসপেক স্টাইল) পরীক্ষার চেয়ে আচরণের দিকে মনোনিবেশ করতে সহায়তা করে।
এখানে একটি বিডিডি গ্রুপও রয়েছে যা আপনি দরকারী হিসাবে খুঁজে পেতে পারেন:
টেস্ট-চালিত বিকাশ একটি পরীক্ষামূলকভাবে প্রথম সফ্টওয়্যার বিকাশ পদ্ধতি, যার অর্থ এটি পরীক্ষিত হবে এমন আসল কোড লেখার আগে টেস্ট কোড লেখার প্রয়োজন। কেন্ট বেকের কথায়:
শৈলীটি এখানে কোডের কয়েকটি লাইন লিখতে হবে, তারপরে একটি পরীক্ষা চালানো উচিত, এমনকি আরও ভাল, পরীক্ষা না চালানো যা চালিত হয় না, তারপরে কোডটি লিখুন যা এটি চালিয়ে দেবে।
কোডের একটি ছোট টুকরা কীভাবে লিখবেন তা নির্ধারণের পরে, এখন, কেবল কোডিংয়ের পরিবর্তে আমরা তাত্ক্ষণিক প্রতিক্রিয়া পেতে এবং "কোডটি কিছুটা, কিছুটা পরীক্ষা করতে, কিছুটা কোড, কিছুটা পরীক্ষা করতে চাই" practice সুতরাং আমরা অবিলম্বে এটির জন্য একটি পরীক্ষা লিখি।
সুতরাং টিডিডি হ'ল একটি নিম্ন-স্তরের, প্রযুক্তিগত পদ্ধতি যা প্রোগ্রামাররা কাজ করে এমন পরিষ্কার কোড তৈরি করতে ব্যবহার করে।
আচরণ-চালিত বিকাশ একটি পদ্ধতি যা টিডিডির উপর ভিত্তি করে তৈরি হয়েছিল, কিন্তু এমন একটি প্রক্রিয়াতে বিকশিত হয়েছিল যা কেবল প্রোগ্রামার এবং পরীক্ষককেই উদ্বেগ করে না, পরিবর্তে পুরো দল এবং সমস্ত গুরুত্বপূর্ণ স্টেকহোল্ডার, প্রযুক্তিগত এবং অ-প্রযুক্তিগতদের সাথে ডিল করে। টিডিডি ভাল উত্তর দেয় না এমন কয়েকটি সাধারণ প্রশ্নের মধ্যে বিডিডি শুরু করেছিল: আমার কত পরীক্ষা লিখতে হবে? আমার আসলে কী পরীক্ষা করা উচিত - এবং আমার কী করা উচিত নয়? আমি কোন পরীক্ষাগুলি লিখি তা ব্যবসায়ের পক্ষে বা পণ্যের সামগ্রিক মানের জন্য গুরুত্বপূর্ণ হবে এবং কোনটি কেবল আমার ওভার ইঞ্জিনিয়ারিং?
আপনি দেখতে পাচ্ছেন, এই জাতীয় প্রশ্নগুলির জন্য প্রযুক্তি এবং ব্যবসায়ের মধ্যে সহযোগিতা প্রয়োজন। ব্যবসায়ের স্টেকহোল্ডার এবং ডোমেন বিশেষজ্ঞরা প্রায়শই ইঞ্জিনিয়ারদের বলতে পারবেন যে কোন ধরণের পরীক্ষাগুলি তাদের দরকারী হবে sound তবে পরীক্ষাগুলি যদি উচ্চ-স্তরের পরীক্ষাগুলি হয় যা গুরুত্বপূর্ণ ব্যবসায়ের দিকগুলি নিয়ে কাজ করে। বিডিডি এই ধরণের ব্যবসায়ের মতো পরীক্ষাগুলিকে "উদাহরণগুলি" বলে, যেমন "আমাকে এই বৈশিষ্ট্যটি কীভাবে সঠিকভাবে আচরণ করা উচিত তার একটি উদাহরণ বলুন" এবং ডেটা বৈধকরণ বা API সংহতকরণের পরীক্ষার মতো নিম্ন-স্তরের, প্রযুক্তিগত চেকগুলির জন্য "পরীক্ষা" শব্দটি সংরক্ষণ করে। গুরুত্বপূর্ণ অংশটি হ'ল পরীক্ষাগুলি কেবল প্রোগ্রামার এবং পরীক্ষকগণ দ্বারা তৈরি করা যেতে পারে , উদাহরণগুলি পুরো সরবরাহকারী দল design ডিজাইনার, বিশ্লেষক এবং আরও কিছু দ্বারা সংগ্রহ এবং বিশ্লেষণ করতে পারে।
একটি বাক্যে, আমি এখনও অবধি বিডিডির একটি সেরা সংজ্ঞা পেয়েছি যে বিডিডি হ'ল "ডোমেন বিশেষজ্ঞদের সাথে কথোপকথন করা এবং পছন্দসই আচরণের একটি ভাগ বোঝার জন্য উদাহরণগুলি ব্যবহার করা এবং অজানাগুলি আবিষ্কার করা" সম্পর্কে। আবিষ্কারের অংশটি খুব গুরুত্বপূর্ণ। ডেলিভারি টিম আরও উদাহরণ সংগ্রহ করার সাথে সাথে তারা ব্যবসায়ের ডোমেনটি আরও বেশি করে বুঝতে শুরু করে এবং এভাবে তারা যে পণ্যটির সাথে ডিল করতে হয় তার কয়েকটি দিক সম্পর্কে তাদের অনিশ্চয়তা হ্রাস করে। অনিশ্চয়তা হ্রাস পাওয়ার সাথে সাথে ডেলিভারি দলের সৃজনশীলতা এবং স্বায়ত্তশাসন বৃদ্ধি পায়। উদাহরণস্বরূপ, তারা এখন তাদের নিজস্ব উদাহরণগুলি সাজানো শুরু করতে পারেন যা প্রযুক্তি ব্যবহারকারীরা তাদের প্রযুক্তিগত দক্ষতার অভাবে সম্ভব বলে মনে করেন নি।
এখন, ব্যবসায় এবং ডোমেন বিশেষজ্ঞদের সাথে কথোপকথন করা দুর্দান্ত শোনায় তবে কীভাবে প্রায়শই বাস্তবে এটি শেষ হয় তা আমরা সকলেই জানি। আমি প্রোগ্রামার হিসাবে প্রযুক্তি দিয়ে আমার যাত্রা শুরু। প্রোগ্রামার হিসাবে, আমাদের কোড অ্যালগোরিদম, ডিজাইনের নিদর্শন, বিমূর্ততা লিখতে শেখানো হয় । অথবা, আপনি যদি ডিজাইনার হন তবে আপনাকে ডিজাইন করতে শেখানো হয়তথ্যকে সংগঠিত করুন এবং সুন্দর ইন্টারফেস তৈরি করুন। তবে যখন আমরা আমাদের এন্ট্রি-লেভেল চাকরি পাই, আমাদের নিয়োগকর্তারা আমাদের "ক্লায়েন্টদের কাছে মূল্য প্রদান" করার প্রত্যাশা করেন। এবং সেই ক্লায়েন্টগুলির মধ্যে যেমন হতে পারে ... একটি ব্যাংক। তবে আমি কীভাবে আমার অ্যাকাউন্টের ভারসাম্যকে দক্ষতার সাথে কমাতে পারি তা ছাড়া ব্যাংকিং সম্পর্কে কিছুই জানতে পারি না। সুতরাং আমাকে কোডে আমার কাছ থেকে প্রত্যাশিত কিছুর অনুবাদ করতে হবে ... যদি আমি কোনও মূল্য দিতে চাই তবে ব্যাংকিং এবং আমার প্রযুক্তিগত দক্ষতার মধ্যে একটি সেতু তৈরি করতে হবে। বিডিডি আমাকে বিতরণকারী দল এবং ডোমেন বিশেষজ্ঞদের মধ্যে তরল যোগাযোগের একটি স্থিতিশীল ভিত্তিতে এই জাতীয় একটি সেতু তৈরিতে সহায়তা করে।
আরও জানুন
আপনি যদি বিডিডি সম্পর্কে আরও পড়তে চান তবে আমি এই বিষয়টিতে একটি বই লিখেছি। "গ্রেট স্পেসিফিকেশন রাইটিং" প্রয়োজনীয়তা বিশ্লেষণের শিল্পটি অন্বেষণ করে এবং আপনাকে কীভাবে একটি দুর্দান্ত বিডিডি প্রক্রিয়া তৈরি করতে এবং সেই প্রক্রিয়ার মূল অংশ হিসাবে উদাহরণগুলি ব্যবহার করতে শেখাতে সহায়তা করবে। বইটি সর্বব্যাপী ভাষা সম্পর্কে, উদাহরণ সংগ্রহ করার জন্য, এবং উদাহরণগুলির মধ্যে তথাকথিত এক্সিকিউটেবল স্পেসিফিকেশন (স্বয়ংক্রিয় পরীক্ষা) তৈরি করার বিষয়ে কথা বলেছে — এমন কৌশলগুলি যা বিডিডি দলগুলিকে সময় এবং বাজেটে দুর্দান্ত সফটওয়্যার সরবরাহ করতে সহায়তা করে।
আপনি যদি "গ্রেট স্পেসিফিকেশন রাইটিং" কেনার বিষয়ে আগ্রহী হন তবে আপনি প্রমো কোড 39nicieja2 দিয়ে 39% সংরক্ষণ করতে পারবেন :)
আমি বিডিডি পদ্ধতির সাথে সামান্য পরীক্ষা-নিরীক্ষা করেছি এবং আমার অকালীন উপসংহারটি হ'ল বিডিডি কেস বাস্তবায়নের জন্য উপযুক্ত, তবে অন্তর্নিহিত বিশদগুলিতে নয়। টিডিডি এখনও সেই স্তরের উপরে রয়েছে।
বিডিডি যোগাযোগের সরঞ্জাম হিসাবেও ব্যবহৃত হয়। লক্ষ্যটি হল এক্সিকিউটেবল স্পেসিফিকেশন লিখুন যা ডোমেন বিশেষজ্ঞরা বুঝতে পারবেন।
আমার কাছে মনে হয় বিডিডি একটি বিস্তৃত সুযোগ। এটি প্রায়শই বোঝায় যে টিডিডি ব্যবহার করা হয়, যে বিডিডি একটি অন্তর্ভুক্ত পদ্ধতি যা অন্যান্য প্রতিক্রিয়াগুলির মধ্যে টিডিডি দ্রুত প্রতিক্রিয়া নিশ্চিত করার জন্য ব্যবহারের জন্য প্রয়োজনীয় তথ্য এবং প্রয়োজনীয়তা সংগ্রহ করে।
আচরণগত চালিত বিকাশ বিকাশকারীদের মধ্যে এবং বিকাশকারীদের এবং পরীক্ষকদের মধ্যে পারস্পরিক মিথস্ক্রিয়া এবং যোগাযোগের ক্ষেত্রে আরও মনোনিবেশ করে বলে মনে হচ্ছে।
উইকিপিডিয়া নিবন্ধটির একটি ব্যাখ্যা রয়েছে:
নিজে বিডিডি অনুশীলন করছি না যদিও।
ডিজাইনের জন্য টিডিডির প্রাথমিক সুবিধা বিবেচনা করুন। একে টেস্ট ড্রাইভেন ডিজাইন বলা উচিত। বিডিডি টিডিডির একটি উপসেট, এটিকে আচরণ ড্রাইভ ডিজাইন বলে।
এখন টিডিডি - ইউনিট পরীক্ষার একটি জনপ্রিয় বাস্তবায়ন বিবেচনা করুন। ইউনিট পরীক্ষার ইউনিটগুলি সাধারণত যুক্তিগুলির এক বিট যা আপনার তৈরি করা সবচেয়ে ছোট ইউনিট।
যখন আপনি এই ইউনিটগুলিকে মেশিনগুলিতে পছন্দসই আচরণটি বর্ণনা করার জন্য কার্যকরী উপায়ে একত্রে রাখেন তখন আপনাকে মেশিনের সাথে যে আচরণটি বর্ণনা করছেন তা বোঝা দরকার। আচরণের চালিত নকশা প্রয়োগের ক্ষেত্রে / প্রয়োজনীয়তাগুলি / যা যাই হোক না কেন এবং প্রতিটি বৈশিষ্ট্যটির বাস্তবায়ন যাচাই করে তা প্রয়োগকারীদের বোঝার বিষয়টি যাচাই করার উপর দৃষ্টি নিবদ্ধ করে। বিডিডি এবং টিডিডি সাধারণভাবে ডিজাইনকে অবহিত করার গুরুত্বপূর্ণ উদ্দেশ্য এবং বাস্তবায়নের যথার্থতা যাচাইয়ের দ্বিতীয় উদ্দেশ্যটি বিশেষত যখন পরিবর্তন হয় ser বিডিডি সঠিকভাবে সম্পন্ন হয়েছে বিজ এবং দেব (এবং কিএএ) এর সাথে জড়িত, অন্যদিকে ইউনিট টেস্টিং (সম্ভবত ভুলভাবে এক ধরণের টিডিডির পরিবর্তে টিডিডি হিসাবে দেখা যায়) সাধারণত দেব সাইলোতে করা হয়।
আমি যোগ করব বিডিডি পরীক্ষা জীবনযাত্রার প্রয়োজনীয়তা হিসাবে পরিবেশন করে।
বিডিডি মূলত টিডিডি সঠিকভাবে করা হয়। তবে, অতিরিক্ত মূল্য রয়েছে যা বিডিডি অফার করে। এখানে একটি লিঙ্ক এখানে:
টিডিডি এবং বিডিডি-তে কোনও পার্থক্য নেই। আপনি যদি আপনার পরীক্ষাগুলি আরও ভাল করে পড়তে পারেন তবে আপনি সেগুলি প্রয়োজন হিসাবে ব্যবহার করতে পারেন। আপনি যদি বিডিডি পরীক্ষা লেখার জন্য একই শব্দগুলির সাথে আপনার প্রয়োজনীয়তাগুলি লিখেন তবে আপনি কোড লেখার জন্য প্রস্তুত কয়েকটি পরীক্ষার সাথে আপনার ক্লায়েন্টকে ফিরিয়ে আনতে পারেন।
পরীক্ষা-চালিত বিকাশ (টিডিডি) এবং আচরণ-চালিত বিকাশের (বিডিডি) মধ্যে পার্থক্য
বিডিডি সিস্টেমের
বাস্তবায়নের দিকটির পরিবর্তে সিস্টেমের আচরণগত দিকগুলিতে মনোনিবেশ করে যেখানে টিডিডি ফোকাস করে।
বিডিডি
বিকাশকারী এবং গ্রাহকের দৃষ্টিকোণ থেকে সিস্টেমটি কী করা উচিত সে সম্পর্কে একটি পরিষ্কার বোঝার সুযোগ দেয় । টিডিডি কেবল
বিকাশকারীকে সিস্টেমটি কী করা উচিত তা বোঝায়।
বিডিডি বিকাশকারী এবং গ্রাহক উভয়কেই সিস্টেমের উত্স কোডের মধ্যে থাকা প্রয়োজনীয়তা বিশ্লেষণে একসাথে কাজ করার অনুমতি দেয়।
দ্রুত স্ন্যাপশট এখানে:
টিডিডি কোড লেখার আগে কেবল টেস্টিংয়ের প্রক্রিয়া!
ডিডিডি হ'ল প্রতিটি স্পর্শ কোডের চক্রের আগে ডোমেন সম্পর্কে অবহিত হওয়ার প্রক্রিয়া!
বিডিডি টিডিডি একটি বাস্তবায়ন যা ডিডিডির কিছু দিক নিয়ে আসে!