টিডিডি আসলেই জটিল প্রকল্পগুলির জন্য কাজ করে?


53

টিডিডি প্রকল্পগুলির সময় আমি যে সমস্যার মুখোমুখি হয়েছি তা সম্পর্কে এই প্রশ্নটি জিজ্ঞাসা করছি। ইউনিট পরীক্ষা তৈরি করার সময় আমি নিম্নলিখিত চ্যালেঞ্জগুলি লক্ষ্য করেছি।

  • মক ডেটা তৈরি এবং বজায় রাখা

বড় মক ডেটা বজায় রাখা শক্ত এবং অবাস্তব। এটি আরও কঠিন যখন ডেটাবেস কাঠামোর পরিবর্তনগুলি হয়।

  • জিইউআই পরীক্ষা করছে

এমনকি এমভিভিএম এবং জিইউআই পরীক্ষা করার ক্ষমতা সহ, জিইউআই দৃশ্যের পুনরুত্পাদন করতে অনেক কোড লাগে।

  • ব্যবসায়ের পরীক্ষা হচ্ছে

আমার অভিজ্ঞতা আছে যে আপনি এটি সহজ ব্যবসায়িক যুক্তিতে সীমাবদ্ধ রাখলে টিডিডি ভালভাবে কাজ করে। তবে জটিল ব্যবসায়ের যুক্তি পরীক্ষা করা কঠিন কারণ পরীক্ষার সংমিশ্রণের সংখ্যা (পরীক্ষার স্থান) খুব বেশি।

  • প্রয়োজনে দ্বন্দ্ব

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

আমি এই প্রশ্নটি পড়েছি: টিডিডি কেন কাজ করে?

টিডিডি আসলেই জটিল এন্টারপ্রাইজ প্রকল্পগুলির জন্য কাজ করে, বা এটি কার্যত প্রকল্পের ধরণের সীমাবদ্ধ?


+1 এই প্রশ্নটি পড়ার পরে আমার একই প্রশ্ন ছিল - আমি এটি মক ডেটার সাথে একই সমস্যার সাথে সীমিত অর্থে ব্যবহার করি।
মাইকেল কে

20
"টিডিডির প্রয়োজন হয় যে প্রয়োজনীয়তাগুলি 100% সঠিক" যেখানে "প্রয়োজনীয়তাগুলির" অর্থ "এই একক পদ্ধতিতে কীভাবে কাজ করা উচিত তা আমার জানতে হবে"। এবং যদি আপনি না জানেন যে পদ্ধতিটি কীভাবে কাজ করবে বলে মনে হয়, তবে এটি কীভাবে বাস্তবায়ন করার কথা?
ফ্র্যাঙ্ক শায়ারার

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

7
আমি বলব টিডিডি হ'ল একমাত্র জিনিস যা বড় প্রকল্পগুলির জন্য কাজ করে! প্রকল্পটি যত বড় হবে তত জটিল এবং আরও প্রয়োজনীয়তা এলোমেলোভাবে পরিবর্তিত হয় - কেবল টিডিডি রাখতে পারে
মার্টিন বেকেট

2
প্রকৃতপক্ষে, টিডিডি সম্পর্কে প্রয়োজনীয়তার পরিবর্তনের ক্ষেত্রে দুর্দান্ত বিষয়টি যখন প্রয়োজনীয়তাগুলি পরিবর্তিত হয়, আপনি কেবলমাত্র সেই প্রয়োজনের জন্য একটি নতুন পরীক্ষা লিখতে পারেন এবং নিশ্চিত হন যে এটি প্রকল্পের বাকী কোনওটি ভঙ্গ করবে না। আপনার যদি ইতিমধ্যে কোনও পরীক্ষা লিখিত না থাকে, আপনার পরিবর্তনটি অন্য কোনও কিছু ভঙ্গ করে না তা নিশ্চিত করার জন্য আপনাকে পরীক্ষাও লিখতে হবে। এছাড়াও, আমি এটি বাগ বাগের জন্য পছন্দ করি। আপনি যদি টিডিডি ব্যবহার করে সমস্ত কিছু বিকাশ না করেন তবে বাগ বাগের জন্য এটি ব্যবহার করুন: বাগটি পুনরুত্পাদনকারী একটি পরীক্ষা লিখুন, তার পরে বাগটি ঠিক করে আবার পরীক্ষা চালান।
জর্ডান রিয়েটার

উত্তর:


53

