বিডিডি এবং টিডিডির মধ্যে সম্পর্ক


30

বিডিডি এবং টিডিডির সম্পর্ক কী?

আমি যা বুঝেছি তা থেকে বিডিডি টিডিডি-র উপরে দুটি প্রধান বিষয় যুক্ত করে: পরীক্ষার নামকরণ (নিশ্চিত / হওয়া উচিত) এবং গ্রহণযোগ্যতা পরীক্ষা। বিডিডি দ্বারা উন্নয়নের সময় আমার কি টিডিডি অনুসরণ করা উচিত? যদি হ্যাঁ, আমার টিডিডি ইউনিট পরীক্ষাগুলির একই নামকরণ করা উচিত / নিশ্চিত করা উচিত শৈলী?


1
বিডিডি হ'ল ডকুমেন্টেড টিডিডিগুলির একটি সেট (ইউনিটস)
ডিডি

আচরণ চালিত ডিজাইন শিবির থেকে যে কেউ উত্তর যুক্ত করতে আগ্রহী ? আমার দৃষ্টিকোণ থেকে, এই উত্তরগুলি সবগুলিই বিডিডির প্রথম কয়েকটি পুনরাবৃত্তির সম্পর্কে। এই দিনগুলিতে বিডির সফল অ্যাপ্লিকেশনগুলি প্রায়শই ডিজাইনের কাছাকাছি থাকে এবং যথাযথ হলে স্বয়ংক্রিয় পরীক্ষাও সম্পূর্ণ বাদ দিতে পারে।
পল হিক্স

বিডিডি এবং টিডিডি-র মধ্যে পার্থক্যটি মাইক্রোঅকোনমিক্সের সাথে ম্যাক্রোকোনমিক্সের পার্থক্যের মতো like বিডিডি = উদাহরণগুলি ব্যবহার করে প্রয়োজনীয়তার একটি ধারণা তৈরি করা এবং allyচ্ছিকভাবে স্বয়ংক্রিয় ম্যাক্রো পরীক্ষা চালাতে ব্যবহৃত হতে পারে। (agilenoir.biz/en/am-i-behaioral- or-not), টিডিডি = লেখার কোডিং ড্রাইভ করার জন্য মাইক্রো টেস্ট লেখা। চতুর
ল্যান্স কাইন্ড

উত্তর:


37

বিডিডি টিডিডি চক্রের চারপাশে একটি চক্র যুক্ত করে।

সুতরাং আপনি একটি আচরণ দিয়ে শুরু করুন এবং এটি আপনার পরীক্ষাগুলি চালিত করুন, তারপরে পরীক্ষাগুলি বিকাশকে চালিয়ে দিন। আদর্শভাবে, বিডিডি এক ধরণের গ্রহণযোগ্যতা পরীক্ষা দ্বারা চালিত হয়, তবে এটি 100% প্রয়োজনীয় নয়। যতক্ষণ আপনার প্রত্যাশিত আচরণটি সংজ্ঞায়িত করা থাকে ততক্ষণ আপনি ঠিক আছেন।

সুতরাং, যাক যে আপনি একটি লগইন পৃষ্ঠা লিখছেন।

সুখী পথ দিয়ে শুরু করুন:

Given that I am on the login page
When I enter valid details
Then I should be logged into the site
And shown my default page

এই দেওয়া-এবং-কখন-এবং-এর পরে এবং সিনট্যাক্সটি আচরণ-চালিত বিকাশে সাধারণ। এর অন্যতম সুবিধা হ'ল এটি অ-বিকাশকারীদের দ্বারা (এবং, প্রশিক্ষণ সহ, লিখিত) পড়া যেতে পারে - অর্থাৎ, আপনার স্টেকহোল্ডাররা কোনও কার্যের সফল সমাপ্তির জন্য আপনি যে আচরণগুলি নির্ধারণ করেছেন সেগুলির তালিকা দেখতে পারে এবং এটি দেখতে পারে কিনা আপনি অসম্পূর্ণ পণ্যটি প্রকাশের অনেক আগে তাদের প্রত্যাশাগুলির সাথে মেলে।