বড় মক ডেটা বজায় রাখা শক্ত এবং অবাস্তব। এটি আরও কঠিন যখন ডেটাবেস কাঠামোর পরিবর্তনগুলি হয়।

মিথ্যা।

ইউনিট পরীক্ষার জন্য "বৃহত্তর" মক ডেটা প্রয়োজন হয় না। পরিস্থিতিগুলি পরীক্ষা করার জন্য এটির জন্য যথেষ্ট মক ডেটা প্রয়োজন এবং আরও কিছু নয় nothing

এছাড়াও, সত্যই অলস প্রোগ্রামাররা বিষয় বিশেষজ্ঞদের বিভিন্ন পরীক্ষার ক্ষেত্রে সাধারণ স্প্রেডশিট তৈরি করতে বলে। কেবল একটি সাধারণ স্প্রেডশিট।

তারপরে অলস প্রোগ্রামার স্প্রেডশিট সারিগুলিকে ইউনিট পরীক্ষার ক্ষেত্রে রূপান্তর করতে একটি সাধারণ স্ক্রিপ্ট লিখে। এটা সত্যিই সহজ।

যখন পণ্যটি বিকশিত হয়, পরীক্ষার কেসগুলির স্প্রেডশিটগুলি আপডেট হয় এবং নতুন ইউনিট পরীক্ষা উত্পন্ন হয়। সারাক্ষণ এটি করুন। এটা সত্যিই কাজ করেছে.

এমনকি এমভিভিএম এবং জিইউআই পরীক্ষা করার ক্ষমতা সহ, জিইউআই দৃশ্যের পুনরুত্পাদন করতে অনেক কোড দরকার।

কি? "পুনরুৎপাদন"?

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

আমার অভিজ্ঞতা আছে যে আপনি এটি সহজ ব্যবসায়িক যুক্তিতে সীমাবদ্ধ রাখলে টিডিডি ভালভাবে কাজ করে। তবে জটিল ব্যবসায়ের যুক্তি পরীক্ষা করা কঠিন কারণ পরীক্ষার সংযোগের সংখ্যা (পরীক্ষার স্থান) খুব বেশি large

এটা সত্য হতে পারে।

তবে বিষয় বিশেষজ্ঞগণকে মূল পরীক্ষার কেসগুলিকে একটি সাধারণ আকারে (স্প্রেডশিটের মতো) সরবরাহ করতে সত্যিই সহায়তা করে।

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

এবং. আমাকে কয়েকটি পরীক্ষার মামলা ম্যানুয়ালি লিখতে হয়েছিল কারণ স্প্রেডশিটগুলি অসম্পূর্ণ ছিল।

যাহোক. যখন ব্যবহারকারীরা "বাগগুলি" প্রতিবেদন করেছিলেন, তখন আমি স্প্রেডশিটে কোন পরীক্ষার কেসটি ভুল তা কেবল জিজ্ঞাসা করেছি।

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

বিশেষজ্ঞরা একটি অতি-জটিল ব্যবসায়িক প্রক্রিয়াটি ব্যাখ্যা করার চেষ্টা করার পরিবর্তে, বিশেষজ্ঞদের প্রক্রিয়াটির দৃ concrete় উদাহরণ তৈরি করতে হবে।

টিডিডির প্রয়োজন 100% সঠিক correct এই ধরনের ক্ষেত্রে কেউ আশা করতে পারে যে পরীক্ষার তৈরির সময় বিরোধী প্রয়োজনীয়তা ক্যাপচার করা হবে। তবে সমস্যাটি হ'ল জটিল পরিস্থিতিতে এটি হয় না।

টিডিডি ব্যবহার না করে একেবারে নির্দেশ দেওয়া হয় যে প্রয়োজনীয়তাগুলি 100% সঠিক be কিছু দাবি করেন যে টিডিডি অসম্পূর্ণ এবং পরিবর্তিত প্রয়োজনীয়তাগুলি সহ্য করতে পারে, যেখানে একটি টিডিডি নন অপূর্ণ প্রয়োজনীয়তা নিয়ে কাজ করতে পারে না।

আপনি যদি টিডিডি ব্যবহার না করেন তবে বৈষম্যটি বাস্তবায়নের পর্যায়ে দেরীতে পাওয়া যায়।

আপনি যদি টিডিডি ব্যবহার করেন তবে কোডটি কিছু পরীক্ষায় পাস করে এবং অন্যান্য পরীক্ষায় ব্যর্থ হলে দ্বন্দ্বটি আগে পাওয়া যায়। প্রকৃতপক্ষে, টিডিডি বাস্তবায়নের অনেক আগে (এবং ব্যবহারকারীর গ্রহণযোগ্যতা পরীক্ষার সময় যুক্তি) প্রক্রিয়ায় একটি দ্বন্দ্বের প্রমাণ দেয় ।

আপনার কোড রয়েছে যা কিছু পরীক্ষায় উত্তীর্ণ হয় এবং অন্যদের ব্যর্থ করে। আপনি কেবল সেই পরীক্ষাগুলি দেখুন এবং আপনি বৈপরীত্য খুঁজে পান। এটি সত্যই কার্যকরভাবে বাস্তবে কার্যকর হয় কারণ এখন ব্যবহারকারীদের দ্বন্দ্ব নিয়ে তর্ক করতে হবে এবং পছন্দসই আচরণের সুসংগত, দৃ concrete় উদাহরণ তৈরি করতে হবে।


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

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

5
@ রবার্ট হার্ভে: এটি আমার আবিষ্কার হতে পারে না। আমি কিছু আবিষ্কার করতে খুব অলস।
এস্লট

4
@ আমির রেজায়ে: আমি দুঃখিত যে আপনার ন্যূনতম ইউনিট পরীক্ষার ডেটা জটিল। টিডিডির সাথে এর কোনও যোগসূত্র নেই। আপনার আবেদন জটিল। আপনার এখনও এটি পরীক্ষা করা দরকার, তাই না? আপনি এখনও পরীক্ষা ডেটা উত্পাদন করতে হবে? আপনি যদি টিডিডি অনুসরণ না করে থাকেন তবে আপনি কীভাবে পরীক্ষামূলক অ্যাপ্লিকেশন তৈরি করতে যাচ্ছেন? ভাগ্য? আশা করি? হ্যাঁ. এটা জটিল। কিছুই জটিলতা সরিয়ে দেয় না। টিডিডি আশ্বাস দেয় যে আপনি আসলে সেই জটিলতাটি পরীক্ষা করবেন।
এস .লট

4
@ আমির রেজায়ে: "আমরা বাস্তবের জন্য নকশা করছি"। আপনি পরীক্ষা লিখতে যাচ্ছেন? যদি তাই হয় তবে পরীক্ষার জন্য ডিজাইন করুন। আপনি যদি পরীক্ষা লিখতে যাচ্ছেন না, তবে আপনি কীভাবে কোনও কিছু কাজ করবেন তা জানবেন?
এস .লট

28

হ্যাঁ

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

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

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

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


8
removed the requirement that unit tests pass. It was astonishing how quickly quality went down the toilet, and then the schedule followed it.- এটি আপনার এফ 1 ড্রাইভারকে বলার মতো যে তিনি পিট স্টপসকে অনুমতি দিচ্ছেন না কারণ এতে অনেক বেশি সময় লাগে ... ইডিয়টিক।
জেস টেলফোর্ড

1
এই exemplifies আমি কি বলছে রাখুন: ফাস্ট যেতে একমাত্র উপায় ভাল যেতে হয় !
দ্যাটিক্যাটহিস্পেরার

18

আমি প্রকল্পটি আরও জটিল হিসাবে তর্ক করব, আপনি টিডিডি থেকে আরও সুবিধা পাবেন। মূল সুবিধাগুলি হ'ল টিডিডি কীভাবে কোডকে অনেক ছোট, আরও বেশি স্বতন্ত্র অংশগুলিতে লিখতে বাধ্য করবে তার পার্শ্ব প্রতিক্রিয়া। মূল সুবিধাগুলি হ'ল:

ক) আপনি আপনার নকশার অনেক আগের বৈধতা পাবেন কারণ গেট ગો থেকে পরীক্ষার কারণে আপনার প্রতিক্রিয়া লুপটি অনেক বেশি শক্ত is

খ) আপনি বিট এবং টুকরোগুলি পরিবর্তন করতে পারেন এবং দেখুন সিস্টেমটি কীভাবে প্রতিক্রিয়া দেখায় কারণ আপনি পুরো সময় পরীক্ষার কভারেজের একটি গিরা তৈরি করে চলেছেন।

সি) ফলস্বরূপ সমাপ্ত কোডটি আরও ভাল হবে।


1
টিডিডির সুবিধা আমি জানি এবং জানি। তবে আমি তর্ক করি যে এই জাতীয় প্রকল্পগুলিতে টিডিডি করার জন্য কতটা বাস্তবসম্মত এবং কত সংস্থান এবং সামর্থ্য প্রয়োজন।
আমির রেজায়ে