ঘেরকিন নামে পরিচিত একটি স্ক্রিপ্টিং ভাষা রয়েছে, যা উপরের মত দেখতে অনেকটা দুর্দান্ত এবং আপনাকে এই আচরণগুলিতে ক্লজগুলির পিছনে টেস্ট কোড লেখার অনুমতি দেয়। আপনার স্বাভাবিক বিকাশের কাঠামোর জন্য আপনার ঘেরকিন ভিত্তিক অনুবাদকের সন্ধান করা উচিত। এটি এই উত্তরের সুযোগের বাইরে।

যাইহোক, আচরণ ফিরে। আপনার বর্তমান অ্যাপ্লিকেশনটি এখনও এটি করে না (যদি তা হয় তবে কেউ কেন পরিবর্তনের জন্য অনুরোধ করছে?), সুতরাং আপনি এই পরীক্ষায় ব্যর্থ হচ্ছেন, আপনি পরীক্ষার রানার ব্যবহার করছেন বা কেবল ম্যানুয়ালি পরীক্ষা করছেন।

সুতরাং এখন সময়টি সেই কার্যকারিতাটি সরবরাহ করার জন্য টিডিডি চক্রের দিকে চলে যায়।

আপনি বিডিডি লিখছেন বা না থাকুক না কেন, আপনার পরীক্ষাগুলি একটি সাধারণ বাক্য গঠনতে নামকরণ করা উচিত। আপনার বর্ণিত "should" সিনট্যাক্সটি সর্বাধিক সাধারণ।

একটি পরীক্ষা লিখুন: হোল্ডএসিপ্টেভালিডিটেলস। আপনি এতে খুশি না হওয়া পর্যন্ত রেড-গ্রিন-রিফ্যাক্টর চক্রটি অতিক্রম করুন। আমরা কি এখন আচরণ পরীক্ষায় পাস করি? যদি তা না হয় তবে অন্য একটি পরীক্ষা লিখুন: shouldRedirectToUserDefaultPage। লাল-সবুজ-রিফ্যাক্টর যতক্ষণ না আপনি খুশি। আপনি আচরণে নির্ধারিত মানদণ্ডগুলি না পূরণ না হওয়া পর্যন্ত ধুয়ে, ধুয়ে ফেলুন, পুনরাবৃত্তি করুন।

এবং তারপরে আমরা পরবর্তী আচরণের দিকে এগিয়ে যাই।

Given that I am on the login page
When I enter an incorrect password
Then I should be returned to the login page
And shown the error "Incorrect Password"

আপনার পূর্ববর্তী আচরণটি পাস করার জন্য এখন আপনার এটিকে পরাস্ত করা উচিত হয়নি। এই মুহুর্তে আপনার এই পরীক্ষায় ব্যর্থ হওয়া উচিত। সুতরাং আপনার টিডিডি চক্রের পিছনে ফিরে যান।

এবং আপনার নিজের পৃষ্ঠা না হওয়া পর্যন্ত এভাবেই।

আপনি কোনও রুবি বিকাশকারী না হলেও বিডিডি এবং টিডিডি সম্পর্কে আরও শিখার জন্য আরএসপেক বুকের উচ্চ প্রস্তাব দিন ।


আপনি কি শুধু মন্তব্য করতে পারেন? আমি এখনও এটি পাই না ...
মধু

4

এটি সম্পর্কে আমার বুঝতে:

  • আচরণকে আরও স্পষ্ট করার জন্য বিডিডি টিডিডির পুনর্নির্মাণ হিসাবে শুরু হয়েছিল।
  • এটি আচরণ এবং সম্পাদনযোগ্য স্পেসিফিকেশনের উপর ফোকাসের জন্য আরও আনুষ্ঠানিক সহায়তা (ডিএসএল এবং সরঞ্জাম) দেয়।
  • বিডিডি এখন টিডিডির সুপারস্টার হিসাবে দেখা যেতে পারে, ,. এটি প্রয়োজনীয়তার আরও বেশি কিছুকে বোঝার পক্ষে বাড়িয়েছে, তবে এখনও উন্নয়ন প্রক্রিয়া পক্ষই এর মূল অংশ core