আমি তোমার সাথে একমত. জটিল প্রকল্পগুলিতে (আমার মতে) পরীক্ষাগুলির চেয়ে সবকিছু কার্যকর হয় কিনা তা নিশ্চিত করার উপায় ছাড়া অন্য কোনও উপায় নেই ... যদি অনেক প্রোগ্রামার আপনার কোড-বেসে কাজ করে তবে আপনি নিশ্চিত হতে পারবেন না যে কেউ আপনার কাজের জিনিস বদলেছে না। পরীক্ষা যদি পাস করতে থাকে - কোনও সমস্যা নেই। যদি না হয় তবে আপনি কোথায় জানেন তা জানেন ।
mhr

10

টিডিডি আসলেই জটিল প্রকল্পগুলির জন্য কাজ করে?
হ্যাঁ. প্রতিটি প্রকল্প তাই আমাকে বলা হয় টিডিডি নিয়ে ভাল কাজ করে না, তবে বেশিরভাগ ব্যবসায়িক অ্যাপ্লিকেশনগুলি ভাল হয়, এবং আমি বাজি দিয়ে দেখি যেগুলি যখন খাঁটি টিডিডি পদ্ধতিতে লেখা হয় তখন বড় সমস্যাগুলি ছাড়াই এটিডিডি উপায়ে লেখা যেতে পারে well

মক ডেটা তৈরি এবং বজায়
রাখা এটিকে ছোট রাখুন এবং কেবলমাত্র আপনার যা প্রয়োজন তা হ'ল এটি মনে হচ্ছে ভয়ঙ্কর সমস্যা নয়। আমাকে ভুল করবেন না, এটি একটি ব্যথা। তবে তা সার্থক।

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

ব্যবসায়ের পরীক্ষা
করা কোনও সমস্যা বলে মনে হয় নি। অনেক ছোট ছোট পরীক্ষা। যেমন আমি উপরে বলেছি, কিছু মামলা (সুডোকু ধাঁধা সমাধানকারী একটি জনপ্রিয় হিসাবে মনে হচ্ছে) টিডিডি করা আপাতদৃষ্টিতে কঠিন।

টিডিডির প্রয়োজনীয়তাগুলি 100% সঠিক
হওয়া দরকার এটি তা করে না। আপনি এই ধারণাটি কোথা থেকে পেয়েছেন? সমস্ত চটপটে অনুশীলনগুলি প্রয়োজনীয়তা পরিবর্তিত হয় accept আপনি এটি করার আগে আপনি কী করছেন তা আপনার জানতে হবে, তবে এটি প্রয়োজনীয়তাগুলি 100% হওয়ার মতো নয়। টিডিডি স্ক্রামের একটি প্রচলিত অনুশীলন, যেখানে প্রয়োজনীয়তাগুলি (ব্যবহারকারীর গল্পগুলি) খুব সংজ্ঞা অনুসারে, 100% সম্পূর্ণ নয়।


আপনার যদি কোনও সঠিক প্রয়োজনীয়তা না থাকে তবে আপনি কীভাবে ইউনিট পরীক্ষা দিয়ে শুরু করবেন? আপনি কি স্প্রিন্টের মাঝামাঝি বাস্তবায়ন এবং ডিজাইনের মাঝে পিছনে পিছনে ঝাঁপ দেন?
আমির রেজায়ে

একটি "ইউনিট" প্রয়োজনের চেয়ে ছোট, এবং হ্যাঁ সাধারণত সমস্ত ইউএসি বেঁধে না রেখে করা যেতে পারে।
এমএলকে

আমরা ইউনিট প্রতিটি ইউনিট পরীক্ষা করি এবং ইউনিটগুলির ইউনিট পরীক্ষার সমন্বয়ও এটি প্রয়োজনীয় that
আমির রেজায়ে

9

প্রথমে, আমি বিশ্বাস করি যে আপনার সমস্যাটি টিডিডি-র তুলনায় ইউনিট পরীক্ষার বিষয়ে আরও বেশি, যেহেতু আপনি যা বলছেন তাতে আমি সত্যিই টিডিডি-নির্দিষ্ট (টেস্ট-প্রথম + লাল-সবুজ-রিফ্যাক্টর চক্র) কিছুই দেখি না।

বড় মক ডেটা বজায় রাখা শক্ত এবং অবাস্তব।

মক ডেটা বলতে কী বোঝ? একটি মক সুনির্দিষ্টভাবে সুনির্দিষ্টভাবে কোনও ডেটা ধারণ করে, অর্থাৎ পরীক্ষায় প্রয়োজনীয় এক বা দুটি ছাড়া অন্য কোনও ক্ষেত্র এবং পরীক্ষার অধীনে থাকা সিস্টেম ব্যতীত অন্য কোনও নির্ভরতা নেই। একটি মক প্রত্যাশা বা রিটার্ন মান সেট আপ করা এক লাইনে করা যায়, তাই ভয়ানক কিছুই নয়।

এটি আরও কঠিন যখন ডেটাবেস কাঠামোর পরিবর্তনগুলি হয়।

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

এমনকি এমভিভিএম এবং জিইউআই পরীক্ষা করার ক্ষমতা সহ, জিইউআই দৃশ্যের পুনরুত্পাদন করতে অনেক কোড লাগে।

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

আমার অভিজ্ঞতা আছে যে আপনি এটি সহজ ব্যবসায়িক যুক্তিতে সীমাবদ্ধ রাখলে টিডিডি ভালভাবে কাজ করে। তবে জটিল ব্যবসায়ের যুক্তি পরীক্ষা করা কঠিন কারণ পরীক্ষার সংমিশ্রণের সংখ্যা (পরীক্ষার স্থান) খুব বেশি।

যদি আপনার ব্যবসায়ের যুক্তি জটিল হয় তবে এটাই স্বাভাবিক যে আপনার ইউনিট পরীক্ষাগুলি ডিজাইন করা শক্ত। এগুলি যতটা সম্ভব পারমাণবিক করে তোলা আপনার পক্ষে, প্রতিটি পরীক্ষার জন্য পরীক্ষার অধীনে থাকা কেবলমাত্র একটি দায়িত্বের পরীক্ষা করা। ইউনিট টেস্টগুলি জটিল পরিবেশে আরও বেশি প্রয়োজনীয় কারণ তারা কোডটিতে পরিবর্তন করার সাথে সাথে আপনি ব্যবসার বিধি বা প্রয়োজনীয়তা ভঙ্গ করবেন না এমন গ্যারান্টি দিয়ে একটি সুরক্ষা জাল সরবরাহ করে।

টিডিডির প্রয়োজন 100% সঠিক correct

একেবারে না. সফল সফ্টওয়্যারটির প্রয়োজন হয় যে প্রয়োজনীয়তাগুলি 100% সঠিক;) ইউনিট পরীক্ষাগুলি কেবলমাত্র বর্তমানে প্রয়োজনীয়তার প্রতি আপনার দৃষ্টিভঙ্গিটি প্রতিফলিত করে; দৃষ্টি ত্রুটিযুক্ত থাকলে, আপনার কোড এবং আপনার সফ্টওয়্যারটি খুব বেশি হবে, ইউনিট পরীক্ষাগুলি না হয় এবং না ... এবং সেখানেই ইউনিট পরীক্ষাগুলি জ্বলজ্বল করে: স্পষ্টভাবে পর্যাপ্ত পরীক্ষার শিরোনাম সহ, আপনার নকশার সিদ্ধান্ত এবং প্রয়োজনীয়তার ব্যাখ্যা স্বচ্ছ হয়ে যায়, যা নির্দেশ করা সহজ করে তোলে পরের বার আপনার গ্রাহকটি কী পরিবর্তন করতে হবে সে সম্পর্কে আপনার আঙুলটি "এই ব্যবসার নিয়মটি আমার পছন্দ মতো নয়"।


6

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


5
অত্যন্ত দক্ষ, পেশাদার কর্মী রয়েছে যারা সহজ এবং কার্যকর কোড লেখেন। এবং পরীক্ষক ব্যবহার করুন। এই পদ্ধতিটি অনেক সফল সংস্থার জন্য কাজ করেছে।
কোডার

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

বাস্তববাদী বিকল্প হ'ল এমন সফ্টওয়্যার সরবরাহ করা যা কাজ করে না; সঠিক পরিস্থিতিতে, এটি এখনও লাভজনক হতে পারে। আপনার প্রিয় উদাহরণ চয়ন করুন।
soru

4