সুতরাং টিডিডি সম্বোধন করার জন্য বিডিডির সঠিক অংশটি করা। প্রক্রিয়াটির উদ্দেশ্যটি সুস্পষ্ট করতে টিডিডির ভাষায় পরিবর্তন হিসাবে বিডিডি শুরু হয়েছিল। বিডিডিতে ড্যান নর্থের প্রবর্তক নিবন্ধটি ব্যাখ্যা করেছে যে পরীক্ষার চেয়ে শব্দের প্রতি কেন্দ্রীভূত করা কেন দরকারী - এটি নিশ্চিত করতে সহায়তা করে যে আপনি কেবল সফ্টওয়্যারটি তৈরি করছেন না, আপনি সঠিক সফ্টওয়্যারও তৈরি করছেন। এটি সর্বদা একটি ভাল টিডিডি পদ্ধতির অংশ ছিল, তবে ড্যান এটিকে কিছুটা বিডিডিতে কোড করেছিলেন।


আমার মনে হয় বিডিডি টিডিডি থেকে কিছুটা আরও স্পষ্ট করে তোলে, বা কমপক্ষে আনুষ্ঠানিকতা দেয় এবং এর জন্য সরঞ্জাম সহায়তা সরবরাহ করে, এটি কি এই দ্বি-চক্র / ডাবল লুপ / ​​জুম-ইন জুম-আউট / আউট-ইন পদ্ধতির। আপনি প্রথমে বৈশিষ্ট্যের প্রত্যাশিত আচরণটি (বাইরের লুপ) বর্ণনা করুন, তারপরে নিম্ন-স্তরের স্পেসিফিকেশনগুলি মোকাবেলায় অভ্যন্তরীণ লুপটিতে জুম-ইন করুন।

ডাবললুপ টিডিডিHttp://www.metesreau.com/ncraft-workshop/ থেকে

শসার এবং স্পেকফ্লোয়ের মতো সরঞ্জামগুলির সাথে একত্রে ঘেরকিন সেই উচ্চ-স্তরের বৈশিষ্ট্য বিশদটি লেখার এবং তারপরে অ্যাপ্লিকেশন কোডটি কার্যকর করে এমন কোডের সাথে তাদের লিঙ্ক করার একটি উপায় সরবরাহ করে। আমি যুক্তি দিয়ে বলব যে এটি এখানেই বিডিডি টিডিডি থেকে 'আলাদা' অনুভব করতে পারে, তবে এটি এখনও কিছু যুক্ত সরঞ্জাম সমর্থন এবং একটি ডিএসএল দিয়ে এখনও একই কাজ করছে। কিছুটা 'ট্র্যাডিশনাল' টিডিডি আরএসপেক, এনএসপেক, স্পোকের মতো সরঞ্জাম ব্যবহার করছে। এগুলি আপনারা 'ট্র্যাডিশনাল' টিডিডিতে একই প্রক্রিয়াটির মতো হলেও আরও আচরণ-দৃষ্টি নিবদ্ধ ভাষা সহ আরও কিছুটা বোধ করেন।

ইন অ্যাকশন মধ্যে BDD জন ফার্গুসন স্মার্ট (অত্যন্ত বাঞ্ছনীয়) দ্বারা তিনি একটি ডবল লুপ পদ্ধতির জন্য অত্যাবশ্যক, বাইরের স্তর এক্সিকিউটেবল স্পেসিফিকেশনের এ jBehave ভালো কিছু দিয়ে শুরু, তারপর নিম্নস্তরের নির্দিষ্টকরণের জন্য Spock মত একটি হাতিয়ার বা ড্রপ।