আমি সম্পর্কিত কারণে টিডিডি (এবং সাধারণভাবে ইউনিট টেস্টিং) কার্যত অসম্ভব হিসাবে খুঁজে পেয়েছি: জটিল, উপন্যাস এবং / বা अस्पष्ट আলগোরিদিম। আমি যে গবেষণার প্রোটোটাইপগুলি লিখি তাতে আমি সবচেয়ে বেশি যে বিষয়টি লিখি তা হ'ল আমার কোড চালানো ছাড়া সঠিক উত্তরটি আর কী তা আমার কোনও ধারণা নেই। হাস্যকরভাবে তুচ্ছ মামলার ব্যতীত অন্যায় পক্ষে যুক্তিসঙ্গতভাবে বের করা খুব জটিল। এটি বিশেষত সত্য যদি অ্যালগরিদমে হিউরিস্টিক্স, আনুমানিকতা বা অ-নির্ধারণবাদ জড়িত। আমি এখনও নীচের স্তরের কার্যকারিতা যাচাই করার চেষ্টা করি যা এই কোডটির উপর নির্ভর করে এবং প্রচুর পরিমাণে স্যানিটি চেক হিসাবে ব্যবহার করে। আমার শেষ অবলম্বন পরীক্ষার পদ্ধতিটি হল দুটি ভিন্ন ভিন্ন লাইব্রেরির দুটি সেট ব্যবহার করে দুটি ভিন্ন ভাষায় প্রয়োগ এবং ফলাফলের তুলনা করার জন্য দুটি পৃথক বাস্তবায়ন।


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

"এবং একটি পর্যাপ্ত জটিল কেস একটি ডোমেন বিশেষজ্ঞ দ্বারা প্রমাণিত হয়েছে এবং যাচাই করেছে" - এটি তখন একটি ইউনিট পরীক্ষা, না কোনও রিগ্রেশন পরীক্ষা?
কোয়ান্ট_দেব

2
@Tim: আমি আছি ডোমেইন বিশেষজ্ঞ (কাজের আমার লাইন একজন ব্যক্তিকে সাধারণত উভয় ডোমেইন বিশেষজ্ঞ ও প্রোগ্রামার হয়) এবং আমি sanely হাতে এই জিনিস কাজ করতে পারবে না। অন্যদিকে, আমি প্রায় সবসময় জানতে আনুমানিক কি উত্তর হওয়া উচিত (উদাহরণস্বরূপ, একটি মেশিন লার্নিং আলগোরিদিম যুক্তিসঙ্গতভাবে সঠিক ভবিষ্যৎবাণী করা উচিত, একটি আলগোরিদিম খাওয়ানো র্যান্ডম তথ্য না "আকর্ষণীয়" ফলাফল উত্পাদ উচিত) কিন্তু এই স্বয়ংক্রিয় করা কঠিন। এছাড়াও, গবেষণামূলক প্রোটোটাইপগুলির জন্য, প্রায় কখনও আনুষ্ঠানিক স্পেসিফিকেশন হয় না।
dsimcha

@ কোয়ান্ট_দেব এটি একটি ইউনিট পরীক্ষা। এটি আরও জটিল পরীক্ষার ডেটা সেটটিতে ইউনিটের আচরণ পরীক্ষা করে। আপনি রিগ্রেশন পরীক্ষার জন্য ইউনিট পরীক্ষা ব্যবহার করতে পারেন। ত্রুটিগুলির পুনরাবৃত্তি রোধ করার জন্য আপনার বাগের জন্য রিগ্রেশন টেস্টগুলিও লিখতে হবে। (এর শক্ত প্রমাণ রয়েছে যে বাগগুলি গুচ্ছ)
টিম উইলিসক্রফ্ট

@ ডিডিমচা: সুতরাং ইউনিট টেস্টিংয়ের একটি পরিসংখ্যানিক পদ্ধতি আপনার পক্ষে কাজ করতে পারে, কারণ আপনি আনুমানিক ভবিষ্যদ্বাণী করতে পারেন। আমি চলন্ত লক্ষ্য, চলন্ত শ্যুটারের এনগেজমেন্ট কোডটি নির্বাচন করতে এবং ডিবাগ করতে একটি অস্ত্র সিস্টেমে এই পদ্ধতির ব্যবহার করেছি। এটির পক্ষে উত্তরগুলির পক্ষে কাজ করা খুব কঠিন, তবে ভবিষ্যদ্বাণী কাজ করেছিলেন এমন তুলনামূলকভাবে সহজ কাজ (আপনি কার্যত একটি অনুমানকে আগুন জ্বালান, এবং দেখুন যে এটি কার্যত আঘাত করে, লাথার, বার বার ধুয়ে নিন এনডি আপনি "অ্যালগরিদমের মত সুন্দর ফলাফল" পাবেন) একটি সময়ের 91% কাজ করে, অ্যালগরিদমবি 85% সময় কাজ করে))
টিম উইলিসক্রফট

4
> Does TDD really work for complex projects?

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

তবে বিডিডি-শৈলীর পরীক্ষাগুলির সাথে সংহতকরণ বা শেষ থেকে শেষের টেস্টিংয়ের ক্ষেত্রে আপনি উল্লিখিত সমস্যাগুলি যদি টিডিডি সমাধান করতে পারে তবে আমি দৃ .় নই ।

তবে কমপক্ষে কিছু সমস্যা কমতে পারে

> However complex business logic is hard to test since the number 
> of combinations of tests (test space) is very large.

আপনি যদি ইন্টিগ্রেশন-টেস্ট বা শেষ থেকে শেষের পরীক্ষার পর্যায়ে সম্পূর্ণ কভারেজ করতে চান তবে এটি সত্য। এককতম স্তরের সম্পূর্ণ কভারেজটি করা আরও সহজ হতে পারে।

উদাহরণ: জটিল ব্যবহারকারীর অনুমতি পরীক্ষা করা

IsAllowedToEditCusterData()ইন্টিগ্রেশন-পরীক্ষার স্তরে ফাংশনটি পরীক্ষা করার জন্য ব্যবহারকারী, ডোমেন, গ্রাহক, পরিবেশ .... সম্পর্কে বিভিন্ন তথ্যের জন্য জিজ্ঞাসা করা প্রয়োজন।

এই অংশগুলি উপহাস করা বেশ শক্তিশালী। এটি বিশেষত সত্য যদি IsAllowedToEditCusterData()এই বিভিন্ন বস্তুগুলি জানতে হয়।

ইউনিটেটেস্ট-লেভেলে আপনার এমন ফাংশন থাকবে IsAllowedToEditCusterData()যা উদাহরণস্বরূপ 20 টি পরামিতি গ্রহণ করবে যাতে ফাংশনটি জানতে হবে এমন সমস্ত কিছু রয়েছে। যেহেতু IsAllowedToEditCusterData()কোন ক্ষেত্রের ক user, ক domain, ক customer, .... এটি জানা দরকার না যে এটি পরীক্ষা করা সহজ।

যখন আমাকে বাস্তবায়ন করতে হয়েছিল তখন আমার IsAllowedToEditCusterData()এটির দুটি ওভারলোড ছিল:

একটি ওভারলোড যা সেই 20 পরামিতিগুলি পাওয়ার পরে আর কিছুই করে না এবং তারপরে সিদ্ধান্ত নেওয়ার ক্ষেত্রে 20 পরামিতিগুলির সাথে ওভারলোডকে কল করে।

(আমার IsAllowedToEditCusterData()কেবল 5 টি প্যারামিটার ছিল এবং এটির পুরোপুরি পরীক্ষার জন্য আমার 32 টি পৃথক সংমিশ্রণের প্রয়োজন ছিল)

উদাহরণ

// method used by businesslogic
// difficuilt to test because you have to construct
// many dependant objects for the test
public boolean IsAllowedToEditCusterData() {
    Employee employee = getCurrentEmployee();
    Department employeeDepartment = employee.getDepartment();
    Customer customer = getCustomer();
    Shop shop = customer.getShop();

    // many more objects where the permittions depend on

    return IsAllowedToEditCusterData(
            employee.getAge(),
            employeeDepartment.getName(),
            shop.getName(),
            ...
        );
}

// method used by junittests
// much more easy to test because only primitives
// and no internal state is needed
public static boolean IsAllowedToEditCusterData(
        int employeeAge,
        String employeeDepartmentName,
        String shopName,
        ... ) 
{
    boolean isAllowed; 
    // logic goes here

    return isAllowed;
}

1
+1 খুব ভাল উদাহরণ "জটিল ব্যবহারকারীর অনুমতি যাচাই করা" যা আমাদের দৃশ্যের একটি।
আমির রেজায়ে

3

দুঃখের উত্তরটি হ'ল বড় জটিল প্রকল্পগুলির জন্য কিছুই সত্যই কার্যকর হয় না!

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


1

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

"ডাব্লুটিএফ। কেন এই কোড শাখাটি সেখানেও আছে? জানেন না, কারওর মন খারাপ করার চেয়ে কারওর দরকার আছে, ভাল রেখে সেখানে রেখে দিন ..." সময়ের সাথে সাথে জটিল প্রকল্পগুলি আবর্জনার জমিতে পরিণত হয়।