বিডিডি পরীক্ষা-চালিত ধারণাটি ব্যবসায়িক স্টেকহোল্ডারদের কাছাকাছি নিয়ে আসে। ঘেরকিন ব্যবসায়ের পাঠযোগ্য হিসাবে নকশাকৃত এবং 'লাইভ ডকুমেন্টেশন' এর ধারণা, অর্থাত্ আপনার এক্সিকিউটেবল স্পেসিফিকেশনগুলি থেকে স্বয়ংক্রিয়ভাবে প্রগতি প্রতিবেদন তৈরি করা হল স্টেকহোল্ডারদের প্রতিক্রিয়া জানানো।

বিডিডি-র আর একটি অংশ, যেখানে এটি সত্যিকার অর্থে এমন কিছু হয়ে যায় যা বৃহত্তর প্রক্রিয়ার অংশ হিসাবে টিডিডিকে অন্তর্ভুক্ত করে, সেগুলি হ'ল প্রয়োজনীয়তা বর্ধিত বিট এবং টুকরা। ফিচার ইনজেকশন, ইমপ্যাক্ট ম্যাপিং এবং রিয়েল বিকল্পগুলির মত ধারণাগুলি এই দিকের অংশ।

এই বিষয়ে ক্যানোনিকাল উত্তরের জন্য , ড্যান উত্তর আবার যেতে ভাল হতে পারে । যদি আপনার দলটি সমস্ত বিকাশকারী হয় তবে বিডিডি = টিডিডি। আপনার দলে যদি স্টেকহোল্ডারদের একটি সম্পূর্ণ পরিসীমা জড়িত থাকে, বিডিডি এক্সপির আরও কাছাকাছি, টিডিডি এর একটি অংশ হিসাবে one


2

বিডিডি এবং টিডিডির সম্পর্ক কী?

তারা একই জিনিস।

আমি যা বুঝলাম তা থেকে বিডিডি টিডিডি-তে দুটি প্রধান বিষয় যুক্ত করে: পরীক্ষার নামকরণ (নিশ্চিত / হওয়া উচিত)

এটি আসলে বিডিডি "যুক্ত করে" এমন কিছু নয়। এটি কেবল একটি আলাদা কনভেনশন যা টিডিডি শেখানো এবং বোঝা আরও সহজ করার জন্য।

যে লোকেরা বিডিডি তৈরি করেছিল তারা সবাই টিডিডি পড়িয়েছিল, এবং তারা লক্ষ্য করেছে যে বুঝতে সবচেয়ে কঠিন বিষয়টি ছিল যে পরীক্ষার সাথে টিডিডির একেবারেই কোনও সম্পর্ক নেই। শিক্ষার্থীরা একবার এই প্রতিবন্ধকতা কাটিয়ে উঠলে, তাদের পক্ষে এটি আরও সহজ হয়ে যায়। কিন্তু, পরীক্ষার কথা চিন্তা করে নিজেকে তালাক দেওয়া খুব কঠিন , যখন "পরীক্ষা" শব্দটি (বা সম্পর্কিত শব্দ যেমন "দাবি") ব্যবহারিকভাবে সর্বত্র প্রদর্শিত হয় । সুতরাং, তারা কিছু শব্দ চারদিকে পরিবর্তন করেছে।

তবে এটি কেবল কথাই! নেই কোন TDD- এ এবং BDD মধ্যে আসল পার্থক্যটা।

এবং গ্রহণযোগ্যতা পরীক্ষা।

স্বীকৃতি পরীক্ষাগুলি বিডিডির মতোই টিডিডি-র গুরুত্বপূর্ণ একটি অংশ। আবার TDD- এ অধিকার সম্পন্ন আছে: TDD- এ এবং BDD মধ্যে কোন পার্থক্য নেই হয় BDD BDD, হয় TDD- এ সম্পন্ন ঠিক আছে।


কীভাবে গ্রহণযোগ্যতা টিডিডি-র একটি গুরুত্বপূর্ণ অঙ্গ রয়েছে?
সাইবেরিয়ানগুই

@ ইডসা: এগুলি গুরুত্বপূর্ণ যে আপনার কোডটি যে পরীক্ষাগুলি পাস করার প্রয়োজন বলে মনে করেন সেগুলি পাস করা উচিত নয়, তবে কোডটি করার কথা। আমি মনে করি অনেক লোক এতে বিভ্রান্ত হয়ে পড়েছে, বেশিরভাগ ইউনিট পরীক্ষাগুলি নিম্ন-স্তরের এবং সুতরাং সিস্টেমটি সামগ্রিকভাবে কী করার জন্য লিখিত হয়েছিল তা পরীক্ষার কঠিন সমস্যা এড়াতে পারে।
gbjbaanb

@ ইডসা: বিডির পক্ষে যেভাবে তারা গুরুত্বপূর্ণ, অবশ্যই, যেহেতু দু'টি একই জিনিস ! গ্রহণযোগ্যতা পরীক্ষাগুলি টিডিডি এর বহিরাগত চক্রকে চালিত করে, বৈশিষ্ট্য এবং ব্যবহারকারীদের সাথে আচরণ করে এমনটি, যা আরও বিস্তারিত অভ্যন্তরীণ চক্রের বিপরীতে থাকে যা এপিআই এবং প্রোটোকল এবং এর সাথে সম্পর্কিত হয়। আমার মনে হয় কেন্ট বেক এটিকে "জুম ইন / জুম আউট" বলে। উদাহরণস্বরূপ, আপনি সহজেই এটি JUnit টেস্ট স্যুটে দেখতে পাচ্ছেন, এতে ইউনিট পরীক্ষাগুলি অন্তত কমপক্ষে স্বীকৃতি পরীক্ষা রয়েছে।
জার্গ ডব্লু মিট্টাগ

স্বীকৃতি পরীক্ষাগুলি টিডিডি এবং বিডিডির একটি গুরুত্বপূর্ণ অঙ্গ। তবে বিডিডি টিডিডির সমান বলে, টিডিডি টেস্ট-ফার্স্টের সমান বলে to আপনি যদি টেস্টগুলিকে আপনার কোডটি চালনা করার অনুমতি না দিয়ে থাকেন, আপনি টিডিডি করছেন না (আমি এমন কাউকে জানতাম যিনি সামনে পরীক্ষা লিখতে খুশি হন তবে যুক্তি দিয়েছিলেন যে কোডটি সর্বদা লিখতে হবে যদি আপনি ইউনিট না লিখতেন তবেই হবে পরীক্ষা এবং সেই পরীক্ষাগুলি সেই অনুযায়ী লিখতে হবে)। তেমনিভাবে, আপনি যদি আচরণটি আপনার পরীক্ষা চালানোর অনুমতি না দেন তবে আপনি বিডিডি করছেন না।
pdr

1
@ ইডসা: নোট করুন যে টিডিডি-র অনেকগুলি ভুল বর্ণনা রয়েছে, যার মধ্যে গ্রহণযোগ্যতা পরীক্ষা অন্তর্ভুক্ত নয় । সেগুলি - দুর্ভাগ্যক্রমে বেশ জনপ্রিয় এবং বেশ বিস্তৃতভাবে শেখানো হয়েছে - ভুল বিবরণ বিডিডি লোকেরা মনে করেছিল যে বিভ্রান্তি এড়াতে টিডিডিটিকে আলাদা নামে নামকরণ করা ভাল ধারণা হতে পারে। তবুও, এবং এটি প্রায়শই যথেষ্ট পরিমাণে পুনরাবৃত্তি করা যায় না, টিডিডি এবং বিডিডি ঠিক একই জিনিস
Jörg ডব্লু মিট্টাগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.