পরীক্ষার মাধ্যমে, যে কেউ আত্মবিশ্বাসের সাথে বলতে পারেন "আমি কঠোর পরিবর্তন করেছি, তবে সমস্ত পরীক্ষা এখনও পাস হচ্ছে।" সংজ্ঞা অনুসারে, তিনি কিছুই ভাঙ্গেন নি। এটি আরও চৌকস প্রকল্পগুলির দিকে পরিচালিত করে যা বিবর্তিত হতে পারে। আমাদের এখনও সিওবিওএল বজায় রাখার জন্য লোকের প্রয়োজনের একটি কারণ হ'ল পরীক্ষার সময়টি জনপ্রিয় ছিল না: পি


1

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

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

সুতরাং, সমস্ত কিছুর মতো ভারসাম্যও মূল। টিডিডি ভাল হতে পারে তবে একচেটিয়াভাবে নির্ভর করবেন না।


1
টিডিডি বোকা প্রতিরোধ করে না। টিডিডি চটুল হওয়ার একটি অংশ, তবে আরেকটি গুরুত্বপূর্ণ বিষয় হ'ল প্রতিটি স্প্রিন্টে এক্সিকিউটেবল, রান রানযোগ্য কোড সরবরাহ করা ...
অলিগোফ্রেন

0

আমারও তাই মনে হয়, দেখুন টেস্ট চালিত বিকাশ সত্যিই কাজ করে

২০০৮ সালে, নাছিপ্পান নাগাপ্পান, ই। মাইকেল ম্যাক্সিমিলিয়ান, থিরুমলেশ ভাত এবং লরি উইলিয়ামস একটি পরীক্ষা লিখেছিলেন "পরীক্ষা চালিত উন্নয়নের মাধ্যমে মানের উন্নতি অনুধাবন: ফলাফল এবং চারটি শিল্প দলের অভিজ্ঞতা" (পিডিএফ লিঙ্ক) link বিমূর্ত:

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

২০১২ সালে, রুবি অন রেলস ডেভেলপমেন্ট অনুশীলনগুলি টিডিডি অনুমান করে। আমি ব্যক্তিগতভাবে পরীক্ষাগুলি এবং উপহাসগুলি লেখার জন্য আরএসপেক, সরঞ্জাম তৈরির জন্য কারখানা_সাগর, ব্রাউজার অটোমেশনের জন্য ক্যাপিবারা, কোড কভারেজের জন্য সিম্প্লেকভ এবং এই পরীক্ষাগুলি স্বয়ংক্রিয় করার জন্য গার্ডের মতো সরঞ্জামগুলিতে ব্যক্তিগতভাবে নির্ভর করি।

এই পদ্ধতি এবং এই সরঞ্জামগুলি ব্যবহারের ফলস্বরূপ, আমি নাগাপ্পান এট আলের সাথে বিষয়গতভাবে একমত হতে চাই ...


0

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

সম্ভবত প্রয়োজনীয়তাগুলি জটিল এবং অস্থির, অবকাঠামো অস্থির, টিম জুনিয়র এবং উচ্চ টার্নওভার সহ, বা স্থপতি একটি নির্বোধ।

একটি টিডিডি প্রকল্পে, এই আসন্ন ব্যর্থতার লক্ষণ হ'ল পরীক্ষাগুলি সময়সূচীতে লেখা যায় না; আপনি চেষ্টা, শুধুমাত্র আবিষ্কার 'যে নিতে যাচ্ছে এই দীর্ঘ, এবং আমরা শুধুমাত্র আছে যে '।

অন্যান্য পন্থাগুলি ব্যর্থ হলে বিভিন্ন লক্ষণ দেখাবে; বেশিরভাগ ক্ষেত্রে এমন কোনও সিস্টেমের সরবরাহ করা হয় যা কাজ করে না। রাজনীতি এবং চুক্তিগুলি এটি পছন্দনীয় কিনা তা নির্ধারণ করবে।


-1

TDDব্যথার সম্মুখভাগ হিসাবে শোনাতে পারে তবে দীর্ঘমেয়াদে এটি আপনার সেরা বন্ধু হবে, আমার TDDউপর আস্থা রাখুন সত্যিকার অর্থেই অ্যাপ্লিকেশনটি দীর্ঘমেয়াদে রক্ষণাবেক্ষণযোগ্য এবং সুরক্ষিত করে তুলবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.